From 1e7bfd8250cc1cf7e4bda97b9c2838f80ab80430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Mon, 17 Aug 2026 14:42:25 +0200 Subject: [PATCH] feat: dogfood config.yml against the real stacks repo Replaces the placeholder bookmark links with real docker/database widgets for every container in the 10 Projekte/stacks compose files (traefik, coolify+redis+db, gitea+runner+db, code, immich+ml+redis+db, n8n+db, passbolt+db, umami+db, headscale, mailpit) - the actual "widgets for all services in Projekte/stacks" deliverable, not just an example. Also turns on label-based discovery against falcon_network as a safety net for anything added later without a config.yml update; manual widgets here still take precedence for anything already listed. Verified the config validates and renders with no schema errors, and that a widget pointed at a container that doesn't exist in this environment fails gracefully (a clean error result over the socket) rather than crashing - expected here since none of the real stacks run in this sandbox; wiring against the live falcon_network happens at actual deploy time. --- config/config.yml | 122 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 104 insertions(+), 18 deletions(-) diff --git a/config/config.yml b/config/config.yml index 04efbb0..d46344f 100644 --- a/config/config.yml +++ b/config/config.yml @@ -6,57 +6,143 @@ theme: variables: --pn-accent: "#38bdf8" +# Manual widgets below always take precedence over an auto-discovered one for +# the same container - this is on as a safety net for anything added to +# falcon_network later without a config.yml update, not to duplicate what's +# already listed here. Requires DOCKER_GID set correctly (see .env.example). +discovery: + docker: + enabled: true + network: falcon_network + groups: - name: Core Infra widgets: - - type: bookmark + - type: docker name: Traefik + containerName: traefik href: https://${TRAEFIK_HOST_TRAEFIK} - description: Reverse proxy dashboard + interval: 10s + # Swap for a `traefik` widget (router/entrypoint/middleware view) + # once the API is enabled - see Traefik's --api.dashboard docs. - - type: bookmark + - type: docker name: Coolify + containerName: coolify href: https://${TRAEFIK_HOST_COOLIFY} - description: Deployment platform + interval: 10s - name: Dev Tools widgets: - - type: bookmark + - type: docker name: Gitea + containerName: gitea href: https://${TRAEFIK_HOST_GITEA} - description: Git hosting & CI + interval: 10s - - type: bookmark + - type: docker + name: Gitea Runner + containerName: gitea_runner + showStats: true + interval: 15s + + - type: docker name: Code Server + containerName: code href: https://${TRAEFIK_HOST_CODE} - description: Browser IDE + interval: 10s - name: Apps widgets: - - type: bookmark + - type: docker name: Immich + containerName: immich href: https://${TRAEFIK_HOST_IMMICH} - description: Photo & video library + interval: 10s - - type: bookmark + - type: docker + name: Immich ML + containerName: immich_ml + interval: 15s + + - type: docker name: n8n + containerName: n8n href: https://${TRAEFIK_HOST_N8N} - description: Workflow automation + interval: 10s - - type: bookmark + - type: docker name: Passbolt + containerName: passbolt href: https://${TRAEFIK_HOST_PASSBOLT} - description: Password manager + interval: 10s - - type: bookmark + - type: docker name: Umami + containerName: umami href: https://${TRAEFIK_HOST_UMAMI} - description: Web analytics + interval: 10s - - type: bookmark + - type: docker name: Headscale + containerName: headscale href: https://${TRAEFIK_HOST_HEADSCALE} - description: VPN mesh control + interval: 10s + + - type: docker + name: Mailpit + containerName: mailpit + interval: 15s + + - name: Data Services + widgets: + - type: database + name: Coolify DB + containerName: coolify_db + engine: postgres + interval: 20s + + - type: database + name: Coolify Redis + containerName: coolify_redis + engine: redis + interval: 20s + + - type: database + name: Gitea DB + containerName: gitea_db + engine: postgres + interval: 20s + + - type: database + name: Immich DB + containerName: immich_db + engine: postgres + interval: 20s + + - type: database + name: Immich Redis + containerName: immich_redis + engine: redis + interval: 20s + + - type: database + name: n8n DB + containerName: n8n_db + engine: postgres + interval: 20s + + - type: database + name: Passbolt DB + containerName: passbolt_db + engine: postgres + interval: 20s + + - type: database + name: Umami DB + containerName: umami_db + engine: postgres + interval: 20s - name: Search widgets: