自建 Overleaf 实例

zhangxh 发布于 2025-10-24 67 次阅读


在 amd 芯片设备上部署

使用 toolkit 安装 overleaf

克隆仓库并进入文件夹

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

初始化配置

bin/init

此操作在 conf 文件夹中生成如下三个文件

  • overleaf.rc: 设置文件,
  • variables.env: 环境变量文件
  • version: 版本号文件
    根据需要修改配置和环境变量文件即可. 比如如果想自己的实例是中文界面, 可以在 variables.env 中加上
OVERLEAF_SITE_LANGUAGE=zh-CN

然后创建容器

bin/up

如果没出现错误, 则按下 ^C 停止容器, 然后执行 bin/start 启动容器即可.

安装完整版的 texlive

为了不让 docker 镜像显得太大, 官方配备的 texlive 是阉割版的. 如果需要安装完整版的 texlive, 在 overleaf-toolkit 文件夹中运行如下命令进入容器.

bin/shell

运行如下命令安装完整版 texlive

tlmgr install scheme-full

为了保存修改, 我们先退出容器再提交镜像

docker commit sharelatex sharelatex/sharelatex:$(cat config/version)-with-texlive-full
echo $(cat config/version)-with-texlive-full > config/version

完成这些步骤后执行 bin/up 就不会重置 texlive 为阉割版了.

需要注意的是, 升级 Overleaf 后仍要重复执行以上步骤.

本小节内容可在官方文档中找到.

在 arm 芯片设备上部署

此方法也适用于 Mac Mini M系列芯片.

arm 镜像构建

由于官方镜像并不支持 arm 芯片的设备, 所以我们需要自己构建镜像. 首先在github上拉取项目

git clone https://github.com/overleaf/overleaf.git
cd overleaf/server-ce

为了能使用全功能的 texlive, 可以修改 Dockerfile-base 文件, 找到 && echo "selected_scheme scheme-basic" >> /install-tl-unx/texlive.profile \ 这一行, 将 scheme-basic 替换为 scheme-full, 然后执行下述命令构建镜像

make build-base
make build-community

使用 toolkit 构建容器

操作步骤与 amd 步骤基本相同, 在与 overleaf 同级的目录下拉取完 toolkit 的镜像后, 建议给构建的镜像打上标签

docker tag sharelatex/sharelatex:main sharelatex/sharelatex:$(cat config/version)-with-texlive-full

需要注意的是我们需要修改 overleaf.rc 文件中 mongo 的镜像为 arm64v8/mongo, 并且修改 config/version 中的版本号. 在此文章创作的当下, 如果使用的是 Mac Mini M系列芯片的设备部署, 执行 bin/up 后会出现 bug, 提示 Invalid MONGO_VERSION, 已经有大佬提出 PR 修复, 参见 https://github.com/overleaf/toolkit/pull/397, 按照 https://github.com/overleaf/toolkit/pull/397/commits/fca8fcd83bbcba90dea84b0f160e0ea37e9bc73c 修改即可.

更新相关

如果 overleaf 镜像更新的话, 我们需要在 overleaf 文件夹里面执行

git pull

然后重做一遍以上构建镜像的步骤, 并使用 toolkit 构建容器. 确认所有容器正常启动后, 执行

docker image prune -f

删除旧镜像.

此作者没有提供个人介绍。
最后更新于 2025-10-24