#version: '3.8' # # More info: https://arnaucube.com/media-setup/ # # # Usage # ----- # - All commands from inside the same directory where this file is placed. # - Replace the `/mnt/usb` to your custom location, usually an external hard # drive. # # Before running: mount the external hard drive!! # > sudo mount /dev/sda /mnt/usb # # Run: # > sudo docker compose up -d # # Stop: # > sudo docker compose stop # # Remove containers (since the volumes are mapped to local directories, they # will persist): # > sudo docker compose down # # # Port of each service: # - jellyfin: 8096 # - emby: 8097 # - wallabag: 8098 # - slskd: 8099 # - metube: 8100 # - sonarr: 8101 # - prowlarr: 8102 # - bazarr: 8103 # - radarr: 8104 # - qbittorrent: 8080 # - homepage: 8000 # - grafana: 3000 services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin ports: - "8096:8096" volumes: - /mnt/usb/configurations/jellyfin:/config - /mnt/usb:/media restart: unless-stopped emby: image: emby/embyserver # in rpi: emby/embyserver_arm64v8 container_name: emby ports: - "8097:8096" volumes: - /mnt/usb/configurations/emby:/config - /mnt/usb:/media restart: unless-stopped wallabag: image: wallabag/wallabag container_name: wallabag ports: - "8098:80" volumes: - /mnt/usb/configurations/wallabag/data:/var/www/wallabag/data - /mnt/usb/configurations/wallabag/images:/var/www/wallabag/web/assets/images environment: - SYMFONY__ENV__DOMAIN_NAME=http://192.168.1.155:8098 restart: unless-stopped slskd: image: slskd/slskd container_name: slskd ports: - "8099:5030" - "50300:50300" volumes: - /mnt/usb/configurations/slskd:/app - /mnt/usb/audio/slskd-downloads:/downloads # isolate it in a subdir, since slskd removes arbitrary files on that dir environment: - SLSKD_REMOTE_CONFIGURATION=true restart: unless-stopped metube: image: ghcr.io/alexta69/metube container_name: metube ports: - "8100:8081" volumes: - /mnt/usb/audio/from-youtube:/downloads restart: unless-stopped sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /mnt/usb/configurations/sonarr:/config - /mnt/usb/torrent-downloads:/downloads - /mnt/usb/shows:/data/shows ports: - 8101:8989 restart: unless-stopped radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /mnt/usb/configurations/radarr:/config - /mnt/usb/torrent-downloads:/downloads - /mnt/usb/movies:/movies ports: - 8104:7878 restart: unless-stopped bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/Amsterdam volumes: - /mnt/usb/configurations/bazarr:/config - /mnt/usb/shows:/data/shows - /mnt/usb/movies:/movies ports: - 8103:6767 restart: unless-stopped prowlarr: container_name: prowlarr image: ghcr.io/hotio/prowlarr ports: - "8102:9696" environment: - PUID=1000 - PGID=1000 - UMASK=002 - TZ=Europe/Amsterdam volumes: - /mnt/usb/configurations/prowlarr:/config qbittorrent-nox: image: qbittorrentofficial/qbittorrent-nox:latest container_name: qbittorrent-nox ports: - "8080:8080" - "6881:6881/tcp" # Torrent listening port - "6881:6881/udp" volumes: - /mnt/usb/configurations/qbittorrent:/config - /mnt/usb/torrent-downloads:/downloads environment: - QBT_LEGAL_NOTICE=confirm - WEBUI_PORT=8080 restart: unless-stopped homepage: image: ghcr.io/gethomepage/homepage:latest container_name: homepage environment: HOMEPAGE_ALLOWED_HOSTS: 192.168.1.155:8000 # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts sysctls: - net.ipv6.conf.all.disable_ipv6=1 ports: - 8000:3000 volumes: - /mnt/usb/configurations/homepage:/app/config restart: unless-stopped # metrics related: prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus networks: - monitoring restart: unless-stopped node-exporter: image: prom/node-exporter:latest container_name: node-exporter ports: - "9100:9100" volumes: - /:/host:ro networks: - monitoring restart: unless-stopped grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=YOURPASSWORDHERE volumes: - grafana_data:/var/lib/grafana networks: - monitoring depends_on: - prometheus restart: unless-stopped # NOTE: better run homeassistant alone in the rpi as OS (not container), # which has support for 'add-ons'. # More info: https://www.home-assistant.io/installation/#about-installation-types networks: monitoring: driver: bridge volumes: prometheus_data: driver: local grafana_data: driver: local