p1 variables first pass

This commit is contained in:
admin 2026-01-31 12:57:50 -07:00
parent 50bd8ad785
commit ec4a6b6793
5 changed files with 35 additions and 33 deletions

View file

@ -1,27 +1,27 @@
services: services:
homepage: homepage:
image: ghcr.io/gethomepage/homepage:latest image: ghcr.io/gethomepage/homepage:latest
container_name: homepage container_name: ${HOME_ROOT_NAME}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- /docker/homepage/config:/app/config - /docker/homepage/config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro - /var/run/docker.sock:/var/run/docker.sock:ro
networks: networks:
- homepage_internal # For local stack comms - ${DNS_INT_NETWORK}
- homepage_external # For Traefik Ingress - ${HOME_INT_NETWORK}
- dns_dns_internal # For talking to Technitium API (Cross-stack) - ${HOME_EXT_NETWORK}
labels: labels:
- "traefik.enable=true" - "traefik.enable=${HOME_TRAEFIK_ENABLED}"
- "traefik.docker.network=homepage_external" - "traefik.docker.network=${HOME_EXT_NETWORK}"
- "traefik.http.routers.homepage.rule=Host(`home.mapletree.email`)" - "traefik.http.routers.homepage.rule=Host(`${HOME_ROOT_NAME}.${HOME_DNS_SUFFIX}`)"
- "traefik.http.routers.homepage.entrypoints=web,websecure" - "traefik.http.routers.homepage.entrypoints=${TRAEFIK_ENTRY_POINTS}"
- "traefik.http.routers.homepage.tls.certresolver=myresolver" - "traefik.http.routers.homepage.tls.certresolver=${TRAEFIK_RESOLVER}"
- "traefik.http.services.homepage.loadbalancer.server.port=3000" - "traefik.http.services.homepage.loadbalancer.server.port=${HOME_TRAEFIK_PORT}"
networks: networks:
homepage_internal: ${HOME_INT_NETWORK}:
driver: bridge driver: bridge
homepage_external: ${HOME_EXT_NETWORK}:
driver: bridge
${DNS_INT_NETWORK}:
external: true external: true
dns_dns_internal:
external: true # Join the existing DNS backend network

View file

@ -8,7 +8,6 @@ services:
- NET_ADMIN - NET_ADMIN
- NET_BROADCAST - NET_BROADCAST
- NET_RAW - NET_RAW
volumes: volumes:
- /docker/keepalived/checks:/checks - /docker/keepalived/checks:/checks
- /docker/keepalived/config:/usr/local/etc/keepalived - /docker/keepalived/config:/usr/local/etc/keepalived

View file

@ -10,11 +10,11 @@ services:
sleep 300; sleep 300;
done" done"
environment: environment:
- RCLONE_CONFIG_MINIO_TYPE=s3 - RCLONE_CONFIG_MINIO_TYPE=${MINIO_TYPE}
- RCLONE_CONFIG_MINIO_PROVIDER=s3 - RCLONE_CONFIG_MINIO_PROVIDER=${MINIO_PROVIDER}
- RCLONE_CONFIG_MINIO_ACCESS_KEY_ID=admin - RCLONE_CONFIG_MINIO_ACCESS_KEY_ID=${MINIO_KEY}
- RCLONE_CONFIG_MINIO_SECRET_ACCESS_KEY=Pizzajam11 - RCLONE_CONFIG_MINIO_SECRET_ACCESS_KEY=${MINIO_SECRET}
- RCLONE_CONFIG_MINIO_ENDPOINT=http://172.16.201.208:9000 - RCLONE_CONFIG_MINIO_ENDPOINT=${MINIO_ENDPOINT}
volumes: volumes:
- /docker:/data:ro - /docker:/data:ro
restart: always restart: always

View file

@ -1,7 +1,7 @@
services: services:
dns: dns:
image: technitium/dns-server:latest image: technitium/dns-server:latest
container_name: dns-${NODE_ID} # Becomes dns-1 or dns-2 container_name: dns-${DNS_NODE_ID} # Becomes dns-1 or dns-2
restart: unless-stopped restart: unless-stopped
ports: ports:
- "53:53/udp" - "53:53/udp"
@ -9,22 +9,25 @@ services:
- "5381:5380/tcp" - "5381:5380/tcp"
environment: environment:
- TZ=America/Edmonton - TZ=America/Edmonton
- DNS_SERVER_DOMAIN=dns${NODE_ID}.mapletree.email # dns1... or dns2... - DNS_SERVER_DOMAIN=dns${$DNS_NODE_ID}.${TRAEFIK_DNS_SUFFIX} # dns1... or dns2...
- DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD} - DNS_SERVER_ADMIN_PASSWORD=${DNS_ADMIN_PASSWORD}
volumes: volumes:
# Updated path to match your new 'infrastructure' folder structure # Updated path to match your new 'infrastructure' folder structure
- /docker/core/dns/config:/etc/dns - /docker/core/dns/config:/etc/dns
networks: networks:
- dns_external - ${DNS_EXT_NETWORK}
- ${DNS_INT_NETWORK}
labels: labels:
- "traefik.enable=true" - "traefik.enable=${DNS_TRAEFIK_ENABLED}"
- "traefik.docker.network=dns_external" - "traefik.docker.network=${DNS_EXT_NETWORK}"
# Dynamic Router Name (dns1 vs dns2) # Dynamic Router Name (dns1 vs dns2)
- "traefik.http.routers.dns${NODE_ID}.rule=Host(`dns${NODE_ID}.mapletree.email`)" - "traefik.http.routers.dns${DNS_NODE_ID}.rule=Host(`dns${DNS_NODE_ID}.${TRAEFIK_DNS_SUFFIX}`)"
- "traefik.http.routers.dns${NODE_ID}.entrypoints=web,websecure" - "traefik.http.routers.dns${DNS_NODE_ID}.entrypoints=${TRAEFIK_ENTRY_POINTS}"
- "traefik.http.routers.dns${NODE_ID}.tls.certresolver=myresolver" - "traefik.http.routers.dns${DNS_NODE_ID}.tls.certresolver=${TRAEFIK_RESOLVER}"
- "traefik.http.services.dns${NODE_ID}.loadbalancer.server.port=5380" - "traefik.http.services.dns${DNS_NODE_ID}.loadbalancer.server.port=${DNS_TRAEFIK_PORT}"
networks: networks:
dns_external: ${DNS_EXT_NETWORK}:
driver: bridge
${DNS_INT_NETWORK}:
external: true external: true

View file

@ -1,7 +1,7 @@
services: services:
traefik: traefik:
image: traefik:latest image: traefik:latest
container_name: traefik container_name: traefik-node${TRAEFIK_NODE_ID}
network_mode: host network_mode: host
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - "host.docker.internal:host-gateway"
@ -18,7 +18,7 @@ services:
- "--entrypoints.web.address=:80" - "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443" - "--entrypoints.websecure.address=:443"
# Variables for flexibility # Variables for flexibility
- "--providers.docker.network=${DOCKER_NETWORKS}" - "--providers.docker.network=${HOME_EXT_NETWORK},${DNS_EXT_NETWORK}"
- "--providers.file.directory=/etc/traefik/dynamic" - "--providers.file.directory=/etc/traefik/dynamic"
- "--providers.file.watch=true" - "--providers.file.watch=true"
## DNS resolver ## DNS resolver