Docker

Production Docker deployment reference for Comicarr.

Docker is the recommended way to run Comicarr. The image is multi-arch (amd64/arm64), built with a multi-stage Dockerfile using Node 22 for the frontend build and Python 3.12 for the runtime.

Docker Compose

docker-compose.yml
services:
  comicarr:
    image: ghcr.io/frankieramirez/comicarr:latest
    container_name: comicarr
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
    volumes:
      - ./config:/config       # Database, config.ini, logs
      - /path/to/comics:/comics   # Comic library
      - /path/to/manga:/manga     # Manga library
      - /path/to/downloads:/downloads  # Download staging
      # For Mylar3 migration (optional, temporary):
      # - /path/to/mylar/config:/mylar3
    ports:
      - 8090:8090
    restart: unless-stopped
    stop_grace_period: 30s
docker compose up -d

Environment Variables

VariableDescriptionDefault
PUIDUser ID for file ownership inside the container1000
PGIDGroup ID for file ownership inside the container1000
TZTimezone (list)America/New_York
UMASKFile permission mask (optional)022

Finding your PUID and PGID

Run id on the host to see your user and group IDs:

id
# uid=1000(user) gid=1000(user) ...

Use those values for PUID and PGID.

Volume Mounts

MountDescriptionRequired
/configDatabase (comicarr.db), config.ini, logs, and encryption keys. Back this up.Yes
/comicsComic library root. Comicarr organizes and renames files here.Yes
/mangaManga library root. Used for MangaDex downloads.No
/downloadsStaging area for downloads before post-processing. Point your download client here.Yes
/mylar3Mylar3 config directory for migration. Remove after migrating.No

Synology NAS

Synology DSM uses non-standard user IDs. Set the environment variables to match the default admin user:

environment:
  - PUID=1026
  - PGID=100

Entrypoint Behavior

The container entrypoint performs the following on startup:

  1. Creates the internal user and group matching PUID/PGID
  2. Configures the timezone from TZ
  3. Verifies read/write permissions on mounted volumes
  4. Starts the Comicarr process

If permissions are incorrect, the entrypoint logs a warning and exits. Check docker logs comicarr if the container fails to start.

Next Steps

On this page