feat: add management stack (portainer, uptime-kuma, homarr)

Add portainer, uptime-kuma, and homarr on a new 'management' network, with caddy joined to it and internal-only Caddy routes for portainer/uptime/homarr/router. Widen the internal_only allowlist to also accept 172.16.0.0/12 (Docker networks) and 127.0.0.1 so container-originated and local checks pass the LAN gate.
This commit is contained in:
ginnoir
2026-06-03 04:06:55 -05:00
parent 24e0f870dd
commit 16b08bad8a
2 changed files with 63 additions and 1 deletions
+24 -1
View File
@@ -11,7 +11,7 @@
# Reusable matcher — blocks anything not on the LAN. # Reusable matcher — blocks anything not on the LAN.
# Usage: import internal_only inside any site block. # Usage: import internal_only inside any site block.
(internal_only) { (internal_only) {
@blocked not remote_ip 192.168.1.0/24 @blocked not remote_ip 192.168.1.0/24 172.16.0.0/12 127.0.0.1
respond @blocked "Access denied" 403 respond @blocked "Access denied" 403
} }
@@ -208,3 +208,26 @@ auth.ginnoir.com {
dev.ginnoir.com { dev.ginnoir.com {
reverse_proxy 192.168.1.74:3000 reverse_proxy 192.168.1.74:3000
} }
# =============================================================
# MANAGEMENT — internal only
# =============================================================
portainer.ginnoir.com {
import internal_only
reverse_proxy portainer:9000
}
uptime.ginnoir.com {
import internal_only
reverse_proxy uptime-kuma:3001
}
homarr.ginnoir.com {
import internal_only
reverse_proxy homarr:7575
}
router.ginnoir.com {
import internal_only
reverse_proxy 192.168.1.1
}
+39
View File
@@ -75,6 +75,7 @@ services:
- media - media
- famapp - famapp
- authentik - authentik
- management
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"
@@ -594,6 +595,43 @@ services:
depends_on: depends_on:
- hbbr - hbbr
# ============================================================
# MANAGEMENT
# ============================================================
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
restart: unless-stopped
networks:
- management
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /config/portainer:/data
uptime-kuma:
container_name: uptime_kuma
image: louislam/uptime-kuma:2
restart: unless-stopped
networks:
- management
volumes:
- /config/uptime-kuma:/app/data
- /var/run/docker.sock:/var/run/docker.sock:ro
homarr:
container_name: homarr
image: ghcr.io/homarr-labs/homarr:latest
restart: unless-stopped
environment:
- SECRET_ENCRYPTION_KEY=98989838bf06c9e42d77944ce848963a22ab316b55a09b0d199652ef0934394f
networks:
- management
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /config/homarr/configs:/app/data/configs
- /config/homarr/icons:/app/public/icons
- /config/homarr/data:/data
# ============================================================ # ============================================================
# UTILITIES # UTILITIES
# ============================================================ # ============================================================
@@ -788,6 +826,7 @@ networks:
media: media:
famapp: famapp:
authentik: authentik:
management:
volumes: volumes:
minio_data: minio_data: