version: "3" services: sonarr: container_name: sonarr image: lscr.io/linuxserver/sonarr:latest ports: - 8989:8989 environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} volumes: - "./config/sonarr:/config" - "CHANGE_TO_COMPOSE_DATA_PATH:/data" restart: unless-stopped radarr: container_name: radarr image: lscr.io/linuxserver/radarr:latest ports: - 7878:7878 environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} volumes: - "./config/radarr:/config" - "CHANGE_TO_COMPOSE_DATA_PATH:/data" restart: unless-stopped lidarr: container_name: lidarr image: lscr.io/linuxserver/lidarr:latest ports: - 8686:8686 environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} - DOCKER_MODS=linuxserver/mods:universal-docker volumes: - "./config/lidarr:/config" - "CHANGE_TO_COMPOSE_DATA_PATH:/data" - "/var/run/docker.sock:/var/run/docker.sock:ro" restart: unless-stopped readarr: container_name: readarr image: lscr.io/linuxserver/readarr:develop ports: - 8787:8787 environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} volumes: - "./config/readarr:/config" - "CHANGE_TO_COMPOSE_DATA_PATH:/data" restart: unless-stopped prowlarr: container_name: prowlarr image: lscr.io/linuxserver/prowlarr:develop environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} volumes: - "./config/prowlarr:/config" ports: - 9696:9696 restart: unless-stopped sabnzbd: container_name: sabnzbd image: lscr.io/linuxserver/sabnzbd:latest environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - "./config/sabnzbd:/config" - "CHANGE_TO_COMPOSE_DATA_PATH/usenet:/data/usenet:rw" ports: - 8080:8080 restart: unless-stopped pia-qbittorrent: image: j4ym0/pia-qbittorrent container_name: pia-qbittorrent cap_add: - NET_ADMIN environment: - UID=${PUID} - GID=${PGID} - TZ=${TZ} - REGION=Netherlands - USER=${PIA_USER} - PASSWORD=${PIA_PASS} volumes: - "./config/piaqbit:/config" - "CHANGE_TO_COMPOSE_DATA_PATH/torrent:/downloads:rw" ports: - "8888:8888" restart: unless-stopped jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID={$PUID} - PGID={$PGID} - TZ=${TZ} #- JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - ".config/jellyfin:/config" - "CHANGE_TO_COMPOSE_DATA_PATH/media:/data" ports: - 8096:8096 - 7359:7359/udp #optional - network discovery - 1900:1900/udp #optional - dlna discovery restart: unless-stopped audiobookshelf: container_name: audiobookshelf image: ghcr.io/advplyr/audiobookshelf:latest environment: - PUID=${PUID} - PGID=${PGID} - UMASK_SET=022 - TZ=${TZ} ports: - 13378:80 volumes: - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/books:/audiobooks" - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/podcasts:/podcasts" - ".config/audiobookshelf:/config" - ".metadata/audiobookshelf:/metadata" restart: unless-stopped jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr environment: - TZ=${TZ} ports: - 5055:5055 volumes: - "./config/jellyseerr:/app/config" restart: unless-stopped beets: image: lscr.io/linuxserver/beets:latest container_name: beets environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} volumes: - "./config/beets:/config" - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/music:/music" - "CHANGE_TO_COMPOSE_DATA_PATH/media/audio/music-unsorted:/downloads" - "CHANGE_TO_COMPOSE_DATA_PATH:/data" ports: - 8337:8337 restart: unless-stopped homarr: image: ghcr.io/ajnart/homarr:latest container_name: homarr volumes: - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration - ./config/homarr/configs:/app/data/configs - ./config/homarr/icons:/app/public/icons - ./config/homarr/data:/data ports: - '80:7575' restart: unless-stopped