首页
/ ShareLaTeX/Overleaf 社区版 Docker 部署指南

ShareLaTeX/Overleaf 社区版 Docker 部署指南

2025-07-06 00:59:48作者:蔡怀权

概述

ShareLaTeX/Overleaf 是一个流行的在线 LaTeX 协作编辑平台,本指南将详细介绍如何使用 Docker Compose 部署其社区版本。通过容器化部署,可以快速搭建一个功能完整的 LaTeX 协作环境,适合团队或教育机构使用。

核心服务架构

该 Docker Compose 配置定义了三个主要服务:

  1. ShareLaTeX/Overleaf 主服务:提供 Web 界面和编译功能
  2. MongoDB 数据库:版本 5.0,用于持久化存储用户数据和项目信息
  3. Redis 缓存:版本 6.2,用于提升系统性能

详细配置解析

主服务配置

sharelatex:
  image: sharelatex/sharelatex
  ports:
    - 80:80
  volumes:
    - ~/sharelatex_data:/var/lib/overleaf
  • 使用官方社区版镜像 sharelatex/sharelatex
  • 映射主机 80 端口到容器 80 端口
  • 数据卷挂载确保项目数据持久化

数据库依赖

depends_on:
  mongo:
    condition: service_healthy
  redis:
    condition: service_started
  • 确保 MongoDB 健康状态后才启动主服务
  • Redis 服务启动后即可启动主服务

环境变量配置

核心环境变量包括:

OVERLEAF_MONGO_URL: mongodb://mongo/sharelatex
OVERLEAF_REDIS_HOST: redis
REDIS_HOST: redis
  • 配置 MongoDB 和 Redis 的连接信息
  • 使用 Docker 内部服务名进行通信

功能配置

ENABLE_CONVERSIONS: 'true'
EMAIL_CONFIRMATION_DISABLED: 'true'
  • 启用文档转换功能(如 PDF 生成)
  • 禁用邮件确认,简化注册流程

数据持久化方案

所有关键数据都通过卷挂载实现持久化:

volumes:
  - ~/sharelatex_data:/var/lib/overleaf  # Overleaf 数据
  - ~/mongo_data:/data/db                # MongoDB 数据
  - ~/redis_data:/data                   # Redis 数据

建议定期备份这些目录以确保数据安全。

高级配置选项

配置文件中包含大量注释掉的高级选项,可根据需要启用:

  1. 邮件服务配置:支持 SMTP 或 AWS SES
  2. LDAP 集成:支持企业级用户认证
  3. HTTPS 支持:通过 nginx-proxy 实现
  4. 沙箱编译环境:增强安全性(专业版功能)

部署建议

  1. 硬件要求:建议至少 4GB 内存,2核 CPU
  2. 网络配置
    • 确保 80 端口未被占用
    • 考虑配置 HTTPS 增强安全性
  3. 监控:建议添加容器健康检查
  4. 备份策略:定期备份挂载卷数据

常见问题解决

  1. LuaLaTeX 编译问题:已通过设置 TEXMFVAR 环境变量解决
  2. 性能优化:可调整 Redis 配置提升缓存效率
  3. 存储空间:监控挂载卷使用情况,避免磁盘写满

总结

通过这份 Docker Compose 配置,可以快速部署一个功能完善的 ShareLaTeX/Overleaf 社区版实例。配置文件设计合理,既提供了开箱即用的基本功能,又保留了充足的可扩展性,适合从个人使用到小型团队的多种场景。

对于生产环境部署,建议根据实际需求启用适当的安全配置,如 HTTPS、用户认证等高级功能,并建立完善的监控和备份机制。