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
services:
comicarr:
image: ghcr.io/frankieramirez/comicarr:latest
container_name: comicarr
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- ./config:/config # Host mount; app data under /config/comicarr
- /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:ro
ports:
- 8090:8090
restart: unless-stopped
stop_grace_period: 30sdocker compose up -dEnvironment Variables
| Variable | Description | Default |
|---|---|---|
PUID | User ID for file ownership inside the container | 1000 |
PGID | Group ID for file ownership inside the container | 1000 |
TZ | Timezone (list) | Etc/UTC |
UMASK | File permission mask | 002 |
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
| Mount | Description | Required |
|---|---|---|
/config | Host volume. App data is written to /config/comicarr/ (comicarr.db, config.ini, logs, .secure/). Back this up. | Yes |
/comics | Comic library root. Comicarr organizes and renames files here. | Yes |
/manga | Manga library root. Used for MangaDex downloads. | No |
/downloads | Staging area for downloads before post-processing. Point your download client here. | Yes |
/mylar3 | Mylar3 config directory for migration. Prefer :ro. 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=100Entrypoint Behavior
The container entrypoint performs the following on startup:
- Creates the internal user and group matching
PUID/PGID - Configures the timezone from
TZ - Ensures
/config/comicarrexists and adjusts ownership on config paths - Warns if media volumes (
/comics,/downloads,/manga) are not writable (does not exit solely for that) - Drops privileges and starts Comicarr with
--datadir /config/comicarr
Check logs with:
docker logs comicarrOn first run, look for [SETUP] Setup token: lines to complete admin setup.