Compare commits

..
2 Commits
26 changed files with 304 additions and 249 deletions
+4 -4
View File
@@ -17,15 +17,15 @@ services:
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png' net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png'
net.unraid.docker.webui: '' net.unraid.docker.webui: ''
net.unraid.docker.shell: '' net.unraid.docker.shell: ''
appapi-dsp: proxy:
labels: labels:
net.unraid.docker.managed: 'composeman' net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png' net.unraid.docker.icon: 'https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png'
net.unraid.docker.webui: '' net.unraid.docker.webui: 'https://${DOMAIN}'
net.unraid.docker.shell: '' net.unraid.docker.shell: ''
nc-talk: euro-office:
labels: labels:
net.unraid.docker.managed: 'composeman' net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png' net.unraid.docker.icon: 'https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png'
net.unraid.docker.webui: '' net.unraid.docker.webui: 'https://${OFFICE_DOMAIN}'
net.unraid.docker.shell: '' net.unraid.docker.shell: ''
+60 -73
View File
@@ -23,19 +23,42 @@ services:
labels: labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png"
folder.view3: "Databases" folder.view3: "Databases"
appapi-dsp: proxy:
image: ghcr.io/nextcloud/nextcloud-appapi-dsp:release image: caddy:latest
networks: container_name: nextcloud-proxy
- nextcloud-exapps hostname: nextcloud-proxy
environment:
- NC_HAPROXY_PASSWORD=${APPAPI_DSP_PASSWORD}
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /mnt/user/appdata/nextcloud/proxy/Caddyfile:/etc/caddy/Caddyfile
privileged: true depends_on:
- app
networks:
- default
- pangolin
- traefik_proxy
labels: labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png" net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
folder.view3: "Nextcloud ExApps" net.unraid.docker.webui: "https://${DOMAIN}"
folder.view3: "Networking"
pangolin.public-resources.nextcloud-server.name: "${RESOURCE_NAME}"
pangolin.public-resources.nextcloud-server.full-domain: "${DOMAIN}"
pangolin.public-resources.nextcloud-server.protocol: "http"
pangolin.public-resources.nextcloud-server.auth.sso-enabled: false
pangolin.public-resources.nextcloud-server.targets[0].method: "http"
pangolin.public-resources.nextcloud-server.targets[0].hostname: "nextcloud-proxy"
pangolin.public-resources.nextcloud-server.targets[0].port: 8080
# local proxy
traefik.enable: true
traefik.http.services.cloud.loadbalancer.server.port: 8080
traefik.http.routers.cloud.rule: "Host(`${DOMAIN}`)"
traefik.http.routers.cloud.entrypoints: websecure
traefik.http.routers.cloud.tls: true
traefik.http.routers.cloud.tls.certresolver: cloudflare
traefik.http.routers.cloud.tls.domains[0].main: "*.homecube.org"
app: app:
image: nextcloud:34 image: nextcloud:34
@@ -43,11 +66,6 @@ services:
depends_on: depends_on:
- db - db
- redis - redis
- appapi-dsp
networks:
- default
- nextcloud-exapps
- pangolin
volumes: volumes:
- /mnt/user/appdata/nextcloud/app:/var/www/html - /mnt/user/appdata/nextcloud/app:/var/www/html
- /mnt/user/nextcloud-data:/var/www/html/data - /mnt/user/nextcloud-data:/var/www/html/data
@@ -64,80 +82,49 @@ services:
- REDIS_PORT=6379 - REDIS_PORT=6379
- REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD} - REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD}
- APACHE_DISABLE_REWRITE_IP=1
- APACHE_BODY_LIMIT=0 - APACHE_BODY_LIMIT=0
- TRUSTED_PROXIES=172.28.0.2
labels: labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png" net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
net.unraid.docker.webui: "https://${DOMAIN}" net.unraid.docker.webui: "https://${DOMAIN}"
folder.view3: "Services" folder.view3: "Services"
pangolin.public-resources.nextcloud-server.name: "${RESOURCE_NAME}" euro-office:
pangolin.public-resources.nextcloud-server.full-domain: "${DOMAIN}" image: ghcr.io/euro-office/documentserver:latest
pangolin.public-resources.nextcloud-server.protocol: "http" container_name: euro-office
pangolin.public-resources.nextcloud-server.auth.sso-enabled: false
pangolin.public-resources.nextcloud-server.targets[0].method: "http"
pangolin.public-resources.nextcloud-server.targets[0].hostname: "nextcloud"
pangolin.public-resources.nextcloud-server.targets[0].port: 80
# HOMEPAGE
homepage.group: Cloud
homepage.name: Nextcloud
homepage.icon: nextcloud.png
homepage.href: "https://${DOMAIN}"
homepage.description: Files and collaboration
nc-talk:
container_name: nextcloud-hpb
image: ghcr.io/nextcloud-releases/aio-talk:latest
init: true
networks: networks:
- default
- pangolin - pangolin
ports: - traefik_proxy
- 3478:3478/tcp
- 3478:3478/udp
environment: environment:
- NC_DOMAIN=${DOMAIN} - JWT_ENABLED=true
- TALK_HOST=${TALK_HOST} - JWT_SECRET=${EURO_OFFICE_SECRET}
- TURN_SECRET=${TURN_SECRET}
- SIGNALING_SECRET=${SIGNALING_SECRET}
- TZ=Europe/Vienna
- TALK_PORT=3478
- INTERNAL_SECRET=${INTERNAL_SECRET}
labels: labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png" net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
net.unraid.docker.webui: "https://${OFFICE_DOMAIN}"
folder.view3: "Infrastructure" folder.view3: "Infrastructure"
pangolin.public-resources.euro-office.name: "${OFFICE_RESOURCE_NAME}"
pangolin.public-resources.euro-office.full-domain: "${OFFICE_DOMAIN}"
pangolin.public-resources.euro-office.protocol: "http"
pangolin.public-resources.nextcloud-hpb.name: "${HPB_RESOURCE_NAME}" pangolin.public-resources.euro-office.auth.sso-enabled: false
pangolin.public-resources.nextcloud-hpb.full-domain: "${TALK_HOST}"
pangolin.public-resources.nextcloud-hpb.protocol: "http"
pangolin.public-resources.nextcloud-hpb.auth.sso-enabled: false pangolin.public-resources.euro-office.targets[0].method: "http"
pangolin.public-resources.euro-office.targets[0].hostname: "euro-office"
pangolin.public-resources.nextcloud-hpb.targets[0].method: "http" pangolin.public-resources.euro-office.targets[0].port: 80
pangolin.public-resources.nextcloud-hpb.targets[0].hostname: "nextcloud-hpb"
pangolin.public-resources.nextcloud-hpb.targets[0].port: 8081
pangolin.public-resources.nextcloud-hpb-turn-tcp.name: "${HPB_RESOURCE_NAME} TURN TCP" # local proxy
pangolin.public-resources.nextcloud-hpb-turn-tcp.protocol: "tcp" traefik.enable: true
pangolin.public-resources.nextcloud-hpb-turn-tcp.proxy-port: 3478 traefik.http.services.office.loadbalancer.server.port: 80
pangolin.public-resources.nextcloud-hpb-turn-tcp.targets[0].hostname: "nextcloud-hpb" traefik.http.routers.office.rule: "Host(`${OFFICE_DOMAIN}`)"
pangolin.public-resources.nextcloud-hpb-turn-tcp.targets[0].port: 3478 traefik.http.routers.office.entrypoints: websecure
traefik.http.routers.office.tls: true
pangolin.public-resources.nextcloud-hpb-turn-udp.name: "${HPB_RESOURCE_NAME} TURN UDP" traefik.http.routers.office.tls.certresolver: cloudflare
pangolin.public-resources.nextcloud-hpb-turn-udp.protocol: "udp" traefik.http.routers.office.tls.domains[0].main: "*.homecube.org"
pangolin.public-resources.nextcloud-hpb-turn-udp.proxy-port: 3478
pangolin.public-resources.nextcloud-hpb-turn-udp.targets[0].hostname: "nextcloud-hpb"
pangolin.public-resources.nextcloud-hpb-turn-udp.targets[0].port: 3478
networks: networks:
nextcloud-exapps:
name: nextcloud-exapps
driver: bridge
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
@@ -1,7 +1,7 @@
services: services:
it-tools: adguardhome:
labels: labels:
net.unraid.docker.managed: 'composeman' net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/it-tools.png' net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/adguard-home.png'
net.unraid.docker.webui: 'https://tools.homecube.org/' net.unraid.docker.webui: 'http://10.0.0.10'
net.unraid.docker.shell: '' net.unraid.docker.shell: ''
+19
View File
@@ -0,0 +1,19 @@
services:
adguardhome:
image: adguard/adguardhome:latest
container_name: adguardhome
networks:
adguard_lan:
ipv4_address: 10.0.0.10
volumes:
- /mnt/user/appdata/adguardhome/conf:/opt/adguardhome/conf
- /mnt/user/appdata/adguardhome/work:/opt/adguardhome/work
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/adguard-home.png"
net.unraid.docker.webui: "http://10.0.0.10"
folder.view3: "Networking"
networks:
adguard_lan:
external: true
name: br0
+1
View File
@@ -0,0 +1 @@
dns
+16
View File
@@ -66,6 +66,9 @@ services:
- MAIL_FROM=${MAIL_FROM} - MAIL_FROM=${MAIL_FROM}
volumes: volumes:
- /mnt/user/appdata/pterodactyl-panel/data:/app/var/ - /mnt/user/appdata/pterodactyl-panel/data:/app/var/
networks:
- default
- traefik_proxy
ports: ports:
- "6001:80" - "6001:80"
depends_on: depends_on:
@@ -78,6 +81,15 @@ services:
net.unraid.docker.webui: "https://game-servers.homecube.org" net.unraid.docker.webui: "https://game-servers.homecube.org"
folder.view3: "Game Servers" folder.view3: "Game Servers"
# local proxy
traefik.enable: true
traefik.http.services.game-servers.loadbalancer.server.port: 6001
traefik.http.routers.game-servers.rule: "Host(`game-servers.homecube.org`)"
traefik.http.routers.game-servers.entrypoints: websecure
traefik.http.routers.game-servers.tls: true
traefik.http.routers.game-servers.tls.certresolver: cloudflare
traefik.http.routers.game-servers.tls.domains[0].main: "*.homecube.org"
pterodactyl-wings: pterodactyl-wings:
image: ghcr.io/pterodactyl/wings:latest image: ghcr.io/pterodactyl/wings:latest
container_name: pterodactyl-wings container_name: pterodactyl-wings
@@ -98,3 +110,7 @@ services:
labels: labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/pterodactyl.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/pterodactyl.png"
folder.view3: "Game Servers" folder.view3: "Game Servers"
networks:
traefik_proxy:
external: true
-13
View File
@@ -1,13 +0,0 @@
services:
dockerproxy:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/homepage.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
homepage:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/homepage.png'
net.unraid.docker.webui: 'https://${FULL_DOMAIN}'
net.unraid.docker.shell: ''
-56
View File
@@ -1,56 +0,0 @@
services:
dockerproxy:
image: ghcr.io/tecnativa/docker-socket-proxy:latest
container_name: homepage-dockerproxy
environment:
- CONTAINERS=1 # Allow access to viewing containers
- SERVICES=0 # Allow access to viewing services (necessary when using Docker Swarm)
- TASKS=0 # Allow access to viewing tasks (necessary when using Docker Swarm)
- POST=0 # Disallow any POST operations (effectively read-only)
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/homepage.png"
folder.view3: "Infrastructure"
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage
environment:
HOMEPAGE_ALLOWED_HOSTS: "${FULL_DOMAIN},10.0.0.1:8027,cube.internal:8027"
PUID: 99
PGID: 100
ports:
- 8027:3000
volumes:
- /mnt/user/appdata/homepage:/app/config
networks:
- default
- pangolin
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/homepage.png"
net.unraid.docker.webui: "https://${FULL_DOMAIN}"
folder.view3: "Services"
pangolin.public-resources.gethomepage-homepage.name: "${RESOURCE_NAME}"
pangolin.public-resources.gethomepage-homepage.full-domain: "${FULL_DOMAIN}"
pangolin.public-resources.gethomepage-homepage.protocol: "http"
pangolin.public-resources.gethomepage-homepage.auth.sso-enabled: true
pangolin.public-resources.gethomepage-homepage.auth.sso-roles[0]: "Member"
pangolin.public-resources.gethomepage-homepage.targets[0].method: "http"
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.enabled: true
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.hostname: "homepage"
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.port: 3000
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.path: "/"
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.method: "GET"
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.status: 200
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.interval: 30
pangolin.public-resources.gethomepage-homepage.targets[0].healthcheck.timeout: 5
networks:
pangolin:
name: pangolin_net
external: true
-1
View File
@@ -1 +0,0 @@
homepage
+13 -7
View File
@@ -26,7 +26,6 @@ services:
- ${UPLOAD_LOCATION}:/data - ${UPLOAD_LOCATION}:/data
- /mnt/user/volume1/photo:/mnt/media/master-library:ro # Mount External Library "Master Library" - /mnt/user/volume1/photo:/mnt/media/master-library:ro # Mount External Library "Master Library"
- /mnt/user/nextcloud-data/tonitrus/files/photos:/mnt/media/tonitrus-photos:ro # Mount External Library "Tonitrus Photos" - /mnt/user/nextcloud-data/tonitrus/files/photos:/mnt/media/tonitrus-photos:ro # Mount External Library "Tonitrus Photos"
- /mnt/user/nextcloud-data/Purplebunny/files/photos:/mnt/media/purplebunny-photos:ro # Mount External Library "Purplebunny Photos"
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
ports: ports:
- "2283:2283" - "2283:2283"
@@ -41,6 +40,7 @@ services:
networks: networks:
- default - default
- pangolin - pangolin
- traefik_proxy
labels: labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png - net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png
- net.unraid.docker.webui=https://${FULL_DOMAIN} - net.unraid.docker.webui=https://${FULL_DOMAIN}
@@ -53,6 +53,7 @@ services:
- pangolin.public-resources.immich-server.auth.sso-enabled=true - pangolin.public-resources.immich-server.auth.sso-enabled=true
- pangolin.public-resources.immich-server.auth.sso-roles[0]=Member - pangolin.public-resources.immich-server.auth.sso-roles[0]=Member
- pangolin.public-resources.immich-server.auth.whitelist-users[0]=katrin.lang@drei.at - pangolin.public-resources.immich-server.auth.whitelist-users[0]=katrin.lang@drei.at
- pangolin.public-resources.immich-server.auth.whitelist-users[1]=rainer.brandmaier@gmx.de
- pangolin.public-resources.immich-server.targets[0].method=http - pangolin.public-resources.immich-server.targets[0].method=http
@@ -72,12 +73,14 @@ services:
- pangolin.public-resources.immich-server.rules[1].match=path - pangolin.public-resources.immich-server.rules[1].match=path
- pangolin.public-resources.immich-server.rules[1].value=/.well-known/immich - pangolin.public-resources.immich-server.rules[1].value=/.well-known/immich
# HOMEPAGE # local proxy
- homepage.group=Media - traefik.enable=true
- homepage.name=Immich - traefik.http.services.immich.loadbalancer.server.port=2283
- homepage.icon=immich.png - traefik.http.routers.immich.rule=Host(`${FULL_DOMAIN}`)
- homepage.href=https://${FULL_DOMAIN} - traefik.http.routers.immich.entrypoints=websecure
- homepage.description=Photo management - traefik.http.routers.immich.tls=true
- traefik.http.routers.immich.tls.certresolver=cloudflare
- traefik.http.routers.immich.tls.domains[0].main=*.homecube.org
immich-machine-learning: immich-machine-learning:
container_name: immich_machine_learning container_name: immich_machine_learning
@@ -134,3 +137,6 @@ networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
-1
View File
@@ -1 +0,0 @@
false
-33
View File
@@ -1,33 +0,0 @@
services:
it-tools:
image: corentinth/it-tools:latest
container_name: it-tools
networks:
- pangolin
labels:
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/it-tools.png
- net.unraid.docker.webui=https://${FULL_DOMAIN}
- folder.view3=Services
- pangolin.public-resources.it-tools.name=IT-Tools
- pangolin.public-resources.it-tools.full-domain=${FULL_DOMAIN}
- pangolin.public-resources.it-tools.protocol=http
- pangolin.public-resources.it-tools.auth.sso-enabled=true
- pangolin.public-resources.it-tools.auth.sso-roles[0]=Member
- pangolin.public-resources.it-tools.targets[0].method=http
- pangolin.public-resources.it-tools.targets[0].healthcheck.enabled=true
- pangolin.public-resources.it-tools.targets[0].healthcheck.hostname=it-tools
- pangolin.public-resources.it-tools.targets[0].healthcheck.port=80
- pangolin.public-resources.it-tools.targets[0].healthcheck.path=/
- pangolin.public-resources.it-tools.targets[0].healthcheck.method=GET
- pangolin.public-resources.it-tools.targets[0].healthcheck.status=200
- pangolin.public-resources.it-tools.targets[0].healthcheck.interval=30
- pangolin.public-resources.it-tools.targets[0].healthcheck.timeout=5
networks:
pangolin:
name: pangolin_net
external: true
-1
View File
@@ -1 +0,0 @@
it-tools
+1
View File
@@ -0,0 +1 @@
true
+7
View File
@@ -0,0 +1,7 @@
services:
traefik:
labels:
net.unraid.docker.managed: 'composeman'
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/traefik-light.png'
net.unraid.docker.webui: ''
net.unraid.docker.shell: ''
+53
View File
@@ -0,0 +1,53 @@
services:
traefik:
image: traefik:v3.7
container_name: traefik
security_opt:
- no-new-privileges:true
networks:
traefik_lan:
ipv4_address: 10.0.0.11
traefik_proxy:
environment:
CF_DNS_API_TOKEN: ${CF_DNS_API_TOKEN}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /mnt/user/appdata/traefik/letsencrypt:/letsencrypt
command:
# Docker provider
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.docker.network=traefik_proxy"
# HTTP
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.web.http.redirections.entrypoint.permanent=true"
# HTTPS
- "--entrypoints.websecure.address=:443"
# Other
- "--entrypoints.gitea-ssh.address=:222"
# Let's Encrypt / Cloudflare DNS-01
- "--certificatesresolvers.cloudflare.acme.email=${ACME_EMAIL}"
- "--certificatesresolvers.cloudflare.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.cloudflare.acme.dnschallenge=true"
- "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare"
# Logging
- "--log.level=INFO"
- "--accesslog=true"
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/traefik-light.png"
folder.view3: "Networking"
networks:
traefik_lan:
external: true
name: br0
traefik_proxy:
external: true
+1
View File
@@ -0,0 +1 @@
local-proxy
+33 -21
View File
@@ -22,6 +22,8 @@ services:
- /mnt/user/jellyfin-media/tv-shows:/media - /mnt/user/jellyfin-media/tv-shows:/media
- /mnt/user/jellyfin-media/movies:/media2 - /mnt/user/jellyfin-media/movies:/media2
- /mnt/user/jellyfin-media/books:/media3 - /mnt/user/jellyfin-media/books:/media3
networks:
- traefik_proxy
ports: ports:
- 8096:8096 - 8096:8096
- 7359:7359/udp # auto-discovery - 7359:7359/udp # auto-discovery
@@ -30,21 +32,15 @@ services:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/jellyfin.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/jellyfin.png"
net.unraid.docker.webui: "https://${JELLYFIN_FULL_DOMAIN}" net.unraid.docker.webui: "https://${JELLYFIN_FULL_DOMAIN}"
folder.view3: "Services" folder.view3: "Services"
# HOMEPAGE # local proxy
homepage.group: Media traefik.enable: true
homepage.name: Jellyfin traefik.http.services.tv.loadbalancer.server.port: 8096
homepage.icon: jellyfin.png traefik.http.routers.tv.rule: "Host(`${JELLYFIN_FULL_DOMAIN}`)"
homepage.href: "https://${JELLYFIN_FULL_DOMAIN}" traefik.http.routers.tv.entrypoints: websecure
homepage.description: Media server traefik.http.routers.tv.tls: true
# widget traefik.http.routers.tv.tls.certresolver: cloudflare
homepage.widget.type: jellyfin traefik.http.routers.tv.tls.domains[0].main: "*.homecube.org"
homepage.widget.version: 2
homepage.widget.enableBlocks: true
homepage.widget.enableMediaControl: false
homepage.widget.expandOneStreamToTwoRows: false
homepage.widget.url: http://10.0.0.1:8096
homepage.widget.key: ${JELLYFIN_API_KEY}
lms: lms:
image: epoupon/lms image: epoupon/lms
@@ -57,6 +53,7 @@ services:
- /mnt/user/nextcloud-data/tonitrus/files/music:/music:ro - /mnt/user/nextcloud-data/tonitrus/files/music:/music:ro
networks: networks:
- pangolin - pangolin
- traefik_proxy
labels: labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png"
net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN}" net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN}"
@@ -84,12 +81,14 @@ services:
pangolin.public-resources.lightweight-music-server.rules[0].match: "path" pangolin.public-resources.lightweight-music-server.rules[0].match: "path"
pangolin.public-resources.lightweight-music-server.rules[0].value: "/rest/*" # OpenSubsonicAPI pangolin.public-resources.lightweight-music-server.rules[0].value: "/rest/*" # OpenSubsonicAPI
# HOMEPAGE # local proxy
homepage.group: Media traefik.enable: true
homepage.name: LMS traefik.http.services.music.loadbalancer.server.port: 5082
homepage.icon: navidrome.png traefik.http.routers.music.rule: "Host(`${LMS_FULL_DOMAIN}`)"
homepage.href: "https://${LMS_FULL_DOMAIN}" traefik.http.routers.music.entrypoints: websecure
homepage.description: Lightweight Music Server traefik.http.routers.music.tls: true
traefik.http.routers.music.tls.certresolver: cloudflare
traefik.http.routers.music.tls.domains[0].main: "*.homecube.org"
lms2: lms2:
image: epoupon/lms image: epoupon/lms
@@ -102,6 +101,7 @@ services:
- /mnt/user/volume1/music:/music:ro - /mnt/user/volume1/music:/music:ro
networks: networks:
- pangolin - pangolin
- traefik_proxy
labels: labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/lyrion-music-server.png"
net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN_2}" net.unraid.docker.webui: "https://${LMS_FULL_DOMAIN_2}"
@@ -129,7 +129,19 @@ services:
pangolin.public-resources.lightweight-music-server-2.rules[0].match: "path" pangolin.public-resources.lightweight-music-server-2.rules[0].match: "path"
pangolin.public-resources.lightweight-music-server-2.rules[0].value: "/rest/*" # OpenSubsonicAPI pangolin.public-resources.lightweight-music-server-2.rules[0].value: "/rest/*" # OpenSubsonicAPI
# local proxy
traefik.enable: true
traefik.http.services.music2.loadbalancer.server.port: 5082
traefik.http.routers.music2.rule: "Host(`${LMS_FULL_DOMAIN_2}`)"
traefik.http.routers.music2.entrypoints: websecure
traefik.http.routers.music2.tls: true
traefik.http.routers.music2.tls.certresolver: cloudflare
traefik.http.routers.music2.tls.domains[0].main: "*.homecube.org"
networks: networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
+28
View File
@@ -14,6 +14,9 @@ services:
- /mnt/user/appdata/couchdb-obsidian-livesync/etc/local.d:/opt/couchdb/etc/local.d - /mnt/user/appdata/couchdb-obsidian-livesync/etc/local.d:/opt/couchdb/etc/local.d
ports: ports:
- "5984:5984" - "5984:5984"
networks:
- default
- traefik_proxy
restart: unless-stopped restart: unless-stopped
labels: labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/couchdb.png" net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/couchdb.png"
@@ -21,6 +24,15 @@ services:
net.unraid.docker.shell: bash net.unraid.docker.shell: bash
folder.view3: "Databases" folder.view3: "Databases"
# local proxy
traefik.enable: true
traefik.http.services.obsidian.loadbalancer.server.port: 5984
traefik.http.routers.obsidian.rule: "Host(`obsidian.homecube.org`)"
traefik.http.routers.obsidian.entrypoints: websecure
traefik.http.routers.obsidian.tls: true
traefik.http.routers.obsidian.tls.certresolver: cloudflare
traefik.http.routers.obsidian.tls.domains[0].main: "*.homecube.org"
obsidian: obsidian:
image: lscr.io/linuxserver/obsidian:latest image: lscr.io/linuxserver/obsidian:latest
container_name: obsidian container_name: obsidian
@@ -32,9 +44,25 @@ services:
- /mnt/user/appdata/obsidian/config:/config - /mnt/user/appdata/obsidian/config:/config
ports: ports:
- 3000:3000 - 3000:3000
networks:
- default
- traefik_proxy
shm_size: "1gb" shm_size: "1gb"
labels: labels:
net.unraid.docker.webui: "https://notes.obsidian.homecube.org" net.unraid.docker.webui: "https://notes.obsidian.homecube.org"
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/obsidian-logo.png" net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/obsidian-logo.png"
net.unraid.docker.shell: bash net.unraid.docker.shell: bash
folder.view3: "Services" folder.view3: "Services"
# local proxy
traefik.enable: true
traefik.http.services.notes-obsidian.loadbalancer.server.port: 3000
traefik.http.routers.notes-obsidian.rule: "Host(`notes.obsidian.homecube.org`)"
traefik.http.routers.notes-obsidian.entrypoints: websecure
traefik.http.routers.notes-obsidian.tls: true
traefik.http.routers.notes-obsidian.tls.certresolver: cloudflare
traefik.http.routers.notes-obsidian.tls.domains[0].main: "*.homecube.org"
networks:
traefik_proxy:
external: true
+12 -6
View File
@@ -4,6 +4,7 @@ services:
container_name: vaultwarden container_name: vaultwarden
networks: networks:
- pangolin - pangolin
- traefik_proxy
environment: environment:
DOMAIN: "https://${DOMAIN}" DOMAIN: "https://${DOMAIN}"
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN} ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
@@ -45,14 +46,19 @@ services:
pangolin.public-resources.vaultwarden-server.rules[3].match: "path" pangolin.public-resources.vaultwarden-server.rules[3].match: "path"
pangolin.public-resources.vaultwarden-server.rules[3].value: "/admin/*" pangolin.public-resources.vaultwarden-server.rules[3].value: "/admin/*"
# HOMEPAGE # local proxy
homepage.group: Security traefik.enable: true
homepage.name: "${RESOURCE_NAME}" traefik.http.services.vaultwarden.loadbalancer.server.port: 80
homepage.icon: vaultwarden.png traefik.http.routers.vaultwarden.rule: "Host(`${DOMAIN}`)"
homepage.href: "https://${DOMAIN}" traefik.http.routers.vaultwarden.entrypoints: websecure
homepage.description: Password Manager traefik.http.routers.vaultwarden.tls: true
traefik.http.routers.vaultwarden.tls.certresolver: cloudflare
traefik.http.routers.vaultwarden.tls.domains[0].main: "*.homecube.org"
networks: networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
+1 -1
View File
@@ -1,6 +1,6 @@
services: services:
newt: newt:
image: fosrl/newt:1.14.0 image: fosrl/newt:1.16.0
networks: networks:
- pangolin - pangolin
container_name: newt container_name: newt
+8 -6
View File
@@ -14,12 +14,14 @@ services:
net.unraid.docker.webui: "https://home-assistant.homecube.org" net.unraid.docker.webui: "https://home-assistant.homecube.org"
folder.view3: "Services" folder.view3: "Services"
# HOMEPAGE # local proxy
homepage.group: Infrastructure traefik.enable: true
homepage.name: Home Assistant traefik.http.routers.home-assistant.rule: "Host(`home-assistant.homecube.org`)"
homepage.icon: home-assistant.png traefik.http.routers.home-assistant.entrypoints: websecure
homepage.href: https://home-assistant.homecube.org traefik.http.routers.home-assistant.tls: true
homepage.description: Smart Home traefik.http.routers.home-assistant.tls.certresolver: cloudflare
traefik.http.routers.home-assistant.tls.domains[0].main: "*.homecube.org"
traefik.http.services.home-assistant.loadbalancer.server.url: "http://10.0.0.1:8123"
# hass_otbr: # hass_otbr:
# container_name: hass_otbr # container_name: hass_otbr
+12 -6
View File
@@ -29,6 +29,7 @@ services:
networks: networks:
- default - default
- pangolin - pangolin
- traefik_proxy
environment: environment:
- ADMINMAIL=${ADMIN_EMAIL} - ADMINMAIL=${ADMIN_EMAIL}
- ADMINPASS=${ADMIN_PASSWORD} - ADMINPASS=${ADMIN_PASSWORD}
@@ -60,14 +61,19 @@ services:
pangolin.public-resources.kimai-time-tracking.targets[0].healthcheck.interval: 30 pangolin.public-resources.kimai-time-tracking.targets[0].healthcheck.interval: 30
pangolin.public-resources.kimai-time-tracking.targets[0].healthcheck.timeout: 5 pangolin.public-resources.kimai-time-tracking.targets[0].healthcheck.timeout: 5
# HOMEPAGE # local proxy
homepage.group: Productivity traefik.enable: true
homepage.name: Kimai traefik.http.services.kimai.loadbalancer.server.port: 8001
homepage.icon: kimai.png traefik.http.routers.kimai.rule: "Host(`${DOMAIN}`)"
homepage.href: https://${DOMAIN} traefik.http.routers.kimai.entrypoints: websecure
homepage.description: Time Tracking traefik.http.routers.kimai.tls: true
traefik.http.routers.kimai.tls.certresolver: cloudflare
traefik.http.routers.kimai.tls.domains[0].main: "*.homecube.org"
networks: networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
+13 -10
View File
@@ -8,6 +8,7 @@ services:
- /dev/net/tun:/dev/net/tun - /dev/net/tun:/dev/net/tun
networks: networks:
- pangolin - pangolin
- traefik_proxy
ports: ports:
- 47965:47965 - 47965:47965
- 47965:47965/udp - 47965:47965/udp
@@ -55,6 +56,15 @@ services:
pangolin.public-resources.qbittorrent-torrent.targets[0].healthcheck.interval: 30 pangolin.public-resources.qbittorrent-torrent.targets[0].healthcheck.interval: 30
pangolin.public-resources.qbittorrent-torrent.targets[0].healthcheck.timeout: 5 pangolin.public-resources.qbittorrent-torrent.targets[0].healthcheck.timeout: 5
# local proxy
traefik.enable: true
traefik.http.services.torrent.loadbalancer.server.port: 8080
traefik.http.routers.torrent.rule: "Host(`${DOMAIN}`)"
traefik.http.routers.torrent.entrypoints: websecure
traefik.http.routers.torrent.tls: true
traefik.http.routers.torrent.tls.certresolver: cloudflare
traefik.http.routers.torrent.tls.domains[0].main: "*.homecube.org"
qbittorrent: qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent container_name: qbittorrent
@@ -74,17 +84,10 @@ services:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/qbittorrent-icon.png" net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/qbittorrent-icon.png"
folder.view3: "Services" folder.view3: "Services"
# HOMEPAGE
homepage.group: Downloads
homepage.name: qBittorrent
homepage.icon: qbittorrent.png
homepage.href: https://${DOMAIN}
homepage.description: Torrents
# widget
homepage.widget.type: qbittorrent
homepage.widget.url: http://10.0.0.1:8080
networks: networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true
+19 -7
View File
@@ -5,6 +5,7 @@ services:
networks: networks:
- default - default
- pangolin - pangolin
- traefik_proxy
environment: environment:
- USER_UID=1000 - USER_UID=1000
- USER_GID=1000 - USER_GID=1000
@@ -65,13 +66,21 @@ services:
pangolin.public-resources.gitea-version-control-ssh.targets[0].hostname: "gitea" pangolin.public-resources.gitea-version-control-ssh.targets[0].hostname: "gitea"
pangolin.public-resources.gitea-version-control-ssh.targets[0].port: 22 pangolin.public-resources.gitea-version-control-ssh.targets[0].port: 22
# HOMEPAGE # local proxy
homepage.group: Development traefik.enable: true
homepage.name: Gitea traefik.http.services.gitea.loadbalancer.server.port: 3000
homepage.icon: gitea.png traefik.http.routers.gitea.rule: "Host(`${DOMAIN}`)"
homepage.href: "https://${DOMAIN}" traefik.http.routers.gitea.entrypoints: websecure
homepage.description: Git server traefik.http.routers.gitea.tls: true
traefik.http.routers.gitea.tls.certresolver: cloudflare
traefik.http.routers.gitea.tls.domains[0].main: "*.homecube.org"
# local SSH
traefik.tcp.routers.gitea-ssh.entrypoints: gitea-ssh
traefik.tcp.routers.gitea-ssh.rule: "HostSNI(`*`)"
traefik.tcp.routers.gitea-ssh.service: gitea-ssh
traefik.tcp.services.gitea-ssh.loadbalancer.server.port: 22
runner: runner:
image: docker.io/gitea/act_runner:latest image: docker.io/gitea/act_runner:latest
container_name: gitea-runner container_name: gitea-runner
@@ -97,3 +106,6 @@ networks:
pangolin: pangolin:
name: pangolin_net name: pangolin_net
external: true external: true
traefik_proxy:
external: true