• 使用docker搭建overleaf环境


    安装docker

    可参考笔记: ubuntu docker gpu环境安装

    如果不需要安装gpu版本的docker,可使用下列命令

    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    sudo apt-get update
    sudo apt install docker-ce docker-ce-cli containerd.io docker-compose
    

    安装Overleaf

    将overleaf代码clone到本地

    git clone https://github.com/overleaf/toolkit.git ./overleaf
    

    如果github仓库下载不了,则可以使用https://gitee.com/xiaoxia722/overleaf_toolkit.git

    进入代码目录进行初始化

    cd ./overleaf
    bin/init
    

    此时将生成三个配置文件

    ls config/
    overleaf.rc variables.env version
    

    更改overleaf.rc配置文件

    SHARELATEX_LISTEN_IP=0.0.0.0(接收外网请求)
    SHARELATEX_PORT=12150(overleaf的端口,可以不改)
    

    启动服务

    sudo bin/up
    

    刚开始会拉取大量的log,然后使用ctrl+c退出

    重新启动

    sudo bin/start
    

    安装完整texlive包

    以上安装的overleaf配套的LaTeX不是完整版,所以需要继续下载。首先进入容器的bash:

    sudo docker exec -it sharelatex /bin/bash
    cd /usr/local/texlive
    

    然后执行以下命令:1

    # 下载并运行升级脚本
    wget http://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-latest.sh
    sh update-tlmgr-latest.sh -- --upgrade
    
    # 更换texlive的下载源
    tlmgr option repository https://mirrors.sustech.edu.cn/CTAN/systems/texlive/tlnet/
    
    # 升级tlmgr
    tlmgr update --self --all
    
    # 安装完整版texlive(时间比较长,不要让shell断开)
    tlmgr install scheme-full
    # 退出sharelatex的命令行界面,并重启sharelatex容器
    exit
    docker restart sharelatex
    

    至此,overleaf的安装完成配置Nginx
    可以通过访问http://公网IP:映射的端口/launchpad,默认端口下可以访问本地接口http://127.0.0.1:80/launchpad注册管理员账号
    其他情况下可以访问http://公网IP:映射的端口进行使用

    反向代理

    在Nginx配置文件中加入该配置,其中反向代理端口要与之前配置的相同。

    server {
        listen 80;
        listen [::]:80;
        
        # 外网访问域名
        server_name domain;
        return 302 https://$server_name$request_uri;
    }
    
    server {
        
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    
        # 外网访问域名
        server_name domain;
    
        index index.html;
    
        # 以下两行配置SSL证书
        ssl_certificate         /path/domain.cer;
        ssl_certificate_key     /path/.acme.sh/xlz.pub/domain.key;
    
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
    
        server_tokens off;
    
        add_header X-Frame-Options SAMEORIGIN;
    
        add_header X-Content-Type-Options nosniff;
    
        client_max_body_size 50M;
     
        location / {
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_read_timeout 3m;
            proxy_send_timeout 3m;
     
            proxy_pass http://overleaf所在IP地址:overleaf监听端口;
        }
    }
    
  • 相关阅读:
    Linux命令行管理文件(练习题)
    (LeetCode C++)三数之和
    linux安装7zip
    HashMap中Jdk1.7的多线程并发出现死循环原因
    Unity UGUI Image Maskable
    腾讯云价格计算器有用过的吗?好用!
    21天打卡挑战学习MySQL——《MySQL表管理》第二周 第五篇
    跟李沐学AI之卷积神经网络
    【LSTM回归预测】基于matlab布谷鸟算法优化LSTM回归预测【含Matlab源码 2037期】
    机器学习之变分推断(三)基于平均场假设变分推断与广义EM
  • 原文地址:https://blog.csdn.net/c2861024198/article/details/139738270