Overleaf 6.3.1 配置参数详解
面向已完成 Overleaf 6.3.1 部署的运维人员,按分类逐项详解 Toolkit 两个配置文件(variables.env 应用参数、overleaf.rc 编排参数)的作用、默认值、生效条件与常见误配,并给出按团队规模分档的生产配置模板,全部参数均在 Ubuntu 22.04 实测环境核对。
Overleaf 6.3.1 配置参数详解
目标:面向已完成 Overleaf 6.3.1 部署的运维人员,按分类逐项详解 Toolkit 两个配置文件(variables.env 应用参数、overleaf.rc 编排参数)的作用、默认值、生效条件与常见误配,并给出按团队规模分档的生产配置模板,全部参数均在 Ubuntu 22.04 实测环境核对。
一、环境信息
- 实测日期:2026-10-22
- 实测环境:Ubuntu 22.04 LTS,Docker Engine 29.8.1,Docker Compose v5.5.1
- 软件版本:Overleaf Community Edition 6.3.1(
sharelatex/sharelatex:6.3.1)、MongoDB 8.0.34、Redis 7.4 - 部署目录:
/opt/overleaf-toolkit(官方 Overleaf Toolkit) - 参数来源:实测环境
config/overleaf.rc与config/variables.env原文、容器内/etc/overleaf/settings.js源码、官方doc/overleaf-rc.md - 关联文档:部署流程见 《Overleaf 6.3.1 Docker Compose 部署指南》,选型背景见 《Overleaf 介绍与选型指南》
二、前置条件
- 已按部署指南完成 Overleaf 6.3.1 部署并能正常访问(服务未部署时本文的「查看生效值」命令无法执行)。
- 服务器上存在 Toolkit 配置目录
/opt/overleaf-toolkit/config/,内含overleaf.rc、variables.env、version三个文件。 - 对 Docker Compose 的「重建容器才应用新配置」机制有基本了解(下文第三章展开)。
三、参数查看与修改方式
Overleaf 6.3.1 的配置分三层,修改入口与生效路径完全不同:
3.1 第一层:config/variables.env(应用参数)
站点名称、URL、邮件、功能开关等应用行为参数,以 KEY=value 行书写,# 开头为注释。Toolkit 通过 compose env_file 机制把它整体注入主容器进程环境。
查看宿主机文件:
cat /opt/overleaf-toolkit/config/variables.env
查看容器内实际生效值(实测回显,bin/docker-compose exec -T sharelatex env | grep -E "^OVERLEAF_|^EMAIL|^ENABLE" 排序后):
EMAIL_CONFIRMATION_DISABLED=true
ENABLED_LINKED_FILE_TYPES=project_file,project_output_file
ENABLE_CONVERSIONS=true
EXTERNAL_AUTH=none
OVERLEAF_APP_NAME=Quzuo Overleaf
OVERLEAF_CONFIG=/etc/overleaf/settings.js
OVERLEAF_INVITE_TOKEN_SECRET=M/ubG0tRcZsHQ1P2b6e7JoewCKmjgIbwt+p8KLcw7jg=
OVERLEAF_MONGO_URL=mongodb://mongo/sharelatex
OVERLEAF_REDIS_HOST=redis
OVERLEAF_SITE_URL=http://192.168.1.80
REDIS_HOST=redis
REDIS_PORT=6379
注:
OVERLEAF_MONGO_URL、OVERLEAF_REDIS_HOST、OVERLEAF_CONFIG(指向容器内/etc/overleaf/settings.js)三条不由 variables.env 书写,是 compose 合成时自动注入的容器互联变量,不要手工添加覆盖。
3.2 第二层:config/overleaf.rc(编排参数)
监听地址/端口、数据目录、镜像版本、组件开关等决定 compose 编排本身的参数。
查看当前生效值最快的方式是用 Toolkit 自带体检命令(实测节选):
bin/doctor
- config/overleaf.rc
- status: present
- values
- OVERLEAF_DATA_PATH: data/overleaf
- OVERLEAF_LOG_PATH: not set, keeping logs in container
- SERVER_PRO: false
- SIBLING_CONTAINERS_ENABLED: false
- OVERLEAF_LISTEN_IP: 0.0.0.0
- OVERLEAF_PORT: 80
- MONGO_ENABLED: true
- MONGO_IMAGE: mongo
- MONGO_VERSION: 8.0
- REDIS_ENABLED: true
- REDIS_IMAGE: redis:7.4
- REDIS_AOF_PERSISTENCE: true
3.3 第三层:/etc/overleaf/settings.js(镜像内置,只读理解)
容器内 /etc/overleaf/settings.js 是应用真正的配置装载文件,它逐条读取环境变量并填入内部配置对象,例如(实测源码摘录):
siteUrl: (siteUrl = process.env.OVERLEAF_SITE_URL || 'http://localhost'),
appName: process.env.OVERLEAF_APP_NAME || 'Overleaf Community Edition',
secureCookie: process.env.OVERLEAF_SECURE_COOKIE != null,
日常运维不需要也不应该改这个文件(容器重建即丢),它的价值在于确认「某个环境变量是否被消费、默认值是什么」。
3.4 修改与生效规则
两类文件的修改都必须重建容器(官方 overleaf-rc.md 原文要求):
bin/docker-compose down
bin/up -d
bin/stop + bin/start 只启停既有容器,不会把新配置合成进 compose 定义,改完配置只 restart 是「改了不生效」的第一大原因。改配置前建议先备份 config/ 目录(bin/backup-config 命令可用)。
四、参数总览
6.3.1 Toolkit 配置面全景(数量按实测文件与官方模板统计):
| 配置文件 | 参数族 | 数量 | 生效方式 |
|---|---|---|---|
variables.env | 站点基础 | 8 | 重建容器 |
variables.env | 邮件 SMTP | 10 | 重建容器 |
variables.env | 功能开关 | 3 | 重建容器 |
variables.env | 存储后端(fs/S3) | 20(S3 组默认注释) | 重建容器 |
variables.env | 认证(LDAP 等) | 8(Server Pro) | 重建容器 |
variables.env | 编译与 TeX Live | 2(Server Pro) | 重建容器 |
overleaf.rc | 监听与端口 | 3 | 重建容器 |
overleaf.rc | 数据目录 | 5 | 重建容器 |
overleaf.rc | 镜像与版本 | 5 | 重建容器 |
overleaf.rc | 数据库/缓存 | 8 | 重建容器 |
overleaf.rc | TLS 代理 | 8 | 重建容器 |
config/version | 主镜像版本 | 1 | 重建容器 |
CE(Community Edition)下实际可用约 40 项;LDAP/SAML、Git Bridge、Sibling Containers 三族为 Server Pro 专属,CE 配置了也不生效。
五、核心参数分类详解
5.1 站点基础参数(variables.env)
| 参数 | 实测默认 | 说明 |
|---|---|---|
OVERLEAF_SITE_URL | 模板中注释(必改) | 站点对外地址。settings.js 中缺省回退 http://localhost,会导致登录 Cookie 域与邮件链接全错。格式 http://<IP> 或 https://<域名>,末尾不带 / |
OVERLEAF_APP_NAME | Overleaf Community Edition | 站点名,浏览器标题与页面头部。实测设为 Quzuo Overleaf 后容器 env 生效 |
OVERLEAF_NAV_TITLE | 注释 | 导航栏标题,不设则用 APP_NAME |
OVERLEAF_HEADER_IMAGE_URL | 注释 | 自定义 Logo 图片地址;另有 OVERLEAF_HEADER_IMAGE_URL_LIGHT/_DARK 明暗两套(亮色/暗色主题分别取用) |
OVERLEAF_ADMIN_EMAIL | 注释 | 页脚展示的支持邮箱 |
OVERLEAF_LEFT_FOOTER | 注释 | 左页脚,JSON 数组,如 [{"text": "联系我们", "url": "mailto:support@example.com"}] |
OVERLEAF_RIGHT_FOOTER | 注释 | 右页脚,同上 |
OVERLEAF_CUSTOM_EMAIL_FOOTER | 注释 | 系统发出邮件的页脚文字 |
5.2 安全与代理参数
variables.env 侧:
| 参数 | 实测默认 | 说明 |
|---|---|---|
OVERLEAF_INVITE_TOKEN_SECRET | bin/init 自动生成随机值 | 邀请令牌签名密钥。保留自动值;多实例共享数据库时必须一致;泄露需更换(更换后旧邀请链接失效) |
OVERLEAF_BEHIND_PROXY | 注释 | 主容器前有 nginx/traefik 等反代或启用 Toolkit TLS 代理时设 true,应用按代理头生成链接 |
OVERLEAF_SECURE_COOKIE | 注释 | 设置后 Cookie 仅经 HTTPS 传输(settings.js 源码实测:变量存在即生效)。必须与 HTTPS 环境配套,HTTP 环境设置会导致无法登录 |
overleaf.rc 侧(官方 TLS 代理容器,NGINX_ENABLED=true 启用):
| 参数 | 实测默认 | 说明 |
|---|---|---|
NGINX_CONFIG_PATH | config/nginx/nginx.conf | 代理配置文件 |
TLS_PRIVATE_KEY_PATH | config/nginx/certs/overleaf_key.pem | 证书私钥 |
TLS_CERTIFICATE_PATH | config/nginx/certs/overleaf_certificate.pem | 证书公钥 |
NGINX_HTTP_LISTEN_IP / NGINX_HTTP_PORT | 127.0.1.1 / 80 | http 跳转 https 的监听;官方明确不要设 0.0.0.0(与 OVERLEAF_LISTEN_IP 冲突) |
NGINX_TLS_LISTEN_IP / TLS_PORT | 127.0.1.1 / 443 | https 监听 |
5.3 邮件参数(variables.env SMTP 组)
自托管实例默认不发邮件(密码找回、邀请通知都不可用),需要邮件时按实测模板逐项填写:
| 参数 | 说明 |
|---|---|
OVERLEAF_EMAIL_FROM_ADDRESS | 发件人地址,如 overleaf@example.com |
OVERLEAF_EMAIL_SMTP_HOST | SMTP 服务器,如 smtp.example.com |
OVERLEAF_EMAIL_SMTP_PORT | 端口,587(STARTTLS)或 465 |
OVERLEAF_EMAIL_SMTP_SECURE | false=STARTTLS,true=隐式 TLS |
OVERLEAF_EMAIL_SMTP_USER / OVERLEAF_EMAIL_SMTP_PASS | 认证账号 |
OVERLEAF_EMAIL_SMTP_NAME | SMTP 客户端名,一般不填 |
OVERLEAF_EMAIL_SMTP_LOGGER | true 输出 SMTP 调试日志(排障用) |
OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH | 默认 true 拒绝自签证书;内网自签 CA 环境改 false |
OVERLEAF_EMAIL_SMTP_IGNORE_TLS | 忽略 STARTTLS(老旧内网 SMTP) |
OVERLEAF_EMAIL_AWS_SES_ACCESS_KEY_ID / OVERLEAF_EMAIL_AWS_SES_SECRET_KEY | AWS SES 凭据(与 SMTP 二选一) |
配套:配置 SMTP 后可删除 EMAIL_CONFIRMATION_DISABLED=true(见 5.5),恢复邮箱验证流程。
5.4 存储后端参数(fs / S3)
文件实体与项目历史的存储后端由两个总开关决定(bin/doctor 实测 CE 默认值):
- SHARELATEX_FILESTORE_BACKEND: fs
- SHARELATEX_HISTORY_BACKEND: fs
- OVERLEAF_FILESTORE_BACKEND: fs
- OVERLEAF_HISTORY_BACKEND: fs
fs 模式(默认):文件与历史落在 OVERLEAF_DATA_PATH 对应目录,随 bind mount 持久化。
s3 模式:官方模板提供完整参数组,分 AWS S3 与自建 S3(MinIO 等)两套:
| 参数组 | AWS S3 | 自建 S3 |
|---|---|---|
| 用户文件桶 | OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME | 同左 |
| 模板文件桶 | OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME | 同左 |
| 历史 Blob 桶 | OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET | 同左 |
| 历史 Chunk 桶 | OVERLEAF_HISTORY_CHUNKS_BUCKET | 同左 |
| 访问凭据 | OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID + _SECRET_ACCESS_KEY、OVERLEAF_HISTORY_S3_ACCESS_KEY_ID + _SECRET_ACCESS_KEY | 同左 |
| 区域 | OVERLEAF_FILESTORE_S3_REGION、OVERLEAF_HISTORY_S3_REGION | 同左 |
| 端点与寻址 | 不需要 | OVERLEAF_FILESTORE_S3_ENDPOINT、OVERLEAF_HISTORY_S3_ENDPOINT、_PATH_STYLE="true" |
内网 MinIO 场景必须同时设置
ENDPOINT与PATH_STYLE="true"(MinIO 默认路径式寻址);filestore 与 history 的凭据/端点是两套独立变量,迁移时容易只配一半。
5.5 功能开关参数(variables.env)
| 参数 | 实测默认 | 说明 |
|---|---|---|
EMAIL_CONFIRMATION_DISABLED | true | 关闭注册/登录后的邮箱确认。无 SMTP 时保持 true,否则用户会被邮箱验证卡住 |
ENABLE_CONVERSIONS | true | PDF 转缩略图(依赖容器内 pdftocairo),保持开启 |
ENABLED_LINKED_FILE_TYPES | project_file,project_output_file | 允许「链接文件」引用的类型:项目内文件与编译输出文件 |
5.6 认证参数(EXTERNAL_AUTH,Server Pro 边界)
| 参数 | 说明 |
|---|---|
EXTERNAL_AUTH | none(CE 唯一合法值)/ ldap / saml。实测容器 env 为 none |
OVERLEAF_LDAP_URL | LDAP 服务地址(ldap://host:389) |
OVERLEAF_LDAP_SEARCH_BASE | 搜索基 ou=people,dc=example,dc=com |
OVERLEAF_LDAP_SEARCH_FILTER | 过滤器 (uid={{username}}) |
OVERLEAF_LDAP_BIND_DN / OVERLEAF_LDAP_BIND_CREDENTIALS | 绑定账号 |
OVERLEAF_LDAP_EMAIL_ATT / _NAME_ATT / _LAST_NAME_ATT | 属性映射(mail/cn/sn) |
OVERLEAF_LDAP_UPDATE_USER_DETAILS_ON_LOGIN | 登录时同步用户资料 |
CE 配置 LDAP/SAML 参数不会生效:LDAP/SAML 模块仅包含在 Server Pro 镜像中。CE 需要外部认证只能靠反向代理层方案(自担风险)。
5.7 编译与 TeX Live 参数
| 参数 | 位置 | 实测默认 | 说明 |
|---|---|---|---|
SIBLING_CONTAINERS_ENABLED | overleaf.rc | false | 沙箱编译总开关。CE 必须保持 false:设 true 时 CE 启动即警告并回退容器内编译(部署指南 4.4 实录)。true 时每个编译任务独立沙箱容器,需 SERVER_PRO=true 前提 |
DOCKER_SOCKET_PATH | overleaf.rc | /var/run/docker.sock | 沙箱模式下挂载进主容器的 docker socket |
TEX_LIVE_DOCKER_IMAGE | variables.env | 注释 | 沙箱模式使用的 TeX Live 镜像(如 quay.io/sharelatex/texlive-full:2026.1) |
ALL_TEX_LIVE_DOCKER_IMAGES | variables.env | 注释 | 沙箱模式多版本 TeX Live 镜像列表,逗号分隔,用户可在项目菜单选择编译版本 |
CE 下的宏包扩展不走这组参数,而是直接在主容器内 tlmgr 安装(流程与持久化见部署指南 4.9)。
5.8 编排层参数(overleaf.rc:监听、目录、项目名)
| 参数 | 实测默认 | 说明 |
|---|---|---|
PROJECT_NAME | overleaf | compose 项目名与默认网络名前缀(实测网络名 overleaf_default)。同机多实例必须各自不同 |
OVERLEAF_LISTEN_IP | 127.0.0.1 | 主容器监听地址。实测改为 0.0.0.0 才能外部访问;启用 TLS 代理时建议保持回环 |
OVERLEAF_PORT | 80 | 宿主端口,80 冲突时改 8080 等 |
OVERLEAF_DATA_PATH | data/overleaf | 主容器数据目录(挂载到容器 /var/lib/overleaf),相对路径基于 toolkit 根 |
OVERLEAF_LOG_PATH | 未设置 | 宿主机日志目录;未设置时日志只在容器内,重建即丢。建议设 data/logs |
SERVER_PRO | false | Server Pro 镜像切换开关 |
OVERLEAF_IMAGE_NAME | 注释 | 自定义主镜像名(tag 仍读 config/version),配合 4.9 的 docker commit 固化方案使用 |
PULL_BEFORE_UPGRADE | 未设置 | 气隙环境设 false 跳过升级前镜像拉取 |
5.9 数据库与缓存参数(overleaf.rc:MONGO/REDIS)
| 参数 | 实测默认 | 说明 |
|---|---|---|
MONGO_ENABLED | true | false 时使用外部 MongoDB(配合 MONGO_URL) |
MONGO_URL | 未设置 | 外部库连接串,如 mongodb://user:pass@db-host/sharelatex。内部容器模式下自动注入 mongodb://mongo/sharelatex,副本集名 overleaf |
MONGO_DATA_PATH | data/mongo | MongoDB 数据目录(实测挂载 /data/db) |
MONGO_IMAGE / MONGO_VERSION | mongo / 8.0 | MongoDB 镜像与版本;VERSION 只写「主.次」,6.x 要求副本集模式(toolkit 自动配置) |
REDIS_ENABLED | true | false 时使用外部 Redis(配合 REDIS_HOST/REDIS_PORT) |
REDIS_HOST / REDIS_PORT | redis / 6379 | 外部 Redis 地址(容器模式自动注入同名互联变量) |
REDIS_DATA_PATH | data/redis | Redis 数据目录(实测挂载 /data) |
REDIS_IMAGE | redis:7.4 | Redis 镜像 |
REDIS_AOF_PERSISTENCE | true | AOF 持久化开关,实测 compose 追加 --appendonly yes,保持开启(编译队列/实时状态丢失影响小,但开启更稳) |
六、生产配置模板(按团队规模分档)
以下模板按 1050 人科研团队档给出(内存 8GB / 磁盘 200GB / 单机;变量值中 200 人)**:建议 16GB 内存 + 独立 MongoDB 实例(<...> 为必填占位)。小团队(≤10 人):8GB 内存可降为 4GB、磁盘 100GB,其余不变;**大团队(50MONGO_ENABLED=false)+ 对象存储后端(5.4 的 S3 组)。
config/overleaf.rc 生产模板:
PROJECT_NAME=overleaf
OVERLEAF_DATA_PATH=data/overleaf
OVERLEAF_LOG_PATH=data/logs # 显式落盘日志,便于采集与审计
SERVER_PRO=false
OVERLEAF_LISTEN_IP=0.0.0.0 # 若前置 nginx/TLS 代理改回 127.0.0.1
OVERLEAF_PORT=80
SIBLING_CONTAINERS_ENABLED=false # CE 唯一合法值
DOCKER_SOCKET_PATH=/var/run/docker.sock
MONGO_ENABLED=true
MONGO_DATA_PATH=data/mongo
MONGO_IMAGE=mongo
MONGO_VERSION=8.0
REDIS_ENABLED=true
REDIS_DATA_PATH=data/redis
REDIS_IMAGE=redis:7.4
REDIS_AOF_PERSISTENCE=true
GIT_BRIDGE_ENABLED=false
NGINX_ENABLED=false # 启用官方 TLS 代理改 true 并配置证书
NGINX_CONFIG_PATH=config/nginx/nginx.conf
NGINX_HTTP_PORT=80
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 生产模板:
OVERLEAF_APP_NAME="Corp Overleaf"
OVERLEAF_SITE_URL=https://overleaf.example.com # 必填,HTTPS 域名推荐
OVERLEAF_INVITE_TOKEN_SECRET=<保留 bin/init 自动生成值>
OVERLEAF_ADMIN_EMAIL=support@example.com
OVERLEAF_NAV_TITLE=Corp Overleaf
# 邮件(建议生产必配,找回密码依赖)
OVERLEAF_EMAIL_FROM_ADDRESS=overleaf@example.com
OVERLEAF_EMAIL_SMTP_HOST=smtp.example.com
OVERLEAF_EMAIL_SMTP_PORT=587
OVERLEAF_EMAIL_SMTP_SECURE=false
OVERLEAF_EMAIL_SMTP_USER=<用户名>
OVERLEAF_EMAIL_SMTP_PASS=<密码>
OVERLEAF_EMAIL_SMTP_TLS_REJECT_UNAUTH=true
# HTTPS 环境两项必开(HTTP 环境勿开 SECURE_COOKIE)
OVERLEAF_BEHIND_PROXY=true
OVERLEAF_SECURE_COOKIE=true
ENABLED_LINKED_FILE_TYPES=project_file,project_output_file
ENABLE_CONVERSIONS=true
EMAIL_CONFIRMATION_DISABLED=true # SMTP 稳定后删除此行,恢复邮箱验证
模板应用后重建容器并跑一遍验证:bin/docker-compose down && bin/up -d → curl http://localhost/status 返回 web is alive (web) → bin/doctor 无新增警告。
七、常见问题(FAQ)
Q1:改了 variables.env / overleaf.rc 不生效
两类文件都必须 bin/docker-compose down && bin/up -d 重建容器。bin/stop/bin/start 不会重新合成配置。
Q2:设置 OVERLEAF_SECURE_COOKIE=true 后无法登录
该参数要求 HTTPS。HTTP 明文环境下 Cookie 带 Secure 标记不会回传,登录循环失败。HTTP 环境删除该行。
Q3:OVERLEAF_SITE_URL 用了 localhost 或 IP:端口 与实际访问地址不一致
Cookie 域、邮件里找回密码链接、OAuth 回调全部基于该值,必须与浏览器实际访问地址完全一致(含协议、域名/IP、端口)。
Q4:CE 配置了 LDAP/SAML 没反应 LDAP/SAML、Git Bridge、Sibling Containers 是 Server Pro 功能,CE 镜像不含对应模块,配置项会被忽略。
Q5:想保留日志但容器重建后丢失
overleaf.rc 设置 OVERLEAF_LOG_PATH=data/logs 后重建。默认未设置时日志仅存在于容器文件系统。
Q6:MONGO_VERSION 能不能写 8.0.34?
官方 overleaf-rc.md 要求该值为「主版本号.次版本号」格式(如 6.0,允许 6.0-with-suffix 这类带后缀形式),本文实测值为 8.0;完整小版本号不在官方支持范围内。
Q7:OVERLEAF_INVITE_TOKEN_SECRET 是什么,可以改吗
模板注释标注「Secret generated at bin/init time」,是 bin/init 自动生成的随机密钥,用于邀请令牌签名。保留自动生成值即可;若需轮换,改成新随机值后重建容器(轮换影响未实测,操作后建议立即验证一次邀请流程)。
Q8:如何确认某个参数最终注入容器没有
bin/docker-compose config 查看合成后的完整 compose 定义(environment 段),或进容器 bin/docker-compose exec sharelatex env | grep <关键词> 对比。
八、参考链接
- 本专栏系列:《Overleaf 介绍与选型指南》 | 《Overleaf 6.3.1 Docker Compose 部署指南》 | 《Overleaf 6.3.1 常用 CLI 命令与工具详解》
- 官方 overleaf.rc 参数文档:https://github.com/overleaf/toolkit/blob/master/doc/overleaf-rc.md
- 官方 configuration 文档:https://github.com/overleaf/toolkit/blob/master/doc/configuration.md
- 官方 TLS 代理文档:https://github.com/overleaf/toolkit/blob/master/doc/tls-proxy.md
- 官方 S3 存储说明:https://github.com/overleaf/overleaf/wiki/S3
- 官方数据与备份说明:https://github.com/overleaf/overleaf/wiki/Data-and-Backups