services: whoami: container_name: whoami image: traefik/whoami ports: - 80:80 sonarr: container_name: sonarr image: lscr.io/linuxserver/sonarr:latest ports: - 8989:8989 env_file: - arr.env volumes: - "./config/sonarr:/config" - "{{ arrstack_data_dir }}/media/tv:/data/media/tv" - "{{ arrstack_data_dir }}/files/usenet:/data/usenet" - "{{ arrstack_data_dir }}/files/torrent:/data/torrent" restart: unless-stopped radarr: container_name: radarr image: lscr.io/linuxserver/radarr:latest ports: - 7878:7878 env_file: - arr.env volumes: - "./config/radarr:/config" - "/mnt/ext/data/media/movies:/data/media/movies" # FIXME: Find solution - "{{ arrstack_data_dir }}/files/usenet:/data/usenet" - "{{ arrstack_data_dir }}/files/torrent:/data/torrent" restart: unless-stopped lidarr: container_name: lidarr image: lscr.io/linuxserver/lidarr:latest ports: - 8686:8686 env_file: - arr.env - mb.env environment: - DOCKER_MODS=linuxserver/mods:universal-docker volumes: - "./config/lidarr:/config" - "/var/run/docker.sock:/var/run/docker.sock:ro" - "{{ arrstack_data_dir }}/media/music:/data/media/music" - "{{ arrstack_data_dir }}/files/usenet:/data/usenet" - "{{ arrstack_data_dir }}/files/torrent:/data/torrent" restart: unless-stopped readarr: container_name: readarr image: lscr.io/linuxserver/readarr:develop ports: - 8787:8787 env_file: - arr.env volumes: - "./config/readarr:/config" - "{{ arrstack_data_dir }}/media/audiobooks:/data/media/audiobooks" - "{{ arrstack_data_dir }}/files/usenet:/data/usenet" - "{{ arrstack_data_dir }}/files/torrent:/data/torrent" restart: unless-stopped prowlarr: container_name: prowlarr image: lscr.io/linuxserver/prowlarr:develop env_file: - arr.env volumes: - "./config/prowlarr:/config" ports: - 9696:9696 restart: unless-stopped sabnzbd: container_name: sabnzbd image: lscr.io/linuxserver/sabnzbd:latest env_file: - arr.env volumes: - "./config/sabnzbd:/config" - "{{ arrstack_data_dir }}/files/usenet:/data/usenet:rw" ports: - 8080:8080 restart: unless-stopped vpn: image: qmcgaw/gluetun:v3 container_name: vpn cap_add: - NET_ADMIN devices: - /dev/net/tun:/dev/net/tun env_file: - arr.env - pia.env environment: - VPN_PORT_FORWARDING_STATUS_FILE=/gluetun/forwarded_port - FIREWALL_OUTBOUND_SUBNETS=172.18.0.0/24 - BLOCK_SURVEILLANCE=on volumes: - "./config/gluetun:/gluetun" ports: - 8000:8000 # gluetun http control - 8888:8888 # qBittorrent WebUI restart: unless-stopped qbittorrent: image: linuxserver/qbittorrent container_name: qbittorrent env_file: - arr.env environment: - WEBUI_PORT=8888 volumes: - "./config/piaqbit:/config" - "./config/gluetun:/gluetun" - "{{ arrstack_data_dir }}/files/torrent:/downloads" depends_on: - vpn network_mode: "service:vpn" restart: unless-stopped gluetun-qbittorrent-port-manager: image: patrickaclark/gluetun-qbittorrent-port-manager:latest container_name: qbit-port-manager env_file: - arr.env - pia.env environment: - QBITTORRENT_SERVER=localhost # IP Address of qbittorrent - QBITTORRENT_PORT=8888 - PORT_FORWARDED=/gluetun/forwarded_port - HTTP_S=http # Select 'http' or 'https' depending on if you use certificates. - GLUETUN_HOST=localhost # IP or FQDN of gluetun control server - GLUETUN_PORT=8000 # port of gluetun control server - RECHECK_TIME=60 # number of seconds between checks to gluetun server for port volumes: - "./config/gluetun:/gluetun" depends_on: - vpn network_mode: "service:vpn" restart: unless-stopped healthcheck: test: ["CMD", "curl", "-H", "Authorization: $controlServerAuthKey", "-s", "http://localhost:8000/v1/openvpn/status", "|", "grep", "-q", '{"status":"running"}'] interval: 30s timeout: 10s start_period: 60s retries: 3 jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin env_file: - arr.env #environment: #- JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - ".config/jellyfin:/config" - "/mnt/ext/data/media/movies:/media/movies" # FIXME: To be changed? - "{{ arrstack_data_dir }}/media/tv:/media/tv" - "{{ arrstack_data_dir }}/media/music:/media/music" 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 env_file: - arr.env ports: - 13378:80 volumes: - "{{ arrstack_data_dir }}/media/audiobooks:/audiobooks" # - "{{ arrstack_data_dir }}/media/podcasts:/podcasts" # TODO: If integrating podcasts - ".config/audiobookshelf:/config" - ".metadata/audiobookshelf:/metadata" restart: unless-stopped jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr env_file: - arr.env ports: - 5055:5055 volumes: - "./config/jellyseerr:/app/config" restart: unless-stopped beets: image: lscr.io/linuxserver/beets:latest container_name: beets env_file: - arr.env - mb.env volumes: - "./config/beets:/config" - "{{ arrstack_data_dir }}/media/music:/music" - "{{ arrstack_data_dir }}/files/music-unsorted:/downloads" 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