服务器配置

最近因为要云协作写 Latex 所以看到这个 Overleaf 的 ShareLatex 项目挺不错的,所以就尝试搭建了一下,这里简单分享一下我是用的是阿里云的服务器进行搭建的,这里也给大家推荐一下阿里云服务器活动有时候低至 8 块钱一个月!然后我用的是 Ubuntu 22.01 系统;

开始搭建

当然,一开始拿到云服务器还是先更新一下源:

apt update;
apt upgrade

更新完了之后我们直接通过拉取 Docker 官方的脚本,快速进行安装 Docker:

curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh
apt install docker-compose

安装完了 Docker 之后我们安装一下 git,一般 git 都在系统里的,但以防万一还是运行一下安装,之后我们直接拉取 Overleaf 的 github 镜像:

apt install -y git
git clone https://github.com/overleaf/toolkit.git

在拉取完了之后,我们运行一下初始化脚本,脚本在 toolkit/bin 里面的 init,在运行完了之后我们就生成了所有的配置文件了,我们对 SHARELATEX_LISTEN_IP127.0.0.1 修改为 0.0.0.0,其实这里不修改也行,因为我们之后基本都是用 Nginx 进行反向代理,并且修改一下端口,我这里修改端口为 5080

cd toolkit
./bin/init
vim ./config/overleaf.rc // 按需进行修改

之后我们来直接运行,我们可以通过执行 toolkit/bin 文件夹里面的 up 进行初次启动,并且在启动完成后退出,之后每次只需要运行相同文件夹里面的 start 即可:

./bin/up
[初次执行完成后 Ctrl + C 退出]
./bin/start

这个时候我们访问一下 ip地址/launchpad 就可以进行管理员账户设置了。接下来我们来配置防火墙以及 Nginx 反向代理。

防火墙以及 Nginx 反向代理

首先,Ubuntu 系统里面我们通常用 ufw 防火墙,我们可以先分别添加 22, 80, 443 这三个端口以防万一,如果 ssh 端口更换了的话也可以添加新的端口,添加完了之后设置一下默认其他端口都拒绝连接,然后立马启动防火墙:

ufw allow 22/tcp
ufw allow 22/udp
ufw allow 80/tcp
ufw allow 443/tcp
ufw default deny
ufw enable

之后我们来下载一下 Nginx,并且通过在 /etc/nginx/sites-enabled 文件夹里面添加一个 overleaf.conf 来进行配置,大致如下:

apt install nginx
vim /etc/nginx/sites-enabled/overleaf.conf

并且写入配置文件如下:

server {
        listen 80;
        listen [::]:80;

        server_name www.example.com;

        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        location / {
                proxy_pass http://127.0.0.1:5080;
                proxy_connect_timeout 600;
                proxy_read_timeout 600;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
                proxy_set_header Host $host;
        }
}

将配置文件里面的 www.exmaple.com 修改为你自己的域名即可,这里只提供了 80 的反向代理,如果有 SSL 需要自己配置的可以修改,端口代理的是 5080 端口。写入配置文件之后重启一下 Nginx:

service nginx restart

至此基本上就大致搞定了,但是需要注意的是 Overleaf 的 ShareLatex 本身的 TexLive 只有最基础的一些宏,所以有些我们需要自己安装,大致可以参考一下我们之后的文章。现在打开浏览器输入反代的域名就可以直接浏览搭建的 OverLeaf ShareLatex 了。