服务器配置
最近因为要云协作写 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_IP
从 127.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 了。