-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.example.yml
More file actions
70 lines (69 loc) · 3.5 KB
/
Copy pathdocker-compose.example.yml
File metadata and controls
70 lines (69 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
services:
autorip:
image: ghcr.io/freemkv/autorip:latest
container_name: autorip
restart: unless-stopped
privileged: true # required for optical SCSI access; also enables in-container NFS mount (see below)
# Give a rip time to cancel + drain on SIGTERM (redeploy/reboot/Watchtower)
# so it shuts down cleanly instead of being SIGKILLed mid-read. The default
# 10 s is too short for a drive mid-recovery (up to ~60 s). autorip also
# clears its in-progress markers on shutdown, so a stop is never miscounted
# as a crash regardless — but a clean drain still avoids a partial ISO write.
stop_grace_period: 75s
environment:
# v0.25.7 cleanup: only bootstrap-only knobs live in env now.
# Everything else (output dirs, TMDB key, AUTO_EJECT, MAX_RETRIES,
# KEEP_ISO, MIN_LENGTH, ON_INSERT, abort_on_lost_secs, decrypt_threads,
# log_retention_days, …) is set via the Settings page in the web UI
# and persisted to /config/settings.json. Old env vars are silently
# ignored — operators upgrading from <0.25.7 should move their
# values into the UI on first deploy.
#
- AUTORIP_DIR=/config # where settings.json + logs live
- PORT=8080 # web bind port (can't change at runtime)
# Tracing filter (env-filter syntax). Default `autorip=info,libfreemkv=warn`.
# Crank to debug for deep-dives: `AUTORIP_LOG_LEVEL=autorip=debug`. The
# JSON stream lands in /config/logs/autorip.jsonl, human-readable in
# /config/logs/autorip.log, both daily-rolled. Env-only because the
# tracing filter is built at startup, before the web server is up.
- AUTORIP_LOG_LEVEL=autorip=info,libfreemkv=warn
#
# OPTIONAL: in-container NFS mount (v0.25.4+). Use this instead of
# the host bind-mount for /output if your NFS share goes stale on
# container restart (Unraid disk spindown, idle TCP drop, etc.).
# Each container start gets a fresh NFS session so stale handles
# self-heal automatically — no host-side `umount -fl` dance.
#
# If you set these, REMOVE the corresponding bind-mount line in
# `volumes:` below. The bootstrap (`autorip --bootstrap`) creates
# the mountpoint and mounts it before the daemon starts.
#
# - NFS_HOST=nas.example.com
# - NFS_EXPORT=/mnt/user/media
# - NFS_MOUNTPOINT=/output
# - NFS_OPTS=vers=4.1,nconnect=4,nolock,actimeo=3,hard,_netdev
volumes:
- /dev:/dev # live host /dev — handles USB re-enumeration (sg4 ↔ sg5 between reconnects)
- ./config:/config
- /mnt/media:/output # remove this line if using the in-container NFS_HOST mount above
- /tmp/autorip:/staging
- /sys:/sys:ro
ports:
- 8080:8080
healthcheck:
# Mirrors the Dockerfile HEALTHCHECK; redeclared here so a user who
# builds locally without the image-baked one still gets recovery.
test: ["CMD", "curl", "--fail", "--silent", "--max-time", "4", "http://127.0.0.1:8080/api/state"]
interval: 30s
timeout: 5s
start_period: 20s
retries: 3
# Optional: if running autorip behind an existing reverse proxy (Caddy /
# Traefik / nginx) on a shared Docker network, override the default network
# so the container joins the existing one instead of getting its own
# stack-local bridge. One network, no duplication.
#
# networks:
# default:
# name: your-existing-proxy-net
# external: true