Files
configs/server-dockers/docker-compose.yml

235 lines
5.4 KiB
YAML

#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