diff --git a/docs/diagrams/docker-compose.svg b/docs/diagrams/docker-compose.svg index 1991277..4ccb12c 100644 --- a/docs/diagrams/docker-compose.svg +++ b/docs/diagrams/docker-compose.svg @@ -1,463 +1,463 @@ - - + Compose - + svc:authelia - -authelia + +authelia net:traefik - -traefik + +traefik svc:authelia->net:traefik - - + + svc:crowdsec - -crowdsec + +crowdsec svc:crowdsec->net:traefik - - + + svc:docker-socket-proxy - -docker-socket-proxy + +docker-socket-proxy net:monitor - -monitor + +monitor svc:docker-socket-proxy->net:monitor - - + + svc:docker-socket-proxy->net:traefik - - + + svc:docker-update-exporter - -docker-update-exporter + +docker-update-exporter svc:docker-update-exporter->net:monitor - - + + svc:error-pages - -error-pages + +error-pages svc:error-pages->net:traefik - - + + svc:gitea - -gitea + +gitea svc:gitea->net:traefik - - + + svc:gitea-runner - -gitea-runner + +gitea-runner svc:gitea-runner->net:traefik - - + + svc:gotify - -gotify + +gotify svc:gotify->net:traefik - - + + svc:grafana - -grafana + +grafana svc:grafana->net:monitor - - + + svc:grafana->net:traefik - - + + svc:gramps-redis - -gramps-redis + +gramps-redis net:gramps - -gramps + +gramps svc:gramps-redis->net:gramps - - + + svc:grampsweb - -grampsweb + +grampsweb svc:grampsweb->net:gramps - - + + svc:grampsweb->net:traefik - - + + svc:grampsweb_celery - -grampsweb_celery + +grampsweb_celery svc:grampsweb_celery->net:gramps - - + + svc:influxdb - -influxdb + +influxdb svc:influxdb->net:monitor - - + + svc:influxdb->net:traefik - - + + svc:monitor-kuma - -monitor-kuma + +monitor-kuma svc:monitor-kuma->net:monitor - - + + svc:monitor-kuma->net:traefik - - + + svc:mtls-bridge - -mtls-bridge + +mtls-bridge svc:mtls-bridge->net:monitor - - + + svc:mtls-bridge->net:traefik - - + + svc:nextcloud-db - -nextcloud-db + +nextcloud-db net:nextcloud - -nextcloud + +nextcloud svc:nextcloud-db->net:nextcloud - - + + svc:nextcloud-redis - -nextcloud-redis + +nextcloud-redis svc:nextcloud-redis->net:nextcloud - - + + svc:nextcloud-webapp - -nextcloud-webapp + +nextcloud-webapp svc:nextcloud-webapp->net:nextcloud - - + + svc:nextcloud-webapp->net:traefik - - + + svc:node-exporter - -node-exporter + +node-exporter svc:node-exporter->net:monitor - - + + svc:node-red - -node-red + +node-red svc:node-red->net:monitor - - + + svc:node-red->net:traefik - - + + svc:passbolt-db - -passbolt-db + +passbolt-db net:passbolt - -passbolt + +passbolt svc:passbolt-db->net:passbolt - - + + svc:passbolt-webapp - -passbolt-webapp + +passbolt-webapp svc:passbolt-webapp->net:passbolt - - + + svc:passbolt-webapp->net:traefik - - + + svc:pihole-exporter - -pihole-exporter + +pihole-exporter svc:pihole-exporter->net:monitor - - + + svc:portainer - -portainer + +portainer svc:portainer->net:traefik - - + + svc:prometheus - -prometheus + +prometheus svc:prometheus->net:monitor - - + + svc:prometheus->net:traefik - - + + svc:searxng-webapp - -searxng-webapp + +searxng-webapp svc:searxng-webapp->net:traefik - - + + svc:shift-recorder-web - -shift-recorder-web + +shift-recorder-web svc:shift-recorder-web->net:traefik - - + + svc:stockfill - -stockfill + +stockfill svc:stockfill->net:traefik - - + + svc:telegraf - -telegraf + +telegraf svc:telegraf->net:monitor - - + + svc:traefik - -traefik + +traefik svc:traefik->net:traefik - - + + diff --git a/docs/diagrams/docker-traefik-dynu.dot b/docs/diagrams/docker-traefik-dynu.dot index d8ce9bf..cab77a3 100644 --- a/docs/diagrams/docker-traefik-dynu.dot +++ b/docs/diagrams/docker-traefik-dynu.dot @@ -1,260 +1,130 @@ digraph DockerTraefikDynu { - graph [rankdir=LR, compound=true, splines=true, nodesep=0.5, ranksep=1.0, fontname="Helvetica"]; + graph [rankdir=LR, compound=true, splines=ortho, nodesep=0.7, ranksep=1.2, fontname="Helvetica", concentrate=true]; node [fontname="Helvetica", fontsize=10, style="rounded,filled"]; - edge [fontname="Helvetica", fontsize=9]; - "ext:dynu" [label="Dynu / Public DNS", shape=oval, fillcolor="#fde68a"]; - "svc:traefik" [label="traefik", shape=box, fillcolor="#bfdbfe"]; - "net:gramps" [label="gramps", shape=ellipse, fillcolor="#f3f4f6"]; - "net:monitor" [label="monitor", shape=ellipse, fillcolor="#f3f4f6"]; - "net:nextcloud" [label="nextcloud", shape=ellipse, fillcolor="#f3f4f6"]; - "net:passbolt" [label="passbolt", shape=ellipse, fillcolor="#f3f4f6"]; - "net:traefik" [label="traefik", shape=ellipse, fillcolor="#f3f4f6"]; - "svc:authelia" [label="authelia", shape=box, fillcolor="#dcfce7"]; - "svc:authelia" -> "net:traefik" [color="#6b7280"]; - "router:authelia" [label="router:authelia\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:authelia"; - "traefik-service:authelia" [label="service:authelia", shape=component, fillcolor="#fecaca"]; - "router:authelia" -> "traefik-service:authelia"; - "dns:service-1." [label="service-1.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-1."; - "dns:service-1." -> "router:authelia"; - "svc:crowdsec" [label="crowdsec", shape=box, fillcolor="#dcfce7"]; - "svc:crowdsec" -> "net:traefik" [color="#6b7280"]; - "svc:docker-socket-proxy" [label="docker-socket-proxy", shape=box, fillcolor="#dcfce7"]; - "svc:docker-socket-proxy" -> "net:monitor" [color="#6b7280"]; - "svc:docker-socket-proxy" -> "net:traefik" [color="#6b7280"]; - "svc:docker-update-exporter" [label="docker-update-exporter", shape=box, fillcolor="#dcfce7"]; - "svc:docker-update-exporter" -> "net:monitor" [color="#6b7280"]; - "svc:error-pages" [label="error-pages", shape=box, fillcolor="#dcfce7"]; - "svc:error-pages" -> "net:traefik" [color="#6b7280"]; - "router:error-pages-router" [label="router:error-pages-router\nentry:web tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:error-pages-router"; - "traefik-service:error-pages" [label="service:error-pages", shape=component, fillcolor="#fecaca"]; - "router:error-pages-router" -> "traefik-service:error-pages"; - "mw:error-pages-middleware" [label="error-pages-middleware", shape=hexagon, fillcolor="#ddd6fe"]; - "router:error-pages-router" -> "mw:error-pages-middleware" [style=dashed]; - "traefik-service:error-pages-service" [label="service:error-pages-service\nport:8080", shape=component, fillcolor="#fecaca"]; - "traefik-service:error-pages-service" -> "svc:error-pages"; - "svc:gitea" [label="gitea", shape=box, fillcolor="#dcfce7"]; - "svc:gitea" -> "net:traefik" [color="#6b7280"]; - "router:gitea" [label="router:gitea\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:gitea"; - "traefik-service:gitea" [label="service:gitea", shape=component, fillcolor="#fecaca"]; - "router:gitea" -> "traefik-service:gitea"; - "dns:service-2." [label="service-2.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-2."; - "dns:service-2." -> "router:gitea"; - "traefik-service:gitea" [label="service:gitea\nport:3000", shape=component, fillcolor="#fecaca"]; - "traefik-service:gitea" -> "svc:gitea"; - "svc:gitea-runner" [label="gitea-runner", shape=box, fillcolor="#dcfce7"]; - "svc:gitea-runner" -> "net:traefik" [color="#6b7280"]; - "svc:gotify" [label="gotify", shape=box, fillcolor="#dcfce7"]; - "svc:gotify" -> "net:traefik" [color="#6b7280"]; - "router:gotify" [label="router:gotify\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:gotify"; - "traefik-service:gotify" [label="service:gotify", shape=component, fillcolor="#fecaca"]; - "router:gotify" -> "traefik-service:gotify"; - "dns:service-3." [label="service-3.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-3."; - "dns:service-3." -> "router:gotify"; - "traefik-service:gotify" [label="service:gotify\nport:80", shape=component, fillcolor="#fecaca"]; - "traefik-service:gotify" -> "svc:gotify"; - "svc:grafana" [label="grafana", shape=box, fillcolor="#dcfce7"]; - "svc:grafana" -> "net:monitor" [color="#6b7280"]; - "svc:grafana" -> "net:traefik" [color="#6b7280"]; - "router:grafana" [label="router:grafana\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:grafana"; - "traefik-service:grafana" [label="service:grafana", shape=component, fillcolor="#fecaca"]; - "router:grafana" -> "traefik-service:grafana"; - "dns:service-4." [label="service-4.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-4."; - "dns:service-4." -> "router:grafana"; - "traefik-service:grafana" [label="service:grafana\nport:3000", shape=component, fillcolor="#fecaca"]; - "traefik-service:grafana" -> "svc:grafana"; - "svc:gramps-redis" [label="gramps-redis", shape=box, fillcolor="#dcfce7"]; - "svc:gramps-redis" -> "net:gramps" [color="#6b7280"]; + edge [fontname="Helvetica", fontsize=9, color="#334155"]; + "svc:traefik" [label="Traefik +(entrypoint)", shape=box, fillcolor="#bfdbfe"]; + "svc:authelia" [label="authelia +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:authelia" [penwidth=1.4]; + "dns:service-1." [label="service-1.", shape=note, fillcolor="#fef3c7"]; + "dns:service-1." -> "svc:traefik"; + "svc:gitea" [label="gitea +:3000 +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:gitea" [penwidth=1.4]; + "dns:service-2." [label="service-2.", shape=note, fillcolor="#fef3c7"]; + "dns:service-2." -> "svc:traefik"; + "svc:gotify" [label="gotify +:80", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:gotify" [penwidth=1.4]; + "dns:service-3." [label="service-3.", shape=note, fillcolor="#fef3c7"]; + "dns:service-3." -> "svc:traefik"; + "svc:grafana" [label="grafana +:3000", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:grafana" [penwidth=1.4]; + "dns:service-4." [label="service-4.", shape=note, fillcolor="#fef3c7"]; + "dns:service-4." -> "svc:traefik"; "svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dcfce7"]; - "svc:grampsweb" -> "net:gramps" [color="#6b7280"]; - "svc:grampsweb" -> "net:traefik" [color="#6b7280"]; - "router:gramps" [label="router:gramps\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:gramps"; - "traefik-service:grampsweb" [label="service:grampsweb", shape=component, fillcolor="#fecaca"]; - "router:gramps" -> "traefik-service:grampsweb"; - "dns:service-5." [label="service-5.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-5."; - "dns:service-5." -> "router:gramps"; - "traefik-service:gramps" [label="service:gramps\nport:5000", shape=component, fillcolor="#fecaca"]; - "traefik-service:gramps" -> "svc:grampsweb"; - "svc:grampsweb_celery" [label="grampsweb_celery", shape=box, fillcolor="#dcfce7"]; - "svc:grampsweb_celery" -> "net:gramps" [color="#6b7280"]; - "svc:influxdb" [label="influxdb", shape=box, fillcolor="#dcfce7"]; - "svc:influxdb" -> "net:monitor" [color="#6b7280"]; - "svc:influxdb" -> "net:traefik" [color="#6b7280"]; - "router:influxdb" [label="router:influxdb\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:influxdb"; - "traefik-service:influxdb" [label="service:influxdb", shape=component, fillcolor="#fecaca"]; - "router:influxdb" -> "traefik-service:influxdb"; - "dns:service-6." [label="service-6.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-6."; - "dns:service-6." -> "router:influxdb"; - "mw:authelia" [label="authelia", shape=hexagon, fillcolor="#ddd6fe"]; - "router:influxdb" -> "mw:authelia" [style=dashed]; - "traefik-service:influxdb" [label="service:influxdb\nport:8086", shape=component, fillcolor="#fecaca"]; - "traefik-service:influxdb" -> "svc:influxdb"; - "svc:monitor-kuma" [label="monitor-kuma", shape=box, fillcolor="#dcfce7"]; - "svc:monitor-kuma" -> "net:monitor" [color="#6b7280"]; - "svc:monitor-kuma" -> "net:traefik" [color="#6b7280"]; - "router:monitor" [label="router:monitor\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:monitor"; - "traefik-service:monitor-kuma" [label="service:monitor-kuma", shape=component, fillcolor="#fecaca"]; - "router:monitor" -> "traefik-service:monitor-kuma"; - "dns:service-7." [label="service-7.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-7."; - "dns:service-7." -> "router:monitor"; - "traefik-service:monitor" [label="service:monitor\nport:3001", shape=component, fillcolor="#fecaca"]; - "traefik-service:monitor" -> "svc:monitor-kuma"; - "svc:mtls-bridge" [label="mtls-bridge", shape=box, fillcolor="#dcfce7"]; - "svc:mtls-bridge" -> "net:monitor" [color="#6b7280"]; - "svc:mtls-bridge" -> "net:traefik" [color="#6b7280"]; - "router:mtls-bridge" [label="router:mtls-bridge\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:mtls-bridge"; - "traefik-service:mtls-bridge" [label="service:mtls-bridge", shape=component, fillcolor="#fecaca"]; - "router:mtls-bridge" -> "traefik-service:mtls-bridge"; - "dns:service-8." [label="service-8.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-8."; - "dns:service-8." -> "router:mtls-bridge"; - "mw:mtls-bridge-auth" [label="mtls-bridge-auth", shape=hexagon, fillcolor="#ddd6fe"]; - "router:mtls-bridge" -> "mw:mtls-bridge-auth" [style=dashed]; - "mw:mtls-bridge-cors" [label="mtls-bridge-cors", shape=hexagon, fillcolor="#ddd6fe"]; - "router:mtls-bridge" -> "mw:mtls-bridge-cors" [style=dashed]; - "router:mtls-bridge-preflight" [label="router:mtls-bridge-preflight\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:mtls-bridge-preflight"; - "traefik-service:mtls-bridge" [label="service:mtls-bridge", shape=component, fillcolor="#fecaca"]; - "router:mtls-bridge-preflight" -> "traefik-service:mtls-bridge"; - "dns:service-8." [label="service-8.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-8."; - "dns:service-8." -> "router:mtls-bridge-preflight"; - "mw:mtls-bridge-cors" [label="mtls-bridge-cors", shape=hexagon, fillcolor="#ddd6fe"]; - "router:mtls-bridge-preflight" -> "mw:mtls-bridge-cors" [style=dashed]; - "traefik-service:mtls-bridge" [label="service:mtls-bridge\nport:8080", shape=component, fillcolor="#fecaca"]; - "traefik-service:mtls-bridge" -> "svc:mtls-bridge"; - "svc:nextcloud-db" [label="nextcloud-db", shape=box, fillcolor="#dcfce7"]; - "svc:nextcloud-db" -> "net:nextcloud" [color="#6b7280"]; - "svc:nextcloud-redis" [label="nextcloud-redis", shape=box, fillcolor="#dcfce7"]; - "svc:nextcloud-redis" -> "net:nextcloud" [color="#6b7280"]; + "svc:traefik" -> "svc:grampsweb" [penwidth=1.4]; + "dns:service-5." [label="service-5.", shape=note, fillcolor="#fef3c7"]; + "dns:service-5." -> "svc:traefik"; + "svc:influxdb" [label="influxdb +:8086 +[authelia]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:influxdb" [penwidth=1.4]; + "dns:service-6." [label="service-6.", shape=note, fillcolor="#fef3c7"]; + "dns:service-6." -> "svc:traefik"; + "svc:monitor-kuma" [label="monitor-kuma +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:monitor-kuma" [penwidth=1.4]; + "dns:service-7." [label="service-7.", shape=note, fillcolor="#fef3c7"]; + "dns:service-7." -> "svc:traefik"; + "svc:mtls-bridge" [label="mtls-bridge +:8080 +[mTLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:mtls-bridge" [penwidth=1.4]; + "dns:service-8." [label="service-8.", shape=note, fillcolor="#fef3c7"]; + "dns:service-8." -> "svc:traefik"; "svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dcfce7"]; - "svc:nextcloud-webapp" -> "net:nextcloud" [color="#6b7280"]; - "svc:nextcloud-webapp" -> "net:traefik" [color="#6b7280"]; - "router:nextcloud" [label="router:nextcloud\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:nextcloud"; - "traefik-service:nextcloud-webapp" [label="service:nextcloud-webapp", shape=component, fillcolor="#fecaca"]; - "router:nextcloud" -> "traefik-service:nextcloud-webapp"; - "dns:service-9." [label="service-9.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-9."; - "dns:service-9." -> "router:nextcloud"; - "mw:nextcloud-dav" [label="nextcloud-dav", shape=hexagon, fillcolor="#ddd6fe"]; - "router:nextcloud" -> "mw:nextcloud-dav" [style=dashed]; - "mw:nextcloud-webfinger" [label="nextcloud-webfinger", shape=hexagon, fillcolor="#ddd6fe"]; - "router:nextcloud" -> "mw:nextcloud-webfinger" [style=dashed]; - "svc:node-exporter" [label="node-exporter", shape=box, fillcolor="#dcfce7"]; - "svc:node-exporter" -> "net:monitor" [color="#6b7280"]; - "svc:node-red" [label="node-red", shape=box, fillcolor="#dcfce7"]; - "svc:node-red" -> "net:monitor" [color="#6b7280"]; - "svc:node-red" -> "net:traefik" [color="#6b7280"]; - "router:node-red" [label="router:node-red\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:node-red"; - "traefik-service:node-red" [label="service:node-red", shape=component, fillcolor="#fecaca"]; - "router:node-red" -> "traefik-service:node-red"; - "dns:service-10." [label="service-10.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-10."; - "dns:service-10." -> "router:node-red"; - "mw:authelia" [label="authelia", shape=hexagon, fillcolor="#ddd6fe"]; - "router:node-red" -> "mw:authelia" [style=dashed]; - "traefik-service:node-red" [label="service:node-red\nport:1880", shape=component, fillcolor="#fecaca"]; - "traefik-service:node-red" -> "svc:node-red"; - "svc:passbolt-db" [label="passbolt-db", shape=box, fillcolor="#dcfce7"]; - "svc:passbolt-db" -> "net:passbolt" [color="#6b7280"]; + "svc:traefik" -> "svc:nextcloud-webapp" [penwidth=1.4]; + "dns:service-9." [label="service-9.", shape=note, fillcolor="#fef3c7"]; + "dns:service-9." -> "svc:traefik"; + "svc:node-red" [label="node-red +:1880 +[authelia]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:node-red" [penwidth=1.4]; + "dns:service-10." [label="service-10.", shape=note, fillcolor="#fef3c7"]; + "dns:service-10." -> "svc:traefik"; "svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dcfce7"]; - "svc:passbolt-webapp" -> "net:passbolt" [color="#6b7280"]; - "svc:passbolt-webapp" -> "net:traefik" [color="#6b7280"]; - "router:passbolt" [label="router:passbolt\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:passbolt"; - "traefik-service:passbolt-webapp" [label="service:passbolt-webapp", shape=component, fillcolor="#fecaca"]; - "router:passbolt" -> "traefik-service:passbolt-webapp"; - "dns:service-11." [label="service-11.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-11."; - "dns:service-11." -> "router:passbolt"; - "svc:pihole-exporter" [label="pihole-exporter", shape=box, fillcolor="#dcfce7"]; - "svc:pihole-exporter" -> "net:monitor" [color="#6b7280"]; - "svc:portainer" [label="portainer", shape=box, fillcolor="#dcfce7"]; - "svc:portainer" -> "net:traefik" [color="#6b7280"]; - "router:portainer" [label="router:portainer\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:portainer"; - "traefik-service:portainer" [label="service:portainer", shape=component, fillcolor="#fecaca"]; - "router:portainer" -> "traefik-service:portainer"; - "dns:service-12." [label="service-12.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-12."; - "dns:service-12." -> "router:portainer"; - "traefik-service:portainer" [label="service:portainer\nport:9000", shape=component, fillcolor="#fecaca"]; - "traefik-service:portainer" -> "svc:portainer"; - "svc:prometheus" [label="prometheus", shape=box, fillcolor="#dcfce7"]; - "svc:prometheus" -> "net:monitor" [color="#6b7280"]; - "svc:prometheus" -> "net:traefik" [color="#6b7280"]; - "router:prometheus" [label="router:prometheus\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:prometheus"; - "traefik-service:prometheus" [label="service:prometheus", shape=component, fillcolor="#fecaca"]; - "router:prometheus" -> "traefik-service:prometheus"; - "dns:service-13." [label="service-13.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-13."; - "dns:service-13." -> "router:prometheus"; - "mw:authelia" [label="authelia", shape=hexagon, fillcolor="#ddd6fe"]; - "router:prometheus" -> "mw:authelia" [style=dashed]; - "traefik-service:prometheus" [label="service:prometheus\nport:9090", shape=component, fillcolor="#fecaca"]; - "traefik-service:prometheus" -> "svc:prometheus"; + "svc:traefik" -> "svc:passbolt-webapp" [penwidth=1.4]; + "dns:service-11." [label="service-11.", shape=note, fillcolor="#fef3c7"]; + "dns:service-11." -> "svc:traefik"; + "svc:portainer" [label="portainer +:9000 +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:portainer" [penwidth=1.4]; + "dns:service-12." [label="service-12.", shape=note, fillcolor="#fef3c7"]; + "dns:service-12." -> "svc:traefik"; + "svc:prometheus" [label="prometheus +:9090 +[authelia]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:prometheus" [penwidth=1.4]; + "dns:service-13." [label="service-13.", shape=note, fillcolor="#fef3c7"]; + "dns:service-13." -> "svc:traefik"; "svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dcfce7"]; - "svc:searxng-webapp" -> "net:traefik" [color="#6b7280"]; - "router:searxng" [label="router:searxng\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:searxng"; - "traefik-service:searxng-webapp" [label="service:searxng-webapp", shape=component, fillcolor="#fecaca"]; - "router:searxng" -> "traefik-service:searxng-webapp"; - "dns:service-14." [label="service-14.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-14."; - "dns:service-14." -> "router:searxng"; - "traefik-service:searxng" [label="service:searxng\nport:8080", shape=component, fillcolor="#fecaca"]; - "traefik-service:searxng" -> "svc:searxng-webapp"; - "svc:shift-recorder-web" [label="shift-recorder-web", shape=box, fillcolor="#dcfce7"]; - "svc:shift-recorder-web" -> "net:traefik" [color="#6b7280"]; - "router:shifts" [label="router:shifts\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:shifts"; - "traefik-service:shift-recorder-web" [label="service:shift-recorder-web", shape=component, fillcolor="#fecaca"]; - "router:shifts" -> "traefik-service:shift-recorder-web"; - "dns:service-15." [label="service-15.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-15."; - "dns:service-15." -> "router:shifts"; - "traefik-service:shifts" [label="service:shifts\nport:80", shape=component, fillcolor="#fecaca"]; - "traefik-service:shifts" -> "svc:shift-recorder-web"; - "svc:stockfill" [label="stockfill", shape=box, fillcolor="#dcfce7"]; - "svc:stockfill" -> "net:traefik" [color="#6b7280"]; - "router:stockfill" [label="router:stockfill\nentry:websecure tls:true", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:stockfill"; - "traefik-service:stockfill" [label="service:stockfill", shape=component, fillcolor="#fecaca"]; - "router:stockfill" -> "traefik-service:stockfill"; - "dns:service-16." [label="service-16.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-16."; - "dns:service-16." -> "router:stockfill"; - "traefik-service:stockfill" [label="service:stockfill\nport:80", shape=component, fillcolor="#fecaca"]; - "traefik-service:stockfill" -> "svc:stockfill"; - "svc:telegraf" [label="telegraf", shape=box, fillcolor="#dcfce7"]; - "svc:telegraf" -> "net:monitor" [color="#6b7280"]; - "svc:traefik" [label="traefik", shape=box, fillcolor="#dcfce7"]; - "svc:traefik" -> "net:traefik" [color="#6b7280"]; - "router:traefik" [label="router:traefik\nentry:websecure tls:false", shape=diamond, fillcolor="#fbcfe8"]; - "svc:traefik" -> "router:traefik"; - "traefik-service:api@internal" [label="service:api@internal", shape=component, fillcolor="#fecaca"]; - "router:traefik" -> "traefik-service:api@internal"; - "dns:service-17." [label="service-17.", shape=note, fillcolor="#fde68a"]; - "ext:dynu" -> "dns:service-17."; - "dns:service-17." -> "router:traefik"; - "mw:authelia" [label="authelia", shape=hexagon, fillcolor="#ddd6fe"]; - "router:traefik" -> "mw:authelia" [style=dashed]; + "svc:traefik" -> "svc:searxng-webapp" [penwidth=1.4]; + "dns:service-14." [label="service-14.", shape=note, fillcolor="#fef3c7"]; + "dns:service-14." -> "svc:traefik"; + "svc:shift-recorder-web" [label="shift-recorder-web +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:shift-recorder-web" [penwidth=1.4]; + "dns:service-15." [label="service-15.", shape=note, fillcolor="#fef3c7"]; + "dns:service-15." -> "svc:traefik"; + "svc:stockfill" [label="stockfill +:80 +[TLS]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:stockfill" [penwidth=1.4]; + "dns:service-16." [label="service-16.", shape=note, fillcolor="#fef3c7"]; + "dns:service-16." -> "svc:traefik"; + "svc:traefik" [label="traefik +[authelia]", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" -> "svc:traefik" [penwidth=1.4]; + "dns:service-17." [label="service-17.", shape=note, fillcolor="#fef3c7"]; + "dns:service-17." -> "svc:traefik"; + { rank=same; "dns:service-1."; "dns:service-10."; "dns:service-11."; "dns:service-12."; "dns:service-13."; "dns:service-14."; "dns:service-15."; "dns:service-16."; "dns:service-17."; "dns:service-2."; "dns:service-3."; "dns:service-4."; "dns:service-5."; "dns:service-6."; "dns:service-7."; "dns:service-8."; "dns:service-9."; } + 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:shift-recorder-web" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; + "svc:stockfill" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; + "svc:traefik" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7]; } diff --git a/docs/diagrams/docker-traefik-dynu.svg b/docs/diagrams/docker-traefik-dynu.svg index 3011e6a..f38852a 100644 --- a/docs/diagrams/docker-traefik-dynu.svg +++ b/docs/diagrams/docker-traefik-dynu.svg @@ -1,1560 +1,666 @@ - - - + + DockerTraefikDynu - - - -ext:dynu - -Dynu / Public DNS - - - -dns:service-1.<internal-domain> - - - -service-1.<internal-domain> - - - -ext:dynu->dns:service-1.<internal-domain> - - - - - -dns:service-2.<internal-domain> - - - -service-2.<internal-domain> - - - -ext:dynu->dns:service-2.<internal-domain> - - - - - -dns:service-3.<internal-domain> - - - -service-3.<internal-domain> - - - -ext:dynu->dns:service-3.<internal-domain> - - - - - -dns:service-4.<internal-domain> - - - -service-4.<internal-domain> - - - -ext:dynu->dns:service-4.<internal-domain> - - - - - -dns:service-5.<internal-domain> - - - -service-5.<internal-domain> - - - -ext:dynu->dns:service-5.<internal-domain> - - - - - -dns:service-6.<internal-domain> - - - -service-6.<internal-domain> - - - -ext:dynu->dns:service-6.<internal-domain> - - - - - -dns:service-7.<internal-domain> - - - -service-7.<internal-domain> - - - -ext:dynu->dns:service-7.<internal-domain> - - - - - -dns:service-8.<internal-domain> - - - -service-8.<internal-domain> - - - -ext:dynu->dns:service-8.<internal-domain> - - - - - -ext:dynu->dns:service-8.<internal-domain> - - - - - -dns:service-9.<internal-domain> - - - -service-9.<internal-domain> - - - -ext:dynu->dns:service-9.<internal-domain> - - - - - -dns:service-10.<internal-domain> - - - -service-10.<internal-domain> - - - -ext:dynu->dns:service-10.<internal-domain> - - - - - -dns:service-11.<internal-domain> - - - -service-11.<internal-domain> - - - -ext:dynu->dns:service-11.<internal-domain> - - - - - -dns:service-12.<internal-domain> - - - -service-12.<internal-domain> - - - -ext:dynu->dns:service-12.<internal-domain> - - - - - -dns:service-13.<internal-domain> - - - -service-13.<internal-domain> - - - -ext:dynu->dns:service-13.<internal-domain> - - - - - -dns:service-14.<internal-domain> - - - -service-14.<internal-domain> - - - -ext:dynu->dns:service-14.<internal-domain> - - - - - -dns:service-15.<internal-domain> - - - -service-15.<internal-domain> - - - -ext:dynu->dns:service-15.<internal-domain> - - - - - -dns:service-16.<internal-domain> - - - -service-16.<internal-domain> - - - -ext:dynu->dns:service-16.<internal-domain> - - - - - -dns:service-17.<internal-domain> - - - -service-17.<internal-domain> - - - -ext:dynu->dns:service-17.<internal-domain> - - + + +cluster_networks + +Docker backend networks - + svc:traefik - -traefik + +traefik +[authelia] - - -net:traefik - -traefik - - - -svc:traefik->net:traefik - - - - - -router:authelia - -router:authelia -entry:websecure tls:true - - - -svc:traefik->router:authelia - - - - - -router:error-pages-router - -router:error-pages-router -entry:web tls:false - - - -svc:traefik->router:error-pages-router - - - - - -router:gitea - -router:gitea -entry:websecure tls:true - - - -svc:traefik->router:gitea - - - - - -router:gotify - -router:gotify -entry:websecure tls:false - - - -svc:traefik->router:gotify - - - - - -router:grafana - -router:grafana -entry:websecure tls:false - - - -svc:traefik->router:grafana - - - - - -router:gramps - -router:gramps -entry:websecure tls:false - - - -svc:traefik->router:gramps - - - - - -router:influxdb - -router:influxdb -entry:websecure tls:false - - - -svc:traefik->router:influxdb - - - - - -router:monitor - -router:monitor -entry:websecure tls:true - - - -svc:traefik->router:monitor - - - - - -router:mtls-bridge - -router:mtls-bridge -entry:websecure tls:false - - - -svc:traefik->router:mtls-bridge - - - - - -router:mtls-bridge-preflight - -router:mtls-bridge-preflight -entry:websecure tls:false - - - -svc:traefik->router:mtls-bridge-preflight - - - - - -router:nextcloud - -router:nextcloud -entry:websecure tls:false - - - -svc:traefik->router:nextcloud - - - - - -router:node-red - -router:node-red -entry:websecure tls:false - - - -svc:traefik->router:node-red - - - - - -router:passbolt - -router:passbolt -entry:websecure tls:false - - - -svc:traefik->router:passbolt - - - - - -router:portainer - -router:portainer -entry:websecure tls:true - - - -svc:traefik->router:portainer - - - - - -router:prometheus - -router:prometheus -entry:websecure tls:false - - - -svc:traefik->router:prometheus - - - - - -router:searxng - -router:searxng -entry:websecure tls:false - - - -svc:traefik->router:searxng - - - - - -router:shifts - -router:shifts -entry:websecure tls:true - - - -svc:traefik->router:shifts - - - - - -router:stockfill - -router:stockfill -entry:websecure tls:true - - - -svc:traefik->router:stockfill - - - - - -router:traefik - -router:traefik -entry:websecure tls:false - - - -svc:traefik->router:traefik - - - - - -net:gramps - -gramps - - - -net:monitor - -monitor - - - -net:nextcloud - -nextcloud - - - -net:passbolt - -passbolt + + +svc:traefik->svc:traefik + + - + svc:authelia - -authelia + +authelia +[TLS] - + -svc:authelia->net:traefik - - - - - -traefik-service:authelia - - - -service:authelia - - - -router:authelia->traefik-service:authelia - - - - - -dns:service-1.<internal-domain>->router:authelia - - - - - -svc:crowdsec - -crowdsec - - - -svc:crowdsec->net:traefik - - - - - -svc:docker-socket-proxy - -docker-socket-proxy - - - -svc:docker-socket-proxy->net:monitor - - - - - -svc:docker-socket-proxy->net:traefik - - - - - -svc:docker-update-exporter - -docker-update-exporter - - - -svc:docker-update-exporter->net:monitor - - - - - -svc:error-pages - -error-pages - - - -svc:error-pages->net:traefik - - - - - -traefik-service:error-pages - - - -service:error-pages - - - -router:error-pages-router->traefik-service:error-pages - - - - - -mw:error-pages-middleware - -error-pages-middleware - - - -router:error-pages-router->mw:error-pages-middleware - - - - - -traefik-service:error-pages-service - - - -service:error-pages-service -port:8080 - - - -traefik-service:error-pages-service->svc:error-pages - - +svc:traefik->svc:authelia + + - + svc:gitea - -gitea + +gitea +:3000 +[TLS] - - -svc:gitea->net:traefik - - - - - -traefik-service:gitea - - - -service:gitea -port:3000 - - - -router:gitea->traefik-service:gitea - - - - - -traefik-service:gitea->svc:gitea - - - - - -dns:service-2.<internal-domain>->router:gitea - - - - - -svc:gitea-runner - -gitea-runner - - - -svc:gitea-runner->net:traefik - - + + +svc:traefik->svc:gitea + + - + svc:gotify - -gotify + +gotify +:80 - - -svc:gotify->net:traefik - - - - - -traefik-service:gotify - - - -service:gotify -port:80 - - - -router:gotify->traefik-service:gotify - - - - - -traefik-service:gotify->svc:gotify - - - - - -dns:service-3.<internal-domain>->router:gotify - - + + +svc:traefik->svc:gotify + + - + svc:grafana - -grafana + +grafana +:3000 - - -svc:grafana->net:monitor - - - - - -svc:grafana->net:traefik - - - - - -traefik-service:grafana - - - -service:grafana -port:3000 - - - -router:grafana->traefik-service:grafana - - - - - -traefik-service:grafana->svc:grafana - - - - - -dns:service-4.<internal-domain>->router:grafana - - - - - -svc:gramps-redis - -gramps-redis - - - -svc:gramps-redis->net:gramps - - + + +svc:traefik->svc:grafana + + - + svc:grampsweb - -grampsweb + +grampsweb - - -svc:grampsweb->net:gramps - - - - - -svc:grampsweb->net:traefik - - - - - -traefik-service:grampsweb - - - -service:grampsweb - - - -router:gramps->traefik-service:grampsweb - - - - - -dns:service-5.<internal-domain>->router:gramps - - - - - -traefik-service:gramps - - - -service:gramps -port:5000 - - - -traefik-service:gramps->svc:grampsweb - - - - - -svc:grampsweb_celery - -grampsweb_celery - - - -svc:grampsweb_celery->net:gramps - - + + +svc:traefik->svc:grampsweb + + - + svc:influxdb - -influxdb + +influxdb +:8086 +[authelia] - - -svc:influxdb->net:monitor - - - - - -svc:influxdb->net:traefik - - - - - -traefik-service:influxdb - - - -service:influxdb -port:8086 - - - -router:influxdb->traefik-service:influxdb - - - - - -mw:authelia - -authelia - - - -router:influxdb->mw:authelia - - - - - -traefik-service:influxdb->svc:influxdb - - - - - -dns:service-6.<internal-domain>->router:influxdb - - + + +svc:traefik->svc:influxdb + + - + svc:monitor-kuma - -monitor-kuma + +monitor-kuma +[TLS] - - -svc:monitor-kuma->net:monitor - - - - - -svc:monitor-kuma->net:traefik - - - - - -traefik-service:monitor-kuma - - - -service:monitor-kuma - - - -router:monitor->traefik-service:monitor-kuma - - - - - -dns:service-7.<internal-domain>->router:monitor - - - - - -traefik-service:monitor - - - -service:monitor -port:3001 - - - -traefik-service:monitor->svc:monitor-kuma - - + + +svc:traefik->svc:monitor-kuma + + - + svc:mtls-bridge - -mtls-bridge + +mtls-bridge +:8080 +[mTLS] - - -svc:mtls-bridge->net:monitor - - - - - -svc:mtls-bridge->net:traefik - - - - - -traefik-service:mtls-bridge - - - -service:mtls-bridge -port:8080 - - - -router:mtls-bridge->traefik-service:mtls-bridge - - - - - -mw:mtls-bridge-auth - -mtls-bridge-auth - - - -router:mtls-bridge->mw:mtls-bridge-auth - - - - - -mw:mtls-bridge-cors - -mtls-bridge-cors - - - -router:mtls-bridge->mw:mtls-bridge-cors - - - - - -traefik-service:mtls-bridge->svc:mtls-bridge - - - - - -dns:service-8.<internal-domain>->router:mtls-bridge - - - - - -dns:service-8.<internal-domain>->router:mtls-bridge-preflight - - - - - -router:mtls-bridge-preflight->traefik-service:mtls-bridge - - - - - -router:mtls-bridge-preflight->mw:mtls-bridge-cors - - - - - -svc:nextcloud-db - -nextcloud-db - - - -svc:nextcloud-db->net:nextcloud - - - - - -svc:nextcloud-redis - -nextcloud-redis - - - -svc:nextcloud-redis->net:nextcloud - - + + +svc:traefik->svc:mtls-bridge + + - + svc:nextcloud-webapp - -nextcloud-webapp + +nextcloud-webapp - - -svc:nextcloud-webapp->net:nextcloud - - - - - -svc:nextcloud-webapp->net:traefik - - - - - -traefik-service:nextcloud-webapp - - - -service:nextcloud-webapp - - - -router:nextcloud->traefik-service:nextcloud-webapp - - - - - -mw:nextcloud-dav - -nextcloud-dav - - - -router:nextcloud->mw:nextcloud-dav - - - - - -mw:nextcloud-webfinger - -nextcloud-webfinger - - - -router:nextcloud->mw:nextcloud-webfinger - - - - - -dns:service-9.<internal-domain>->router:nextcloud - - - - - -svc:node-exporter - -node-exporter - - - -svc:node-exporter->net:monitor - - + + +svc:traefik->svc:nextcloud-webapp + + - + svc:node-red - -node-red + +node-red +:1880 +[authelia] - - -svc:node-red->net:monitor - - - - - -svc:node-red->net:traefik - - - - - -router:node-red->mw:authelia - - - - - -traefik-service:node-red - - - -service:node-red -port:1880 - - - -router:node-red->traefik-service:node-red - - - - - -traefik-service:node-red->svc:node-red - - - - - -dns:service-10.<internal-domain>->router:node-red - - - - - -svc:passbolt-db - -passbolt-db - - - -svc:passbolt-db->net:passbolt - - + + +svc:traefik->svc:node-red + + - + svc:passbolt-webapp - -passbolt-webapp + +passbolt-webapp - - -svc:passbolt-webapp->net:passbolt - - - - - -svc:passbolt-webapp->net:traefik - - - - - -traefik-service:passbolt-webapp - - - -service:passbolt-webapp - - - -router:passbolt->traefik-service:passbolt-webapp - - - - - -dns:service-11.<internal-domain>->router:passbolt - - - - - -svc:pihole-exporter - -pihole-exporter - - - -svc:pihole-exporter->net:monitor - - + + +svc:traefik->svc:passbolt-webapp + + - + svc:portainer - -portainer + +portainer +:9000 +[TLS] - - -svc:portainer->net:traefik - - - - - -traefik-service:portainer - - - -service:portainer -port:9000 - - - -router:portainer->traefik-service:portainer - - - - - -traefik-service:portainer->svc:portainer - - - - - -dns:service-12.<internal-domain>->router:portainer - - + + +svc:traefik->svc:portainer + + - + svc:prometheus - -prometheus + +prometheus +:9090 +[authelia] - - -svc:prometheus->net:monitor - - - - - -svc:prometheus->net:traefik - - - - - -router:prometheus->mw:authelia - - - - - -traefik-service:prometheus - - - -service:prometheus -port:9090 - - - -router:prometheus->traefik-service:prometheus - - - - - -traefik-service:prometheus->svc:prometheus - - - - - -dns:service-13.<internal-domain>->router:prometheus - - + + +svc:traefik->svc:prometheus + + - + svc:searxng-webapp - -searxng-webapp + +searxng-webapp - - -svc:searxng-webapp->net:traefik - - - - - -traefik-service:searxng-webapp - - - -service:searxng-webapp - - - -router:searxng->traefik-service:searxng-webapp - - - - - -dns:service-14.<internal-domain>->router:searxng - - - - - -traefik-service:searxng - - - -service:searxng -port:8080 - - - -traefik-service:searxng->svc:searxng-webapp - - + + +svc:traefik->svc:searxng-webapp + + - + svc:shift-recorder-web - -shift-recorder-web + +shift-recorder-web +[TLS] - - -svc:shift-recorder-web->net:traefik - - - - - -traefik-service:shift-recorder-web - - - -service:shift-recorder-web - - - -router:shifts->traefik-service:shift-recorder-web - - - - - -dns:service-15.<internal-domain>->router:shifts - - - - - -traefik-service:shifts - - - -service:shifts -port:80 - - - -traefik-service:shifts->svc:shift-recorder-web - - + + +svc:traefik->svc:shift-recorder-web + + - + svc:stockfill - -stockfill + +stockfill +:80 +[TLS] + + + +svc:traefik->svc:stockfill + + + + + +net:traefik + +traefik + + + +svc:traefik->net:traefik + + + + + +svc:authelia->net:traefik + + + + + +dns:service-1.<internal-domain> + + + +service-1.<internal-domain> + + + +dns:service-1.<internal-domain>->svc:traefik + + + + + +svc:gitea->net:traefik + + + + + +dns:service-2.<internal-domain> + + + +service-2.<internal-domain> + + + +dns:service-2.<internal-domain>->svc:traefik + + + + + +svc:gotify->net:traefik + + + + + +dns:service-3.<internal-domain> + + + +service-3.<internal-domain> + + + +dns:service-3.<internal-domain>->svc:traefik + + + + + +net:monitor + +monitor + + + +svc:grafana->net:monitor + + + + + +svc:grafana->net:traefik + + + + + +dns:service-4.<internal-domain> + + + +service-4.<internal-domain> + + + +dns:service-4.<internal-domain>->svc:traefik + + + + + +net:gramps + +gramps + + + +svc:grampsweb->net:gramps + + + + + +svc:grampsweb->net:traefik + + + + + +dns:service-5.<internal-domain> + + + +service-5.<internal-domain> + + + +dns:service-5.<internal-domain>->svc:traefik + + + + + +svc:influxdb->net:monitor + + + + + +svc:influxdb->net:traefik + + + + + +dns:service-6.<internal-domain> + + + +service-6.<internal-domain> + + + +dns:service-6.<internal-domain>->svc:traefik + + + + + +svc:monitor-kuma->net:monitor + + + + + +svc:monitor-kuma->net:traefik + + + + + +dns:service-7.<internal-domain> + + + +service-7.<internal-domain> + + + +dns:service-7.<internal-domain>->svc:traefik + + + + + +svc:mtls-bridge->net:monitor + + + + + +svc:mtls-bridge->net:traefik + + + + + +dns:service-8.<internal-domain> + + + +service-8.<internal-domain> + + + +dns:service-8.<internal-domain>->svc:traefik + + + + + +net:nextcloud + +nextcloud + + + +svc:nextcloud-webapp->net:nextcloud + + + + + +svc:nextcloud-webapp->net:traefik + + + + + +dns:service-9.<internal-domain> + + + +service-9.<internal-domain> + + + +dns:service-9.<internal-domain>->svc:traefik + + + + + +svc:node-red->net:monitor + + + + + +svc:node-red->net:traefik + + + + + +dns:service-10.<internal-domain> + + + +service-10.<internal-domain> + + + +dns:service-10.<internal-domain>->svc:traefik + + + + + +net:passbolt + +passbolt + + + +svc:passbolt-webapp->net:passbolt + + + + + +svc:passbolt-webapp->net:traefik + + + + + +dns:service-11.<internal-domain> + + + +service-11.<internal-domain> + + + +dns:service-11.<internal-domain>->svc:traefik + + + + + +svc:portainer->net:traefik + + + + + +dns:service-12.<internal-domain> + + + +service-12.<internal-domain> + + + +dns:service-12.<internal-domain>->svc:traefik + + + + + +svc:prometheus->net:monitor + + + + + +svc:prometheus->net:traefik + + + + + +dns:service-13.<internal-domain> + + + +service-13.<internal-domain> + + + +dns:service-13.<internal-domain>->svc:traefik + + + + + +svc:searxng-webapp->net:traefik + + + + + +dns:service-14.<internal-domain> + + + +service-14.<internal-domain> + + + +dns:service-14.<internal-domain>->svc:traefik + + + + + +svc:shift-recorder-web->net:traefik + + + + + +dns:service-15.<internal-domain> + + + +service-15.<internal-domain> + + + +dns:service-15.<internal-domain>->svc:traefik + + - + svc:stockfill->net:traefik - - + + - - -traefik-service:stockfill - - - -service:stockfill -port:80 + + +dns:service-16.<internal-domain> + + + +service-16.<internal-domain> - - -router:stockfill->traefik-service:stockfill - - + + +dns:service-16.<internal-domain>->svc:traefik + + - - -traefik-service:stockfill->svc:stockfill - - + + +dns:service-17.<internal-domain> + + + +service-17.<internal-domain> - - -dns:service-16.<internal-domain>->router:stockfill - - - - - -svc:telegraf - -telegraf - - - -svc:telegraf->net:monitor - - - - - -router:traefik->mw:authelia - - - - - -traefik-service:api@internal - - - -service:api@internal - - - -router:traefik->traefik-service:api@internal - - - - - -dns:service-17.<internal-domain>->router:traefik - - + + +dns:service-17.<internal-domain>->svc:traefik + + diff --git a/docs/diagrams/physical-topology.dot b/docs/diagrams/physical-topology.dot index 476f76b..44864e9 100644 --- a/docs/diagrams/physical-topology.dot +++ b/docs/diagrams/physical-topology.dot @@ -1,79 +1,91 @@ digraph PhysicalTopology { - graph [rankdir=LR, compound=true, splines=ortho, nodesep=0.45, ranksep=0.75, fontname="Helvetica"]; + graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.7, ranksep=1.2, fontname="Helvetica", concentrate=true]; node [fontname="Helvetica", fontsize=10, style="rounded,filled", fillcolor="#ffffff"]; - edge [fontname="Helvetica", fontsize=9]; + edge [fontname="Helvetica", fontsize=9, color="#64748b"]; subgraph "cluster_docker" { - label="docker"; + label="docker host"; style="rounded,filled"; - color="#c7d6f5"; - fillcolor="#eef3ff"; - "host:docker" [label="docker", shape=box3d, fillcolor="#d4e3ff"]; - "svc:authelia" [label="authelia", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:authelia" [style=dashed, color="#6b7280"]; - "svc:crowdsec" [label="crowdsec", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:crowdsec" [style=dashed, color="#6b7280"]; - "svc:docker-socket-proxy" [label="docker-socket-proxy", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:docker-socket-proxy" [style=dashed, color="#6b7280"]; - "svc:docker-update-exporter" [label="docker-update-exporter", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:docker-update-exporter" [style=dashed, color="#6b7280"]; - "svc:error-pages" [label="error-pages", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:error-pages" [style=dashed, color="#6b7280"]; - "svc:gitea" [label="gitea", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:gitea" [style=dashed, color="#6b7280"]; - "svc:gitea-runner" [label="gitea-runner", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:gitea-runner" [style=dashed, color="#6b7280"]; - "svc:gotify" [label="gotify", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:gotify" [style=dashed, color="#6b7280"]; - "svc:grafana" [label="grafana", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:grafana" [style=dashed, color="#6b7280"]; - "svc:gramps-redis" [label="gramps-redis", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:gramps-redis" [style=dashed, color="#6b7280"]; - "svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:grampsweb" [style=dashed, color="#6b7280"]; - "svc:grampsweb_celery" [label="grampsweb_celery", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:grampsweb_celery" [style=dashed, color="#6b7280"]; - "svc:influxdb" [label="influxdb", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:influxdb" [style=dashed, color="#6b7280"]; - "svc:monitor-kuma" [label="monitor-kuma", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:monitor-kuma" [style=dashed, color="#6b7280"]; - "svc:mtls-bridge" [label="mtls-bridge", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:mtls-bridge" [style=dashed, color="#6b7280"]; - "svc:nextcloud-db" [label="nextcloud-db", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:nextcloud-db" [style=dashed, color="#6b7280"]; - "svc:nextcloud-redis" [label="nextcloud-redis", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:nextcloud-redis" [style=dashed, color="#6b7280"]; - "svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:nextcloud-webapp" [style=dashed, color="#6b7280"]; - "svc:node-exporter" [label="node-exporter", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:node-exporter" [style=dashed, color="#6b7280"]; - "svc:node-red" [label="node-red", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:node-red" [style=dashed, color="#6b7280"]; - "svc:passbolt-db" [label="passbolt-db", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:passbolt-db" [style=dashed, color="#6b7280"]; - "svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:passbolt-webapp" [style=dashed, color="#6b7280"]; - "svc:portainer" [label="portainer", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:portainer" [style=dashed, color="#6b7280"]; - "svc:prometheus" [label="prometheus", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:prometheus" [style=dashed, color="#6b7280"]; - "svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:searxng-webapp" [style=dashed, color="#6b7280"]; - "svc:shift-recorder-web" [label="shift-recorder-web", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:shift-recorder-web" [style=dashed, color="#6b7280"]; - "svc:stockfill" [label="stockfill", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:stockfill" [style=dashed, color="#6b7280"]; - "svc:telegraf" [label="telegraf", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:telegraf" [style=dashed, color="#6b7280"]; - "svc:traefik" [label="traefik", shape=box, fillcolor="#dff2e1"]; - "host:docker" -> "svc:traefik" [style=dashed, color="#6b7280"]; + color="#93c5fd"; + fillcolor="#eff6ff"; + subgraph "cluster_docker_apps" { + label="apps"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:crowdsec" [label="crowdsec", shape=box, fillcolor="#dcfce7"]; + "svc:docker-update-exporter" [label="docker-update-exporter", shape=box, fillcolor="#dcfce7"]; + "svc:error-pages" [label="error-pages", shape=box, fillcolor="#dcfce7"]; + "svc:gitea" [label="gitea", shape=box, fillcolor="#dcfce7"]; + "svc:gotify" [label="gotify", shape=box, fillcolor="#dcfce7"]; + "svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dcfce7"]; + "svc:grampsweb_celery" [label="grampsweb_celery", shape=box, fillcolor="#dcfce7"]; + "svc:monitor-kuma" [label="monitor-kuma", shape=box, fillcolor="#dcfce7"]; + "svc:mtls-bridge" [label="mtls-bridge", shape=box, fillcolor="#dcfce7"]; + "svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dcfce7"]; + "svc:node-red" [label="node-red", shape=box, fillcolor="#dcfce7"]; + "svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dcfce7"]; + "svc:portainer" [label="portainer", shape=box, fillcolor="#dcfce7"]; + "svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dcfce7"]; + "svc:shift-recorder-web" [label="shift-recorder-web", shape=box, fillcolor="#dcfce7"]; + "svc:stockfill" [label="stockfill", shape=box, fillcolor="#dcfce7"]; + "svc:telegraf" [label="telegraf", shape=box, fillcolor="#dcfce7"]; + } + subgraph "cluster_docker_automation" { + label="automation"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:gitea-runner" [label="gitea-runner", shape=box, fillcolor="#dcfce7"]; + } + subgraph "cluster_docker_edge_proxy_auth" { + label="edge/proxy/auth"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:authelia" [label="authelia", shape=box, fillcolor="#dcfce7"]; + "svc:docker-socket-proxy" [label="docker-socket-proxy", shape=box, fillcolor="#dcfce7"]; + "svc:traefik" [label="traefik", shape=box, fillcolor="#dcfce7"]; + } + subgraph "cluster_docker_monitoring" { + label="monitoring"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:grafana" [label="grafana", shape=box, fillcolor="#dcfce7"]; + "svc:node-exporter" [label="node-exporter", shape=box, fillcolor="#dcfce7"]; + "svc:prometheus" [label="prometheus", shape=box, fillcolor="#dcfce7"]; + } + subgraph "cluster_docker_storage_database_support" { + label="storage/database/support"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:gramps-redis" [label="gramps-redis", shape=box, fillcolor="#dcfce7"]; + "svc:influxdb" [label="influxdb", shape=box, fillcolor="#dcfce7"]; + "svc:nextcloud-db" [label="nextcloud-db", shape=box, fillcolor="#dcfce7"]; + "svc:nextcloud-redis" [label="nextcloud-redis", shape=box, fillcolor="#dcfce7"]; + "svc:passbolt-db" [label="passbolt-db", shape=box, fillcolor="#dcfce7"]; + } } subgraph "cluster_raspberrypi" { - label="raspberrypi"; + label="raspberrypi host"; style="rounded,filled"; - color="#c7d6f5"; - fillcolor="#eef3ff"; - "host:raspberrypi" [label="raspberrypi", shape=box3d, fillcolor="#d4e3ff"]; - "svc:pihole-exporter" [label="pihole-exporter", shape=box, fillcolor="#dff2e1"]; - "host:raspberrypi" -> "svc:pihole-exporter" [style=dashed, color="#6b7280"]; + color="#93c5fd"; + fillcolor="#eff6ff"; + subgraph "cluster_raspberrypi_apps" { + label="apps"; + style="rounded,dashed"; + color="#bfdbfe"; + fillcolor="#f8fbff"; + "svc:pihole-exporter" [label="pihole-exporter", shape=box, fillcolor="#dcfce7"]; + } + } + subgraph "cluster_legend" { + label="Legend"; style="rounded"; color="#d1d5db"; + "leg_host" [label="Host cluster", shape=box3d, fillcolor="#eff6ff"]; + "leg_cat" [label="Service category", shape=folder, fillcolor="#f8fbff"]; + "leg_svc" [label="Container/service", shape=box, fillcolor="#dcfce7"]; + "leg_host" -> "leg_cat" [style=dashed]; + "leg_cat" -> "leg_svc" [style=dashed]; } } diff --git a/docs/diagrams/physical-topology.svg b/docs/diagrams/physical-topology.svg index 77daceb..f05c23a 100644 --- a/docs/diagrams/physical-topology.svg +++ b/docs/diagrams/physical-topology.svg @@ -1,401 +1,271 @@ - - - + + PhysicalTopology - + cluster_docker - -docker + +docker host +cluster_docker_apps + +apps + + +cluster_docker_automation + +automation + + +cluster_docker_edge_proxy_auth + +edge/proxy/auth + + +cluster_docker_monitoring + +monitoring + + +cluster_docker_storage_database_support + +storage/database/support + + cluster_raspberrypi - -raspberrypi + +raspberrypi host - - -host:docker - - - - -docker + +cluster_raspberrypi_apps + +apps - - -svc:authelia - -authelia - - - -host:docker->svc:authelia - - + +cluster_legend + +Legend - + svc:crowdsec - -crowdsec - - - -host:docker->svc:crowdsec - - - - - -svc:docker-socket-proxy - -docker-socket-proxy - - - -host:docker->svc:docker-socket-proxy - - + +crowdsec - + svc:docker-update-exporter - -docker-update-exporter - - - -host:docker->svc:docker-update-exporter - - + +docker-update-exporter - + svc:error-pages - -error-pages - - - -host:docker->svc:error-pages - - + +error-pages - + svc:gitea - -gitea - - - -host:docker->svc:gitea - - - - - -svc:gitea-runner - -gitea-runner - - - -host:docker->svc:gitea-runner - - + +gitea - + svc:gotify - -gotify - - - -host:docker->svc:gotify - - - - - -svc:grafana - -grafana - - - -host:docker->svc:grafana - - - - - -svc:gramps-redis - -gramps-redis - - - -host:docker->svc:gramps-redis - - + +gotify - + svc:grampsweb - -grampsweb - - - -host:docker->svc:grampsweb - - + +grampsweb - + svc:grampsweb_celery - -grampsweb_celery - - - -host:docker->svc:grampsweb_celery - - - - - -svc:influxdb - -influxdb - - - -host:docker->svc:influxdb - - + +grampsweb_celery - + svc:monitor-kuma - -monitor-kuma - - - -host:docker->svc:monitor-kuma - - + +monitor-kuma - + svc:mtls-bridge - -mtls-bridge - - - -host:docker->svc:mtls-bridge - - - - - -svc:nextcloud-db - -nextcloud-db - - - -host:docker->svc:nextcloud-db - - - - - -svc:nextcloud-redis - -nextcloud-redis - - - -host:docker->svc:nextcloud-redis - - + +mtls-bridge - + svc:nextcloud-webapp - -nextcloud-webapp - - - -host:docker->svc:nextcloud-webapp - - - - - -svc:node-exporter - -node-exporter - - - -host:docker->svc:node-exporter - - + +nextcloud-webapp - + svc:node-red - -node-red - - - -host:docker->svc:node-red - - - - - -svc:passbolt-db - -passbolt-db - - - -host:docker->svc:passbolt-db - - + +node-red - + svc:passbolt-webapp - -passbolt-webapp - - - -host:docker->svc:passbolt-webapp - - + +passbolt-webapp - + svc:portainer - -portainer - - - -host:docker->svc:portainer - - - - - -svc:prometheus - -prometheus - - - -host:docker->svc:prometheus - - + +portainer - + svc:searxng-webapp - -searxng-webapp - - - -host:docker->svc:searxng-webapp - - + +searxng-webapp - + svc:shift-recorder-web - -shift-recorder-web - - - -host:docker->svc:shift-recorder-web - - + +shift-recorder-web - + svc:stockfill - -stockfill - - - -host:docker->svc:stockfill - - + +stockfill - + svc:telegraf - -telegraf + +telegraf - - -host:docker->svc:telegraf - - + + +svc:gitea-runner + +gitea-runner + + + +svc:authelia + +authelia + + + +svc:docker-socket-proxy + +docker-socket-proxy - + svc:traefik - -traefik + +traefik - - -host:docker->svc:traefik - - + + +svc:grafana + +grafana - - -host:raspberrypi - - - - -raspberrypi + + +svc:node-exporter + +node-exporter + + + +svc:prometheus + +prometheus + + + +svc:gramps-redis + +gramps-redis + + + +svc:influxdb + +influxdb + + + +svc:nextcloud-db + +nextcloud-db + + + +svc:nextcloud-redis + +nextcloud-redis + + + +svc:passbolt-db + +passbolt-db - + svc:pihole-exporter - -pihole-exporter + +pihole-exporter - - -host:raspberrypi->svc:pihole-exporter - - + + +leg_host + + + + +Host cluster + + + +leg_cat + +Service category + + + +leg_host->leg_cat + + + + + +leg_svc + +Container/service + + + +leg_cat->leg_svc + + diff --git a/docs/public/compose-inventory.md b/docs/public/compose-inventory.md index ffffaac..4354f2c 100644 --- a/docs/public/compose-inventory.md +++ b/docs/public/compose-inventory.md @@ -1,12 +1,12 @@ # Docker Compose Inventory -Source fingerprint: `232be78ef441` +Source fingerprint: `0fad36c3fed6` ## Summary | Item | Count | |---|---:| -| Services | 28 | +| Services | 30 | | Networks | 5 | | Volumes | 0 | @@ -40,6 +40,8 @@ Source fingerprint: `232be78ef441` | portainer | portainer | portainer/portainer-ce:latest | | monitoring, all, portainer | traefik | | unless-stopped | | prometheus | prometheus | prom/prometheus:latest | | monitoring, all, prometheus | monitor, traefik | | unless-stopped | | searxng-webapp | searxng-webapp | searxng/searxng | | apps, all, searxng | traefik | | always | +| shift-recorder-web | shift-recorder | | /home/nixos/docker/apps/shift-recorder | apps, all, shift-recorder | traefik | | unless-stopped | +| stockfill | stockfill | | /home/nixos/docker/apps/stockfill | apps, all, stockfill | traefik | | unless-stopped | | telegraf | telegraf | telegraf:latest | | monitoring, all, telegraf, prometheus | monitor | | unless-stopped | | traefik | traefik | traefik:3 | /home/nixos/docker/core | core, all, traefik | traefik | {'mode': 'ingress', 'target': 80, 'published': '80', 'protocol': 'tcp'}, {'mode': 'ingress', 'target': 443, 'published': '443', 'protocol': 'tcp'} | always | diff --git a/docs/public/docker-compose.svg b/docs/public/docker-compose.svg index 1991277..4ccb12c 100644 --- a/docs/public/docker-compose.svg +++ b/docs/public/docker-compose.svg @@ -1,463 +1,463 @@ - - + Compose - + svc:authelia - -authelia + +authelia net:traefik - -traefik + +traefik svc:authelia->net:traefik - - + + svc:crowdsec - -crowdsec + +crowdsec svc:crowdsec->net:traefik - - + + svc:docker-socket-proxy - -docker-socket-proxy + +docker-socket-proxy net:monitor - -monitor + +monitor svc:docker-socket-proxy->net:monitor - - + + svc:docker-socket-proxy->net:traefik - - + + svc:docker-update-exporter - -docker-update-exporter + +docker-update-exporter svc:docker-update-exporter->net:monitor - - + + svc:error-pages - -error-pages + +error-pages svc:error-pages->net:traefik - - + + svc:gitea - -gitea + +gitea svc:gitea->net:traefik - - + + svc:gitea-runner - -gitea-runner + +gitea-runner svc:gitea-runner->net:traefik - - + + svc:gotify - -gotify + +gotify svc:gotify->net:traefik - - + + svc:grafana - -grafana + +grafana svc:grafana->net:monitor - - + + svc:grafana->net:traefik - - + + svc:gramps-redis - -gramps-redis + +gramps-redis net:gramps - -gramps + +gramps svc:gramps-redis->net:gramps - - + + svc:grampsweb - -grampsweb + +grampsweb svc:grampsweb->net:gramps - - + + svc:grampsweb->net:traefik - - + + svc:grampsweb_celery - -grampsweb_celery + +grampsweb_celery svc:grampsweb_celery->net:gramps - - + + svc:influxdb - -influxdb + +influxdb svc:influxdb->net:monitor - - + + svc:influxdb->net:traefik - - + + svc:monitor-kuma - -monitor-kuma + +monitor-kuma svc:monitor-kuma->net:monitor - - + + svc:monitor-kuma->net:traefik - - + + svc:mtls-bridge - -mtls-bridge + +mtls-bridge svc:mtls-bridge->net:monitor - - + + svc:mtls-bridge->net:traefik - - + + svc:nextcloud-db - -nextcloud-db + +nextcloud-db net:nextcloud - -nextcloud + +nextcloud svc:nextcloud-db->net:nextcloud - - + + svc:nextcloud-redis - -nextcloud-redis + +nextcloud-redis svc:nextcloud-redis->net:nextcloud - - + + svc:nextcloud-webapp - -nextcloud-webapp + +nextcloud-webapp svc:nextcloud-webapp->net:nextcloud - - + + svc:nextcloud-webapp->net:traefik - - + + svc:node-exporter - -node-exporter + +node-exporter svc:node-exporter->net:monitor - - + + svc:node-red - -node-red + +node-red svc:node-red->net:monitor - - + + svc:node-red->net:traefik - - + + svc:passbolt-db - -passbolt-db + +passbolt-db net:passbolt - -passbolt + +passbolt svc:passbolt-db->net:passbolt - - + + svc:passbolt-webapp - -passbolt-webapp + +passbolt-webapp svc:passbolt-webapp->net:passbolt - - + + svc:passbolt-webapp->net:traefik - - + + svc:pihole-exporter - -pihole-exporter + +pihole-exporter svc:pihole-exporter->net:monitor - - + + svc:portainer - -portainer + +portainer svc:portainer->net:traefik - - + + svc:prometheus - -prometheus + +prometheus svc:prometheus->net:monitor - - + + svc:prometheus->net:traefik - - + + svc:searxng-webapp - -searxng-webapp + +searxng-webapp svc:searxng-webapp->net:traefik - - + + svc:shift-recorder-web - -shift-recorder-web + +shift-recorder-web svc:shift-recorder-web->net:traefik - - + + svc:stockfill - -stockfill + +stockfill svc:stockfill->net:traefik - - + + svc:telegraf - -telegraf + +telegraf svc:telegraf->net:monitor - - + + svc:traefik - -traefik + +traefik svc:traefik->net:traefik - - + + diff --git a/docs/public/docker-traefik-dynu.svg b/docs/public/docker-traefik-dynu.svg index 3011e6a..f38852a 100644 --- a/docs/public/docker-traefik-dynu.svg +++ b/docs/public/docker-traefik-dynu.svg @@ -1,1560 +1,666 @@ - - - + + DockerTraefikDynu - - - -ext:dynu - -Dynu / Public DNS - - - -dns:service-1.<internal-domain> - - - -service-1.<internal-domain> - - - -ext:dynu->dns:service-1.<internal-domain> - - - - - -dns:service-2.<internal-domain> - - - -service-2.<internal-domain> - - - -ext:dynu->dns:service-2.<internal-domain> - - - - - -dns:service-3.<internal-domain> - - - -service-3.<internal-domain> - - - -ext:dynu->dns:service-3.<internal-domain> - - - - - -dns:service-4.<internal-domain> - - - -service-4.<internal-domain> - - - -ext:dynu->dns:service-4.<internal-domain> - - - - - -dns:service-5.<internal-domain> - - - -service-5.<internal-domain> - - - -ext:dynu->dns:service-5.<internal-domain> - - - - - -dns:service-6.<internal-domain> - - - -service-6.<internal-domain> - - - -ext:dynu->dns:service-6.<internal-domain> - - - - - -dns:service-7.<internal-domain> - - - -service-7.<internal-domain> - - - -ext:dynu->dns:service-7.<internal-domain> - - - - - -dns:service-8.<internal-domain> - - - -service-8.<internal-domain> - - - -ext:dynu->dns:service-8.<internal-domain> - - - - - -ext:dynu->dns:service-8.<internal-domain> - - - - - -dns:service-9.<internal-domain> - - - -service-9.<internal-domain> - - - -ext:dynu->dns:service-9.<internal-domain> - - - - - -dns:service-10.<internal-domain> - - - -service-10.<internal-domain> - - - -ext:dynu->dns:service-10.<internal-domain> - - - - - -dns:service-11.<internal-domain> - - - -service-11.<internal-domain> - - - -ext:dynu->dns:service-11.<internal-domain> - - - - - -dns:service-12.<internal-domain> - - - -service-12.<internal-domain> - - - -ext:dynu->dns:service-12.<internal-domain> - - - - - -dns:service-13.<internal-domain> - - - -service-13.<internal-domain> - - - -ext:dynu->dns:service-13.<internal-domain> - - - - - -dns:service-14.<internal-domain> - - - -service-14.<internal-domain> - - - -ext:dynu->dns:service-14.<internal-domain> - - - - - -dns:service-15.<internal-domain> - - - -service-15.<internal-domain> - - - -ext:dynu->dns:service-15.<internal-domain> - - - - - -dns:service-16.<internal-domain> - - - -service-16.<internal-domain> - - - -ext:dynu->dns:service-16.<internal-domain> - - - - - -dns:service-17.<internal-domain> - - - -service-17.<internal-domain> - - - -ext:dynu->dns:service-17.<internal-domain> - - + + +cluster_networks + +Docker backend networks - + svc:traefik - -traefik + +traefik +[authelia] - - -net:traefik - -traefik - - - -svc:traefik->net:traefik - - - - - -router:authelia - -router:authelia -entry:websecure tls:true - - - -svc:traefik->router:authelia - - - - - -router:error-pages-router - -router:error-pages-router -entry:web tls:false - - - -svc:traefik->router:error-pages-router - - - - - -router:gitea - -router:gitea -entry:websecure tls:true - - - -svc:traefik->router:gitea - - - - - -router:gotify - -router:gotify -entry:websecure tls:false - - - -svc:traefik->router:gotify - - - - - -router:grafana - -router:grafana -entry:websecure tls:false - - - -svc:traefik->router:grafana - - - - - -router:gramps - -router:gramps -entry:websecure tls:false - - - -svc:traefik->router:gramps - - - - - -router:influxdb - -router:influxdb -entry:websecure tls:false - - - -svc:traefik->router:influxdb - - - - - -router:monitor - -router:monitor -entry:websecure tls:true - - - -svc:traefik->router:monitor - - - - - -router:mtls-bridge - -router:mtls-bridge -entry:websecure tls:false - - - -svc:traefik->router:mtls-bridge - - - - - -router:mtls-bridge-preflight - -router:mtls-bridge-preflight -entry:websecure tls:false - - - -svc:traefik->router:mtls-bridge-preflight - - - - - -router:nextcloud - -router:nextcloud -entry:websecure tls:false - - - -svc:traefik->router:nextcloud - - - - - -router:node-red - -router:node-red -entry:websecure tls:false - - - -svc:traefik->router:node-red - - - - - -router:passbolt - -router:passbolt -entry:websecure tls:false - - - -svc:traefik->router:passbolt - - - - - -router:portainer - -router:portainer -entry:websecure tls:true - - - -svc:traefik->router:portainer - - - - - -router:prometheus - -router:prometheus -entry:websecure tls:false - - - -svc:traefik->router:prometheus - - - - - -router:searxng - -router:searxng -entry:websecure tls:false - - - -svc:traefik->router:searxng - - - - - -router:shifts - -router:shifts -entry:websecure tls:true - - - -svc:traefik->router:shifts - - - - - -router:stockfill - -router:stockfill -entry:websecure tls:true - - - -svc:traefik->router:stockfill - - - - - -router:traefik - -router:traefik -entry:websecure tls:false - - - -svc:traefik->router:traefik - - - - - -net:gramps - -gramps - - - -net:monitor - -monitor - - - -net:nextcloud - -nextcloud - - - -net:passbolt - -passbolt + + +svc:traefik->svc:traefik + + - + svc:authelia - -authelia + +authelia +[TLS] - + -svc:authelia->net:traefik - - - - - -traefik-service:authelia - - - -service:authelia - - - -router:authelia->traefik-service:authelia - - - - - -dns:service-1.<internal-domain>->router:authelia - - - - - -svc:crowdsec - -crowdsec - - - -svc:crowdsec->net:traefik - - - - - -svc:docker-socket-proxy - -docker-socket-proxy - - - -svc:docker-socket-proxy->net:monitor - - - - - -svc:docker-socket-proxy->net:traefik - - - - - -svc:docker-update-exporter - -docker-update-exporter - - - -svc:docker-update-exporter->net:monitor - - - - - -svc:error-pages - -error-pages - - - -svc:error-pages->net:traefik - - - - - -traefik-service:error-pages - - - -service:error-pages - - - -router:error-pages-router->traefik-service:error-pages - - - - - -mw:error-pages-middleware - -error-pages-middleware - - - -router:error-pages-router->mw:error-pages-middleware - - - - - -traefik-service:error-pages-service - - - -service:error-pages-service -port:8080 - - - -traefik-service:error-pages-service->svc:error-pages - - +svc:traefik->svc:authelia + + - + svc:gitea - -gitea + +gitea +:3000 +[TLS] - - -svc:gitea->net:traefik - - - - - -traefik-service:gitea - - - -service:gitea -port:3000 - - - -router:gitea->traefik-service:gitea - - - - - -traefik-service:gitea->svc:gitea - - - - - -dns:service-2.<internal-domain>->router:gitea - - - - - -svc:gitea-runner - -gitea-runner - - - -svc:gitea-runner->net:traefik - - + + +svc:traefik->svc:gitea + + - + svc:gotify - -gotify + +gotify +:80 - - -svc:gotify->net:traefik - - - - - -traefik-service:gotify - - - -service:gotify -port:80 - - - -router:gotify->traefik-service:gotify - - - - - -traefik-service:gotify->svc:gotify - - - - - -dns:service-3.<internal-domain>->router:gotify - - + + +svc:traefik->svc:gotify + + - + svc:grafana - -grafana + +grafana +:3000 - - -svc:grafana->net:monitor - - - - - -svc:grafana->net:traefik - - - - - -traefik-service:grafana - - - -service:grafana -port:3000 - - - -router:grafana->traefik-service:grafana - - - - - -traefik-service:grafana->svc:grafana - - - - - -dns:service-4.<internal-domain>->router:grafana - - - - - -svc:gramps-redis - -gramps-redis - - - -svc:gramps-redis->net:gramps - - + + +svc:traefik->svc:grafana + + - + svc:grampsweb - -grampsweb + +grampsweb - - -svc:grampsweb->net:gramps - - - - - -svc:grampsweb->net:traefik - - - - - -traefik-service:grampsweb - - - -service:grampsweb - - - -router:gramps->traefik-service:grampsweb - - - - - -dns:service-5.<internal-domain>->router:gramps - - - - - -traefik-service:gramps - - - -service:gramps -port:5000 - - - -traefik-service:gramps->svc:grampsweb - - - - - -svc:grampsweb_celery - -grampsweb_celery - - - -svc:grampsweb_celery->net:gramps - - + + +svc:traefik->svc:grampsweb + + - + svc:influxdb - -influxdb + +influxdb +:8086 +[authelia] - - -svc:influxdb->net:monitor - - - - - -svc:influxdb->net:traefik - - - - - -traefik-service:influxdb - - - -service:influxdb -port:8086 - - - -router:influxdb->traefik-service:influxdb - - - - - -mw:authelia - -authelia - - - -router:influxdb->mw:authelia - - - - - -traefik-service:influxdb->svc:influxdb - - - - - -dns:service-6.<internal-domain>->router:influxdb - - + + +svc:traefik->svc:influxdb + + - + svc:monitor-kuma - -monitor-kuma + +monitor-kuma +[TLS] - - -svc:monitor-kuma->net:monitor - - - - - -svc:monitor-kuma->net:traefik - - - - - -traefik-service:monitor-kuma - - - -service:monitor-kuma - - - -router:monitor->traefik-service:monitor-kuma - - - - - -dns:service-7.<internal-domain>->router:monitor - - - - - -traefik-service:monitor - - - -service:monitor -port:3001 - - - -traefik-service:monitor->svc:monitor-kuma - - + + +svc:traefik->svc:monitor-kuma + + - + svc:mtls-bridge - -mtls-bridge + +mtls-bridge +:8080 +[mTLS] - - -svc:mtls-bridge->net:monitor - - - - - -svc:mtls-bridge->net:traefik - - - - - -traefik-service:mtls-bridge - - - -service:mtls-bridge -port:8080 - - - -router:mtls-bridge->traefik-service:mtls-bridge - - - - - -mw:mtls-bridge-auth - -mtls-bridge-auth - - - -router:mtls-bridge->mw:mtls-bridge-auth - - - - - -mw:mtls-bridge-cors - -mtls-bridge-cors - - - -router:mtls-bridge->mw:mtls-bridge-cors - - - - - -traefik-service:mtls-bridge->svc:mtls-bridge - - - - - -dns:service-8.<internal-domain>->router:mtls-bridge - - - - - -dns:service-8.<internal-domain>->router:mtls-bridge-preflight - - - - - -router:mtls-bridge-preflight->traefik-service:mtls-bridge - - - - - -router:mtls-bridge-preflight->mw:mtls-bridge-cors - - - - - -svc:nextcloud-db - -nextcloud-db - - - -svc:nextcloud-db->net:nextcloud - - - - - -svc:nextcloud-redis - -nextcloud-redis - - - -svc:nextcloud-redis->net:nextcloud - - + + +svc:traefik->svc:mtls-bridge + + - + svc:nextcloud-webapp - -nextcloud-webapp + +nextcloud-webapp - - -svc:nextcloud-webapp->net:nextcloud - - - - - -svc:nextcloud-webapp->net:traefik - - - - - -traefik-service:nextcloud-webapp - - - -service:nextcloud-webapp - - - -router:nextcloud->traefik-service:nextcloud-webapp - - - - - -mw:nextcloud-dav - -nextcloud-dav - - - -router:nextcloud->mw:nextcloud-dav - - - - - -mw:nextcloud-webfinger - -nextcloud-webfinger - - - -router:nextcloud->mw:nextcloud-webfinger - - - - - -dns:service-9.<internal-domain>->router:nextcloud - - - - - -svc:node-exporter - -node-exporter - - - -svc:node-exporter->net:monitor - - + + +svc:traefik->svc:nextcloud-webapp + + - + svc:node-red - -node-red + +node-red +:1880 +[authelia] - - -svc:node-red->net:monitor - - - - - -svc:node-red->net:traefik - - - - - -router:node-red->mw:authelia - - - - - -traefik-service:node-red - - - -service:node-red -port:1880 - - - -router:node-red->traefik-service:node-red - - - - - -traefik-service:node-red->svc:node-red - - - - - -dns:service-10.<internal-domain>->router:node-red - - - - - -svc:passbolt-db - -passbolt-db - - - -svc:passbolt-db->net:passbolt - - + + +svc:traefik->svc:node-red + + - + svc:passbolt-webapp - -passbolt-webapp + +passbolt-webapp - - -svc:passbolt-webapp->net:passbolt - - - - - -svc:passbolt-webapp->net:traefik - - - - - -traefik-service:passbolt-webapp - - - -service:passbolt-webapp - - - -router:passbolt->traefik-service:passbolt-webapp - - - - - -dns:service-11.<internal-domain>->router:passbolt - - - - - -svc:pihole-exporter - -pihole-exporter - - - -svc:pihole-exporter->net:monitor - - + + +svc:traefik->svc:passbolt-webapp + + - + svc:portainer - -portainer + +portainer +:9000 +[TLS] - - -svc:portainer->net:traefik - - - - - -traefik-service:portainer - - - -service:portainer -port:9000 - - - -router:portainer->traefik-service:portainer - - - - - -traefik-service:portainer->svc:portainer - - - - - -dns:service-12.<internal-domain>->router:portainer - - + + +svc:traefik->svc:portainer + + - + svc:prometheus - -prometheus + +prometheus +:9090 +[authelia] - - -svc:prometheus->net:monitor - - - - - -svc:prometheus->net:traefik - - - - - -router:prometheus->mw:authelia - - - - - -traefik-service:prometheus - - - -service:prometheus -port:9090 - - - -router:prometheus->traefik-service:prometheus - - - - - -traefik-service:prometheus->svc:prometheus - - - - - -dns:service-13.<internal-domain>->router:prometheus - - + + +svc:traefik->svc:prometheus + + - + svc:searxng-webapp - -searxng-webapp + +searxng-webapp - - -svc:searxng-webapp->net:traefik - - - - - -traefik-service:searxng-webapp - - - -service:searxng-webapp - - - -router:searxng->traefik-service:searxng-webapp - - - - - -dns:service-14.<internal-domain>->router:searxng - - - - - -traefik-service:searxng - - - -service:searxng -port:8080 - - - -traefik-service:searxng->svc:searxng-webapp - - + + +svc:traefik->svc:searxng-webapp + + - + svc:shift-recorder-web - -shift-recorder-web + +shift-recorder-web +[TLS] - - -svc:shift-recorder-web->net:traefik - - - - - -traefik-service:shift-recorder-web - - - -service:shift-recorder-web - - - -router:shifts->traefik-service:shift-recorder-web - - - - - -dns:service-15.<internal-domain>->router:shifts - - - - - -traefik-service:shifts - - - -service:shifts -port:80 - - - -traefik-service:shifts->svc:shift-recorder-web - - + + +svc:traefik->svc:shift-recorder-web + + - + svc:stockfill - -stockfill + +stockfill +:80 +[TLS] + + + +svc:traefik->svc:stockfill + + + + + +net:traefik + +traefik + + + +svc:traefik->net:traefik + + + + + +svc:authelia->net:traefik + + + + + +dns:service-1.<internal-domain> + + + +service-1.<internal-domain> + + + +dns:service-1.<internal-domain>->svc:traefik + + + + + +svc:gitea->net:traefik + + + + + +dns:service-2.<internal-domain> + + + +service-2.<internal-domain> + + + +dns:service-2.<internal-domain>->svc:traefik + + + + + +svc:gotify->net:traefik + + + + + +dns:service-3.<internal-domain> + + + +service-3.<internal-domain> + + + +dns:service-3.<internal-domain>->svc:traefik + + + + + +net:monitor + +monitor + + + +svc:grafana->net:monitor + + + + + +svc:grafana->net:traefik + + + + + +dns:service-4.<internal-domain> + + + +service-4.<internal-domain> + + + +dns:service-4.<internal-domain>->svc:traefik + + + + + +net:gramps + +gramps + + + +svc:grampsweb->net:gramps + + + + + +svc:grampsweb->net:traefik + + + + + +dns:service-5.<internal-domain> + + + +service-5.<internal-domain> + + + +dns:service-5.<internal-domain>->svc:traefik + + + + + +svc:influxdb->net:monitor + + + + + +svc:influxdb->net:traefik + + + + + +dns:service-6.<internal-domain> + + + +service-6.<internal-domain> + + + +dns:service-6.<internal-domain>->svc:traefik + + + + + +svc:monitor-kuma->net:monitor + + + + + +svc:monitor-kuma->net:traefik + + + + + +dns:service-7.<internal-domain> + + + +service-7.<internal-domain> + + + +dns:service-7.<internal-domain>->svc:traefik + + + + + +svc:mtls-bridge->net:monitor + + + + + +svc:mtls-bridge->net:traefik + + + + + +dns:service-8.<internal-domain> + + + +service-8.<internal-domain> + + + +dns:service-8.<internal-domain>->svc:traefik + + + + + +net:nextcloud + +nextcloud + + + +svc:nextcloud-webapp->net:nextcloud + + + + + +svc:nextcloud-webapp->net:traefik + + + + + +dns:service-9.<internal-domain> + + + +service-9.<internal-domain> + + + +dns:service-9.<internal-domain>->svc:traefik + + + + + +svc:node-red->net:monitor + + + + + +svc:node-red->net:traefik + + + + + +dns:service-10.<internal-domain> + + + +service-10.<internal-domain> + + + +dns:service-10.<internal-domain>->svc:traefik + + + + + +net:passbolt + +passbolt + + + +svc:passbolt-webapp->net:passbolt + + + + + +svc:passbolt-webapp->net:traefik + + + + + +dns:service-11.<internal-domain> + + + +service-11.<internal-domain> + + + +dns:service-11.<internal-domain>->svc:traefik + + + + + +svc:portainer->net:traefik + + + + + +dns:service-12.<internal-domain> + + + +service-12.<internal-domain> + + + +dns:service-12.<internal-domain>->svc:traefik + + + + + +svc:prometheus->net:monitor + + + + + +svc:prometheus->net:traefik + + + + + +dns:service-13.<internal-domain> + + + +service-13.<internal-domain> + + + +dns:service-13.<internal-domain>->svc:traefik + + + + + +svc:searxng-webapp->net:traefik + + + + + +dns:service-14.<internal-domain> + + + +service-14.<internal-domain> + + + +dns:service-14.<internal-domain>->svc:traefik + + + + + +svc:shift-recorder-web->net:traefik + + + + + +dns:service-15.<internal-domain> + + + +service-15.<internal-domain> + + + +dns:service-15.<internal-domain>->svc:traefik + + - + svc:stockfill->net:traefik - - + + - - -traefik-service:stockfill - - - -service:stockfill -port:80 + + +dns:service-16.<internal-domain> + + + +service-16.<internal-domain> - - -router:stockfill->traefik-service:stockfill - - + + +dns:service-16.<internal-domain>->svc:traefik + + - - -traefik-service:stockfill->svc:stockfill - - + + +dns:service-17.<internal-domain> + + + +service-17.<internal-domain> - - -dns:service-16.<internal-domain>->router:stockfill - - - - - -svc:telegraf - -telegraf - - - -svc:telegraf->net:monitor - - - - - -router:traefik->mw:authelia - - - - - -traefik-service:api@internal - - - -service:api@internal - - - -router:traefik->traefik-service:api@internal - - - - - -dns:service-17.<internal-domain>->router:traefik - - + + +dns:service-17.<internal-domain>->svc:traefik + + diff --git a/docs/public/physical-topology.svg b/docs/public/physical-topology.svg index 77daceb..f05c23a 100644 --- a/docs/public/physical-topology.svg +++ b/docs/public/physical-topology.svg @@ -1,401 +1,271 @@ - - - + + PhysicalTopology - + cluster_docker - -docker + +docker host +cluster_docker_apps + +apps + + +cluster_docker_automation + +automation + + +cluster_docker_edge_proxy_auth + +edge/proxy/auth + + +cluster_docker_monitoring + +monitoring + + +cluster_docker_storage_database_support + +storage/database/support + + cluster_raspberrypi - -raspberrypi + +raspberrypi host - - -host:docker - - - - -docker + +cluster_raspberrypi_apps + +apps - - -svc:authelia - -authelia - - - -host:docker->svc:authelia - - + +cluster_legend + +Legend - + svc:crowdsec - -crowdsec - - - -host:docker->svc:crowdsec - - - - - -svc:docker-socket-proxy - -docker-socket-proxy - - - -host:docker->svc:docker-socket-proxy - - + +crowdsec - + svc:docker-update-exporter - -docker-update-exporter - - - -host:docker->svc:docker-update-exporter - - + +docker-update-exporter - + svc:error-pages - -error-pages - - - -host:docker->svc:error-pages - - + +error-pages - + svc:gitea - -gitea - - - -host:docker->svc:gitea - - - - - -svc:gitea-runner - -gitea-runner - - - -host:docker->svc:gitea-runner - - + +gitea - + svc:gotify - -gotify - - - -host:docker->svc:gotify - - - - - -svc:grafana - -grafana - - - -host:docker->svc:grafana - - - - - -svc:gramps-redis - -gramps-redis - - - -host:docker->svc:gramps-redis - - + +gotify - + svc:grampsweb - -grampsweb - - - -host:docker->svc:grampsweb - - + +grampsweb - + svc:grampsweb_celery - -grampsweb_celery - - - -host:docker->svc:grampsweb_celery - - - - - -svc:influxdb - -influxdb - - - -host:docker->svc:influxdb - - + +grampsweb_celery - + svc:monitor-kuma - -monitor-kuma - - - -host:docker->svc:monitor-kuma - - + +monitor-kuma - + svc:mtls-bridge - -mtls-bridge - - - -host:docker->svc:mtls-bridge - - - - - -svc:nextcloud-db - -nextcloud-db - - - -host:docker->svc:nextcloud-db - - - - - -svc:nextcloud-redis - -nextcloud-redis - - - -host:docker->svc:nextcloud-redis - - + +mtls-bridge - + svc:nextcloud-webapp - -nextcloud-webapp - - - -host:docker->svc:nextcloud-webapp - - - - - -svc:node-exporter - -node-exporter - - - -host:docker->svc:node-exporter - - + +nextcloud-webapp - + svc:node-red - -node-red - - - -host:docker->svc:node-red - - - - - -svc:passbolt-db - -passbolt-db - - - -host:docker->svc:passbolt-db - - + +node-red - + svc:passbolt-webapp - -passbolt-webapp - - - -host:docker->svc:passbolt-webapp - - + +passbolt-webapp - + svc:portainer - -portainer - - - -host:docker->svc:portainer - - - - - -svc:prometheus - -prometheus - - - -host:docker->svc:prometheus - - + +portainer - + svc:searxng-webapp - -searxng-webapp - - - -host:docker->svc:searxng-webapp - - + +searxng-webapp - + svc:shift-recorder-web - -shift-recorder-web - - - -host:docker->svc:shift-recorder-web - - + +shift-recorder-web - + svc:stockfill - -stockfill - - - -host:docker->svc:stockfill - - + +stockfill - + svc:telegraf - -telegraf + +telegraf - - -host:docker->svc:telegraf - - + + +svc:gitea-runner + +gitea-runner + + + +svc:authelia + +authelia + + + +svc:docker-socket-proxy + +docker-socket-proxy - + svc:traefik - -traefik + +traefik - - -host:docker->svc:traefik - - + + +svc:grafana + +grafana - - -host:raspberrypi - - - - -raspberrypi + + +svc:node-exporter + +node-exporter + + + +svc:prometheus + +prometheus + + + +svc:gramps-redis + +gramps-redis + + + +svc:influxdb + +influxdb + + + +svc:nextcloud-db + +nextcloud-db + + + +svc:nextcloud-redis + +nextcloud-redis + + + +svc:passbolt-db + +passbolt-db - + svc:pihole-exporter - -pihole-exporter + +pihole-exporter - - -host:raspberrypi->svc:pihole-exporter - - + + +leg_host + + + + +Host cluster + + + +leg_cat + +Service category + + + +leg_host->leg_cat + + + + + +leg_svc + +Container/service + + + +leg_cat->leg_svc + + diff --git a/docs/public/traefik-routes.md b/docs/public/traefik-routes.md index fa19faf..18734a7 100644 --- a/docs/public/traefik-routes.md +++ b/docs/public/traefik-routes.md @@ -18,4 +18,6 @@ | portainer | portainer | Host(``) | websecure | true | | 9000 | | prometheus | prometheus | Host(``) | websecure | | authelia | 9090 | | searxng-webapp | searxng | Host(``) | websecure | | | 8080 | +| shift-recorder-web | shifts | Host(``) | websecure | true | | 80 | +| stockfill | stockfill | Host(``) | websecure | true | | 80 | | traefik | traefik | Host(``) | websecure | | authelia | |