Overleaf Community Edition 开发环境搭建指南
前言
Overleaf Community Edition 是一个开源的在线 LaTeX 协作编辑平台,本文将详细介绍如何在本地搭建开发环境,帮助开发者快速开始项目开发工作。
环境准备
在开始之前,请确保你的系统已经安装了以下软件:
- Docker 及 Docker Compose
- Node.js(建议使用 LTS 版本)
- Git
基础环境搭建
1. 构建服务容器
进入项目目录下的 develop
文件夹,执行以下命令构建所有服务:
bin/build
注意:如果 Docker 在并行构建服务时内存不足,可以在当前目录创建
.env
文件,并添加COMPOSE_PARALLEL_LIMIT=1
来限制并行构建数量。
2. 初始化数据库
构建完成后,需要初始化数据库:
bin/init
3. 启动服务
使用以下命令启动所有服务:
bin/up
服务启动后,访问 http://localhost/launchpad 创建第一个管理员账户。
TeX Live 配置
为了支持 PDF 编译功能,需要构建 TeX Live 镜像:
docker build texlive -t texlive-full
macOS 用户注意:在 macOS 上编译时,可能需要覆盖 Docker socket 路径。在当前目录创建
.env
文件,添加DOCKER_SOCKET_PATH=/var/run/docker.sock.raw
开发模式
为了提高开发效率,可以使用开发模式运行 Overleaf Community Edition,这样代码变更会自动触发服务重启。
1. 启动开发模式
使用以下命令启动所有服务的开发模式:
bin/dev
该命令会使用 nodemon
监控代码变更并自动重启服务。
2. 选择性启动服务
为了提高性能,可以选择只启动部分服务的开发模式:
bin/dev [service1] [service2] ... [serviceN]
前端开发注意:如果只启动
web
服务的开发模式,只会更新后端代码。要同时自动更新前端代码,还需要启动webpack
服务的开发模式。
如果不指定任何服务名称,则所有服务都会以开发模式启动。
调试指南
在开发模式下,大多数服务都会暴露调试端口,可以使用 Chrome Dev Tools 或 IDE 集成的调试器进行调试。
各服务调试端口对照表
服务名称 | 端口号 |
---|---|
web |
9229 |
clsi |
9230 |
chat |
9231 |
contacts |
9232 |
docstore |
9233 |
document-updater |
9234 |
filestore |
9235 |
notifications |
9236 |
real-time |
9237 |
history-v1 |
9239 |
project-history |
9240 |
Chrome 远程调试配置
- 打开 Chrome 浏览器,访问 chrome://inspect/
- 确保"Discover network targets"选项已勾选
- 点击"Configure..."按钮
- 为需要调试的服务添加
localhost:[服务端口]
条目 - 添加后,服务将显示为"Remote Target",可以进行检查和调试
常见问题解决
- 构建失败:检查 Docker 是否有足够内存,尝试设置
COMPOSE_PARALLEL_LIMIT=1
- 服务无法启动:检查端口是否被占用,特别是 MongoDB 默认端口 27017
- 前端修改不生效:确保同时启动了
webpack
服务的开发模式
结语
通过本文的指导,你应该已经成功搭建了 Overleaf Community Edition 的开发环境。开发模式下,系统会自动监控代码变更并重启服务,大大提高了开发效率。调试功能的配置也让问题定位变得更加方便。