视频加载失败

在 Windows 上使用 Docker、Git Bash 和 overleaf-toolkit 部署 Overleaf 社区版

1016 字
5 分钟
在 Windows 上使用 Docker、Git Bash 和 overleaf-toolkit 部署 Overleaf 社区版

0. 前言#

Overleaf 是一个广受欢迎的在线 LaTeX 编辑器,它极大地简化了 LaTeX 的使用门槛。虽然官方提供了在线服务,但是处于数据隐私、网络稳定或自定义需求,我们常常希望搭建一个私有的 Overleaf 实例。Overleaf 官方提供了基于 Docker 的 toolkit 工具来简化社区版的部署流程。

然而,官方的 toolkit 主要面向 Linux/macOS 环境,在 Windows 上通过 Git Bash 执行时会遇到一个棘手的路径问题。本教程将详细记录如何在 Windows 11/10 环境下,借助 Docker Desktop 和 Git Bash,成功部署 Overleaf 社区版,并提供关键的脚本修复方案。

1. 环境准备#

在开始之前,请确保你的系统已安装并正确配置了以下软件:

  • Windows 10/11:需开启 Hyper-V 或 WSL 2 功能
  • Docker Desktop for Windows:建议使用 WSL 2 后端,性能更佳。安装后请确保 Docker 服务已正常启动。
  • Git for Windows: 安装时请务必勾选 Git Bash Here 选项,我们将使用它来执行 shell 脚本。

笔者环境参考:

  • OS: Windows 11 Professional 24H2
  • Docker: 28.5.1
  • Git: 2.51.0.windows.2

2. 部署步骤#

第一步:克隆 Overleaf Toolkit 仓库#

首先,打开 Git Bash,选择一个你喜欢的工作目录(例如 D:\),然后执行以下命令克隆官方的 toolkit 仓库:

Terminal window
# 进入 D:\
cd /d
# 克隆官方仓库
git clone https://github.com/overleaf/toolkit.git ./overleaf-toolkit
cd ./overleaf-toolkit

第二步:修复 Windows 路径兼容性问题#

这是整个教程最核心的一步。官方的 docker-compose 脚本在生成容器挂载路径时,没有正确处理 Git Bash 在 Windows 上的路径格式,导致 Docker 无法找到数据卷。

我已就此问题向官方提交了 Issue #379,并提交了修复方案 PR #380。

鉴于此 PR 还并未被合并到主分支,需要用户自行进行修改。

解决方案如下:

使用你喜欢的代码编辑器(如 VS Code 或者记事本)打开 bin/docker-compose 文件。

找到 set_base_vars() 函数,其中有两次对 OVERLEAF_IN_CONTAINER_DATA_PATH 变量的赋值。我们需要在路径的开头额外添加一个斜杠 /。

修改前:

Terminal window
OVERLEAF_IN_CONTAINER_DATA_PATH=/var/lib/overleaf

修改后:

Terminal window
OVERLEAF_IN_CONTAINER_DATA_PATH=//var/lib/overleaf

注意:此函数有两处 OVERLEAF_IN_CONTAINER_DATA_PATH=/var/lib/overleaf,请务必全部修改。这个修改的本质是帮助 Git Bash/MSYS2 正确地将 POSIX 风格的路径 /var/lib/overleaf 转换为 Docker 能理解的 Windows 路径。

第三步:初始化并启动 Overleaf 服务#

修改脚本后,我们回到 Git Bash 终端,继续在 overleaf-toolkit 目录下执行命令。

初始化 Overleaf 配置#

执行 init 命令,该命令会生成初始化配置文件,例如 config/overleaf.rc、config/variables.env、config/version 等。

Terminal window
./bin/init

启动 Overleaf 容器服务#

初始化完成后,执行 up 命令来启动所有服务。

Terminal window
./bin/up

提示:首次执行时,由于需要下载多个 Docker 镜像,此过程可能会持续较长时间,具体取决于你的网络速度。请耐心等待,确保所有镜像都成功拉取。

执行成功后,你将看到大量的服务日志输出。

第四步:首次访问与管理员配置#

服务启动后,打开你的浏览器,访问 http://127.0.0.1。

首次访问时,你会被引导至管理员账户创建页面。请根据提示设置你的第一个管理员用户的邮箱和密码。创建成功后,你就可以使用这个账户登录并开始使用你的私有 Overleaf 实例了!

3. 日常管理#

在日常使用中,你可能会需要启动或停止 Overleaf 服务。

  • 停止服务:在 overleaf-toolkit 目录下打开 Git Bash,执行:
Terminal window
./bin/stop
  • 重新启动服务:同样,在 overleaf-toolkit 目录下执行:
Terminal window
./bin/up

总结#

通过对 bin/docker-compose 脚本进行一个小小的修改,我们成功解决了 overleaf-toolkit 在 Windows + Git Bash 环境下的路径兼容性问题,顺利地部署了 Overleaf 社区版。自托管 Overleaf 不仅保障了数据安全,还提供了更自由的定制空间。

希望这篇教程能帮助到同样遇到此问题的同学。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
在 Windows 上使用 Docker、Git Bash 和 overleaf-toolkit 部署 Overleaf 社区版
https://bfmhno3.github.io/posts/overleaf-community-windows/
作者
bfmhno3
发布于
2025-10-18
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
如何将 WSL2 镜像无损迁移至非系统盘
Tutorial详细记录在 Windows 11 环境下,将默认安装在 C 盘的 WSL2 Ubuntu 镜像无损迁移至其他数据盘的完整过程,包含导出、导入、默认用户配置及原实例清理,有效释放系统盘空间。
2
Windows 包管理器 Scoop:从底层原理、命令行到提交自己的软件包
Tutorial从 Scoop 的目录、Shim、Bucket 和 Manifest 入手,完整讲解安装维护、仓库选择、清单编写、自动更新与提交 PR,并拆解两个我实际提交的软件包。
3
CS2 游戏设置优化
Tutorial告别默认设置!本文提供从画面优化、鼠标灵敏度到枪械配装的全方位 CS2 入门指引,助你提升 FPS 与游戏体验。
4
导出、工具链与 CI
Tutorial用 Xuan 从零学 Typst 第 16 篇:我用 Typst 0.15.1 在 tutorial-v1 的干净克隆里跑通 106 个 ok 的 make ci(实测 12.2 秒),用 --pdf-standard a-2b,ua-1、HTML、bundle、typst eval、--timings、--deps 导出并检查了 lab/ch16,用 tinymist 0.15.2 的 LSP 验证了编辑器端的诊断、悬停和格式化,补上模板、测试和 GitHub Actions 工作流,最后列出“Typst 特性 → 第几篇”的索引。
5
用 Rust 写一个 WebAssembly 插件:按拼音排序术语表
Tutorial用 Xuan 从零学 Typst 第 15 篇:我用 Rust 1.97.1 写了一个 29 行的 WebAssembly 插件,在 Typst 0.15.1 里按拼音给术语表排序;量出 235242 字节的 .wasm、冷编译 3.74 秒,在 /tmp 里用计数器插件验证了 Typst 会缓存同参数的调用,并复现了 plugin 的五种报错。
随机文章随机推荐

评论区

Profile Image of the Author
bfmhno3
Hello, I'm bfmhno3.
公告
本站曾使用 Jekyll + Minimal Mistakes 主题,现已迁移至 Astro + Firefly。博客内容未变,但文章链接有所调整,请自行查找需要的文章。
分类
标签
最新动态
站点统计
文章
123
分类
2
标签
239
总字数
753,253
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录