digraph DockerTraefikDynu { graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.9, ranksep=1.6, fontname="Helvetica", concentrate=true, newrank=true]; node [fontname="Helvetica", fontsize=11, style="rounded,filled"]; edge [fontname="Helvetica", fontsize=9, color="#334155"]; "dynu" [label="Dynu / Public DNS", shape=box, fillcolor="#fde68a"]; "svc:traefik" [label="Traefik", shape=box, fillcolor="#bfdbfe"]; "dynu" -> "svc:traefik" [penwidth=1.6]; "svc:authelia" [label="authelia [TLS]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:authelia" [penwidth=1.4]; "dns:auth." [label="auth.", shape=note, fillcolor="#fef3c7"]; "dns:auth." -> "dynu"; "svc:gitea" [label="gitea :3000 [TLS]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:gitea" [penwidth=1.4]; "dns:gitea." [label="gitea.", shape=note, fillcolor="#fef3c7"]; "dns:gitea." -> "dynu"; "svc:gotify" [label="gotify :80", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:gotify" [penwidth=1.4]; "dns:gotify." [label="gotify.", shape=note, fillcolor="#fef3c7"]; "dns:gotify." -> "dynu"; "svc:grafana" [label="grafana :3000", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:grafana" [penwidth=1.4]; "dns:grafana." [label="grafana.", shape=note, fillcolor="#fef3c7"]; "dns:grafana." -> "dynu"; "svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:grampsweb" [penwidth=1.4]; "dns:familytree." [label="familytree.", shape=note, fillcolor="#fef3c7"]; "dns:familytree." -> "dynu"; "svc:influxdb" [label="influxdb :8086 [authelia]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:influxdb" [penwidth=1.4]; "dns:influxdb." [label="influxdb.", shape=note, fillcolor="#fef3c7"]; "dns:influxdb." -> "dynu"; "svc:monitor-kuma" [label="monitor-kuma [TLS]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:monitor-kuma" [penwidth=1.4]; "dns:monitor-kuma." [label="monitor-kuma.", shape=note, fillcolor="#fef3c7"]; "dns:monitor-kuma." -> "dynu"; "svc:mtls-bridge" [label="mtls-bridge :8080 [mTLS]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:mtls-bridge" [penwidth=1.4]; "dns:mtls-bridge." [label="mtls-bridge.", shape=note, fillcolor="#fef3c7"]; "dns:mtls-bridge." -> "dynu"; "svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:nextcloud-webapp" [penwidth=1.4]; "dns:nextcloud." [label="nextcloud.", shape=note, fillcolor="#fef3c7"]; "dns:nextcloud." -> "dynu"; "svc:node-red" [label="node-red :1880 [authelia]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:node-red" [penwidth=1.4]; "dns:node-red." [label="node-red.", shape=note, fillcolor="#fef3c7"]; "dns:node-red." -> "dynu"; "svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:passbolt-webapp" [penwidth=1.4]; "dns:passbolt." [label="passbolt.", shape=note, fillcolor="#fef3c7"]; "dns:passbolt." -> "dynu"; "svc:portainer" [label="portainer :9000 [TLS]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:portainer" [penwidth=1.4]; "dns:portainer." [label="portainer.", shape=note, fillcolor="#fef3c7"]; "dns:portainer." -> "dynu"; "svc:prometheus" [label="prometheus :9090 [authelia]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:prometheus" [penwidth=1.4]; "dns:prometheus." [label="prometheus.", shape=note, fillcolor="#fef3c7"]; "dns:prometheus." -> "dynu"; "svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:searxng-webapp" [penwidth=1.4]; "dns:searxng." [label="searxng.", shape=note, fillcolor="#fef3c7"]; "dns:searxng." -> "dynu"; "svc:traefik" [label="traefik [authelia]", shape=box, fillcolor="#dcfce7"]; "svc:traefik" -> "svc:traefik" [penwidth=1.4]; "dns:traefik." [label="traefik.", shape=note, fillcolor="#fef3c7"]; "dns:traefik." -> "dynu"; { rank=same; "dns:auth."; "dns:familytree."; "dns:gitea."; "dns:gotify."; "dns:grafana."; "dns:influxdb."; "dns:monitor-kuma."; "dns:mtls-bridge."; "dns:nextcloud."; "dns:node-red."; "dns:passbolt."; "dns:portainer."; "dns:prometheus."; "dns:searxng."; "dns:traefik."; } subgraph "cluster_networks" { label="Docker backend networks"; style="rounded,dashed"; color="#d1d5db"; "net:gramps" [label="gramps", shape=ellipse, fillcolor="#f8fafc"]; "net:monitor" [label="monitor", shape=ellipse, fillcolor="#f8fafc"]; "net:nextcloud" [label="nextcloud", shape=ellipse, fillcolor="#f8fafc"]; "net:passbolt" [label="passbolt", shape=ellipse, fillcolor="#f8fafc"]; "net:traefik" [label="traefik", shape=ellipse, fillcolor="#f8fafc"]; } "svc:authelia" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:gitea" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:gotify" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:grafana" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:grafana" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:grampsweb" -> "net:gramps" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:grampsweb" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:influxdb" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:influxdb" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:monitor-kuma" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:monitor-kuma" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:mtls-bridge" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:mtls-bridge" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:nextcloud-webapp" -> "net:nextcloud" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:nextcloud-webapp" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:node-red" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:node-red" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:passbolt-webapp" -> "net:passbolt" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:passbolt-webapp" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:portainer" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:prometheus" -> "net:monitor" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:prometheus" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:searxng-webapp" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; "svc:traefik" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; }