80 lines
No EOL
2.5 KiB
YAML
80 lines
No EOL
2.5 KiB
YAML
networks:
|
|
netgrimoire:
|
|
external: true
|
|
|
|
services:
|
|
frontend:
|
|
image: ghcr.io/pouzor/homelable-frontend:latest
|
|
networks:
|
|
- netgrimoire
|
|
environment:
|
|
- VITE_API_URL=https://homelable-api.netgrimoire.com
|
|
deploy:
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == znas
|
|
labels:
|
|
# --- Caddy reverse proxy ---
|
|
caddy: homelable.netgrimoire.com
|
|
caddy.reverse_proxy: "{{upstreams 80}}"
|
|
# --- Homepage ---
|
|
homepage.group: Tools
|
|
homepage.name: Homelable
|
|
homepage.icon: homelable.png
|
|
homepage.href: https://homelable.netgrimoire.com
|
|
homepage.description: Homelab infrastructure visualizer
|
|
# --- Uptime Kuma ---
|
|
kuma.homelable.http.url: https://homelable.netgrimoire.com
|
|
|
|
backend:
|
|
image: ghcr.io/pouzor/homelable-backend:latest
|
|
networks:
|
|
- netgrimoire
|
|
volumes:
|
|
- /DockerVol/homelable/data:/app/data
|
|
environment:
|
|
- SECRET_KEY=${SECRET_KEY}
|
|
- AUTH_USERNAME=${AUTH_USERNAME}
|
|
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
|
|
- SCANNER_RANGES=${SCANNER_RANGES:-["192.168.3.0/24","192.168.4.0/24","192.168.5.0/24"]}
|
|
- STATUS_CHECKER_INTERVAL=${STATUS_CHECKER_INTERVAL:-60}
|
|
cap_add:
|
|
- NET_RAW
|
|
- NET_ADMIN
|
|
deploy:
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == znas
|
|
labels:
|
|
# --- Caddy reverse proxy ---
|
|
caddy: homelable-api.netgrimoire.com
|
|
caddy.reverse_proxy: "{{upstreams 8000}}"
|
|
# --- Uptime Kuma ---
|
|
kuma.homelable-api.http.url: https://homelable-api.netgrimoire.com/health
|
|
|
|
mcp:
|
|
image: ghcr.io/pouzor/homelable-mcp:latest
|
|
networks:
|
|
- netgrimoire
|
|
environment:
|
|
# Authenticates external MCP clients (Open WebUI, Claude Code, n8n)
|
|
- MCP_API_KEY=${MCP_API_KEY}
|
|
# Authenticates MCP server -> backend (internal only, never exposed)
|
|
- MCP_SERVICE_KEY=${MCP_SERVICE_KEY}
|
|
- BACKEND_URL=http://backend:8000
|
|
deploy:
|
|
replicas: 1
|
|
placement:
|
|
constraints:
|
|
- node.hostname == znas
|
|
labels:
|
|
# --- Caddy reverse proxy ---
|
|
# Exposed for Claude Code on remote machines — remove label if LAN-only preferred
|
|
caddy: homelable-mcp.netgrimoire.com
|
|
caddy.reverse_proxy: "{{upstreams 8001}}"
|
|
# --- Uptime Kuma ---
|
|
kuma.homelable-mcp.http.url: https://homelable-mcp.netgrimoire.com/health
|
|
# --- DIUN image update notifications ---
|
|
diun.enable: "true" |