前置要求
- 服务器已安装Docker和Docker Compose
- 具备基本的Linux命令操作能力
- 拥有一个邮箱账户用于邮件服务配置
镜像下载
Overleaf主镜像
推荐使用增强版Overleaf镜像,包含了完整的TeX Live环境:
1
2
|
# 国内用户可使用镜像加速
docker pull docker.1ms.run/tuetenk0pp/sharelatex-full
|
增强功能包括:
- 完整的TeX Live安装及所有可用包
- 支持minted代码高亮
- 支持SVG图片(集成Inkscape)
- 支持Lilypond音乐排版
- 默认启用shell-escape
数据库镜像下载
MongoDB配置
1
2
3
4
5
6
|
# 下载MongoDB 6.0
docker pull docker.1ms.run/library/mongo:6.0
# 重命名镜像
docker tag docker.1ms.run/library/mongo:6.0 mongo:6.0
docker rmi docker.1ms.run/library/mongo:6.0
|
Redis配置
1
2
3
4
5
6
|
# 下载Redis 6.2
docker pull docker.1ms.run/library/redis:6.2
# 重命名镜像
docker tag docker.1ms.run/library/redis:6.2 redis:6.2
docker rmi docker.1ms.run/library/redis:6.2
|
项目配置
下载部署工具
1
2
|
git clone https://github.com/overleaf/toolkit.git overleaf-toolkit
cd overleaf-toolkit
|
生成配置文件
替换镜像
编辑overleaf-toolkit/lib/docker-compose.base.yml, 注意,这个镜像为刚才下载的那个overleaf主镜像,如果你是使用docker.1ms.run下载的,image改为docker.1ms.run/tuetenk0pp/sharelatex-full
1
|
image: "${IMAGE}" --> image: tuetenk0pp/sharelatex-full
|
基础配置文件编辑
编辑 config/overleaf.rc:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 修改监听地址
OVERLEAF_LISTEN_IP=127.0.0.1 --> OVERLEAF_LISTEN_IP=0.0.0.0
# 设置容器映射的端口 OVERLEAF_PORT:80
OVERLEAF_PORT=8108
# 注释掉Nginx
# TLS proxy configuration (optional)
# See documentation in doc/tls-proxy.md
NGINX_ENABLED=false
# NGINX_CONFIG_PATH=config/nginx/nginx.conf
# NGINX_HTTP_PORT=80
# Replace these IP addresses with the external IP address of your host
# NGINX_HTTP_LISTEN_IP=127.0.1.1
# NGINX_TLS_LISTEN_IP=127.0.1.1
# TLS_PRIVATE_KEY_PATH=config/nginx/certs/overleaf_key.pem
# TLS_CERTIFICATE_PATH=config/nginx/certs/overleaf_certificate.pem
# TLS_PORT=443
|
环境变量配置
编辑 config/variables.env:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 实例基本信息
OVERLEAF_APP_NAME=My Overleaf Instance
OVERLEAF_SITE_URL=http://your-server-ip:port
OVERLEAF_NAV_TITLE=My Overleaf
# 管理员邮箱配置
OVERLEAF_ADMIN_EMAIL=admin@yourdomain.com
OVERLEAF_EMAIL_FROM_ADDRESS=noreply@yourdomain.com
# SMTP邮件服务配置(以163邮箱为例)
OVERLEAF_EMAIL_SMTP_HOST=smtp.163.com
OVERLEAF_EMAIL_SMTP_PORT=465
OVERLEAF_EMAIL_SMTP_SECURE=true
OVERLEAF_EMAIL_SMTP_NAME=Overleaf
OVERLEAF_EMAIL_SMTP_USER=your-email@163.com
OVERLEAF_EMAIL_SMTP_PASS=your-smtp-password
# 页脚自定义
OVERLEAF_LEFT_FOOTER='[{"text": "Contact Support", "url": "mailto:support@yourdomain.com"}]'
OVERLEAF_RIGHT_FOOTER='[{"text": "© 2025 Your Company"}]'
# TLS配置(重要:无证书时必须配置,否则邮件发不出)
OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH=false
OVERLEAF_EMAIL_SMTP_IGNORE_TLS=true
|
部署步骤
初始化配置
1
2
3
4
|
# 启动所有服务
bin/up
# 可以后台启动
bin/up -d
|
验证部署
访问 http://your-server-ip:port,应该能看到Overleaf登录页面。
创建管理员账户
访问http://your-server-ip:port/launchpad,进行管理员账户注册
或者, 进入容器内设置
1
2
3
|
docker exec -it sharelatex /bin/bash
cd /overleaf/services/web
grunt user:create-admin --email=admin@example.com
|
升级成员为管理员
直接操作MongoDB数据库
- docker exec -it mongo mongosh
- 切换数据库, use sharelatex
- 查找所有用户,db.users.find({}, {email:1, isAdmin:1})
- 将目标用户设置为管理员,db.users.updateOne({email: “you@example.com”}, {$set: {isAdmin: true}})
- 退出,exit
参考资源