arnaucube
arnaucube/configsPublic Self-hosted repository
configs/server-dockers/docker-compose.yml
server-dockers/docker-compose.ymlRaw
  1#version: '3.8'
  2
  3#
  4# More info: https://arnaucube.com/media-setup/
  5#
  6#
  7# Usage
  8# -----
  9# - All commands from inside the same directory where this file is placed.
 10# - Replace the `/mnt/usb` to your custom location, usually an external hard
 11#   drive.
 12#
 13# Before running: mount the external hard drive!!
 14# > sudo mount /dev/sda /mnt/usb
 15#
 16# Run:
 17# > sudo docker compose up -d
 18#
 19# Stop:
 20# > sudo docker compose stop
 21#
 22# Remove containers (since the volumes are mapped to local directories, they
 23# will persist):
 24# > sudo docker compose down
 25#
 26#
 27# Port of each service:
 28# - jellyfin: 8096
 29# - emby: 8097
 30# - wallabag: 8098
 31# - slskd: 8099
 32# - metube: 8100
 33# - sonarr: 8101
 34# - prowlarr: 8102
 35# - bazarr: 8103
 36# - radarr: 8104
 37# - qbittorrent: 8080
 38# - homepage: 8000
 39# - grafana: 3000
 40
 41services:
 42  jellyfin:
 43    image: jellyfin/jellyfin
 44    container_name: jellyfin
 45    ports:
 46      - "8096:8096"
 47    volumes:
 48      - /mnt/usb/configurations/jellyfin:/config
 49      - /mnt/usb:/media
 50    restart: unless-stopped
 51
 52  emby:
 53    image: emby/embyserver # in rpi: emby/embyserver_arm64v8
 54    container_name: emby
 55    ports:
 56      - "8097:8096"
 57    volumes:
 58      - /mnt/usb/configurations/emby:/config
 59      - /mnt/usb:/media
 60    restart: unless-stopped
 61
 62  wallabag:
 63    image: wallabag/wallabag
 64    container_name: wallabag
 65    ports:
 66      - "8098:80"
 67    volumes:
 68      - /mnt/usb/configurations/wallabag/data:/var/www/wallabag/data
 69      - /mnt/usb/configurations/wallabag/images:/var/www/wallabag/web/assets/images
 70    environment:
 71      - SYMFONY__ENV__DOMAIN_NAME=http://192.168.1.155:8098
 72    restart: unless-stopped
 73
 74  slskd:
 75    image: slskd/slskd
 76    container_name: slskd
 77    ports:
 78      - "8099:5030"
 79      - "50300:50300"
 80    volumes:
 81      - /mnt/usb/configurations/slskd:/app
 82      - /mnt/usb/audio/slskd-downloads:/downloads # isolate it in a subdir, since slskd removes arbitrary files on that dir
 83    environment:
 84      - SLSKD_REMOTE_CONFIGURATION=true
 85    restart: unless-stopped
 86
 87  metube:
 88    image: ghcr.io/alexta69/metube
 89    container_name: metube
 90    ports:
 91      - "8100:8081"
 92    volumes:
 93      - /mnt/usb/audio/from-youtube:/downloads
 94    restart: unless-stopped
 95
 96  sonarr:
 97    image: lscr.io/linuxserver/sonarr:latest
 98    container_name: sonarr
 99    environment:
100      - PUID=1000
101      - PGID=1000
102      - TZ=Europe/Amsterdam
103    volumes:
104      - /mnt/usb/configurations/sonarr:/config
105      - /mnt/usb/torrent-downloads:/downloads
106      - /mnt/usb/shows:/data/shows
107    ports:
108      - 8101:8989
109    restart: unless-stopped
110
111  radarr:
112    image: lscr.io/linuxserver/radarr:latest
113    container_name: radarr
114    environment:
115      - PUID=1000
116      - PGID=1000
117      - TZ=Europe/Amsterdam
118    volumes:
119      - /mnt/usb/configurations/radarr:/config
120      - /mnt/usb/torrent-downloads:/downloads
121      - /mnt/usb/movies:/movies
122    ports:
123      - 8104:7878
124    restart: unless-stopped
125
126  bazarr:
127    image: lscr.io/linuxserver/bazarr:latest
128    container_name: bazarr
129    environment:
130      - PUID=1000
131      - PGID=1000
132      - TZ=Europe/Amsterdam
133    volumes:
134      - /mnt/usb/configurations/bazarr:/config
135      - /mnt/usb/shows:/data/shows
136      - /mnt/usb/movies:/movies
137    ports:
138      - 8103:6767
139    restart: unless-stopped
140
141  prowlarr:
142    container_name: prowlarr
143    image: ghcr.io/hotio/prowlarr
144    ports:
145      - "8102:9696"
146    environment:
147      - PUID=1000
148      - PGID=1000
149      - UMASK=002
150      - TZ=Europe/Amsterdam
151    volumes:
152      - /mnt/usb/configurations/prowlarr:/config
153
154  qbittorrent-nox:
155    image: qbittorrentofficial/qbittorrent-nox:latest
156    container_name: qbittorrent-nox
157    ports:
158      - "8080:8080"
159      - "6881:6881/tcp"  # Torrent listening port
160      - "6881:6881/udp"
161    volumes:
162      - /mnt/usb/configurations/qbittorrent:/config
163      - /mnt/usb/torrent-downloads:/downloads
164    environment:
165      - QBT_LEGAL_NOTICE=confirm
166      - WEBUI_PORT=8080
167    restart: unless-stopped
168
169  homepage:
170    image: ghcr.io/gethomepage/homepage:latest
171    container_name: homepage
172    environment:
173      HOMEPAGE_ALLOWED_HOSTS: 192.168.1.155:8000 # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
174    sysctls:
175      - net.ipv6.conf.all.disable_ipv6=1
176    ports:
177      - 8000:3000
178    volumes:
179      - /mnt/usb/configurations/homepage:/app/config
180    restart: unless-stopped
181
182  # metrics related:
183  prometheus:
184    image: prom/prometheus:latest
185    container_name: prometheus
186    ports:
187      - "9090:9090"
188    volumes:
189      - ./prometheus.yml:/etc/prometheus/prometheus.yml
190      - prometheus_data:/prometheus
191    networks:
192      - monitoring
193    restart: unless-stopped
194 
195  node-exporter:
196    image: prom/node-exporter:latest
197    container_name: node-exporter
198    ports:
199      - "9100:9100"
200    volumes:
201      - /:/host:ro
202    networks:
203      - monitoring
204    restart: unless-stopped
205 
206  grafana:
207    image: grafana/grafana:latest
208    container_name: grafana
209    ports:
210      - "3000:3000"
211    environment:
212      - GF_SECURITY_ADMIN_PASSWORD=YOURPASSWORDHERE
213    volumes:
214      - grafana_data:/var/lib/grafana
215    networks:
216      - monitoring
217    depends_on:
218      - prometheus
219    restart: unless-stopped
220
221  # NOTE: better run homeassistant alone in the rpi as OS (not container),
222  #       which has support for 'add-ons'.
223  #       More info: https://www.home-assistant.io/installation/#about-installation-types
224
225
226networks:
227  monitoring:
228    driver: bridge
229
230volumes:
231 prometheus_data:
232   driver: local
233 grafana_data:
234   driver: local