#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 # - qbittorrent: 8080 # - homepage: 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_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 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:/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" # networks: # - monitoring # restart: unless-stopped # # grafana: # image: grafana/grafana:latest # container_name: grafana # ports: # - "3000:3000" # environment: # - GF_SECURITY_ADMIN_PASSWORD=admin # volumes: # - grafana_data:/var/lib/grafana # networks: # - monitoring # depends_on: # - prometheus # restart: unless-stopped networks: monitoring: driver: bridge #volumes: # prometheus_data: # driver: local # grafana_data: # driver: local