# Tally Counter Run the app with Docker Compose (recommended). The container startup/entrypoint will create the runtime folders and apply migrations; pass numeric PUID/PGID via environment to run as a non-root user. ```yaml services: tally-counter: image: gitea.kanawave.net/sebastas/tally-counter:latest #this image container_name: tally-counter restart: unless-stopped networks: - proxy # connect any proxy networks (for traefik) environment: - PUID=1000 # host uid forwarded to container - PGID=1000 # host gid forwarded to container ports: - "3000:3000" # Set whatever port you want on the left side (host) volumes: - ./tally-counter:/data # persistent DB + uploads (bind mount) ``` Add any `labels` for traefik ### Notes & tips The entrypoint will: - ensure `$DATA_DIR` exists, - create `sqlite.db` if missing, - run `prisma migrate deploy` (if CLI available and migrations exist), - then drop privileges to the provided `PUID:PGID` and exec the app.