前言
overleaf是一款非常流行的latex编写工具,其内部帮我们集成了许多宏包,从而避免了环境配置的时间。但是现在也有一些缺点。例如,编译时间不能超过20s、限制多人合作等,其中,编译时间不能超过20s是最大的缺点。下面来记录一下我的部署流程和踩到的一些坑。
环境配置
服务器配置
- 阿里云2核2G
Ubuntu 2240G硬盘
所需要的工具
-
docker -
docker-compose v2 -
nginx(反向代理)
搭建流程
多一些内存!(服务器内存大于2G的可以跳过)
服务器内存最好还是4G的比较合适,2G的花我们可以来创建一个swapfile来作为内存的补充。
交换区文件
创建交换区文件
首先来看一下自己的机器有没有交换区文件
|
|
如果看到Swap: 0 0 0的话,说明没有交换区,我们可以创建一个2G的交换区文件
|
|
如果云服务器磁盘充足,也可以选择4G的文件。
修改权限
此时,在根目录下就已经有一个名为swapfile的文件,我们需要修改这个交换区的权限
|
|
也就是只有root权限的用户可以对该文件进行读写
格式化为swap区
|
|
启用swap
|
|
永久生效
为了让交换区文件永久生效,可以在/etc/fstab文件中添加一行
|
|
优先使用内存
内存的速度是远远高于磁盘的,所以我们得优先使用内存,这里可以调整一下
|
|
swappiness的值越高,就说明使用交换区的意愿也就越大。
此时可以再通过free -h参数去进行查询。
删除交换区文件
同理,也可以删除交换区文件
-
关闭交换区
1sudo swapoff /swapfile -
删除交换区文件
1sudo rm /swapfile1sudo sed -i '/\/swapfile/d' /etc/fstab
安装docker
首先要安装好docker和docker-compose,而且docker-compose最好是安装v2版本的。
安装docker
|
|
安装好后,可以安装docker-compose,我安装的是v2版本,不过有些麻烦。
-
首先确定好自己的服务器架构,一般都是
x86_641uname -i -
找到
v2的release页面,这里我选择了v2.39版本 -
上传到服务器,这里有很多办法
-
将这个文件移动到官方推荐的目录中
如果不存在这个文件夹,可以先创建一个
1mkdir -p /usr/local/lib/docker/cli-plugins/1mv docker-compose-linux-x86_64 /usr/local/lib/docker/cli-plugins/docker-compose -
变为可执行文件
1chmod +x /usr/local/lib/docker/cli-plugins/docker-compose -
验证是否安装成功
1docker compose version如果安装成功,就会是下面这个输出
1Docker Compose version v2.39.4
此时,基本上就可以跟着官方文档来进行安装了。
官方文档安装
安装
首先clone本项目
|
|
然后转到该目录下
|
|
初始化配置
|
|
这将会生成一个config目录,主要包含三个文件
|
|
overleaf.rc是顶层配置文件variables.env是用到的一些环境变量version是使用的版本
配置端口
这里我们可以先使用ip:port的方式去访问,所以修改一下端口,也就是修改config/overleaf.rc
|
|
拉取镜像
这里会拉去三个镜像
mongoredissharelatex
由于网络的问题,sharelatex拉去速度较慢,所以我们可以考虑换一下docker源,可以参考一下这篇文章
当配置好docker源后,可以执行
|
|
看到一堆的输出日志后,就说明成功启动了容器,此时可以先取消(CTRL+C)来取消任务。然后,再使用
|
|
来开启任务。
如果一切顺利,那么最基础的版本我们就已经安装好了。
接下来我们来升级我们的texlive
升级sharelatex
由于拉去的sharlatex是最基础的版本,里面缺少了许多宏包,所以我们要升级一下,这里还是参考官方教程。在执行完上一步的bin/start后,容器开始运行。我们需要进入容器内来拉去新的镜像
|
|
进去后,官方使用的工具是tlmgr,先查看所使用的版本
|
|
选择镜像源
选择一个合适的镜像源很重要,这里的选择原则就是根据地理位置来选择,例如,南方的盆友可以选择腾讯云,华中的朋友可以选择阿里云。我们可以从CTAN中选择离你最近的那个源,本人所处华北地区,就选择了北京外国语大学的镜像源:
|
|
然后更新一下tlmgr
|
|
此时就可以开始拉去了,本人大概用了20mins,拉取完后直接退出容器。
保存配置
退出容器后,执行下面的操作来保存配置
|
|
然后重新运行,
|
|
看一下使用的哪个镜像
|
|
这下就大功告成了。
(可选) Nginx反向代理
目前为止,我们已经可以通过ip:port的形式去进行访问了,而使用https更加的安全,我们可以使用nginx来进行反向代理。
首先安装nginx
安装nginx
|
|
管理nginx
可以通过以下方法来管理nginx
|
|
测试一下
在浏览器输入
|
|
SMTP服务
在安装好后,我们需要去注册一个管理员账号
|
|
此时,就会转到一个注册页面,我们要注册一个管理员账号,然后登录。登录后就可以发送要请链接。如果人数比较少的话,我建议不用开启SMTP服务,只需要修改对应链接即可

这里可以选择注册的邮箱,点击注册后,会发送一个链接

底下是一个激活链接
|
|
只要把localhost改为自己的域名或者ip地址即可。
总结
这就是搭建的所有流程了,细节部分还是很多,如果遇到问题了,欢迎留言!