Run the server with Docker
The server ships as a Docker image, distributed as a tarball through the licence-gated download page rather than a public registry.
1. Get the image
Paste your licence key at docucommit.se/download and download
server-image.tar.gz, then load it:
docker load < server-image.tar.gz
The key must be a server-surface key — an editor key does not activate the server. See Trial, licences, and seats.
This makes the image docucommit-server:v1.0.1 available locally. The compose file below sets
pull_policy: never, so Docker uses the loaded image and never tries to reach a registry.
2. compose.yml
services:
docucommit-server:
image: docucommit-server:v1.0.1
pull_policy: never
container_name: docucommit-server
restart: unless-stopped
ports:
- "8080:8080"
env_file:
- .env
volumes:
- docucommit-repos:/var/repos
- ~/.ssh:/root/.ssh:ro
volumes:
docucommit-repos:
Two volumes matter:
docucommit-repos:/var/repos— the working directory. The cloned repository, the licence token, users, and comments all live here. It must persist across restarts.~/.ssh:/root/.ssh:ro— mounted read-only, so the container can use your existing SSH key to clone overssh://. Omit it if you clone over HTTPS.
3. .env
Keep configuration in .env rather than inlining it in the compose file:
# Required
DOCUCOMMIT_LICENSE_KEY=<your-licence-key>
DOCUCOMMIT_SYNC_REPOS_0_ID=docs
DOCUCOMMIT_SYNC_REPOS_0_URL=ssh://git@github.com/your-org/docs.git
DOCUCOMMIT_SYNC_REPOS_0_BRANCH=main
DOCUCOMMIT_WORKDIR=/var/repos
DOCUCOMMIT_WORKDIR is not optional — the image sets no default, and without it the server has
nowhere to keep the clone.
To publish more than one repository, add another numbered block: DOCUCOMMIT_SYNC_REPOS_1_ID,
_URL, _BRANCH, and so on. For HTTPS remotes, supply _USERNAME and _TOKEN instead of
mounting a key.
Your plan sets how many repositories the server may publish (one on Pro and Team, five on Enterprise) — extra configured repositories are not served.
4. Bring it up
docker compose up -d
The server clones the repository on first start and serves it on port 8080. Put it behind whatever reverse proxy and TLS you already use.
5. Check it
docker compose logs -f docucommit-server
A successful start clones the repository and reports the licence as valid. If the clone fails
over SSH, the usual cause is that the mounted key has no access to the remote — test the same
URL with git clone from the host.