Ubuntu 24.04 에 Overleaf 오픈 소스 LaTeX 협업 플랫폼 배포

작성자

카테고리:

← 피드로
DEV Community · Sanskriti Harmukh · 2026-06-24 개발(SW)

Overleaf is an open-source, collaborative LaTeX editor that bundles MongoDB, Redis, and the ShareLaTeX application into a single self-hosted stack. This guide deploys Overleaf Community Edition using the official Toolkit plus a Traefik override that adds automatic HTTPS via Let’s Encrypt. By the end, you’ll have Overleaf serving collaborative LaTeX editing securely at your domain.

Set Up the Project Directory

1. Clone the Overleaf Toolkit:

$ git clone https://github.com/overleaf/toolkit.git ~/overleaf-toolkit
$ cd ~/overleaf-toolkit

Enter fullscreen mode Exit fullscreen mode

2. Initialize the configuration:

$ bin/init

Enter fullscreen mode Exit fullscreen mode

This creates config/overleaf.rc, config/variables.env, and config/version.

3. Create a directory for Traefik file-provider routes:

$ mkdir traefik-routes

Enter fullscreen mode Exit fullscreen mode

Configure Overleaf for a Reverse Proxy

1. Edit config/variables.env:

$ nano config/variables.env

Enter fullscreen mode Exit fullscreen mode

OVERLEAF_APP_NAME="My Overleaf Instance"
OVERLEAF_SITE_URL=https://overleaf.example.com
OVERLEAF_NAV_TITLE="Overleaf CE"
OVERLEAF_BEHIND_PROXY=true
OVERLEAF_SECURE_COOKIE=true

Enter fullscreen mode Exit fullscreen mode

The last two flags are required when Overleaf is fronted by an HTTPS reverse proxy.

2. Edit config/overleaf.rc:

$ nano config/overleaf.rc

Enter fullscreen mode Exit fullscreen mode

SIBLING_CONTAINERS_ENABLED=false

Enter fullscreen mode Exit fullscreen mode

3. Create the project-level .env file used by the Traefik Compose file:

$ nano .env

Enter fullscreen mode Exit fullscreen mode

DOMAIN=overleaf.example.com
[email protected]
SERVER_IP=192.0.2.1

Enter fullscreen mode Exit fullscreen mode

SERVER_IP should be the server’s public IP (Traefik binds 80/443 to it).

Add the Traefik Route

1. Create the dynamic route:

$ nano traefik-routes/overleaf.yml

Enter fullscreen mode Exit fullscreen mode

http:
  routers:
    overleaf:
      rule: "Host(`overleaf.example.com`)"
      service: overleaf
      entryPoints:
        - websecure
      tls:
        certResolver: le
  services:
    overleaf:
      loadBalancer:
        servers:
          - url: "http://sharelatex:80"

Enter fullscreen mode Exit fullscreen mode

2. Create the Traefik Compose file:

$ nano docker-compose.traefik.yml

Enter fullscreen mode Exit fullscreen mode

services:
  traefik:
    image: traefik:v3.6
    container_name: traefik
    restart: unless-stopped
    command:
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/etc/traefik/routes"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--entrypoints.web.http.redirections.entrypoint.to=websecure"
      - "--entrypoints.web.http.redirections.entrypoint.scheme=https"
      - "--certificatesresolvers.le.acme.httpchallenge=true"
      - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.le.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
    ports:
      - "${SERVER_IP}:80:80"
      - "${SERVER_IP}:443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./letsencrypt:/letsencrypt
      - ./traefik-routes:/etc/traefik/routes
    networks:
      - overleaf_default

networks:
  overleaf_default:
    external: true

Enter fullscreen mode Exit fullscreen mode

Start the Stacks

1. Add your user to the Docker group:

$ sudo usermod -aG docker $USER
$ newgrp docker

Enter fullscreen mode Exit fullscreen mode

2. Run the Toolkit doctor:

$ bin/doctor

Enter fullscreen mode Exit fullscreen mode

3. Start Overleaf (sharelatex + mongo + redis):

$ bin/up -d
$ bin/docker-compose ps

Enter fullscreen mode Exit fullscreen mode

4. Start Traefik in the same Docker network:

$ docker compose -f docker-compose.traefik.yml up -d
$ docker compose -f docker-compose.traefik.yml ps
$ docker compose -f docker-compose.traefik.yml logs traefik

Enter fullscreen mode Exit fullscreen mode

Create the Admin and First Project

1. Open the launchpad and register the admin user:

https://overleaf.example.com/launchpad

Enter fullscreen mode Exit fullscreen mode

2. Sign in, then open Admin → Manage Users to create more accounts.

3. Create your first LaTeX project:

  • Visit https://overleaf.example.com/project.
  • Click Create a new project → Example project.
  • Enter a name and click Create.
  • Edit the default template and click Recompile to render the PDF preview.

Next Steps

Overleaf CE is running and served securely over HTTPS. From here you can:

  • Configure SMTP under config/variables.env for invitations and notifications
  • Mount external storage volumes for data/sharelatex_data to scale capacity
  • Pin the Overleaf release in config/version and use bin/upgrade for controlled updates

For the full guide with additional tips, visit the original article on Vultr Docs.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다