Container image for self-hosting Parabol, built from the official upstream release source. Not an official Parabol project.
This is a modified version of Parabol: the changes are the patches in patches/, their dates are in the git history.
docker pull ghcr.io/42bitgmbh/parabol:latestTags follow the upstream release (e.g. v14.0.1) plus latest, for linux/amd64 and linux/arm64.
docker-compose.yml is a working example with PostgreSQL and Valkey: docker compose up -d, then open http://localhost:3000. Replace the change-me values before using it for real.
Parabol needs PostgreSQL with pgvector, Redis/Valkey and its usual environment, see upstream's .env.example. The container refuses to start without SERVER_SECRET, POSTGRES_HOST and REDIS_URL, runs database migrations on start and listens on port 3000 as the node user.
Set STATIC_ASSET_PATH=/static/ to load browser assets from whatever origin the browser used, while HOST stays the canonical hostname for links and emails.
upstream.jsonpins the upstream tag, commit and archive SHA-256.scripts/prepare-source.pydownloads and verifies that archive, appliespatches/and addsoverlay/(Dockerfile, build script, entrypoint).patches/0001lets the build run without git metadata,patches/0002addsSTATIC_ASSET_PATH.
Build locally:
python3 scripts/prepare-source.py --output .context
docker build -f .context/docker/selfhost/Dockerfile .contextscripts/test.sh runs the quick checks (Python 3.11+, Node 24).
A daily workflow checks for new stable Parabol releases. When one appears it opens a pull request bumping upstream.json and starts a test build on it. Read the release notes, approve and merge: the merge builds and publishes the new image. If the build fails, the patches need updating on that branch.
For this to work, enable Settings → Actions → General → Allow GitHub Actions to create and approve pull requests.
Parabol is licensed under the GNU AGPL-3.0, and so is the published image as a whole. This repository is its Corresponding Source. The build scripts here are MIT licensed (see LICENSE).
If you run this image as a service for others, the AGPL (section 13) requires offering those users the source of this modified version, for example by linking to this repository.