# Arr Suite - Media automation stack
# Services: Sonarr, Radarr, Prowlarr, Bazarr, Lidarr, Readarr, Whisparr,
#           Tautulli, SABnzbd, Plex, Jellyseerr, Flaresolverr
# Manages TV shows, movies, music, books downloads and organization
#
# Theming: Self-hosted theme.park (Dracula theme) on Atlantis
#   - TP_DOMAIN uses Atlantis LAN IP to reach theme-park container
#   - Theme-park stack: Atlantis/theme-park/theme-park.yaml
# Updated: February 16, 2026
version: "3.8"

x-themepark: &themepark
  TP_SCHEME: "http"
  TP_DOMAIN: "192.168.0.200:8580"
  TP_THEME: "dracula"

networks:
  media_net:
    driver: bridge
    name: media_net
    ipam:
      config:
        - subnet: 172.23.0.0/24
          gateway: 172.23.0.1

services:
  tautulli:
    image: linuxserver/tautulli:latest
    container_name: tautulli
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:tautulli
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/tautulli:/config
    ports:
      - 8181:8181/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.6
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  prowlarr:
    image: linuxserver/prowlarr:latest
    container_name: prowlarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:prowlarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/prowlarr:/config
    ports:
      - 9696:9696/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.5
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  flaresolverr:
    image: flaresolverr/flaresolverr:latest
    container_name: flaresolverr
    environment:
      - TZ=America/Los_Angeles
    ports:
      - 8191:8191
    networks:
      media_net:
        ipv4_address: 172.23.0.3
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  sabnzbd:
    image: linuxserver/sabnzbd:latest
    container_name: sabnzbd
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - HOST_WHITELIST=172.23.0.0/24,192.168.0.0/24,127.0.0.1
      - LOCAL_RANGES=172.23.0.0/24,192.168.0.0/24
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sabnzbd
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/sabnzbd:/config
      - /volume1/data/usenet:/data/usenet
    ports:
      - 25000:8080/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.7
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  sonarr:
    image: linuxserver/sonarr:latest
    container_name: sonarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:sonarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/sonarr:/config
      - /volume1/data:/data
    ports:
      - 8989:8989/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.12
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  lidarr:
    image: linuxserver/lidarr:latest
    container_name: lidarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:lidarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/lidarr:/config
      - /volume1/data:/data
    ports:
      - 8686:8686/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.8
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  radarr:
    image: linuxserver/radarr:latest
    container_name: radarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:radarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/radarr:/config
      - /volume1/data:/data
    ports:
      - 7878:7878/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.10
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  readarr:
    image: lscr.io/linuxserver/readarr:0.4.19-nightly
    container_name: readarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:readarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/readarr:/config
      - /volume1/data:/data
    ports:
      - 8787:8787/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.4
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  bazarr:
    image: linuxserver/bazarr:latest
    container_name: bazarr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:bazarr
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/bazarr:/config
      - /volume1/data:/data
    ports:
      - 6767:6767/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.9
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  whisparr:
    image: ghcr.io/hotio/whisparr:latest
    container_name: whisparr
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - TP_HOTIO=true
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/whisparr:/config
      - /volume1/data:/data
    ports:
      - 6969:6969/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.2
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  plex:
    image: linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1027
      - PGID=65536
      - TZ=America/Los_Angeles
      - UMASK=022
      - VERSION=docker
      - PLEX_CLAIM=
      - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:plex
      - TP_SCHEME=http
      - TP_DOMAIN=192.168.0.200:8580
      - TP_THEME=dracula
    volumes:
      - /volume1/docker2/plex:/config
      - /volume1/data/media:/data/media
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped

  jellyseerr:
    image: fallenbagel/jellyseerr:latest
    container_name: jellyseerr
    user: "1027:65536"
    environment:
      - TZ=America/Los_Angeles
      # Note: Jellyseerr theming requires CSS injection via reverse proxy
      # theme.park doesn't support DOCKER_MODS for non-linuxserver images
    volumes:
      - /volume1/docker2/jellyseerr:/app/config
    ports:
      - 5055:5055/tcp
    networks:
      media_net:
        ipv4_address: 172.23.0.11
    dns:
      - 9.9.9.9
      - 1.1.1.1
    security_opt:
      - no-new-privileges:true
    restart: unless-stopped
