Skip to content
These docs follow the beta image. Until the next stable release after v0.2.181, latest lacks some of the features described here; use uping/boardgametracker:beta to get them.

Docker

The compose file below runs the application and a PostgreSQL (pgvector) database. Images are published for linux/amd64 and linux/arm64 (a 64-bit Raspberry Pi works; 32-bit boards do not).

Fill in JWT_SECRET and DATA_PROTECTION_KEY, each with its own output of openssl rand -base64 48, and replace both CHANGEME database passwords with the same password of your own.

docker-compose.yml
services:
boardgametracker:
image: uping/boardgametracker:latest
restart: unless-stopped
depends_on:
db:
condition: service_healthy
volumes:
- ./images:/app/images
- ./logs:/app/logs
- ./manuals:/app/manuals
ports:
- "5444:5444"
environment:
- DB_HOST=db
- DB_USER=dbuser
- DB_PASSWORD=CHANGEME
- DB_NAME=boardgametracker
- DB_PORT=5432
- JWT_SECRET=
- DATA_PROTECTION_KEY=
- TZ=UTC
db:
image: pgvector/pgvector:pg16
restart: unless-stopped
volumes:
- ./postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=boardgametracker
- POSTGRES_USER=dbuser
- POSTGRES_PASSWORD=CHANGEME
healthcheck:
test: ["CMD-SHELL", "pg_isready -U dbuser -d boardgametracker"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s

The docker-compose.yml in the repository, used by the quick start, runs the same stack plus the optional rules assistant, and reads an optional .env file next to it: every variable from the environment variables page can live there instead of in the compose file. That env_file entry needs Docker Compose 2.24 or newer; older versions, including the Compose bundled with some NAS container managers, stop with env_file.0 must be a string. Check with docker compose version, and on an older version use the file above or delete the three env_file lines.

  • The container listens on port 5444. To publish it on another host port, change the left side of 5444:5444, for example 8080:5444.
  • The container answers GET /api/health for health checks; the image already has a Docker health check on it.
  • The mounted folders are owned by user and group 1654 inside the container; see PUID / PGID to match your host user.

See Upgrading before moving to a new release.