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.
# Usage: import internal_only inside any site block.
(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
}
@@ -208,3 +208,26 @@ auth.ginnoir.com {
dev.ginnoir.com {
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
- famapp
- authentik
- management
ports:
- "80:80"
- "443:443"
@@ -594,6 +595,43 @@ services:
depends_on:
- 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
# ============================================================
@@ -788,6 +826,7 @@ networks:
media:
famapp:
authentik:
management:
volumes:
minio_data: