Overleaf¶
Overleaf is a collaborative, cloud-based LaTeX editor used for writing, editing, and publishing scientific documents. This instance runs the Community Edition via the Overleaf Toolkit on a dedicated Proxmox LXC container.
The stack consists of three Docker containers managed by the toolkit:
- sharelatex – the main Overleaf web application (
sharelatex/sharelatex:{{ version }}) - mongo – MongoDB 8.0 for document storage
- redis – Redis 7.4 for session and queue management
Installation¶
Default Port: 8080
Toolkit path: /opt/overleaf/
Config path: /opt/overleaf/config/
Data path: /opt/overleaf/data/
Proxmox LXC¶
Create a Debian LXC with Docker installed, then install the toolkit:
Configure¶
Edit /opt/overleaf/config/overleaf.rc:
config/overleaf.rc
PROJECT_NAME=overleaf
OVERLEAF_DATA_PATH=data/overleaf
SERVER_PRO=false
OVERLEAF_LISTEN_IP=0.0.0.0
OVERLEAF_PORT=8080
SIBLING_CONTAINERS_ENABLED=false
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
Edit /opt/overleaf/config/variables.env:
config/variables.env
Start¶
Create Admin User¶
After first start, navigate to http://<ip>:8080/launchpad to create the first admin user.
Usage¶
Start / Stop¶
Upgrade¶
Doctor¶
Run the health check tool to verify the setup:
Logs¶
Backup Config¶
Task List¶
task: Available tasks for this project:
* backup-config: Backup the Overleaf config directory.
* default: List all available tasks.
* doctor: Run the Overleaf Toolkit doctor to check the setup.
* export: Export the task list to `task-list.txt`.
* logs: View the Overleaf application logs.
* restart: Stop then start the Overleaf Docker services.
* shell: Open an interactive shell inside the Overleaf container.
* start: Start the Overleaf Docker services.
* status: Check the status of the Overleaf Docker services.
* stop: Stop the Overleaf Docker services.
* up: Run Docker Compose in the foreground.
* up-d: Run Docker Compose in the background.
* update: Update the application or its running containers.
* upgrade: Upgrade Overleaf to the latest version.
Traefik¶
homelab/pve/traefik/conf.d/overleaf.yaml
---
http:
#region routers
routers:
overleaf:
entryPoints:
- "websecure"
rule: "Host(`overleaf.l.nicholaswilde.io`)"
middlewares:
- default-headers@file
- https-redirectscheme@file
tls: {}
service: overleaf
#endregion
#region services
services:
overleaf:
loadBalancer:
servers:
- url: "http://192.168.1.122:8080"
passHostHeader: true
#endregion
middlewares:
https-redirectscheme:
redirectScheme:
scheme: https
permanent: true
default-headers:
headers:
frameDeny: true
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 15552000
customFrameOptionsValue: SAMEORIGIN
customRequestHeaders:
X-Forwarded-Proto: https
default-whitelist:
ipAllowList:
sourceRange:
- "10.0.0.0/8"
- "192.168.0.0/16"
- "172.16.0.0/12"
secured:
chain:
middlewares:
- default-whitelist
- default-headers
References¶
- https://github.com/overleaf/toolkit
- https://github.com/overleaf/overleaf
- https://www.overleaf.com/learn/latex/Creating_a_document_in_LaTeX