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# - wallabag: 8098
 30# - slskd: 8099
 31# - metube: 8100
 32# - sonarr: 8101
 33# - prowlarr: 8102
 34# - bazarr: 8103
 35# - radarr: 8104
 36# - qui: 8105
 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  wallabag:
 53    image: wallabag/wallabag
 54    container_name: wallabag
 55    ports:
 56      - "8098:80"
 57    volumes:
 58      - /mnt/usb/configurations/wallabag/data:/var/www/wallabag/data
 59      - /mnt/usb/configurations/wallabag/images:/var/www/wallabag/web/assets/images
 60    environment:
 61      - SYMFONY__ENV__DOMAIN_NAME=http://192.168.1.155:8098
 62    restart: unless-stopped
 63
 64  slskd:
 65    image: slskd/slskd
 66    container_name: slskd
 67    ports:
 68      - "8099:5030"
 69      - "50300:50300"
 70    volumes:
 71      - /mnt/usb/configurations/slskd:/app
 72      - /mnt/usb/audio/slskd-downloads:/downloads # isolate it in a subdir, since slskd removes arbitrary files on that dir
 73    environment:
 74      - SLSKD_REMOTE_CONFIGURATION=true
 75    restart: unless-stopped
 76
 77  metube:
 78    image: ghcr.io/alexta69/metube
 79    container_name: metube
 80    ports:
 81      - "8100:8081"
 82    volumes:
 83      - /mnt/usb/audio/from-youtube:/downloads
 84    restart: unless-stopped
 85
 86  sonarr:
 87    image: lscr.io/linuxserver/sonarr:latest
 88    container_name: sonarr
 89    environment:
 90      - PUID=1000
 91      - PGID=1000
 92      - TZ=Europe/Amsterdam
 93    volumes:
 94      - /mnt/usb/configurations/sonarr:/config
 95      - /mnt/usb/torrent-downloads:/downloads
 96      - /mnt/usb/shows:/data/shows
 97    ports:
 98      - 8101:8989
 99    restart: unless-stopped
100
101  radarr:
102    image: lscr.io/linuxserver/radarr:latest
103    container_name: radarr
104    environment:
105      - PUID=1000
106      - PGID=1000
107      - TZ=Europe/Amsterdam
108    volumes:
109      - /mnt/usb/configurations/radarr:/config
110      - /mnt/usb/torrent-downloads:/downloads
111      - /mnt/usb/movies:/movies
112    ports:
113      - 8104:7878
114    restart: unless-stopped
115
116  bazarr:
117    image: lscr.io/linuxserver/bazarr:latest
118    container_name: bazarr
119    environment:
120      - PUID=1000
121      - PGID=1000
122      - TZ=Europe/Amsterdam
123    volumes:
124      - /mnt/usb/configurations/bazarr:/config
125      - /mnt/usb/shows:/data/shows
126      - /mnt/usb/movies:/movies
127    ports:
128      - 8103:6767
129    restart: unless-stopped
130
131  prowlarr:
132    container_name: prowlarr
133    image: ghcr.io/hotio/prowlarr
134    ports:
135      - "8102:9696"
136    environment:
137      - PUID=1000
138      - PGID=1000
139      - UMASK=002
140      - TZ=Europe/Amsterdam
141    volumes:
142      - /mnt/usb/configurations/prowlarr:/config
143
144  qbittorrent-nox:
145    image: qbittorrentofficial/qbittorrent-nox:latest
146    container_name: qbittorrent-nox
147    ports:
148      - "8080:8080"
149      - "6881:6881/tcp"  # Torrent listening port
150      - "6881:6881/udp"
151    volumes:
152      - /mnt/usb/configurations/qbittorrent:/config
153      - /mnt/usb/torrent-downloads:/downloads
154    environment:
155      - QBT_LEGAL_NOTICE=confirm
156      - WEBUI_PORT=8080
157    restart: unless-stopped
158
159  qui:
160    image: ghcr.io/autobrr/qui:latest
161    container_name: qui
162    restart: unless-stopped
163    ports:
164      - "8105:7476"
165    volumes:
166      - ./qui:/config
167
168  homepage:
169    image: ghcr.io/gethomepage/homepage:latest
170    container_name: homepage
171    environment:
172      HOMEPAGE_ALLOWED_HOSTS: 192.168.1.155:8000 # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
173    sysctls:
174      - net.ipv6.conf.all.disable_ipv6=1
175    ports:
176      - 8000:3000
177    volumes:
178      - /mnt/usb/configurations/homepage:/app/config
179    restart: unless-stopped
180
181  # metrics related:
182  prometheus:
183    image: prom/prometheus:latest
184    container_name: prometheus
185    ports:
186      - "9090:9090"
187    volumes:
188      - ./prometheus.yml:/etc/prometheus/prometheus.yml
189      - prometheus_data:/prometheus
190    networks:
191      - monitoring
192    restart: unless-stopped
193 
194  node-exporter:
195    image: prom/node-exporter:latest
196    container_name: node-exporter
197    ports:
198      - "9100:9100"
199    volumes:
200      - /:/host:ro
201    networks:
202      - monitoring
203    restart: unless-stopped
204 
205  grafana:
206    image: grafana/grafana:latest
207    container_name: grafana
208    ports:
209      - "3000:3000"
210    environment:
211      - GF_SECURITY_ADMIN_PASSWORD=YOURPASSWORDHERE
212    volumes:
213      - grafana_data:/var/lib/grafana
214    networks:
215      - monitoring
216    depends_on:
217      - prometheus
218    restart: unless-stopped
219
220  # NOTE: better run homeassistant alone in the rpi as OS (not container),
221  #       which has support for 'add-ons'.
222  #       More info: https://www.home-assistant.io/installation/#about-installation-types
223
224networks:
225  monitoring:
226    driver: bridge
227
228volumes:
229 prometheus_data:
230   driver: local
231 grafana_data:
232   driver: local