# DVarr — build and run in one container. # Volumes: # /config -> app data: SQLite DB (WAL) + settings. Small — put it on a fast disk (SSD/NVMe). # /media -> finished recordings, filed in Plex-scannable show/season folders. # /segments -> in-flight capture scratch (8s TS segments, can be several GB per recording), # auto-cleaned after each recording finalizes. Same filesystem as /media makes # the finalize step a cheap move instead of a copy. services: dvarr: build: context: . # repo root (Dockerfile + src/) image: dvarr:latest container_name: DVarr restart: unless-stopped # user: "99:100" # optional — run as a specific uid:gid so recording files match # # your media ownership (e.g. nobody:users on Unraid) ports: - "1867:1867" environment: - TZ=Etc/UTC # your local timezone (display + log times; storage is UTC epoch regardless) # Login for the web UI/API. Put the REAL values in an untracked `.env` file # next to this compose file — never commit them. Defaults to user/password # (the container log warns while defaults are active). - DVARR_AUTH_USER=${DVARR_AUTH_USER:-user} - DVARR_AUTH_PASS=${DVARR_AUTH_PASS:-password} # - HOME=/config # if running as non-root, keep .NET from writing to / volumes: - /path/to/appdata:/config - /path/to/media:/media - /path/to/segments:/segments # ── Optional: NVIDIA GPU for the live-preview transcode (NVDEC + NVENC) ── # Recording capture itself is `-c copy` and never needs a GPU; this only # accelerates the in-browser live preview of HEVC/4K channels. # runtime: nvidia # environment (add to the list above): # - NVIDIA_VISIBLE_DEVICES=all # or a PCI id, e.g. 0000:01:00.0 # - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility # 'video' = NVENC/NVDEC, 'compute' = CUDA # The /api/health HEALTHCHECK is inherited from the Dockerfile.