Docker Compose
The easiest way to run WackyTracky is with Docker Compose. Container images are published to GitHub Container Registry.
Prerequisites
- Docker and Docker Compose installed
- A directory for your compose file and (optionally) config
Quick start
- Create a directory for your deployment and add a
docker-compose.yml:
services:
wackytracky:
image: ghcr.io/jamesread/wacky-tracky:latest
ports:
- "8080:8080"
volumes:
- ./config.yaml:/app/config.yaml
- todotxt-data:/app/data
restart: unless-stopped
volumes:
todotxt-data:
- Add a
config.yamlin the same directory (next todocker-compose.yml). For the default todo.txt backend, you can use:
database:
driver: todotxt
database: /app/data
- Start the stack:
docker compose up -d
- Open the web UI at http://localhost:8080 (or your host’s IP if running on a server).
Configuration
- Config file — You can mount a single file at
/app/config.yaml(as above) or a directory at/configthat containsconfig.yaml. The app looks forconfig.yamlin/configwhen running in the container. - Data — For the todo.txt backend, persist the data directory (e.g.
todotxt-datavolume or a bind mount) and setdatabase.databaseto that path (e.g./app/data). The image already uses/app/databy default if you don’t override it. - Port — The app listens on port 8080 inside the container. Change the host port in the
portsmapping if you want to use something other than 8080.
Image and updates
- Image:
ghcr.io/jamesread/wacky-tracky:latest(or pin a specific version tag). - To update: pull the new image and recreate the container, e.g.
docker compose pull && docker compose up -d. Your config and data volumes are unchanged.