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# - 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