Featured image of post overleaf自部署

overleaf自部署

部署overleaf CE到服务器上
 
声明
这篇文章是由cc + glm 辅助生成的

前置要求

  • 服务器已安装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

生成配置文件

1
bin/init

替换镜像

编辑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数据库

  1. docker exec -it mongo mongosh
  2. 切换数据库, use sharelatex
  3. 查找所有用户,db.users.find({}, {email:1, isAdmin:1})
  4. 将目标用户设置为管理员,db.users.updateOne({email: “you@example.com”}, {$set: {isAdmin: true}})
  5. 退出,exit

参考资源

Licensed under CC BY-NC-SA 4.0
最后更新于 Nov 10, 2025 22:50 CST
总访问量  |  总访客数  
Built with Hugo   主题 StackJimmy 设计