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# - qbittorrent: 8080
34# - homepage: 3000
35
36services:
37 jellyfin:
38 image: jellyfin/jellyfin
39 container_name: jellyfin
40 ports:
41 - "8096:8096"
42 volumes:
43 - /mnt/usb/configurations/jellyfin:/config
44 - /mnt/usb:/media
45 restart: unless-stopped
46
47 emby:
48 image: emby/embyserver_arm64v8
49 container_name: emby
50 ports:
51 - "8097:8096"
52 volumes:
53 - /mnt/usb/configurations/emby:/config
54 - /mnt/usb:/media
55 restart: unless-stopped
56
57 wallabag:
58 image: wallabag/wallabag
59 container_name: wallabag
60 ports:
61 - "8098:80"
62 volumes:
63 - /mnt/usb/configurations/wallabag/data:/var/www/wallabag/data
64 - /mnt/usb/configurations/wallabag/images:/var/www/wallabag/web/assets/images
65 environment:
66 - SYMFONY__ENV__DOMAIN_NAME=http://192.168.1.155:8098
67 restart: unless-stopped
68
69 slskd:
70 image: slskd/slskd
71 container_name: slskd
72 ports:
73 - "8099:5030"
74 - "50300:50300"
75 volumes:
76 - /mnt/usb/configurations/slskd:/app
77 - /mnt/usb/audio/slskd-downloads:/downloads # isolate it in a subdir, since slskd removes arbitrary files on that dir
78 environment:
79 - SLSKD_REMOTE_CONFIGURATION=true
80 restart: unless-stopped
81
82 metube:
83 image: ghcr.io/alexta69/metube
84 container_name: metube
85 ports:
86 - "8100:8081"
87 volumes:
88 - /mnt/usb/audio/from-youtube:/downloads
89 restart: unless-stopped
90
91 qbittorrent-nox:
92 image: qbittorrentofficial/qbittorrent-nox:latest
93 container_name: qbittorrent-nox
94 ports:
95 - "8080:8080"
96 - "6881:6881/tcp" # Torrent listening port
97 - "6881:6881/udp"
98 volumes:
99 - /mnt/usb/configurations/qbittorrent:/config
100 - /mnt/usb:/downloads
101 environment:
102 - QBT_LEGAL_NOTICE=confirm
103 - WEBUI_PORT=8080
104 restart: unless-stopped
105
106 homepage:
107 image: ghcr.io/gethomepage/homepage:latest
108 container_name: homepage
109 environment:
110 HOMEPAGE_ALLOWED_HOSTS: 192.168.1.155:8000 # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
111 sysctls:
112 - net.ipv6.conf.all.disable_ipv6=1
113 ports:
114 - 8000:3000
115 volumes:
116 - /mnt/usb/configurations/homepage:/app/config
117 restart: unless-stopped
118
119 # metrics related:
120 # prometheus:
121 # image: prom/prometheus:latest
122 # container_name: prometheus
123 # ports:
124 # - "9090:9090"
125 # volumes:
126 # - ./prometheus.yml:/etc/prometheus/prometheus.yml
127 # - prometheus_data:/prometheus
128 # networks:
129 # - monitoring
130 # restart: unless-stopped
131 #
132 # node-exporter:
133 # image: prom/node-exporter:latest
134 # container_name: node-exporter
135 # ports:
136 # - "9100:9100"
137 # networks:
138 # - monitoring
139 # restart: unless-stopped
140 #
141 # grafana:
142 # image: grafana/grafana:latest
143 # container_name: grafana
144 # ports:
145 # - "3000:3000"
146 # environment:
147 # - GF_SECURITY_ADMIN_PASSWORD=admin
148 # volumes:
149 # - grafana_data:/var/lib/grafana
150 # networks:
151 # - monitoring
152 # depends_on:
153 # - prometheus
154 # restart: unless-stopped
155
156networks:
157 monitoring:
158 driver: bridge
159
160#volumes:
161# prometheus_data:
162# driver: local
163# grafana_data:
164# driver: local