跳转至

自托管Overleaf服务器

最近在更新之前写的高中数学讲义,气人的是讲义的页数多起来之后Overleaf就一直编译超时。

学生也要9$一个月,太贵啦!

囊中羞涩但又不想放弃overleaf,无奈只能自己假设一个overleaf服务器。

感谢Overleaf开源的代码!!

Overleaf - GitHub

部署

感谢伟大的Docker,我们想要在自己的服务器部署Overleaf是非常简单的。

Step 1 下载源码

git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit && cd overleaf-toolkit

overleaf-toolkit提供的脚本

下载完源码之后,我们就可以使用overleaf-toolkit提供的脚本来管理容器了。

./bin文件夹下,有以下这些脚本可以使用:

backup-config
docker-compose
doctor
error-logs
images
init
logs
mongo
rename-env-vars-5-0
rename-rc-vars
shell
start
stop
up
upgrade

Step 2 初始化配置

bin/init

这条命令会在./config目录生成三个文件:

overleaf.rc     variables.env     version
你可以根据自己的需要修改。

Step3 启动服务器

bin/up
这个指令是docker compose up的封装,相当于构建+启动容器集群。

Step4 开始使用

然后就完了,就完了!!实在是不能更简单了。

自定义配置

如果你想要在局域网或者广域网访问该服务(默认只能本机访问),需要做一些修改。

修改监听IP和端口

./config/overleaf.rc中,需要修改以下字段:

OVERLEAF_LISTEN_IP=0.0.0.0 # 监听所有的IP
OVERLEAF_PORT=9999 # 默认是80端口

自定义网站名称、管理员邮箱

./config/variables.env文件中,修改:

OVERLEAF_APP_NAME="yang's Overleaf Instance"
OVERLEAF_SITE_URL=???
OVERLEAF_NAV_TITLE="yang's Overleaf Instance"
[email protected]

如何应用修改?

修改完配置文件之后,需要重新build才可以应用配置。

bin/down && bin/up

你可能还需要配置STMP服务器

但我懒得弄了。

在管理员新建用户的时候,(大概)可以自动给该邮箱发送注册信息:

下载tex宏包

默认情况下,overleaf使用texlive,并且宏包是不全的。如果想要安装宏包需要以下步骤:

Step1 进入Docker容器

bin/shell

Step2 安装宏包

下面的代码来自xlz.pub

# 下载并运行升级脚本
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

# 你也可以安装一些其他的宏包
tlmgr install tikzlings tikzmarmots tikzducks

Step3 commit镜像

docker commit sharelatex sharelatex/sharelatex:with-texlive-full

Step4 重新构建容器

./config目录下新建一个docker-compose.override.yml文件:

---
version: '2.2'
services:
    sharelatex:
        image: sharelatex/sharelatex:with-texlive-full
然后使用以下命令:
bin/stop && bin/docker-compose rm -f sharelatex && bin/up
重新构建容器。

Upgrade

Note that you will need to remove this committed container and repeat these steps when you upgrade overleaf.

此致。


最后更新: 2024-04-27 23:47:09
创建日期: 2024-04-27 23:21:38

评论