This repository provides automated CI/CD pipelines to build and publish Docker images for Overleaf Community Edition.
Note: This repository does not contain any upstream Overleaf source code. All builds dynamically checkout the upstream overleaf/overleaf repository at build time.
Images are published to GitHub Container Registry (GHCR):
ghcr.io/btreemap/overleaf-base- Base image with dependencies and TeX Liveghcr.io/btreemap/overleaf- Full Overleaf runtime with TeX Live scheme-full
The stable images track upstream GitHub releases:
| Tag | Description |
|---|---|
:latest |
Latest stable release (points to stable, not edge) |
:X.Y.Z |
Specific version (e.g., :5.1.2) |
:X.Y |
Minor version (e.g., :5.1) |
:X |
Major version (e.g., :5) |
:stable-vX.Y.Z |
Explicit stable tag (e.g., :stable-v5.1.2) |
:stable-sha-<SHA> |
Immutable tag by upstream commit SHA |
:YYYY-MM-DD |
Date of build |
:YYYY-MM-DD.HH-MM-SS |
Datetime of build |
The edge images track the upstream main branch:
| Tag | Description |
|---|---|
:edge |
Latest edge build from main |
:edge-sha-<SHA> |
Immutable tag by upstream commit SHA |
:edge-YYYY-MM-DD |
Date of edge build |
:edge-YYYY-MM-DD.HH-MM-SS |
Datetime of edge build |
| Tag | Description |
|---|---|
:edge |
Latest base image |
:edge-sha-<SHA> |
Immutable tag by upstream commit SHA |
:edge-YYYY-MM-DD |
Date of base build |
All images are built for:
linux/amd64linux/arm64
The ghcr.io/btreemap/overleaf runtime images include TeX Live scheme-full pre-installed. This means:
- Complete LaTeX package availability - No need to install packages at runtime
- Air-gapped operation - Works fully offline without network access to CTAN mirrors
- Production ready - All common LaTeX packages are included out of the box
The base image (overleaf-base) includes TeX Live scheme-basic. The full TeX Live installation is added in the runtime image build.
| Image | Schedule | Description |
|---|---|---|
overleaf-base |
Weekly (Sunday) | Refreshes base dependencies and TeX Live |
overleaf (edge) |
Daily | Builds from upstream main branch |
overleaf (stable) |
Daily + On Release | Builds from upstream releases |
Builds are skipped if the image for that upstream SHA already exists (to avoid redundant work).
# Pull the latest stable image
docker pull ghcr.io/btreemap/overleaf:latest
# Or use a specific version
docker pull ghcr.io/btreemap/overleaf:5.1.2
# Run Overleaf
docker run -d \
-p 80:80 \
-v overleaf-data:/var/lib/overleaf \
ghcr.io/btreemap/overleaf:latest# Pull the latest edge image (from main branch)
docker pull ghcr.io/btreemap/overleaf:edgeversion: '3'
services:
overleaf:
image: ghcr.io/btreemap/overleaf:latest
ports:
- "80:80"
volumes:
- overleaf-data:/var/lib/overleaf
environment:
OVERLEAF_APP_NAME: "My Overleaf"
volumes:
overleaf-data:- Detect Upstream State: Workflows query upstream for the latest
mainSHA and release tag - Check GHCR: Skip builds if images for those SHAs already exist
- Checkout Upstream: Dynamically checkout
overleaf/overleafat the target ref - Build Images: Multi-arch builds using Docker Buildx with GHA cache
- Publish: Push to GHCR with appropriate tags
This project builds images from the official Overleaf Community Edition repository.
For information about Overleaf itself:
The CI/CD configuration in this repository is provided under the MIT License.
The Docker images built by this repository contain software from overleaf/overleaf which is licensed under the GNU Affero General Public License v3.0.
When using the built images, you must comply with the AGPL-3.0 license terms of the upstream Overleaf project.