Compare commits
2
Commits
59662110a6
...
7dee12c6a6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dee12c6a6 | ||
|
|
aabb36a199 |
@@ -17,15 +17,15 @@ services:
|
||||
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png'
|
||||
net.unraid.docker.webui: ''
|
||||
net.unraid.docker.shell: ''
|
||||
appapi-dsp:
|
||||
proxy:
|
||||
labels:
|
||||
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.webui: ''
|
||||
net.unraid.docker.webui: 'https://${DOMAIN}'
|
||||
net.unraid.docker.shell: ''
|
||||
nc-talk:
|
||||
euro-office:
|
||||
labels:
|
||||
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.webui: ''
|
||||
net.unraid.docker.webui: 'https://${OFFICE_DOMAIN}'
|
||||
net.unraid.docker.shell: ''
|
||||
|
||||
+57
-70
@@ -24,18 +24,41 @@ services:
|
||||
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png"
|
||||
folder.view3: "Databases"
|
||||
|
||||
appapi-dsp:
|
||||
image: ghcr.io/nextcloud/nextcloud-appapi-dsp:release
|
||||
networks:
|
||||
- nextcloud-exapps
|
||||
environment:
|
||||
- NC_HAPROXY_PASSWORD=${APPAPI_DSP_PASSWORD}
|
||||
proxy:
|
||||
image: caddy:latest
|
||||
container_name: nextcloud-proxy
|
||||
hostname: nextcloud-proxy
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
privileged: true
|
||||
- /mnt/user/appdata/nextcloud/proxy/Caddyfile:/etc/caddy/Caddyfile
|
||||
depends_on:
|
||||
- app
|
||||
networks:
|
||||
- default
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
labels:
|
||||
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:
|
||||
image: nextcloud:34
|
||||
@@ -43,11 +66,6 @@ services:
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
- appapi-dsp
|
||||
networks:
|
||||
- default
|
||||
- nextcloud-exapps
|
||||
- pangolin
|
||||
volumes:
|
||||
- /mnt/user/appdata/nextcloud/app:/var/www/html
|
||||
- /mnt/user/nextcloud-data:/var/www/html/data
|
||||
@@ -64,80 +82,49 @@ services:
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD}
|
||||
|
||||
- APACHE_DISABLE_REWRITE_IP=1
|
||||
- APACHE_BODY_LIMIT=0
|
||||
- TRUSTED_PROXIES=172.28.0.2
|
||||
labels:
|
||||
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}"
|
||||
folder.view3: "Services"
|
||||
|
||||
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"
|
||||
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
|
||||
euro-office:
|
||||
image: ghcr.io/euro-office/documentserver:latest
|
||||
container_name: euro-office
|
||||
networks:
|
||||
- default
|
||||
- pangolin
|
||||
ports:
|
||||
- 3478:3478/tcp
|
||||
- 3478:3478/udp
|
||||
- traefik_proxy
|
||||
environment:
|
||||
- NC_DOMAIN=${DOMAIN}
|
||||
- TALK_HOST=${TALK_HOST}
|
||||
- TURN_SECRET=${TURN_SECRET}
|
||||
- SIGNALING_SECRET=${SIGNALING_SECRET}
|
||||
- TZ=Europe/Vienna
|
||||
- TALK_PORT=3478
|
||||
- INTERNAL_SECRET=${INTERNAL_SECRET}
|
||||
- JWT_ENABLED=true
|
||||
- JWT_SECRET=${EURO_OFFICE_SECRET}
|
||||
labels:
|
||||
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"
|
||||
|
||||
pangolin.public-resources.nextcloud-hpb.name: "${HPB_RESOURCE_NAME}"
|
||||
pangolin.public-resources.nextcloud-hpb.full-domain: "${TALK_HOST}"
|
||||
pangolin.public-resources.nextcloud-hpb.protocol: "http"
|
||||
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.auth.sso-enabled: false
|
||||
pangolin.public-resources.euro-office.auth.sso-enabled: false
|
||||
|
||||
pangolin.public-resources.nextcloud-hpb.targets[0].method: "http"
|
||||
pangolin.public-resources.nextcloud-hpb.targets[0].hostname: "nextcloud-hpb"
|
||||
pangolin.public-resources.nextcloud-hpb.targets[0].port: 8081
|
||||
pangolin.public-resources.euro-office.targets[0].method: "http"
|
||||
pangolin.public-resources.euro-office.targets[0].hostname: "euro-office"
|
||||
pangolin.public-resources.euro-office.targets[0].port: 80
|
||||
|
||||
pangolin.public-resources.nextcloud-hpb-turn-tcp.name: "${HPB_RESOURCE_NAME} TURN TCP"
|
||||
pangolin.public-resources.nextcloud-hpb-turn-tcp.protocol: "tcp"
|
||||
pangolin.public-resources.nextcloud-hpb-turn-tcp.proxy-port: 3478
|
||||
pangolin.public-resources.nextcloud-hpb-turn-tcp.targets[0].hostname: "nextcloud-hpb"
|
||||
pangolin.public-resources.nextcloud-hpb-turn-tcp.targets[0].port: 3478
|
||||
|
||||
pangolin.public-resources.nextcloud-hpb-turn-udp.name: "${HPB_RESOURCE_NAME} TURN UDP"
|
||||
pangolin.public-resources.nextcloud-hpb-turn-udp.protocol: "udp"
|
||||
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
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.office.loadbalancer.server.port: 80
|
||||
traefik.http.routers.office.rule: "Host(`${OFFICE_DOMAIN}`)"
|
||||
traefik.http.routers.office.entrypoints: websecure
|
||||
traefik.http.routers.office.tls: true
|
||||
traefik.http.routers.office.tls.certresolver: cloudflare
|
||||
traefik.http.routers.office.tls.domains[0].main: "*.homecube.org"
|
||||
|
||||
networks:
|
||||
nextcloud-exapps:
|
||||
name: nextcloud-exapps
|
||||
driver: bridge
|
||||
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
services:
|
||||
it-tools:
|
||||
adguardhome:
|
||||
labels:
|
||||
net.unraid.docker.managed: 'composeman'
|
||||
net.unraid.docker.icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/it-tools.png'
|
||||
net.unraid.docker.webui: 'https://tools.homecube.org/'
|
||||
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'
|
||||
net.unraid.docker.shell: ''
|
||||
@@ -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
|
||||
@@ -66,6 +66,9 @@ services:
|
||||
- MAIL_FROM=${MAIL_FROM}
|
||||
volumes:
|
||||
- /mnt/user/appdata/pterodactyl-panel/data:/app/var/
|
||||
networks:
|
||||
- default
|
||||
- traefik_proxy
|
||||
ports:
|
||||
- "6001:80"
|
||||
depends_on:
|
||||
@@ -78,6 +81,15 @@ services:
|
||||
net.unraid.docker.webui: "https://game-servers.homecube.org"
|
||||
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:
|
||||
image: ghcr.io/pterodactyl/wings:latest
|
||||
container_name: pterodactyl-wings
|
||||
@@ -98,3 +110,7 @@ services:
|
||||
labels:
|
||||
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/pterodactyl.png"
|
||||
folder.view3: "Game Servers"
|
||||
|
||||
networks:
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -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: ''
|
||||
@@ -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 +0,0 @@
|
||||
homepage
|
||||
@@ -26,7 +26,6 @@ services:
|
||||
- ${UPLOAD_LOCATION}:/data
|
||||
- /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/Purplebunny/files/photos:/mnt/media/purplebunny-photos:ro # Mount External Library "Purplebunny Photos"
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
ports:
|
||||
- "2283:2283"
|
||||
@@ -41,6 +40,7 @@ services:
|
||||
networks:
|
||||
- default
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
labels:
|
||||
- net.unraid.docker.icon=https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/immich.png
|
||||
- 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-roles[0]=Member
|
||||
- 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
|
||||
|
||||
@@ -72,12 +73,14 @@ services:
|
||||
- pangolin.public-resources.immich-server.rules[1].match=path
|
||||
- pangolin.public-resources.immich-server.rules[1].value=/.well-known/immich
|
||||
|
||||
# HOMEPAGE
|
||||
- homepage.group=Media
|
||||
- homepage.name=Immich
|
||||
- homepage.icon=immich.png
|
||||
- homepage.href=https://${FULL_DOMAIN}
|
||||
- homepage.description=Photo management
|
||||
# local proxy
|
||||
- traefik.enable=true
|
||||
- traefik.http.services.immich.loadbalancer.server.port=2283
|
||||
- traefik.http.routers.immich.rule=Host(`${FULL_DOMAIN}`)
|
||||
- traefik.http.routers.immich.entrypoints=websecure
|
||||
- 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:
|
||||
container_name: immich_machine_learning
|
||||
@@ -134,3 +137,6 @@ networks:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
false
|
||||
@@ -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 +0,0 @@
|
||||
it-tools
|
||||
@@ -0,0 +1 @@
|
||||
true
|
||||
@@ -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: ''
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
local-proxy
|
||||
@@ -22,6 +22,8 @@ services:
|
||||
- /mnt/user/jellyfin-media/tv-shows:/media
|
||||
- /mnt/user/jellyfin-media/movies:/media2
|
||||
- /mnt/user/jellyfin-media/books:/media3
|
||||
networks:
|
||||
- traefik_proxy
|
||||
ports:
|
||||
- 8096:8096
|
||||
- 7359:7359/udp # auto-discovery
|
||||
@@ -31,20 +33,14 @@ services:
|
||||
net.unraid.docker.webui: "https://${JELLYFIN_FULL_DOMAIN}"
|
||||
folder.view3: "Services"
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Media
|
||||
homepage.name: Jellyfin
|
||||
homepage.icon: jellyfin.png
|
||||
homepage.href: "https://${JELLYFIN_FULL_DOMAIN}"
|
||||
homepage.description: Media server
|
||||
# widget
|
||||
homepage.widget.type: jellyfin
|
||||
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}
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.tv.loadbalancer.server.port: 8096
|
||||
traefik.http.routers.tv.rule: "Host(`${JELLYFIN_FULL_DOMAIN}`)"
|
||||
traefik.http.routers.tv.entrypoints: websecure
|
||||
traefik.http.routers.tv.tls: true
|
||||
traefik.http.routers.tv.tls.certresolver: cloudflare
|
||||
traefik.http.routers.tv.tls.domains[0].main: "*.homecube.org"
|
||||
|
||||
lms:
|
||||
image: epoupon/lms
|
||||
@@ -57,6 +53,7 @@ services:
|
||||
- /mnt/user/nextcloud-data/tonitrus/files/music:/music:ro
|
||||
networks:
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
labels:
|
||||
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}"
|
||||
@@ -84,12 +81,14 @@ services:
|
||||
pangolin.public-resources.lightweight-music-server.rules[0].match: "path"
|
||||
pangolin.public-resources.lightweight-music-server.rules[0].value: "/rest/*" # OpenSubsonicAPI
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Media
|
||||
homepage.name: LMS
|
||||
homepage.icon: navidrome.png
|
||||
homepage.href: "https://${LMS_FULL_DOMAIN}"
|
||||
homepage.description: Lightweight Music Server
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.music.loadbalancer.server.port: 5082
|
||||
traefik.http.routers.music.rule: "Host(`${LMS_FULL_DOMAIN}`)"
|
||||
traefik.http.routers.music.entrypoints: websecure
|
||||
traefik.http.routers.music.tls: true
|
||||
traefik.http.routers.music.tls.certresolver: cloudflare
|
||||
traefik.http.routers.music.tls.domains[0].main: "*.homecube.org"
|
||||
|
||||
lms2:
|
||||
image: epoupon/lms
|
||||
@@ -102,6 +101,7 @@ services:
|
||||
- /mnt/user/volume1/music:/music:ro
|
||||
networks:
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
labels:
|
||||
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}"
|
||||
@@ -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].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:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -14,6 +14,9 @@ services:
|
||||
- /mnt/user/appdata/couchdb-obsidian-livesync/etc/local.d:/opt/couchdb/etc/local.d
|
||||
ports:
|
||||
- "5984:5984"
|
||||
networks:
|
||||
- default
|
||||
- traefik_proxy
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
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
|
||||
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:
|
||||
image: lscr.io/linuxserver/obsidian:latest
|
||||
container_name: obsidian
|
||||
@@ -32,9 +44,25 @@ services:
|
||||
- /mnt/user/appdata/obsidian/config:/config
|
||||
ports:
|
||||
- 3000:3000
|
||||
networks:
|
||||
- default
|
||||
- traefik_proxy
|
||||
shm_size: "1gb"
|
||||
labels:
|
||||
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.shell: bash
|
||||
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
|
||||
|
||||
@@ -4,6 +4,7 @@ services:
|
||||
container_name: vaultwarden
|
||||
networks:
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
environment:
|
||||
DOMAIN: "https://${DOMAIN}"
|
||||
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].value: "/admin/*"
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Security
|
||||
homepage.name: "${RESOURCE_NAME}"
|
||||
homepage.icon: vaultwarden.png
|
||||
homepage.href: "https://${DOMAIN}"
|
||||
homepage.description: Password Manager
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.vaultwarden.loadbalancer.server.port: 80
|
||||
traefik.http.routers.vaultwarden.rule: "Host(`${DOMAIN}`)"
|
||||
traefik.http.routers.vaultwarden.entrypoints: websecure
|
||||
traefik.http.routers.vaultwarden.tls: true
|
||||
traefik.http.routers.vaultwarden.tls.certresolver: cloudflare
|
||||
traefik.http.routers.vaultwarden.tls.domains[0].main: "*.homecube.org"
|
||||
|
||||
networks:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
newt:
|
||||
image: fosrl/newt:1.14.0
|
||||
image: fosrl/newt:1.16.0
|
||||
networks:
|
||||
- pangolin
|
||||
container_name: newt
|
||||
|
||||
@@ -14,12 +14,14 @@ services:
|
||||
net.unraid.docker.webui: "https://home-assistant.homecube.org"
|
||||
folder.view3: "Services"
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Infrastructure
|
||||
homepage.name: Home Assistant
|
||||
homepage.icon: home-assistant.png
|
||||
homepage.href: https://home-assistant.homecube.org
|
||||
homepage.description: Smart Home
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.routers.home-assistant.rule: "Host(`home-assistant.homecube.org`)"
|
||||
traefik.http.routers.home-assistant.entrypoints: websecure
|
||||
traefik.http.routers.home-assistant.tls: true
|
||||
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:
|
||||
# container_name: hass_otbr
|
||||
|
||||
@@ -29,6 +29,7 @@ services:
|
||||
networks:
|
||||
- default
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
environment:
|
||||
- ADMINMAIL=${ADMIN_EMAIL}
|
||||
- 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.timeout: 5
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Productivity
|
||||
homepage.name: Kimai
|
||||
homepage.icon: kimai.png
|
||||
homepage.href: https://${DOMAIN}
|
||||
homepage.description: Time Tracking
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.kimai.loadbalancer.server.port: 8001
|
||||
traefik.http.routers.kimai.rule: "Host(`${DOMAIN}`)"
|
||||
traefik.http.routers.kimai.entrypoints: websecure
|
||||
traefik.http.routers.kimai.tls: true
|
||||
traefik.http.routers.kimai.tls.certresolver: cloudflare
|
||||
traefik.http.routers.kimai.tls.domains[0].main: "*.homecube.org"
|
||||
|
||||
networks:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
+13
-10
@@ -8,6 +8,7 @@ services:
|
||||
- /dev/net/tun:/dev/net/tun
|
||||
networks:
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
ports:
|
||||
- 47965:47965
|
||||
- 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.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:
|
||||
image: lscr.io/linuxserver/qbittorrent:latest
|
||||
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"
|
||||
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:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
@@ -5,6 +5,7 @@ services:
|
||||
networks:
|
||||
- default
|
||||
- pangolin
|
||||
- traefik_proxy
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
@@ -65,12 +66,20 @@ services:
|
||||
pangolin.public-resources.gitea-version-control-ssh.targets[0].hostname: "gitea"
|
||||
pangolin.public-resources.gitea-version-control-ssh.targets[0].port: 22
|
||||
|
||||
# HOMEPAGE
|
||||
homepage.group: Development
|
||||
homepage.name: Gitea
|
||||
homepage.icon: gitea.png
|
||||
homepage.href: "https://${DOMAIN}"
|
||||
homepage.description: Git server
|
||||
# local proxy
|
||||
traefik.enable: true
|
||||
traefik.http.services.gitea.loadbalancer.server.port: 3000
|
||||
traefik.http.routers.gitea.rule: "Host(`${DOMAIN}`)"
|
||||
traefik.http.routers.gitea.entrypoints: websecure
|
||||
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:
|
||||
image: docker.io/gitea/act_runner:latest
|
||||
@@ -97,3 +106,6 @@ networks:
|
||||
pangolin:
|
||||
name: pangolin_net
|
||||
external: true
|
||||
|
||||
traefik_proxy:
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user