服务器操作指北(7)本地部署 overleaf
创建于 2025-05-15
更新于 2025-05-15
科技
latex
overleaf

前言

由于目前撰写论文涉及到了跨高校的团队合作,故而在基于之前文章VScode 整合 MikTex 论文写作以及 git 协同的基础上,寻找其他更高效的论文协作方案。免费版的 overleaf 在高峰期或者编译大篇幅论文时经常编译失败,在师兄的提醒下,发现该项目可以本地部署,进而记录本篇文章。撰写文章时,overleaf 版本为 5.4.0

一、安装

整体安装流程,在 overleaf 提供的官方安装工具overleaf-toolkit中都有较为详细的描述。但由于国内网络环境问题,建议通过代理手段进行安装。

1.1 代理设置

1.1.1 git 配置代理

官方工具源码保存在 github 中,国内访问存在不稳定性,可以通过配置代理链接进行访问。可以参考该网站GitHub 文件加速代理

bash
1
git clone https://gh-proxy.com/https://github.com/overleaf/toolkit.git ./overleaf-toolkit

1.1.2 docker 配置代理

官方工具目前通过容器方式进行本地部署,需要配置 docker 镜像以提升容器拉取速度。具体可用镜像站可参考国内 Docker 服务状态 & 镜像加速监控进行部署。相关脚本命令如下:

bash
1
2
3
4
5
6
7
8
9
10
11
# 将内容写入 /etc/docker/daemon.json 文件,root 用户可以去掉 sudo # 配置 Docker 镜像,使用多个镜像源来提高镜像下载速度 echo '{ "registry-mirrors": [ "https://docker.1ms.run", "https://docker.1panel.live", "https://docker.ketches.cn" ] }' | sudo tee /etc/docker/daemon.json # 重启 Docker 服务以使配置生效 sudo systemctl restart docker

1.2 安装设置

  1. 首先进入overleaf-toolkit目录,执行bin/init命令,在config目录生成基本配置文件。
bash
1
2
cd ./overleaf-toolkit bin/init
  1. 由于默认使用的是免费社区版,部分 Pro 版本功能无法使用,需要对配置文件config/overleaf.rc进行修改。具体修改内容如下:
YML
1
2
3
4
5
6
7
8
9
## 改为自己需要的名称,默认会显示在docker镜像列表中 PROJECT_NAME=example ## 改为自己服务器的IP以及对外公开的端口,由于本服务直接部署在内容,无需ssl,所以没有对nginx部分进行配置 OVERLEAF_LISTEN_IP=YOUR_IP OVERLEAF_PORT=YOUR_PORT ## 关闭Sibling Containers,该技术为pro版本独有,但是在默认配置文件中默认启用了。 SIBLING_CONTAINERS_ENABLED=false
  1. 同时为了优化页面显示,需要对config/variables.env文件进行修改。具体修改内容如下:
YML
1
2
3
4
5
6
7
8
9
10
11
## 默认的overleaf名称,会显示在浏览器标题中 OVERLEAF_APP_NAME="Example Team's Overleaf" ## 默认的overleaf名称,会显示在导航栏中 OVERLEAF_NAV_TITLE="Example Team's Overleaf" ## 默认的URL链接地址,要与overleaf.rc的修改保持一致,以便后续用户添加 OVERLEAF_SITE_URL=http://YOUR_IP:YOUR_PORT ## 默认的overleaf显示语言,手动添加即可,配置文件无该项 OVERLEAF_SITE_LANGUAGE=zh-CN

1.3 安装及优化

1.3.1 启动 overleaf 服务

overleaf-toolkit 目录执行如下命令。

BASH
1
2
3
4
5
## 第一次启动,可以使用该命令,后续若修改配置,也需要执行一次该命令 bin/up ## bin/up 命令会将输出定向到命令行中,在确认系统正常运行后,可改用如下命令,以正常容器模式启动 bin/start

1.3.2 优化环境

  1. 安装完整版本 latex。

默认的 overleaf 中,使用的 latax 不是完整版本,需要进入容器并执行更新,在 overleaf-toolkit 目录执行如下命令。

BASH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
## 进入容器 bin/shell ## 进入容器后,通过如下命令安装完整latex ## 切换国内更新源 tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/tlpretest ## 安装完整包 tlmgr update --all tlmgr install scheme-full ## (可选)安装字库 apt install -y latex-cjk-all texlive-lang-chinese texlive-lang-english ## 退出容器 exit

2.(可选)安装中文字体。

overleaf 的默认字体,对中文支持较差,可以通过添加字库的方式进行优化。首先可以从 Windows 系统的字库目录 C:\Windows\Fonts 中复制需要的字体文件,打包为 fonts.tar.gz 压缩包并上传到服务器中。

shell
1
2
3
4
5
## 上传到服务器步骤省略,请参考scp相关文档,假设文件上传至overleaf-toolkit目录 cd overleaf-toolkit ## 通过docker命令复制文件至容器中 docker cp fonts.tar.gz sharelatex:/overleaf

然后通过如下命令进行安装。

shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 进入容器 bin/shell ## 解压字库文件 tar -zxvf fonts.tar.gz -C /usr/share/fonts/winFonts/ ## 删除字库文件以节省空间 rm fonts.tar.gz ## 更新字库 ## 进入字库所在目录 cd /usr/share/fonts/winFonts/ ## 更新字库 mkfontscale mkfontdir ## 刷新字库 fc-cache -fv ## 测试 fc-list :lang=zh-cn
  1. (可选)持久化镜像

以上的所有优化操作都是针对容器实例进行的,一旦更新配置重新执行 up 命令,就会丢失,所以需要进行持久化操作。

BASH
1
2
3
4
5
6
7
8
9
10
11
12
13
## 获取容器的CONTAINER ID docker ps | grep "sharelatex/sharelatex" ## 新建镜像 docker commit <CONTAINER ID> 5.4.0-with-texlive-full:latest ## 修改版本 ## 注意,overleaf默认脚本仅识别 `版本号-with-texlive-full` 与 `版本号` 这两种版本 echo "5.4.0-with-texlive-full" > config/version ## 重启镜像 bin/up bin/start

二、使用

在网站部署完成以后,可以访问 http://IP:PORT/launchpad 进入管理页面,注册管理员用户。后续用户注册时,由管理员账号在 http://IP:PORT/admin/register 页面手动添加。(若未修改 OVERLEAF_SITE_URL,此处生成的注册链接会默认为 localhost,请自行前缀域名)

2.1 对比

本地部署与在线服务相比,编译效率确实提升,但是也缺少了一些协同功能。个人总结如下:

功能 本地部署 在线服务
评论
引文自动检索
聊天
编译效率 ✅✅✅
远程协同 自行端口映射至公网

总体而言,如果单纯以论文的编译效率为标准,本地部署是更好的选择,也更稳定,不会出现类似于 顶会截稿前服务崩溃 的问题,数据保存在本地也更安全。但是只是简单的体验或者需要远程的协同,还是在线版本更为合适。

参考

本文作者: 有次元袋的 tiger
本文链接: https://www.superheaoz.top/2025/05/5139/
版权声明: 本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 我的个人天地