Docker
Docker Compose is the recommended way to run JellyGlance for everyday self-hosting.
Start
docker compose up -dUse Docker Compose v2 (docker compose, with a space). The legacy Python docker-compose v1 log watcher can crash on modern Docker event streams with KeyError: 'id'.
The stack starts:
jellyglance, the combined API and web appjellyglance-db, PostgreSQL 16
Open the app at http://localhost:3000.
Configuration
Set these environment values before using JellyGlance outside a private test environment:
JWT_SECRET: "replace-me-with-a-long-random-secret"
POSTGRES_PASSWORD: "replace-me"
TZ: Europe/LondonThe included compose file uses the published GHCR image and mounts simple host folders for portable app data:
| Host path | Container path | Purpose |
|---|---|---|
./config | /app/config | Runtime config files and future local app settings |
./backups | /app/backups | Backup exports and restore uploads |
PostgreSQL data stays in the postgres-data volume. Use JellyGlance backups before deleting that volume.
Updating
docker compose pull
docker compose up -dIf you build locally from source, rebuild the JellyGlance image after pulling code:
docker build -t ghcr.io/nerdy-technician/jellyglance:local .
docker run --rm -p 3000:3000 ghcr.io/nerdy-technician/jellyglance:localTo build the same multi-architecture image manifest published by CI, use Docker Buildx:
docker buildx build \
--platform linux/amd64,linux/arm64,linux/arm/v7 \
-t ghcr.io/nerdy-technician/jellyglance:local \
.Resetting Setup Data
For a fresh first-run setup, stop the stack and remove the PostgreSQL data directory used by the repo compose file:
docker compose down
rm -rf ./postgres-data
docker compose up -dIf you started from the README named volume instead, remove jellyglance_postgres-data (or whatever compose named it).
This deletes JellyGlance database state. Keep backups before doing this on a real deployment.
Stuck after first-run or a proxy hop? See the FAQ.
Published Images
The Docker workflow publishes GHCR images from main and release tags for linux/amd64, linux/arm64, and linux/arm/v7 (armhf):
ghcr.io/nerdy-technician/jellyglance