docker-compose.yml
version: "3.3"
volumes:
traefik:
overleaf-web:
overleaf-mongo:
overleaf-redis:
services:
traefik:
image: "traefik:v2.10.4"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
sharelatex:
restart: unless-stopped
image: sharelatex/sharelatex:3.5.5
container_name: sharelatex
depends_on:
mongo:
condition: service_healthy
redis:
condition: service_started
stop_grace_period: 60s
volumes:
- overleaf-web:/var/lib/sharelatex
environment:
SHARELATEX_APP_NAME: Overleaf Community Edition
SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
SHARELATEX_REDIS_HOST: redis
REDIS_HOST: redis
ENABLED_LINKED_FILE_TYPES: 'project_file,project_output_file'
ENABLE_CONVERSIONS: 'true'
EMAIL_CONFIRMATION_DISABLED: 'true'
SHARELATEX_SITE_URL: https://<subdomain>
labels:
- "traefik.enable=true"
- "traefik.http.routers.overleaf.rule=Host(`<subdomain>`)"
- "traefik.http.routers.overleaf.entrypoints=websecure"
- "traefik.http.routers.overleaf.tls.certresolver=myresolver"
mongo:
restart: unless-stopped
image: mongo:4.4.20
container_name: mongo
volumes:
- overleaf-mongo:/data/db
healthcheck:
test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
interval: 10s
timeout: 10s
retries: 5
redis:
restart: unless-stopped
image: redis:5.0.14
container_name: redis
volumes:
- overleaf-redis:/data
volumes:
traefik:
overleaf-web:
overleaf-mongo:
overleaf-redis:
services:
traefik:
image: "traefik:v2.10.4"
container_name: "traefik"
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
# - "--certificatesresolvers.myresolver.acme.email=<email>"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# Uncomment for test mode. This allows detailed logging and creation of a fake certificate.
# - "--log.level=DEBUG"
# - "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
ports:
- "443:443"
volumes:
- "traefik:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
sharelatex:
restart: unless-stopped
image: sharelatex/sharelatex:3.5.5
container_name: sharelatex
depends_on:
mongo:
condition: service_healthy
redis:
condition: service_started
stop_grace_period: 60s
volumes:
- overleaf-web:/var/lib/sharelatex
environment:
SHARELATEX_APP_NAME: Overleaf Community Edition
SHARELATEX_MONGO_URL: mongodb://mongo/sharelatex
SHARELATEX_REDIS_HOST: redis
REDIS_HOST: redis
ENABLED_LINKED_FILE_TYPES: 'project_file,project_output_file'
ENABLE_CONVERSIONS: 'true'
EMAIL_CONFIRMATION_DISABLED: 'true'
SHARELATEX_SITE_URL: https://<subdomain>
labels:
- "traefik.enable=true"
- "traefik.http.routers.overleaf.rule=Host(`<subdomain>`)"
- "traefik.http.routers.overleaf.entrypoints=websecure"
- "traefik.http.routers.overleaf.tls.certresolver=myresolver"
mongo:
restart: unless-stopped
image: mongo:4.4.20
container_name: mongo
volumes:
- overleaf-mongo:/data/db
healthcheck:
test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet
interval: 10s
timeout: 10s
retries: 5
redis:
restart: unless-stopped
image: redis:5.0.14
container_name: redis
volumes:
- overleaf-redis:/data
Instructions
- Execute docker-compose up -d
- Now create an account via docker-compose exec sharelatex /bin/bash -c "grunt user:create-admin --email=<email>". Go to the link from the output of the command to complete the creation of the admin user by setting the password.