Fix public topology/routing diagram generation and layout
@@ -27,8 +27,6 @@ digraph Compose {
|
|||||||
"svc:portainer" [label="portainer", shape=box, style=filled, fillcolor="#dfefff"];
|
"svc:portainer" [label="portainer", shape=box, style=filled, fillcolor="#dfefff"];
|
||||||
"svc:prometheus" [label="prometheus", shape=box, style=filled, fillcolor="#dfefff"];
|
"svc:prometheus" [label="prometheus", shape=box, style=filled, fillcolor="#dfefff"];
|
||||||
"svc:searxng-webapp" [label="searxng-webapp", shape=box, style=filled, fillcolor="#dfefff"];
|
"svc:searxng-webapp" [label="searxng-webapp", shape=box, style=filled, fillcolor="#dfefff"];
|
||||||
"svc:shift-recorder-web" [label="shift-recorder-web", shape=box, style=filled, fillcolor="#dfefff"];
|
|
||||||
"svc:stockfill" [label="stockfill", shape=box, style=filled, fillcolor="#dfefff"];
|
|
||||||
"svc:telegraf" [label="telegraf", shape=box, style=filled, fillcolor="#dfefff"];
|
"svc:telegraf" [label="telegraf", shape=box, style=filled, fillcolor="#dfefff"];
|
||||||
"svc:traefik" [label="traefik", shape=box, style=filled, fillcolor="#dfefff"];
|
"svc:traefik" [label="traefik", shape=box, style=filled, fillcolor="#dfefff"];
|
||||||
"net:gramps" [label="gramps", shape=ellipse, style=filled, fillcolor="#f4f4f4"];
|
"net:gramps" [label="gramps", shape=ellipse, style=filled, fillcolor="#f4f4f4"];
|
||||||
@@ -72,8 +70,6 @@ digraph Compose {
|
|||||||
"svc:prometheus" -> "net:monitor";
|
"svc:prometheus" -> "net:monitor";
|
||||||
"svc:prometheus" -> "net:traefik";
|
"svc:prometheus" -> "net:traefik";
|
||||||
"svc:searxng-webapp" -> "net:traefik";
|
"svc:searxng-webapp" -> "net:traefik";
|
||||||
"svc:shift-recorder-web" -> "net:traefik";
|
|
||||||
"svc:stockfill" -> "net:traefik";
|
|
||||||
"svc:telegraf" -> "net:monitor";
|
"svc:telegraf" -> "net:monitor";
|
||||||
"svc:traefik" -> "net:traefik";
|
"svc:traefik" -> "net:traefik";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,463 +1,439 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<!-- Generated by graphviz version 12.2.1 (0)
|
<!-- Generated by graphviz version 2.43.0 (0)
|
||||||
-->
|
-->
|
||||||
<!-- Title: Compose Pages: 1 -->
|
<!-- Title: Compose Pages: 1 -->
|
||||||
<svg width="342pt" height="1610pt"
|
<svg width="334pt" height="1502pt"
|
||||||
viewBox="0.00 0.00 341.70 1610.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 334.49 1502.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1606)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1498)">
|
||||||
<title>Compose</title>
|
<title>Compose</title>
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1606 337.7,-1606 337.7,4 -4,4"/>
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1498 330.49,-1498 330.49,4 -4,4"/>
|
||||||
<!-- svc:authelia -->
|
<!-- svc:authelia -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>svc:authelia</title>
|
<title>svc:authelia</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="125.5,-900 54,-900 54,-864 125.5,-864 125.5,-900"/>
|
<polygon fill="#dfefff" stroke="black" points="126,-738 54,-738 54,-702 126,-702 126,-738"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-877.33" font-family="Helvetica,sans-Serif" font-size="14.00">authelia</text>
|
<text text-anchor="middle" x="90" y="-716.3" font-family="Helvetica,sans-Serif" font-size="14.00">authelia</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:traefik -->
|
<!-- net:traefik -->
|
||||||
<g id="node35" class="node">
|
<g id="node33" class="node">
|
||||||
<title>net:traefik</title>
|
<title>net:traefik</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-828" rx="42.79" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-774" rx="40.09" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
<text text-anchor="middle" x="271.25" y="-770.3" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:authelia->net:traefik -->
|
<!-- svc:authelia->net:traefik -->
|
||||||
<g id="edge1" class="edge">
|
<g id="edge1" class="edge">
|
||||||
<title>svc:authelia->net:traefik</title>
|
<title>svc:authelia->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M125.57,-871.72C154.68,-863.12 196.4,-850.8 228.13,-841.43"/>
|
<path fill="none" stroke="black" d="M126.41,-730.67C155.5,-739.43 196.8,-751.87 227.69,-761.18"/>
|
||||||
<polygon fill="black" stroke="black" points="228.86,-844.86 237.45,-838.67 226.87,-838.15 228.86,-844.86"/>
|
<polygon fill="black" stroke="black" points="226.74,-764.55 237.32,-764.08 228.76,-757.85 226.74,-764.55"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:crowdsec -->
|
<!-- svc:crowdsec -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node">
|
||||||
<title>svc:crowdsec</title>
|
<title>svc:crowdsec</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="130,-846 49.5,-846 49.5,-810 130,-810 130,-846"/>
|
<polygon fill="#dfefff" stroke="black" points="130.5,-684 49.5,-684 49.5,-648 130.5,-648 130.5,-684"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">crowdsec</text>
|
<text text-anchor="middle" x="90" y="-662.3" font-family="Helvetica,sans-Serif" font-size="14.00">crowdsec</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:crowdsec->net:traefik -->
|
<!-- svc:crowdsec->net:traefik -->
|
||||||
<g id="edge2" class="edge">
|
<g id="edge2" class="edge">
|
||||||
<title>svc:crowdsec->net:traefik</title>
|
<title>svc:crowdsec->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M130.43,-828C156.64,-828 191.33,-828 219.99,-828"/>
|
<path fill="none" stroke="black" d="M130.61,-674.06C146.59,-678.3 164.81,-684.44 180,-693 206.25,-707.78 231.35,-731.35 248.38,-749.26"/>
|
||||||
<polygon fill="black" stroke="black" points="219.94,-831.5 229.94,-828 219.94,-824.5 219.94,-831.5"/>
|
<polygon fill="black" stroke="black" points="246.24,-752.1 255.62,-757.03 251.37,-747.33 246.24,-752.1"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy -->
|
<!-- svc:docker-socket-proxy -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node">
|
||||||
<title>svc:docker-socket-proxy</title>
|
<title>svc:docker-socket-proxy</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="167.12,-1116 12.38,-1116 12.38,-1080 167.12,-1080 167.12,-1116"/>
|
<polygon fill="#dfefff" stroke="black" points="167.5,-954 12.5,-954 12.5,-918 167.5,-918 167.5,-954"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1093.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker-socket-proxy</text>
|
<text text-anchor="middle" x="90" y="-932.3" font-family="Helvetica,sans-Serif" font-size="14.00">docker-socket-proxy</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:monitor -->
|
<!-- net:monitor -->
|
||||||
<g id="node32" class="node">
|
<g id="node30" class="node">
|
||||||
<title>net:monitor</title>
|
<title>net:monitor</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-1314" rx="49.1" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-1206" rx="46.29" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor</text>
|
<text text-anchor="middle" x="271.25" y="-1202.3" font-family="Helvetica,sans-Serif" font-size="14.00">monitor</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy->net:monitor -->
|
<!-- svc:docker-socket-proxy->net:monitor -->
|
||||||
<g id="edge3" class="edge">
|
<g id="edge3" class="edge">
|
||||||
<title>svc:docker-socket-proxy->net:monitor</title>
|
<title>svc:docker-socket-proxy->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M167.08,-1116.44C171.5,-1118.94 175.69,-1121.78 179.5,-1125 229.66,-1167.43 255.71,-1243.09 266.82,-1284.65"/>
|
<path fill="none" stroke="black" d="M167.53,-953.71C172.02,-956.38 176.24,-959.46 180,-963 242.3,-1021.6 261.83,-1127.12 267.77,-1177.6"/>
|
||||||
<polygon fill="black" stroke="black" points="263.39,-1285.36 269.25,-1294.19 270.17,-1283.63 263.39,-1285.36"/>
|
<polygon fill="black" stroke="black" points="264.31,-1178.21 268.86,-1187.78 271.27,-1177.46 264.31,-1178.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy->net:traefik -->
|
<!-- svc:docker-socket-proxy->net:traefik -->
|
||||||
<g id="edge4" class="edge">
|
<g id="edge4" class="edge">
|
||||||
<title>svc:docker-socket-proxy->net:traefik</title>
|
<title>svc:docker-socket-proxy->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M167.43,-1079.96C171.77,-1077.37 175.84,-1074.4 179.5,-1071 242.11,-1012.86 263.56,-908.25 270.5,-857.38"/>
|
<path fill="none" stroke="black" d="M165.31,-917.9C170.5,-915.32 175.46,-912.37 180,-909 218.01,-880.82 244.97,-831.56 259.03,-800.98"/>
|
||||||
<polygon fill="black" stroke="black" points="273.94,-858.09 271.71,-847.73 266.99,-857.22 273.94,-858.09"/>
|
<polygon fill="black" stroke="black" points="262.27,-802.31 263.14,-791.76 255.87,-799.46 262.27,-802.31"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-update-exporter -->
|
<!-- svc:docker-update-exporter -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node">
|
||||||
<title>svc:docker-update-exporter</title>
|
<title>svc:docker-update-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="179.5,-1494 0,-1494 0,-1458 179.5,-1458 179.5,-1494"/>
|
<polygon fill="#dfefff" stroke="black" points="180,-1494 0,-1494 0,-1458 180,-1458 180,-1494"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1471.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker-update-exporter</text>
|
<text text-anchor="middle" x="90" y="-1472.3" font-family="Helvetica,sans-Serif" font-size="14.00">docker-update-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-update-exporter->net:monitor -->
|
<!-- svc:docker-update-exporter->net:monitor -->
|
||||||
<g id="edge5" class="edge">
|
<g id="edge5" class="edge">
|
||||||
<title>svc:docker-update-exporter->net:monitor</title>
|
<title>svc:docker-update-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M165.23,-1457.57C170.25,-1455.06 175.07,-1452.22 179.5,-1449 217.95,-1421.05 246.17,-1372.4 261.21,-1341.77"/>
|
<path fill="none" stroke="black" d="M168.37,-1457.79C172.55,-1455.23 176.47,-1452.32 180,-1449 242.3,-1390.4 261.83,-1284.88 267.77,-1234.4"/>
|
||||||
<polygon fill="black" stroke="black" points="264.19,-1343.65 265.33,-1333.12 257.87,-1340.64 264.19,-1343.65"/>
|
<polygon fill="black" stroke="black" points="271.27,-1234.54 268.86,-1224.22 264.31,-1233.79 271.27,-1234.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:error-pages -->
|
<!-- svc:error-pages -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node">
|
||||||
<title>svc:error-pages</title>
|
<title>svc:error-pages</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="137.12,-792 42.38,-792 42.38,-756 137.12,-756 137.12,-792"/>
|
<polygon fill="#dfefff" stroke="black" points="137.5,-630 42.5,-630 42.5,-594 137.5,-594 137.5,-630"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-769.33" font-family="Helvetica,sans-Serif" font-size="14.00">error-pages</text>
|
<text text-anchor="middle" x="90" y="-608.3" font-family="Helvetica,sans-Serif" font-size="14.00">error-pages</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:error-pages->net:traefik -->
|
<!-- svc:error-pages->net:traefik -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge6" class="edge">
|
||||||
<title>svc:error-pages->net:traefik</title>
|
<title>svc:error-pages->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M137.36,-787.77C165.17,-795.98 200.32,-806.36 227.95,-814.52"/>
|
<path fill="none" stroke="black" d="M137.71,-619.76C152.25,-623.79 167.68,-629.86 180,-639 218.01,-667.18 244.97,-716.44 259.03,-747.02"/>
|
||||||
<polygon fill="black" stroke="black" points="226.88,-817.85 237.46,-817.33 228.86,-811.14 226.88,-817.85"/>
|
<polygon fill="black" stroke="black" points="255.87,-748.54 263.14,-756.24 262.27,-745.69 255.87,-748.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea -->
|
<!-- svc:gitea -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node">
|
||||||
<title>svc:gitea</title>
|
<title>svc:gitea</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="116.75,-738 62.75,-738 62.75,-702 116.75,-702 116.75,-738"/>
|
<polygon fill="#dfefff" stroke="black" points="117,-576 63,-576 63,-540 117,-540 117,-576"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-715.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea</text>
|
<text text-anchor="middle" x="90" y="-554.3" font-family="Helvetica,sans-Serif" font-size="14.00">gitea</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea->net:traefik -->
|
<!-- svc:gitea->net:traefik -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge7" class="edge">
|
||||||
<title>svc:gitea->net:traefik</title>
|
<title>svc:gitea->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M117.13,-725C135.41,-729.18 159.89,-736.21 179.5,-747 206.52,-761.87 232.73,-785.42 250.6,-803.3"/>
|
<path fill="none" stroke="black" d="M117.07,-560.28C136.41,-563.2 162.37,-569.85 180,-585 229.98,-627.95 254.42,-704.8 264.44,-746.04"/>
|
||||||
<polygon fill="black" stroke="black" points="247.64,-805.29 257.14,-809.99 252.65,-800.39 247.64,-805.29"/>
|
<polygon fill="black" stroke="black" points="261.07,-747 266.73,-755.95 267.88,-745.42 261.07,-747"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea-runner -->
|
<!-- svc:gitea-runner -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node">
|
||||||
<title>svc:gitea-runner</title>
|
<title>svc:gitea-runner</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="141.25,-684 38.25,-684 38.25,-648 141.25,-648 141.25,-684"/>
|
<polygon fill="#dfefff" stroke="black" points="142,-522 38,-522 38,-486 142,-486 142,-522"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-661.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea-runner</text>
|
<text text-anchor="middle" x="90" y="-500.3" font-family="Helvetica,sans-Serif" font-size="14.00">gitea-runner</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea-runner->net:traefik -->
|
<!-- svc:gitea-runner->net:traefik -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge8" class="edge">
|
||||||
<title>svc:gitea-runner->net:traefik</title>
|
<title>svc:gitea-runner->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M141.36,-675.13C154.61,-679.13 168.3,-684.85 179.5,-693 217.95,-720.95 246.17,-769.6 261.21,-800.23"/>
|
<path fill="none" stroke="black" d="M142.31,-511.04C155.9,-515.03 169.65,-521.26 180,-531 242.3,-589.6 261.83,-695.12 267.77,-745.6"/>
|
||||||
<polygon fill="black" stroke="black" points="257.87,-801.36 265.33,-808.88 264.19,-798.35 257.87,-801.36"/>
|
<polygon fill="black" stroke="black" points="264.31,-746.21 268.86,-755.78 271.27,-745.46 264.31,-746.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gotify -->
|
<!-- svc:gotify -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node">
|
||||||
<title>svc:gotify</title>
|
<title>svc:gotify</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="117.25,-630 62.25,-630 62.25,-594 117.25,-594 117.25,-630"/>
|
<polygon fill="#dfefff" stroke="black" points="118,-468 62,-468 62,-432 118,-432 118,-468"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-607.33" font-family="Helvetica,sans-Serif" font-size="14.00">gotify</text>
|
<text text-anchor="middle" x="90" y="-446.3" font-family="Helvetica,sans-Serif" font-size="14.00">gotify</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gotify->net:traefik -->
|
<!-- svc:gotify->net:traefik -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge9" class="edge">
|
||||||
<title>svc:gotify->net:traefik</title>
|
<title>svc:gotify->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M117.49,-614.51C136.64,-617.54 162.04,-624.23 179.5,-639 229.66,-681.43 255.71,-757.09 266.82,-798.65"/>
|
<path fill="none" stroke="black" d="M118.17,-451.6C137.81,-454.16 163.67,-460.68 180,-477 254.99,-551.96 268.02,-687.13 270.03,-745.69"/>
|
||||||
<polygon fill="black" stroke="black" points="263.39,-799.36 269.25,-808.19 270.17,-797.63 263.39,-799.36"/>
|
<polygon fill="black" stroke="black" points="266.53,-745.79 270.29,-755.69 273.53,-745.61 266.53,-745.79"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana -->
|
<!-- svc:grafana -->
|
||||||
<g id="node9" class="node">
|
<g id="node9" class="node">
|
||||||
<title>svc:grafana</title>
|
<title>svc:grafana</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.75,-1062 54.75,-1062 54.75,-1026 124.75,-1026 124.75,-1062"/>
|
<polygon fill="#dfefff" stroke="black" points="125.5,-1278 54.5,-1278 54.5,-1242 125.5,-1242 125.5,-1278"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1039.33" font-family="Helvetica,sans-Serif" font-size="14.00">grafana</text>
|
<text text-anchor="middle" x="90" y="-1256.3" font-family="Helvetica,sans-Serif" font-size="14.00">grafana</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana->net:monitor -->
|
<!-- svc:grafana->net:monitor -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge10" class="edge">
|
||||||
<title>svc:grafana->net:monitor</title>
|
<title>svc:grafana->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M125.1,-1047.21C143.24,-1050.54 164.75,-1057.3 179.5,-1071 242.11,-1129.14 263.56,-1233.75 270.5,-1284.62"/>
|
<path fill="none" stroke="black" d="M125.56,-1249.59C153.74,-1241.1 193.78,-1229.04 224.6,-1219.75"/>
|
||||||
<polygon fill="black" stroke="black" points="266.99,-1284.78 271.71,-1294.27 273.94,-1283.91 266.99,-1284.78"/>
|
<polygon fill="black" stroke="black" points="225.69,-1223.08 234.26,-1216.84 223.67,-1216.38 225.69,-1223.08"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana->net:traefik -->
|
<!-- svc:grafana->net:traefik -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge11" class="edge">
|
||||||
<title>svc:grafana->net:traefik</title>
|
<title>svc:grafana->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M125.04,-1040.15C142.95,-1036.63 164.25,-1029.9 179.5,-1017 229.66,-974.57 255.71,-898.91 266.82,-857.35"/>
|
<path fill="none" stroke="black" d="M125.54,-1257.93C144.23,-1254.97 166.25,-1248.21 180,-1233 238.17,-1168.67 262.1,-892.17 268.43,-802.32"/>
|
||||||
<polygon fill="black" stroke="black" points="270.17,-858.37 269.25,-847.81 263.39,-856.64 270.17,-858.37"/>
|
<polygon fill="black" stroke="black" points="271.93,-802.3 269.13,-792.08 264.95,-801.82 271.93,-802.3"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gramps-redis -->
|
<!-- svc:gramps-redis -->
|
||||||
<g id="node10" class="node">
|
<g id="node10" class="node">
|
||||||
<title>svc:gramps-redis</title>
|
<title>svc:gramps-redis</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="143.88,-360 35.62,-360 35.62,-324 143.88,-324 143.88,-360"/>
|
<polygon fill="#dfefff" stroke="black" points="144.5,-360 35.5,-360 35.5,-324 144.5,-324 144.5,-360"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps-redis</text>
|
<text text-anchor="middle" x="90" y="-338.3" font-family="Helvetica,sans-Serif" font-size="14.00">gramps-redis</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:gramps -->
|
<!-- net:gramps -->
|
||||||
<g id="node31" class="node">
|
<g id="node29" class="node">
|
||||||
<title>net:gramps</title>
|
<title>net:gramps</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-342" rx="48.58" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-342" rx="45.49" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps</text>
|
<text text-anchor="middle" x="271.25" y="-338.3" font-family="Helvetica,sans-Serif" font-size="14.00">gramps</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gramps-redis->net:gramps -->
|
<!-- svc:gramps-redis->net:gramps -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge12" class="edge">
|
||||||
<title>svc:gramps-redis->net:gramps</title>
|
<title>svc:gramps-redis->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M144.13,-342C166.12,-342 191.69,-342 214.27,-342"/>
|
<path fill="none" stroke="black" d="M144.78,-342C167.14,-342 193.05,-342 215.51,-342"/>
|
||||||
<polygon fill="black" stroke="black" points="214.25,-345.5 224.25,-342 214.25,-338.5 214.25,-345.5"/>
|
<polygon fill="black" stroke="black" points="215.56,-345.5 225.56,-342 215.56,-338.5 215.56,-345.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb -->
|
<!-- svc:grampsweb -->
|
||||||
<g id="node11" class="node">
|
<g id="node11" class="node">
|
||||||
<title>svc:grampsweb</title>
|
<title>svc:grampsweb</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="138.62,-414 40.88,-414 40.88,-378 138.62,-378 138.62,-414"/>
|
<polygon fill="#dfefff" stroke="black" points="139,-414 41,-414 41,-378 139,-378 139,-414"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-391.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb</text>
|
<text text-anchor="middle" x="90" y="-392.3" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb->net:gramps -->
|
<!-- svc:grampsweb->net:gramps -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge">
|
||||||
<title>svc:grampsweb->net:gramps</title>
|
<title>svc:grampsweb->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M138.79,-381.81C165.27,-373.99 198.07,-364.31 224.69,-356.45"/>
|
<path fill="none" stroke="black" d="M139.03,-381.53C165.7,-373.5 198.68,-363.56 224.9,-355.66"/>
|
||||||
<polygon fill="black" stroke="black" points="225.63,-359.82 234.23,-353.63 223.65,-353.1 225.63,-359.82"/>
|
<polygon fill="black" stroke="black" points="226.03,-358.98 234.59,-352.74 224.01,-352.27 226.03,-358.98"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb->net:traefik -->
|
<!-- svc:grampsweb->net:traefik -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge">
|
||||||
<title>svc:grampsweb->net:traefik</title>
|
<title>svc:grampsweb->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M139.04,-401.22C153.82,-405.09 168.94,-411.71 179.5,-423 231.19,-478.28 261.34,-714.72 270.55,-798.46"/>
|
<path fill="none" stroke="black" d="M139.27,-401.34C154.08,-405.21 169.28,-411.81 180,-423 225.12,-470.09 256.34,-671.08 266.59,-745.84"/>
|
||||||
<polygon fill="black" stroke="black" points="267.04,-798.59 271.6,-808.16 274,-797.84 267.04,-798.59"/>
|
<polygon fill="black" stroke="black" points="263.14,-746.48 267.95,-755.92 270.08,-745.55 263.14,-746.48"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb_celery -->
|
<!-- svc:grampsweb_celery -->
|
||||||
<g id="node12" class="node">
|
<g id="node12" class="node">
|
||||||
<title>svc:grampsweb_celery</title>
|
<title>svc:grampsweb_celery</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="163,-306 16.5,-306 16.5,-270 163,-270 163,-306"/>
|
<polygon fill="#dfefff" stroke="black" points="163.5,-306 16.5,-306 16.5,-270 163.5,-270 163.5,-306"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-283.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb_celery</text>
|
<text text-anchor="middle" x="90" y="-284.3" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb_celery</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb_celery->net:gramps -->
|
<!-- svc:grampsweb_celery->net:gramps -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge15" class="edge">
|
||||||
<title>svc:grampsweb_celery->net:gramps</title>
|
<title>svc:grampsweb_celery->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-306.43C176.62,-313.36 202.91,-321.12 224.94,-327.63"/>
|
<path fill="none" stroke="black" d="M151.18,-306.13C175.28,-313.39 202.57,-321.61 224.94,-328.35"/>
|
||||||
<polygon fill="black" stroke="black" points="223.66,-330.9 234.25,-330.38 225.65,-324.19 223.66,-330.9"/>
|
<polygon fill="black" stroke="black" points="223.94,-331.71 234.52,-331.24 225.96,-325 223.94,-331.71"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb -->
|
<!-- svc:influxdb -->
|
||||||
<g id="node13" class="node">
|
<g id="node13" class="node">
|
||||||
<title>svc:influxdb</title>
|
<title>svc:influxdb</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="126.25,-1386 53.25,-1386 53.25,-1350 126.25,-1350 126.25,-1386"/>
|
<polygon fill="#dfefff" stroke="black" points="127,-1224 53,-1224 53,-1188 127,-1188 127,-1224"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1363.33" font-family="Helvetica,sans-Serif" font-size="14.00">influxdb</text>
|
<text text-anchor="middle" x="90" y="-1202.3" font-family="Helvetica,sans-Serif" font-size="14.00">influxdb</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb->net:monitor -->
|
<!-- svc:influxdb->net:monitor -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge16" class="edge">
|
||||||
<title>svc:influxdb->net:monitor</title>
|
<title>svc:influxdb->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M126.44,-1357.46C154.39,-1349.2 193.59,-1337.63 224.5,-1328.5"/>
|
<path fill="none" stroke="black" d="M127.27,-1206C152.33,-1206 186.13,-1206 214.57,-1206"/>
|
||||||
<polygon fill="black" stroke="black" points="225.43,-1331.88 234.03,-1325.69 223.45,-1325.16 225.43,-1331.88"/>
|
<polygon fill="black" stroke="black" points="214.79,-1209.5 224.79,-1206 214.79,-1202.5 214.79,-1209.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb->net:traefik -->
|
<!-- svc:influxdb->net:traefik -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge17" class="edge">
|
||||||
<title>svc:influxdb->net:traefik</title>
|
<title>svc:influxdb->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M126.6,-1365.75C144.97,-1362.7 166.21,-1355.9 179.5,-1341 244.32,-1268.35 266.64,-955.74 272.12,-857.6"/>
|
<path fill="none" stroke="black" d="M127.17,-1203.5C145.42,-1200.36 166.5,-1193.56 180,-1179 231.57,-1123.4 259.36,-885.3 267.6,-802.51"/>
|
||||||
<polygon fill="black" stroke="black" points="275.61,-857.9 272.65,-847.73 268.62,-857.53 275.61,-857.9"/>
|
<polygon fill="black" stroke="black" points="271.1,-802.62 268.59,-792.33 264.14,-801.94 271.1,-802.62"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma -->
|
<!-- svc:monitor-kuma -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node">
|
||||||
<title>svc:monitor-kuma</title>
|
<title>svc:monitor-kuma</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="145.75,-1332 33.75,-1332 33.75,-1296 145.75,-1296 145.75,-1332"/>
|
<polygon fill="#dfefff" stroke="black" points="146.5,-1170 33.5,-1170 33.5,-1134 146.5,-1134 146.5,-1170"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor-kuma</text>
|
<text text-anchor="middle" x="90" y="-1148.3" font-family="Helvetica,sans-Serif" font-size="14.00">monitor-kuma</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma->net:monitor -->
|
<!-- svc:monitor-kuma->net:monitor -->
|
||||||
<g id="edge18" class="edge">
|
<g id="edge18" class="edge">
|
||||||
<title>svc:monitor-kuma->net:monitor</title>
|
<title>svc:monitor-kuma->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M146.11,-1314C167.49,-1314 192.01,-1314 213.8,-1314"/>
|
<path fill="none" stroke="black" d="M146.73,-1168.79C171.73,-1176.32 200.85,-1185.1 224.54,-1192.23"/>
|
||||||
<polygon fill="black" stroke="black" points="213.73,-1317.5 223.73,-1314 213.73,-1310.5 213.73,-1317.5"/>
|
<polygon fill="black" stroke="black" points="223.75,-1195.65 234.33,-1195.18 225.77,-1188.94 223.75,-1195.65"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma->net:traefik -->
|
<!-- svc:monitor-kuma->net:traefik -->
|
||||||
<g id="edge19" class="edge">
|
<g id="edge19" class="edge">
|
||||||
<title>svc:monitor-kuma->net:traefik</title>
|
<title>svc:monitor-kuma->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M146.15,-1306.92C158.6,-1302.89 170.71,-1296.64 179.5,-1287 237.7,-1223.11 264.11,-949.07 271.41,-857.74"/>
|
<path fill="none" stroke="black" d="M146.69,-1144.49C159.02,-1140.46 171.06,-1134.33 180,-1125 225.12,-1077.91 256.34,-876.92 266.59,-802.16"/>
|
||||||
<polygon fill="black" stroke="black" points="274.89,-858.1 272.18,-847.85 267.92,-857.55 274.89,-858.1"/>
|
<polygon fill="black" stroke="black" points="270.08,-802.45 267.95,-792.08 263.14,-801.52 270.08,-802.45"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge -->
|
<!-- svc:mtls-bridge -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node">
|
||||||
<title>svc:mtls-bridge</title>
|
<title>svc:mtls-bridge</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="137.88,-1278 41.62,-1278 41.62,-1242 137.88,-1242 137.88,-1278"/>
|
<polygon fill="#dfefff" stroke="black" points="138.5,-1116 41.5,-1116 41.5,-1080 138.5,-1080 138.5,-1116"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1255.33" font-family="Helvetica,sans-Serif" font-size="14.00">mtls-bridge</text>
|
<text text-anchor="middle" x="90" y="-1094.3" font-family="Helvetica,sans-Serif" font-size="14.00">mtls-bridge</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge->net:monitor -->
|
<!-- svc:mtls-bridge->net:monitor -->
|
||||||
<g id="edge20" class="edge">
|
<g id="edge20" class="edge">
|
||||||
<title>svc:mtls-bridge->net:monitor</title>
|
<title>svc:mtls-bridge->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M138.31,-1274.05C164.79,-1281.87 197.71,-1291.59 224.44,-1299.48"/>
|
<path fill="none" stroke="black" d="M138.76,-1108.34C152.58,-1112.41 167.34,-1117.87 180,-1125 206.25,-1139.78 231.35,-1163.35 248.38,-1181.26"/>
|
||||||
<polygon fill="black" stroke="black" points="223.45,-1302.84 234.03,-1302.31 225.43,-1296.13 223.45,-1302.84"/>
|
<polygon fill="black" stroke="black" points="246.24,-1184.1 255.62,-1189.03 251.37,-1179.33 246.24,-1184.1"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge->net:traefik -->
|
<!-- svc:mtls-bridge->net:traefik -->
|
||||||
<g id="edge21" class="edge">
|
<g id="edge21" class="edge">
|
||||||
<title>svc:mtls-bridge->net:traefik</title>
|
<title>svc:mtls-bridge->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M138.12,-1255.01C153.19,-1251.19 168.72,-1244.53 179.5,-1233 231.19,-1177.72 261.34,-941.28 270.55,-857.54"/>
|
<path fill="none" stroke="black" d="M138.53,-1092.51C153.46,-1088.63 168.92,-1082.07 180,-1071 254.99,-996.04 268.02,-860.87 270.03,-802.31"/>
|
||||||
<polygon fill="black" stroke="black" points="274,-858.16 271.6,-847.84 267.04,-857.41 274,-858.16"/>
|
<polygon fill="black" stroke="black" points="273.53,-802.39 270.29,-792.31 266.53,-802.21 273.53,-802.39"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-db -->
|
<!-- svc:nextcloud-db -->
|
||||||
<g id="node16" class="node">
|
<g id="node16" class="node">
|
||||||
<title>svc:nextcloud-db</title>
|
<title>svc:nextcloud-db</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="143.5,-90 36,-90 36,-54 143.5,-54 143.5,-90"/>
|
<polygon fill="#dfefff" stroke="black" points="144,-90 36,-90 36,-54 144,-54 144,-90"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-db</text>
|
<text text-anchor="middle" x="90" y="-68.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-db</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:nextcloud -->
|
<!-- net:nextcloud -->
|
||||||
<g id="node33" class="node">
|
<g id="node31" class="node">
|
||||||
<title>net:nextcloud</title>
|
<title>net:nextcloud</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-180" rx="59.1" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-180" rx="55.49" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud</text>
|
<text text-anchor="middle" x="271.25" y="-176.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-db->net:nextcloud -->
|
<!-- svc:nextcloud-db->net:nextcloud -->
|
||||||
<g id="edge22" class="edge">
|
<g id="edge22" class="edge">
|
||||||
<title>svc:nextcloud-db->net:nextcloud</title>
|
<title>svc:nextcloud-db->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M143.84,-84.22C155.96,-88.07 168.49,-92.94 179.5,-99 206.19,-113.69 232.1,-136.85 249.95,-154.65"/>
|
<path fill="none" stroke="black" d="M144.33,-84.04C156.48,-87.9 169.03,-92.82 180,-99 206.09,-113.7 231.04,-137.06 248.07,-154.93"/>
|
||||||
<polygon fill="black" stroke="black" points="246.99,-156.64 256.49,-161.32 251.99,-151.73 246.99,-156.64"/>
|
<polygon fill="black" stroke="black" points="245.93,-157.77 255.31,-162.7 251.06,-153 245.93,-157.77"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-redis -->
|
<!-- svc:nextcloud-redis -->
|
||||||
<g id="node17" class="node">
|
<g id="node17" class="node">
|
||||||
<title>svc:nextcloud-redis</title>
|
<title>svc:nextcloud-redis</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="151.38,-198 28.12,-198 28.12,-162 151.38,-162 151.38,-198"/>
|
<polygon fill="#dfefff" stroke="black" points="152,-198 28,-198 28,-162 152,-162 152,-198"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-redis</text>
|
<text text-anchor="middle" x="90" y="-176.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-redis</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-redis->net:nextcloud -->
|
<!-- svc:nextcloud-redis->net:nextcloud -->
|
||||||
<g id="edge23" class="edge">
|
<g id="edge23" class="edge">
|
||||||
<title>svc:nextcloud-redis->net:nextcloud</title>
|
<title>svc:nextcloud-redis->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M151.64,-180C168.42,-180 186.77,-180 204.01,-180"/>
|
<path fill="none" stroke="black" d="M152.18,-180C169.48,-180 188.35,-180 205.83,-180"/>
|
||||||
<polygon fill="black" stroke="black" points="203.64,-183.5 213.64,-180 203.64,-176.5 203.64,-183.5"/>
|
<polygon fill="black" stroke="black" points="205.94,-183.5 215.94,-180 205.94,-176.5 205.94,-183.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp -->
|
<!-- svc:nextcloud-webapp -->
|
||||||
<g id="node18" class="node">
|
<g id="node18" class="node">
|
||||||
<title>svc:nextcloud-webapp</title>
|
<title>svc:nextcloud-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="161.88,-252 17.62,-252 17.62,-216 161.88,-216 161.88,-252"/>
|
<polygon fill="#dfefff" stroke="black" points="162.5,-252 17.5,-252 17.5,-216 162.5,-216 162.5,-252"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-229.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-webapp</text>
|
<text text-anchor="middle" x="90" y="-230.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp->net:nextcloud -->
|
<!-- svc:nextcloud-webapp->net:nextcloud -->
|
||||||
<g id="edge24" class="edge">
|
<g id="edge24" class="edge">
|
||||||
<title>svc:nextcloud-webapp->net:nextcloud</title>
|
<title>svc:nextcloud-webapp->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-215.57C174.91,-209.14 199.11,-202 220.07,-195.81"/>
|
<path fill="none" stroke="black" d="M151.18,-215.87C173.57,-209.12 198.72,-201.55 220.11,-195.1"/>
|
||||||
<polygon fill="black" stroke="black" points="220.97,-199.19 229.57,-193 218.99,-192.48 220.97,-199.19"/>
|
<polygon fill="black" stroke="black" points="221.4,-198.37 229.97,-192.13 219.38,-191.67 221.4,-198.37"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp->net:traefik -->
|
<!-- svc:nextcloud-webapp->net:traefik -->
|
||||||
<g id="edge25" class="edge">
|
<g id="edge25" class="edge">
|
||||||
<title>svc:nextcloud-webapp->net:traefik</title>
|
<title>svc:nextcloud-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M162.07,-247.45C168.62,-250.99 174.62,-255.43 179.5,-261 215.53,-302.08 258.79,-687.96 270.53,-798.52"/>
|
<path fill="none" stroke="black" d="M162.89,-247.71C169.31,-251.2 175.18,-255.56 180,-261 212.66,-297.85 255.07,-643.36 267,-745.62"/>
|
||||||
<polygon fill="black" stroke="black" points="267.03,-798.68 271.56,-808.26 273.99,-797.95 267.03,-798.68"/>
|
<polygon fill="black" stroke="black" points="263.55,-746.27 268.18,-755.8 270.51,-745.47 263.55,-746.27"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-exporter -->
|
<!-- svc:node-exporter -->
|
||||||
<g id="node19" class="node">
|
<g id="node19" class="node">
|
||||||
<title>svc:node-exporter</title>
|
<title>svc:node-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="147.25,-1440 32.25,-1440 32.25,-1404 147.25,-1404 147.25,-1440"/>
|
<polygon fill="#dfefff" stroke="black" points="148,-1440 32,-1440 32,-1404 148,-1404 148,-1440"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1417.33" font-family="Helvetica,sans-Serif" font-size="14.00">node-exporter</text>
|
<text text-anchor="middle" x="90" y="-1418.3" font-family="Helvetica,sans-Serif" font-size="14.00">node-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-exporter->net:monitor -->
|
<!-- svc:node-exporter->net:monitor -->
|
||||||
<g id="edge26" class="edge">
|
<g id="edge26" class="edge">
|
||||||
<title>svc:node-exporter->net:monitor</title>
|
<title>svc:node-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M147.58,-1408.56C158.51,-1404.92 169.62,-1400.43 179.5,-1395 206.36,-1380.22 232.42,-1356.86 250.27,-1339.02"/>
|
<path fill="none" stroke="black" d="M148.25,-1412.27C159.68,-1408.33 170.94,-1402.79 180,-1395 229.98,-1352.05 254.42,-1275.2 264.44,-1233.96"/>
|
||||||
<polygon fill="black" stroke="black" points="252.32,-1341.94 256.82,-1332.34 247.32,-1337.04 252.32,-1341.94"/>
|
<polygon fill="black" stroke="black" points="267.88,-1234.58 266.73,-1224.05 261.07,-1233 267.88,-1234.58"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red -->
|
<!-- svc:node-red -->
|
||||||
<g id="node20" class="node">
|
<g id="node20" class="node">
|
||||||
<title>svc:node-red</title>
|
<title>svc:node-red</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="128.88,-1224 50.62,-1224 50.62,-1188 128.88,-1188 128.88,-1224"/>
|
<polygon fill="#dfefff" stroke="black" points="129.5,-1062 50.5,-1062 50.5,-1026 129.5,-1026 129.5,-1062"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1201.33" font-family="Helvetica,sans-Serif" font-size="14.00">node-red</text>
|
<text text-anchor="middle" x="90" y="-1040.3" font-family="Helvetica,sans-Serif" font-size="14.00">node-red</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red->net:monitor -->
|
<!-- svc:node-red->net:monitor -->
|
||||||
<g id="edge27" class="edge">
|
<g id="edge27" class="edge">
|
||||||
<title>svc:node-red->net:monitor</title>
|
<title>svc:node-red->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M129.28,-1214C145.41,-1218.27 163.98,-1224.46 179.5,-1233 206.36,-1247.78 232.42,-1271.14 250.27,-1288.98"/>
|
<path fill="none" stroke="black" d="M129.57,-1049.69C146.29,-1053.6 165.34,-1060.13 180,-1071 218.01,-1099.18 244.97,-1148.44 259.03,-1179.02"/>
|
||||||
<polygon fill="black" stroke="black" points="247.32,-1290.96 256.82,-1295.66 252.32,-1286.06 247.32,-1290.96"/>
|
<polygon fill="black" stroke="black" points="255.87,-1180.54 263.14,-1188.24 262.27,-1177.69 255.87,-1180.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red->net:traefik -->
|
<!-- svc:node-red->net:traefik -->
|
||||||
<g id="edge28" class="edge">
|
<g id="edge28" class="edge">
|
||||||
<title>svc:node-red->net:traefik</title>
|
<title>svc:node-red->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M129.25,-1202.74C146.74,-1199.35 166.4,-1192.54 179.5,-1179 224.78,-1132.19 258.23,-932.59 269.48,-857.09"/>
|
<path fill="none" stroke="black" d="M129.95,-1040.03C147.14,-1036.46 166.48,-1029.72 180,-1017 242.3,-958.4 261.83,-852.88 267.77,-802.4"/>
|
||||||
<polygon fill="black" stroke="black" points="272.88,-857.98 270.87,-847.58 265.96,-856.97 272.88,-857.98"/>
|
<polygon fill="black" stroke="black" points="271.27,-802.54 268.86,-792.22 264.31,-801.79 271.27,-802.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-db -->
|
<!-- svc:passbolt-db -->
|
||||||
<g id="node21" class="node">
|
<g id="node21" class="node">
|
||||||
<title>svc:passbolt-db</title>
|
<title>svc:passbolt-db</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="138.62,-36 40.88,-36 40.88,0 138.62,0 138.62,-36"/>
|
<polygon fill="#dfefff" stroke="black" points="139,-36 41,-36 41,0 139,0 139,-36"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-13.32" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-db</text>
|
<text text-anchor="middle" x="90" y="-14.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-db</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:passbolt -->
|
<!-- net:passbolt -->
|
||||||
<g id="node34" class="node">
|
<g id="node32" class="node">
|
||||||
<title>net:passbolt</title>
|
<title>net:passbolt</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-72" rx="52.26" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-72" rx="48.99" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt</text>
|
<text text-anchor="middle" x="271.25" y="-68.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-db->net:passbolt -->
|
<!-- svc:passbolt-db->net:passbolt -->
|
||||||
<g id="edge29" class="edge">
|
<g id="edge29" class="edge">
|
||||||
<title>svc:passbolt-db->net:passbolt</title>
|
<title>svc:passbolt-db->net:passbolt</title>
|
||||||
<path fill="none" stroke="black" d="M138.79,-32.19C164.72,-39.84 196.7,-49.29 223,-57.06"/>
|
<path fill="none" stroke="black" d="M139.03,-32.47C165.15,-40.34 197.32,-50.03 223.27,-57.85"/>
|
||||||
<polygon fill="black" stroke="black" points="221.86,-60.37 232.44,-59.85 223.85,-53.66 221.86,-60.37"/>
|
<polygon fill="black" stroke="black" points="222.3,-61.21 232.88,-60.74 224.32,-54.51 222.3,-61.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp -->
|
<!-- svc:passbolt-webapp -->
|
||||||
<g id="node22" class="node">
|
<g id="node22" class="node">
|
||||||
<title>svc:passbolt-webapp</title>
|
<title>svc:passbolt-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="157,-144 22.5,-144 22.5,-108 157,-108 157,-144"/>
|
<polygon fill="#dfefff" stroke="black" points="157.5,-144 22.5,-144 22.5,-108 157.5,-108 157.5,-144"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-121.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-webapp</text>
|
<text text-anchor="middle" x="90" y="-122.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp->net:passbolt -->
|
<!-- svc:passbolt-webapp->net:passbolt -->
|
||||||
<g id="edge30" class="edge">
|
<g id="edge30" class="edge">
|
||||||
<title>svc:passbolt-webapp->net:passbolt</title>
|
<title>svc:passbolt-webapp->net:passbolt</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-107.57C175.98,-100.83 201.49,-93.3 223.14,-86.9"/>
|
<path fill="none" stroke="black" d="M151.18,-107.87C174.64,-100.8 201.13,-92.82 223.16,-86.19"/>
|
||||||
<polygon fill="black" stroke="black" points="224.02,-90.29 232.62,-84.1 222.04,-83.58 224.02,-90.29"/>
|
<polygon fill="black" stroke="black" points="224.37,-89.48 232.94,-83.24 222.35,-82.77 224.37,-89.48"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp->net:traefik -->
|
<!-- svc:passbolt-webapp->net:traefik -->
|
||||||
<g id="edge31" class="edge">
|
<g id="edge31" class="edge">
|
||||||
<title>svc:passbolt-webapp->net:traefik</title>
|
<title>svc:passbolt-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M157.45,-136.93C165.83,-140.81 173.54,-146.02 179.5,-153 190.23,-165.56 253.83,-669.77 269.91,-798.38"/>
|
<path fill="none" stroke="black" d="M157.85,-136.93C166.26,-140.81 174,-146.02 180,-153 189.88,-164.49 250.79,-625.33 266.53,-745.56"/>
|
||||||
<polygon fill="black" stroke="black" points="266.41,-798.64 271.13,-808.13 273.36,-797.77 266.41,-798.64"/>
|
<polygon fill="black" stroke="black" points="263.1,-746.33 267.87,-755.8 270.04,-745.43 263.1,-746.33"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:pihole-exporter -->
|
<!-- svc:pihole-exporter -->
|
||||||
<g id="node23" class="node">
|
<g id="node23" class="node">
|
||||||
<title>svc:pihole-exporter</title>
|
<title>svc:pihole-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="151,-1602 28.5,-1602 28.5,-1566 151,-1566 151,-1602"/>
|
<polygon fill="#dfefff" stroke="black" points="151.5,-1386 28.5,-1386 28.5,-1350 151.5,-1350 151.5,-1386"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1579.33" font-family="Helvetica,sans-Serif" font-size="14.00">pihole-exporter</text>
|
<text text-anchor="middle" x="90" y="-1364.3" font-family="Helvetica,sans-Serif" font-size="14.00">pihole-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:pihole-exporter->net:monitor -->
|
<!-- svc:pihole-exporter->net:monitor -->
|
||||||
<g id="edge32" class="edge">
|
<g id="edge32" class="edge">
|
||||||
<title>svc:pihole-exporter->net:monitor</title>
|
<title>svc:pihole-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M151.06,-1573.76C161.45,-1569.85 171.47,-1564.45 179.5,-1557 242.11,-1498.86 263.56,-1394.25 270.5,-1343.38"/>
|
<path fill="none" stroke="black" d="M151.62,-1355.78C161.68,-1352.07 171.57,-1347.25 180,-1341 218.01,-1312.82 244.97,-1263.56 259.03,-1232.98"/>
|
||||||
<polygon fill="black" stroke="black" points="273.94,-1344.09 271.71,-1333.73 266.99,-1343.22 273.94,-1344.09"/>
|
<polygon fill="black" stroke="black" points="262.27,-1234.31 263.14,-1223.76 255.87,-1231.46 262.27,-1234.31"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:portainer -->
|
<!-- svc:portainer -->
|
||||||
<g id="node24" class="node">
|
<g id="node24" class="node">
|
||||||
<title>svc:portainer</title>
|
<title>svc:portainer</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="129.62,-576 49.88,-576 49.88,-540 129.62,-540 129.62,-576"/>
|
<polygon fill="#dfefff" stroke="black" points="130,-900 50,-900 50,-864 130,-864 130,-900"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-553.33" font-family="Helvetica,sans-Serif" font-size="14.00">portainer</text>
|
<text text-anchor="middle" x="90" y="-878.3" font-family="Helvetica,sans-Serif" font-size="14.00">portainer</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:portainer->net:traefik -->
|
<!-- svc:portainer->net:traefik -->
|
||||||
<g id="edge33" class="edge">
|
<g id="edge33" class="edge">
|
||||||
<title>svc:portainer->net:traefik</title>
|
<title>svc:portainer->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M129.96,-562.18C146.97,-565.79 166.05,-572.51 179.5,-585 242.11,-643.14 263.56,-747.75 270.5,-798.62"/>
|
<path fill="none" stroke="black" d="M130.17,-874.06C146.25,-869.82 164.67,-863.64 180,-855 206.25,-840.22 231.35,-816.65 248.38,-798.74"/>
|
||||||
<polygon fill="black" stroke="black" points="266.99,-798.78 271.71,-808.27 273.94,-797.91 266.99,-798.78"/>
|
<polygon fill="black" stroke="black" points="251.37,-800.67 255.62,-790.97 246.24,-795.9 251.37,-800.67"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus -->
|
<!-- svc:prometheus -->
|
||||||
<g id="node25" class="node">
|
<g id="node25" class="node">
|
||||||
<title>svc:prometheus</title>
|
<title>svc:prometheus</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="139.38,-1170 40.12,-1170 40.12,-1134 139.38,-1134 139.38,-1170"/>
|
<polygon fill="#dfefff" stroke="black" points="140,-1008 40,-1008 40,-972 140,-972 140,-1008"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1147.33" font-family="Helvetica,sans-Serif" font-size="14.00">prometheus</text>
|
<text text-anchor="middle" x="90" y="-986.3" font-family="Helvetica,sans-Serif" font-size="14.00">prometheus</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus->net:monitor -->
|
<!-- svc:prometheus->net:monitor -->
|
||||||
<g id="edge34" class="edge">
|
<g id="edge34" class="edge">
|
||||||
<title>svc:prometheus->net:monitor</title>
|
<title>svc:prometheus->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M139.52,-1160.58C153.33,-1164.61 167.78,-1170.48 179.5,-1179 217.95,-1206.95 246.17,-1255.6 261.21,-1286.23"/>
|
<path fill="none" stroke="black" d="M140.37,-997.26C154.39,-1001.24 168.86,-1007.42 180,-1017 229.98,-1059.95 254.42,-1136.8 264.44,-1178.04"/>
|
||||||
<polygon fill="black" stroke="black" points="257.87,-1287.36 265.33,-1294.88 264.19,-1284.35 257.87,-1287.36"/>
|
<polygon fill="black" stroke="black" points="261.07,-1179 266.73,-1187.95 267.88,-1177.42 261.07,-1179"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus->net:traefik -->
|
<!-- svc:prometheus->net:traefik -->
|
||||||
<g id="edge35" class="edge">
|
<g id="edge35" class="edge">
|
||||||
<title>svc:prometheus->net:traefik</title>
|
<title>svc:prometheus->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M139.46,-1146.03C153.91,-1142.11 168.73,-1135.64 179.5,-1125 254.55,-1050.8 269.86,-917.17 272.9,-857.81"/>
|
<path fill="none" stroke="black" d="M140.37,-982.74C154.39,-978.76 168.86,-972.58 180,-963 229.98,-920.05 254.42,-843.2 264.44,-801.96"/>
|
||||||
<polygon fill="black" stroke="black" points="276.4,-857.97 273.32,-847.83 269.4,-857.68 276.4,-857.97"/>
|
<polygon fill="black" stroke="black" points="267.88,-802.58 266.73,-792.05 261.07,-801 267.88,-802.58"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:searxng-webapp -->
|
<!-- svc:searxng-webapp -->
|
||||||
<g id="node26" class="node">
|
<g id="node26" class="node">
|
||||||
<title>svc:searxng-webapp</title>
|
<title>svc:searxng-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="155.5,-522 24,-522 24,-486 155.5,-486 155.5,-522"/>
|
<polygon fill="#dfefff" stroke="black" points="156,-846 24,-846 24,-810 156,-810 156,-846"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-499.32" font-family="Helvetica,sans-Serif" font-size="14.00">searxng-webapp</text>
|
<text text-anchor="middle" x="90" y="-824.3" font-family="Helvetica,sans-Serif" font-size="14.00">searxng-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:searxng-webapp->net:traefik -->
|
<!-- svc:searxng-webapp->net:traefik -->
|
||||||
<g id="edge36" class="edge">
|
<g id="edge36" class="edge">
|
||||||
<title>svc:searxng-webapp->net:traefik</title>
|
<title>svc:searxng-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M155.98,-515.68C164.67,-519.46 172.86,-524.43 179.5,-531 254.55,-605.2 269.86,-738.83 272.9,-798.19"/>
|
<path fill="none" stroke="black" d="M151.18,-809.87C176.26,-802.32 204.79,-793.72 227.63,-786.84"/>
|
||||||
<polygon fill="black" stroke="black" points="269.4,-798.32 273.32,-808.17 276.4,-798.03 269.4,-798.32"/>
|
<polygon fill="black" stroke="black" points="228.81,-790.14 237.37,-783.9 226.79,-783.44 228.81,-790.14"/>
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web -->
|
|
||||||
<g id="node27" class="node">
|
|
||||||
<title>svc:shift-recorder-web</title>
|
|
||||||
<polygon fill="#dfefff" stroke="black" points="160.38,-468 19.12,-468 19.12,-432 160.38,-432 160.38,-468"/>
|
|
||||||
<text text-anchor="middle" x="89.75" y="-445.32" font-family="Helvetica,sans-Serif" font-size="14.00">shift-recorder-web</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web->net:traefik -->
|
|
||||||
<g id="edge37" class="edge">
|
|
||||||
<title>svc:shift-recorder-web->net:traefik</title>
|
|
||||||
<path fill="none" stroke="black" d="M160.67,-463.5C167.65,-467.02 174.13,-471.44 179.5,-477 224.78,-523.81 258.23,-723.41 269.48,-798.91"/>
|
|
||||||
<polygon fill="black" stroke="black" points="265.96,-799.03 270.87,-808.42 272.88,-798.02 265.96,-799.03"/>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill -->
|
|
||||||
<g id="node28" class="node">
|
|
||||||
<title>svc:stockfill</title>
|
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.38,-1008 55.12,-1008 55.12,-972 124.38,-972 124.38,-1008"/>
|
|
||||||
<text text-anchor="middle" x="89.75" y="-985.33" font-family="Helvetica,sans-Serif" font-size="14.00">stockfill</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill->net:traefik -->
|
|
||||||
<g id="edge38" class="edge">
|
|
||||||
<title>svc:stockfill->net:traefik</title>
|
|
||||||
<path fill="none" stroke="black" d="M124.75,-985.14C142.36,-981.34 163.48,-974.65 179.5,-963 217.95,-935.05 246.17,-886.4 261.21,-855.77"/>
|
|
||||||
<polygon fill="black" stroke="black" points="264.19,-857.65 265.33,-847.12 257.87,-854.64 264.19,-857.65"/>
|
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:telegraf -->
|
<!-- svc:telegraf -->
|
||||||
<g id="node29" class="node">
|
<g id="node27" class="node">
|
||||||
<title>svc:telegraf</title>
|
<title>svc:telegraf</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.75,-1548 54.75,-1548 54.75,-1512 124.75,-1512 124.75,-1548"/>
|
<polygon fill="#dfefff" stroke="black" points="125.5,-1332 54.5,-1332 54.5,-1296 125.5,-1296 125.5,-1332"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1525.33" font-family="Helvetica,sans-Serif" font-size="14.00">telegraf</text>
|
<text text-anchor="middle" x="90" y="-1310.3" font-family="Helvetica,sans-Serif" font-size="14.00">telegraf</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:telegraf->net:monitor -->
|
<!-- svc:telegraf->net:monitor -->
|
||||||
<g id="edge39" class="edge">
|
<g id="edge37" class="edge">
|
||||||
<title>svc:telegraf->net:monitor</title>
|
<title>svc:telegraf->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M125.04,-1526.15C142.95,-1522.63 164.25,-1515.9 179.5,-1503 229.66,-1460.57 255.71,-1384.91 266.82,-1343.35"/>
|
<path fill="none" stroke="black" d="M125.8,-1307.18C142.85,-1302.93 163.26,-1296.43 180,-1287 206.25,-1272.22 231.35,-1248.65 248.38,-1230.74"/>
|
||||||
<polygon fill="black" stroke="black" points="270.17,-1344.37 269.25,-1333.81 263.39,-1342.64 270.17,-1344.37"/>
|
<polygon fill="black" stroke="black" points="251.37,-1232.67 255.62,-1222.97 246.24,-1227.9 251.37,-1232.67"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:traefik -->
|
<!-- svc:traefik -->
|
||||||
<g id="node30" class="node">
|
<g id="node28" class="node">
|
||||||
<title>svc:traefik</title>
|
<title>svc:traefik</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="120.25,-954 59.25,-954 59.25,-918 120.25,-918 120.25,-954"/>
|
<polygon fill="#dfefff" stroke="black" points="121,-792 59,-792 59,-756 121,-756 121,-792"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-931.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
<text text-anchor="middle" x="90" y="-770.3" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:traefik->net:traefik -->
|
<!-- svc:traefik->net:traefik -->
|
||||||
<g id="edge40" class="edge">
|
<g id="edge38" class="edge">
|
||||||
<title>svc:traefik->net:traefik</title>
|
<title>svc:traefik->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M120.34,-930.25C138.21,-926 161.02,-919.17 179.5,-909 206.52,-894.13 232.73,-870.58 250.6,-852.7"/>
|
<path fill="none" stroke="black" d="M121,-774C148.16,-774 188.69,-774 220.66,-774"/>
|
||||||
<polygon fill="black" stroke="black" points="252.65,-855.61 257.14,-846.01 247.64,-850.71 252.65,-855.61"/>
|
<polygon fill="black" stroke="black" points="220.71,-777.5 230.71,-774 220.71,-770.5 220.71,-777.5"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 24 KiB |
@@ -1,98 +1,88 @@
|
|||||||
digraph DockerTraefikDynu {
|
digraph DockerTraefikDynu {
|
||||||
graph [rankdir=LR, compound=true, splines=ortho, nodesep=0.7, ranksep=1.2, fontname="Helvetica", concentrate=true];
|
graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.9, ranksep=1.6, fontname="Helvetica", concentrate=true, newrank=true];
|
||||||
node [fontname="Helvetica", fontsize=10, style="rounded,filled"];
|
node [fontname="Helvetica", fontsize=11, style="rounded,filled"];
|
||||||
edge [fontname="Helvetica", fontsize=9, color="#334155"];
|
edge [fontname="Helvetica", fontsize=9, color="#334155"];
|
||||||
"svc:traefik" [label="Traefik
|
"dynu" [label="Dynu / Public DNS", shape=box, fillcolor="#fde68a"];
|
||||||
(entrypoint)", shape=box, fillcolor="#bfdbfe"];
|
"svc:traefik" [label="Traefik", shape=box, fillcolor="#bfdbfe"];
|
||||||
|
"dynu" -> "svc:traefik" [penwidth=1.6];
|
||||||
"svc:authelia" [label="authelia
|
"svc:authelia" [label="authelia
|
||||||
[TLS]", shape=box, fillcolor="#dcfce7"];
|
[TLS]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:authelia" [penwidth=1.4];
|
"svc:traefik" -> "svc:authelia" [penwidth=1.4];
|
||||||
"dns:service-1.<internal-domain>" [label="service-1.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:auth.<domain>" [label="auth.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-1.<internal-domain>" -> "svc:traefik";
|
"dns:auth.<domain>" -> "dynu";
|
||||||
"svc:gitea" [label="gitea
|
"svc:gitea" [label="gitea
|
||||||
:3000
|
:3000
|
||||||
[TLS]", shape=box, fillcolor="#dcfce7"];
|
[TLS]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:gitea" [penwidth=1.4];
|
"svc:traefik" -> "svc:gitea" [penwidth=1.4];
|
||||||
"dns:service-2.<internal-domain>" [label="service-2.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:gitea.<domain>" [label="gitea.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-2.<internal-domain>" -> "svc:traefik";
|
"dns:gitea.<domain>" -> "dynu";
|
||||||
"svc:gotify" [label="gotify
|
"svc:gotify" [label="gotify
|
||||||
:80", shape=box, fillcolor="#dcfce7"];
|
:80", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:gotify" [penwidth=1.4];
|
"svc:traefik" -> "svc:gotify" [penwidth=1.4];
|
||||||
"dns:service-3.<internal-domain>" [label="service-3.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:gotify.<domain>" [label="gotify.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-3.<internal-domain>" -> "svc:traefik";
|
"dns:gotify.<domain>" -> "dynu";
|
||||||
"svc:grafana" [label="grafana
|
"svc:grafana" [label="grafana
|
||||||
:3000", shape=box, fillcolor="#dcfce7"];
|
:3000", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:grafana" [penwidth=1.4];
|
"svc:traefik" -> "svc:grafana" [penwidth=1.4];
|
||||||
"dns:service-4.<internal-domain>" [label="service-4.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:grafana.<domain>" [label="grafana.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-4.<internal-domain>" -> "svc:traefik";
|
"dns:grafana.<domain>" -> "dynu";
|
||||||
"svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dcfce7"];
|
"svc:grampsweb" [label="grampsweb", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:grampsweb" [penwidth=1.4];
|
"svc:traefik" -> "svc:grampsweb" [penwidth=1.4];
|
||||||
"dns:service-5.<internal-domain>" [label="service-5.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:familytree.<domain>" [label="familytree.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-5.<internal-domain>" -> "svc:traefik";
|
"dns:familytree.<domain>" -> "dynu";
|
||||||
"svc:influxdb" [label="influxdb
|
"svc:influxdb" [label="influxdb
|
||||||
:8086
|
:8086
|
||||||
[authelia]", shape=box, fillcolor="#dcfce7"];
|
[authelia]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:influxdb" [penwidth=1.4];
|
"svc:traefik" -> "svc:influxdb" [penwidth=1.4];
|
||||||
"dns:service-6.<internal-domain>" [label="service-6.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:influxdb.<domain>" [label="influxdb.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-6.<internal-domain>" -> "svc:traefik";
|
"dns:influxdb.<domain>" -> "dynu";
|
||||||
"svc:monitor-kuma" [label="monitor-kuma
|
"svc:monitor-kuma" [label="monitor-kuma
|
||||||
[TLS]", shape=box, fillcolor="#dcfce7"];
|
[TLS]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:monitor-kuma" [penwidth=1.4];
|
"svc:traefik" -> "svc:monitor-kuma" [penwidth=1.4];
|
||||||
"dns:service-7.<internal-domain>" [label="service-7.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:monitor-kuma.<domain>" [label="monitor-kuma.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-7.<internal-domain>" -> "svc:traefik";
|
"dns:monitor-kuma.<domain>" -> "dynu";
|
||||||
"svc:mtls-bridge" [label="mtls-bridge
|
"svc:mtls-bridge" [label="mtls-bridge
|
||||||
:8080
|
:8080
|
||||||
[mTLS]", shape=box, fillcolor="#dcfce7"];
|
[mTLS]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:mtls-bridge" [penwidth=1.4];
|
"svc:traefik" -> "svc:mtls-bridge" [penwidth=1.4];
|
||||||
"dns:service-8.<internal-domain>" [label="service-8.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:mtls-bridge.<domain>" [label="mtls-bridge.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-8.<internal-domain>" -> "svc:traefik";
|
"dns:mtls-bridge.<domain>" -> "dynu";
|
||||||
"svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dcfce7"];
|
"svc:nextcloud-webapp" [label="nextcloud-webapp", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:nextcloud-webapp" [penwidth=1.4];
|
"svc:traefik" -> "svc:nextcloud-webapp" [penwidth=1.4];
|
||||||
"dns:service-9.<internal-domain>" [label="service-9.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:nextcloud.<domain>" [label="nextcloud.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-9.<internal-domain>" -> "svc:traefik";
|
"dns:nextcloud.<domain>" -> "dynu";
|
||||||
"svc:node-red" [label="node-red
|
"svc:node-red" [label="node-red
|
||||||
:1880
|
:1880
|
||||||
[authelia]", shape=box, fillcolor="#dcfce7"];
|
[authelia]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:node-red" [penwidth=1.4];
|
"svc:traefik" -> "svc:node-red" [penwidth=1.4];
|
||||||
"dns:service-10.<internal-domain>" [label="service-10.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:node-red.<domain>" [label="node-red.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-10.<internal-domain>" -> "svc:traefik";
|
"dns:node-red.<domain>" -> "dynu";
|
||||||
"svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dcfce7"];
|
"svc:passbolt-webapp" [label="passbolt-webapp", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:passbolt-webapp" [penwidth=1.4];
|
"svc:traefik" -> "svc:passbolt-webapp" [penwidth=1.4];
|
||||||
"dns:service-11.<internal-domain>" [label="service-11.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:passbolt.<domain>" [label="passbolt.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-11.<internal-domain>" -> "svc:traefik";
|
"dns:passbolt.<domain>" -> "dynu";
|
||||||
"svc:portainer" [label="portainer
|
"svc:portainer" [label="portainer
|
||||||
:9000
|
:9000
|
||||||
[TLS]", shape=box, fillcolor="#dcfce7"];
|
[TLS]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:portainer" [penwidth=1.4];
|
"svc:traefik" -> "svc:portainer" [penwidth=1.4];
|
||||||
"dns:service-12.<internal-domain>" [label="service-12.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:portainer.<domain>" [label="portainer.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-12.<internal-domain>" -> "svc:traefik";
|
"dns:portainer.<domain>" -> "dynu";
|
||||||
"svc:prometheus" [label="prometheus
|
"svc:prometheus" [label="prometheus
|
||||||
:9090
|
:9090
|
||||||
[authelia]", shape=box, fillcolor="#dcfce7"];
|
[authelia]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:prometheus" [penwidth=1.4];
|
"svc:traefik" -> "svc:prometheus" [penwidth=1.4];
|
||||||
"dns:service-13.<internal-domain>" [label="service-13.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:prometheus.<domain>" [label="prometheus.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-13.<internal-domain>" -> "svc:traefik";
|
"dns:prometheus.<domain>" -> "dynu";
|
||||||
"svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dcfce7"];
|
"svc:searxng-webapp" [label="searxng-webapp", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:searxng-webapp" [penwidth=1.4];
|
"svc:traefik" -> "svc:searxng-webapp" [penwidth=1.4];
|
||||||
"dns:service-14.<internal-domain>" [label="service-14.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:searxng.<domain>" [label="searxng.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-14.<internal-domain>" -> "svc:traefik";
|
"dns:searxng.<domain>" -> "dynu";
|
||||||
"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.<internal-domain>" [label="service-15.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
|
||||||
"dns:service-15.<internal-domain>" -> "svc:traefik";
|
|
||||||
"svc:stockfill" [label="stockfill
|
|
||||||
:80
|
|
||||||
[TLS]", shape=box, fillcolor="#dcfce7"];
|
|
||||||
"svc:traefik" -> "svc:stockfill" [penwidth=1.4];
|
|
||||||
"dns:service-16.<internal-domain>" [label="service-16.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
|
||||||
"dns:service-16.<internal-domain>" -> "svc:traefik";
|
|
||||||
"svc:traefik" [label="traefik
|
"svc:traefik" [label="traefik
|
||||||
[authelia]", shape=box, fillcolor="#dcfce7"];
|
[authelia]", shape=box, fillcolor="#dcfce7"];
|
||||||
"svc:traefik" -> "svc:traefik" [penwidth=1.4];
|
"svc:traefik" -> "svc:traefik" [penwidth=1.4];
|
||||||
"dns:service-17.<internal-domain>" [label="service-17.<internal-domain>", shape=note, fillcolor="#fef3c7"];
|
"dns:traefik.<domain>" [label="traefik.<domain>", shape=note, fillcolor="#fef3c7"];
|
||||||
"dns:service-17.<internal-domain>" -> "svc:traefik";
|
"dns:traefik.<domain>" -> "dynu";
|
||||||
{ rank=same; "dns:service-1.<internal-domain>"; "dns:service-10.<internal-domain>"; "dns:service-11.<internal-domain>"; "dns:service-12.<internal-domain>"; "dns:service-13.<internal-domain>"; "dns:service-14.<internal-domain>"; "dns:service-15.<internal-domain>"; "dns:service-16.<internal-domain>"; "dns:service-17.<internal-domain>"; "dns:service-2.<internal-domain>"; "dns:service-3.<internal-domain>"; "dns:service-4.<internal-domain>"; "dns:service-5.<internal-domain>"; "dns:service-6.<internal-domain>"; "dns:service-7.<internal-domain>"; "dns:service-8.<internal-domain>"; "dns:service-9.<internal-domain>"; }
|
{ rank=same; "dns:auth.<domain>"; "dns:familytree.<domain>"; "dns:gitea.<domain>"; "dns:gotify.<domain>"; "dns:grafana.<domain>"; "dns:influxdb.<domain>"; "dns:monitor-kuma.<domain>"; "dns:mtls-bridge.<domain>"; "dns:nextcloud.<domain>"; "dns:node-red.<domain>"; "dns:passbolt.<domain>"; "dns:portainer.<domain>"; "dns:prometheus.<domain>"; "dns:searxng.<domain>"; "dns:traefik.<domain>"; }
|
||||||
subgraph "cluster_networks" {
|
subgraph "cluster_networks" {
|
||||||
label="Docker backend networks"; style="rounded,dashed"; color="#d1d5db";
|
label="Docker backend networks"; style="rounded,dashed"; color="#d1d5db";
|
||||||
"net:gramps" [label="gramps", shape=ellipse, fillcolor="#f8fafc"];
|
"net:gramps" [label="gramps", shape=ellipse, fillcolor="#f8fafc"];
|
||||||
@@ -124,7 +114,5 @@ digraph DockerTraefikDynu {
|
|||||||
"svc:prometheus" -> "net:monitor" [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:prometheus" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7];
|
||||||
"svc:searxng-webapp" -> "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];
|
"svc:traefik" -> "net:traefik" [style=dashed, color="#94a3b8", arrowsize=0.7];
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 41 KiB |
@@ -1,91 +1,4 @@
|
|||||||
digraph PhysicalTopology {
|
digraph PhysicalTopology {
|
||||||
graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.7, ranksep=1.2, fontname="Helvetica", concentrate=true];
|
graph [rankdir=LR, fontname="Helvetica", nodesep=1.0, ranksep=1.5];
|
||||||
node [fontname="Helvetica", fontsize=10, style="rounded,filled", fillcolor="#ffffff"];
|
"placeholder:inventory" [shape=note, style="filled", fillcolor="#fef3c7", label="Host inventory JSON not found.\nGenerate terraform inventory and rerun scripts/docs/generate-all.sh\n(--host-inventory <path>)."];
|
||||||
edge [fontname="Helvetica", fontsize=9, color="#64748b"];
|
|
||||||
subgraph "cluster_docker" {
|
|
||||||
label="docker host";
|
|
||||||
style="rounded,filled";
|
|
||||||
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 host";
|
|
||||||
style="rounded,filled";
|
|
||||||
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];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,271 +1,23 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<!-- Generated by graphviz version 12.2.1 (0)
|
<!-- Generated by graphviz version 2.43.0 (0)
|
||||||
-->
|
-->
|
||||||
<!-- Title: PhysicalTopology Pages: 1 -->
|
<!-- Title: PhysicalTopology Pages: 1 -->
|
||||||
<svg width="591pt" height="2761pt"
|
<svg width="514pt" height="61pt"
|
||||||
viewBox="0.00 0.00 590.50 2761.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 514.00 61.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2757)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 57)">
|
||||||
<title>PhysicalTopology</title>
|
<title>PhysicalTopology</title>
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-2757 586.5,-2757 586.5,4 -4,4"/>
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-57 510,-57 510,4 -4,4"/>
|
||||||
<g id="clust1" class="cluster">
|
<!-- placeholder:inventory -->
|
||||||
<title>cluster_docker</title>
|
|
||||||
<path fill="#eff6ff" stroke="#93c5fd" d="M12,-8C12,-8 199.25,-8 199.25,-8 205.25,-8 211.25,-14 211.25,-20 211.25,-20 211.25,-2522 211.25,-2522 211.25,-2528 205.25,-2534 199.25,-2534 199.25,-2534 12,-2534 12,-2534 6,-2534 0,-2528 0,-2522 0,-2522 0,-20 0,-20 0,-14 6,-8 12,-8"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2516.7" font-family="Helvetica,sans-Serif" font-size="14.00">docker host</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust2" class="cluster">
|
|
||||||
<title>cluster_docker_apps</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M43.75,-16C43.75,-16 166.5,-16 166.5,-16 172.5,-16 178.5,-22 178.5,-28 178.5,-28 178.5,-1457 178.5,-1457 178.5,-1463 172.5,-1469 166.5,-1469 166.5,-1469 43.75,-1469 43.75,-1469 37.75,-1469 31.75,-1463 31.75,-1457 31.75,-1457 31.75,-28 31.75,-28 31.75,-22 37.75,-16 43.75,-16"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1451.7" font-family="Helvetica,sans-Serif" font-size="14.00">apps</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust3" class="cluster">
|
|
||||||
<title>cluster_docker_automation</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M70.25,-1478C70.25,-1478 141,-1478 141,-1478 147,-1478 153,-1484 153,-1490 153,-1490 153,-1543 153,-1543 153,-1549 147,-1555 141,-1555 141,-1555 70.25,-1555 70.25,-1555 64.25,-1555 58.25,-1549 58.25,-1543 58.25,-1543 58.25,-1490 58.25,-1490 58.25,-1484 64.25,-1478 70.25,-1478"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-1537.7" font-family="Helvetica,sans-Serif" font-size="14.00">automation</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust4" class="cluster">
|
|
||||||
<title>cluster_docker_edge_proxy_auth</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M51.62,-1564C51.62,-1564 158.62,-1564 158.62,-1564 164.62,-1564 170.62,-1570 170.62,-1576 170.62,-1576 170.62,-1801 170.62,-1801 170.62,-1807 164.62,-1813 158.62,-1813 158.62,-1813 51.62,-1813 51.62,-1813 45.62,-1813 39.62,-1807 39.62,-1801 39.62,-1801 39.62,-1576 39.62,-1576 39.62,-1570 45.62,-1564 51.62,-1564"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1795.7" font-family="Helvetica,sans-Serif" font-size="14.00">edge/proxy/auth</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust5" class="cluster">
|
|
||||||
<title>cluster_docker_monitoring</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M66.62,-1822C66.62,-1822 143.62,-1822 143.62,-1822 149.62,-1822 155.62,-1828 155.62,-1834 155.62,-1834 155.62,-2059 155.62,-2059 155.62,-2065 149.62,-2071 143.62,-2071 143.62,-2071 66.62,-2071 66.62,-2071 60.62,-2071 54.62,-2065 54.62,-2059 54.62,-2059 54.62,-1834 54.62,-1834 54.62,-1828 60.62,-1822 66.62,-1822"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2053.7" font-family="Helvetica,sans-Serif" font-size="14.00">monitoring</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust6" class="cluster">
|
|
||||||
<title>cluster_docker_storage_database_support</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M20,-2080C20,-2080 191.25,-2080 191.25,-2080 197.25,-2080 203.25,-2086 203.25,-2092 203.25,-2092 203.25,-2489 203.25,-2489 203.25,-2495 197.25,-2501 191.25,-2501 191.25,-2501 20,-2501 20,-2501 14,-2501 8,-2495 8,-2489 8,-2489 8,-2092 8,-2092 8,-2086 14,-2080 20,-2080"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2483.7" font-family="Helvetica,sans-Serif" font-size="14.00">storage/database/support</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust7" class="cluster">
|
|
||||||
<title>cluster_raspberrypi</title>
|
|
||||||
<path fill="#eff6ff" stroke="#93c5fd" d="M52.25,-2542C52.25,-2542 159,-2542 159,-2542 165,-2542 171,-2548 171,-2554 171,-2554 171,-2648 171,-2648 171,-2654 165,-2660 159,-2660 159,-2660 52.25,-2660 52.25,-2660 46.25,-2660 40.25,-2654 40.25,-2648 40.25,-2648 40.25,-2554 40.25,-2554 40.25,-2548 46.25,-2542 52.25,-2542"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2642.7" font-family="Helvetica,sans-Serif" font-size="14.00">raspberrypi host</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust8" class="cluster">
|
|
||||||
<title>cluster_raspberrypi_apps</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M63.62,-2550C63.62,-2550 146.62,-2550 146.62,-2550 152.62,-2550 158.62,-2556 158.62,-2562 158.62,-2562 158.62,-2615 158.62,-2615 158.62,-2621 152.62,-2627 146.62,-2627 146.62,-2627 63.62,-2627 63.62,-2627 57.62,-2627 51.62,-2621 51.62,-2615 51.62,-2615 51.62,-2562 51.62,-2562 51.62,-2556 57.62,-2550 63.62,-2550"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2609.7" font-family="Helvetica,sans-Serif" font-size="14.00">apps</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust9" class="cluster">
|
|
||||||
<title>cluster_legend</title>
|
|
||||||
<path fill="none" stroke="#d1d5db" d="M71.88,-2668C71.88,-2668 562.5,-2668 562.5,-2668 568.5,-2668 574.5,-2674 574.5,-2680 574.5,-2680 574.5,-2733 574.5,-2733 574.5,-2739 568.5,-2745 562.5,-2745 562.5,-2745 71.88,-2745 71.88,-2745 65.88,-2745 59.88,-2739 59.88,-2733 59.88,-2733 59.88,-2680 59.88,-2680 59.88,-2674 65.88,-2668 71.88,-2668"/>
|
|
||||||
<text text-anchor="middle" x="317.19" y="-2727.7" font-family="Helvetica,sans-Serif" font-size="14.00">Legend</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:crowdsec -->
|
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>svc:crowdsec</title>
|
<title>placeholder:inventory</title>
|
||||||
<path fill="#dcfce7" stroke="black" d="M124,-60C124,-60 86.25,-60 86.25,-60 80.25,-60 74.25,-54 74.25,-48 74.25,-48 74.25,-36 74.25,-36 74.25,-30 80.25,-24 86.25,-24 86.25,-24 124,-24 124,-24 130,-24 136,-30 136,-36 136,-36 136,-48 136,-48 136,-54 130,-60 124,-60"/>
|
<polygon fill="#fef3c7" stroke="black" points="500,-53 0,-53 0,0 506,0 506,-47 500,-53"/>
|
||||||
<text text-anchor="middle" x="105.12" y="-38.88" font-family="Helvetica,sans-Serif" font-size="10.00">crowdsec</text>
|
<polyline fill="none" stroke="black" points="500,-53 500,-47 "/>
|
||||||
</g>
|
<polyline fill="none" stroke="black" points="506,-47 500,-47 "/>
|
||||||
<!-- svc:docker-update-exporter -->
|
<text text-anchor="middle" x="253" y="-37.8" font-family="Times,serif" font-size="14.00">Host inventory JSON not found.</text>
|
||||||
<g id="node2" class="node">
|
<text text-anchor="middle" x="253" y="-22.8" font-family="Times,serif" font-size="14.00">Generate terraform inventory and rerun scripts/docs/generate-all.sh</text>
|
||||||
<title>svc:docker-update-exporter</title>
|
<text text-anchor="middle" x="253" y="-7.8" font-family="Times,serif" font-size="14.00">(--host-inventory <path>).</text>
|
||||||
<path fill="#dcfce7" stroke="black" d="M158.5,-146C158.5,-146 51.75,-146 51.75,-146 45.75,-146 39.75,-140 39.75,-134 39.75,-134 39.75,-122 39.75,-122 39.75,-116 45.75,-110 51.75,-110 51.75,-110 158.5,-110 158.5,-110 164.5,-110 170.5,-116 170.5,-122 170.5,-122 170.5,-134 170.5,-134 170.5,-140 164.5,-146 158.5,-146"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-124.88" font-family="Helvetica,sans-Serif" font-size="10.00">docker-update-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:error-pages -->
|
|
||||||
<g id="node3" class="node">
|
|
||||||
<title>svc:error-pages</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.25,-232C129.25,-232 81,-232 81,-232 75,-232 69,-226 69,-220 69,-220 69,-208 69,-208 69,-202 75,-196 81,-196 81,-196 129.25,-196 129.25,-196 135.25,-196 141.25,-202 141.25,-208 141.25,-208 141.25,-220 141.25,-220 141.25,-226 135.25,-232 129.25,-232"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-210.88" font-family="Helvetica,sans-Serif" font-size="10.00">error-pages</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gitea -->
|
|
||||||
<g id="node4" class="node">
|
|
||||||
<title>svc:gitea</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-318C120.12,-318 90.12,-318 90.12,-318 84.12,-318 78.12,-312 78.12,-306 78.12,-306 78.12,-294 78.12,-294 78.12,-288 84.12,-282 90.12,-282 90.12,-282 120.12,-282 120.12,-282 126.12,-282 132.12,-288 132.12,-294 132.12,-294 132.12,-306 132.12,-306 132.12,-312 126.12,-318 120.12,-318"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-296.88" font-family="Helvetica,sans-Serif" font-size="10.00">gitea</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gotify -->
|
|
||||||
<g id="node5" class="node">
|
|
||||||
<title>svc:gotify</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-404C120.12,-404 90.12,-404 90.12,-404 84.12,-404 78.12,-398 78.12,-392 78.12,-392 78.12,-380 78.12,-380 78.12,-374 84.12,-368 90.12,-368 90.12,-368 120.12,-368 120.12,-368 126.12,-368 132.12,-374 132.12,-380 132.12,-380 132.12,-392 132.12,-392 132.12,-398 126.12,-404 120.12,-404"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-382.88" font-family="Helvetica,sans-Serif" font-size="10.00">gotify</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grampsweb -->
|
|
||||||
<g id="node6" class="node">
|
|
||||||
<title>svc:grampsweb</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.62,-490C129.62,-490 80.62,-490 80.62,-490 74.62,-490 68.62,-484 68.62,-478 68.62,-478 68.62,-466 68.62,-466 68.62,-460 74.62,-454 80.62,-454 80.62,-454 129.62,-454 129.62,-454 135.62,-454 141.62,-460 141.62,-466 141.62,-466 141.62,-478 141.62,-478 141.62,-484 135.62,-490 129.62,-490"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-468.88" font-family="Helvetica,sans-Serif" font-size="10.00">grampsweb</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grampsweb_celery -->
|
|
||||||
<g id="node7" class="node">
|
|
||||||
<title>svc:grampsweb_celery</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M147.25,-576C147.25,-576 63,-576 63,-576 57,-576 51,-570 51,-564 51,-564 51,-552 51,-552 51,-546 57,-540 63,-540 63,-540 147.25,-540 147.25,-540 153.25,-540 159.25,-546 159.25,-552 159.25,-552 159.25,-564 159.25,-564 159.25,-570 153.25,-576 147.25,-576"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-554.88" font-family="Helvetica,sans-Serif" font-size="10.00">grampsweb_celery</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:monitor-kuma -->
|
|
||||||
<g id="node8" class="node">
|
|
||||||
<title>svc:monitor-kuma</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M135.62,-662C135.62,-662 74.62,-662 74.62,-662 68.62,-662 62.62,-656 62.62,-650 62.62,-650 62.62,-638 62.62,-638 62.62,-632 68.62,-626 74.62,-626 74.62,-626 135.62,-626 135.62,-626 141.62,-626 147.62,-632 147.62,-638 147.62,-638 147.62,-650 147.62,-650 147.62,-656 141.62,-662 135.62,-662"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-640.88" font-family="Helvetica,sans-Serif" font-size="10.00">monitor-kuma</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:mtls-bridge -->
|
|
||||||
<g id="node9" class="node">
|
|
||||||
<title>svc:mtls-bridge</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.25,-748C129.25,-748 81,-748 81,-748 75,-748 69,-742 69,-736 69,-736 69,-724 69,-724 69,-718 75,-712 81,-712 81,-712 129.25,-712 129.25,-712 135.25,-712 141.25,-718 141.25,-724 141.25,-724 141.25,-736 141.25,-736 141.25,-742 135.25,-748 129.25,-748"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-726.88" font-family="Helvetica,sans-Serif" font-size="10.00">mtls-bridge</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-webapp -->
|
|
||||||
<g id="node10" class="node">
|
|
||||||
<title>svc:nextcloud-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M146.12,-834C146.12,-834 64.12,-834 64.12,-834 58.12,-834 52.12,-828 52.12,-822 52.12,-822 52.12,-810 52.12,-810 52.12,-804 58.12,-798 64.12,-798 64.12,-798 146.12,-798 146.12,-798 152.12,-798 158.12,-804 158.12,-810 158.12,-810 158.12,-822 158.12,-822 158.12,-828 152.12,-834 146.12,-834"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-812.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:node-red -->
|
|
||||||
<g id="node11" class="node">
|
|
||||||
<title>svc:node-red</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M122.88,-920C122.88,-920 87.38,-920 87.38,-920 81.38,-920 75.38,-914 75.38,-908 75.38,-908 75.38,-896 75.38,-896 75.38,-890 81.38,-884 87.38,-884 87.38,-884 122.88,-884 122.88,-884 128.88,-884 134.88,-890 134.88,-896 134.88,-896 134.88,-908 134.88,-908 134.88,-914 128.88,-920 122.88,-920"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-898.88" font-family="Helvetica,sans-Serif" font-size="10.00">node-red</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:passbolt-webapp -->
|
|
||||||
<g id="node12" class="node">
|
|
||||||
<title>svc:passbolt-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M142.75,-1006C142.75,-1006 67.5,-1006 67.5,-1006 61.5,-1006 55.5,-1000 55.5,-994 55.5,-994 55.5,-982 55.5,-982 55.5,-976 61.5,-970 67.5,-970 67.5,-970 142.75,-970 142.75,-970 148.75,-970 154.75,-976 154.75,-982 154.75,-982 154.75,-994 154.75,-994 154.75,-1000 148.75,-1006 142.75,-1006"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-984.88" font-family="Helvetica,sans-Serif" font-size="10.00">passbolt-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:portainer -->
|
|
||||||
<g id="node13" class="node">
|
|
||||||
<title>svc:portainer</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M123.25,-1092C123.25,-1092 87,-1092 87,-1092 81,-1092 75,-1086 75,-1080 75,-1080 75,-1068 75,-1068 75,-1062 81,-1056 87,-1056 87,-1056 123.25,-1056 123.25,-1056 129.25,-1056 135.25,-1062 135.25,-1068 135.25,-1068 135.25,-1080 135.25,-1080 135.25,-1086 129.25,-1092 123.25,-1092"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1070.88" font-family="Helvetica,sans-Serif" font-size="10.00">portainer</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:searxng-webapp -->
|
|
||||||
<g id="node14" class="node">
|
|
||||||
<title>svc:searxng-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M141.62,-1178C141.62,-1178 68.62,-1178 68.62,-1178 62.62,-1178 56.62,-1172 56.62,-1166 56.62,-1166 56.62,-1154 56.62,-1154 56.62,-1148 62.62,-1142 68.62,-1142 68.62,-1142 141.62,-1142 141.62,-1142 147.62,-1142 153.62,-1148 153.62,-1154 153.62,-1154 153.62,-1166 153.62,-1166 153.62,-1172 147.62,-1178 141.62,-1178"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1156.88" font-family="Helvetica,sans-Serif" font-size="10.00">searxng-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web -->
|
|
||||||
<g id="node15" class="node">
|
|
||||||
<title>svc:shift-recorder-web</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M145.75,-1264C145.75,-1264 64.5,-1264 64.5,-1264 58.5,-1264 52.5,-1258 52.5,-1252 52.5,-1252 52.5,-1240 52.5,-1240 52.5,-1234 58.5,-1228 64.5,-1228 64.5,-1228 145.75,-1228 145.75,-1228 151.75,-1228 157.75,-1234 157.75,-1240 157.75,-1240 157.75,-1252 157.75,-1252 157.75,-1258 151.75,-1264 145.75,-1264"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1242.88" font-family="Helvetica,sans-Serif" font-size="10.00">shift-recorder-web</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill -->
|
|
||||||
<g id="node16" class="node">
|
|
||||||
<title>svc:stockfill</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.25,-1350C120.25,-1350 90,-1350 90,-1350 84,-1350 78,-1344 78,-1338 78,-1338 78,-1326 78,-1326 78,-1320 84,-1314 90,-1314 90,-1314 120.25,-1314 120.25,-1314 126.25,-1314 132.25,-1320 132.25,-1326 132.25,-1326 132.25,-1338 132.25,-1338 132.25,-1344 126.25,-1350 120.25,-1350"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1328.88" font-family="Helvetica,sans-Serif" font-size="10.00">stockfill</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:telegraf -->
|
|
||||||
<g id="node17" class="node">
|
|
||||||
<title>svc:telegraf</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.25,-1436C120.25,-1436 90,-1436 90,-1436 84,-1436 78,-1430 78,-1424 78,-1424 78,-1412 78,-1412 78,-1406 84,-1400 90,-1400 90,-1400 120.25,-1400 120.25,-1400 126.25,-1400 132.25,-1406 132.25,-1412 132.25,-1412 132.25,-1424 132.25,-1424 132.25,-1430 126.25,-1436 120.25,-1436"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1414.88" font-family="Helvetica,sans-Serif" font-size="10.00">telegraf</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gitea-runner -->
|
|
||||||
<g id="node18" class="node">
|
|
||||||
<title>svc:gitea-runner</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M131.12,-1522C131.12,-1522 79.12,-1522 79.12,-1522 73.12,-1522 67.12,-1516 67.12,-1510 67.12,-1510 67.12,-1498 67.12,-1498 67.12,-1492 73.12,-1486 79.12,-1486 79.12,-1486 131.12,-1486 131.12,-1486 137.12,-1486 143.12,-1492 143.12,-1498 143.12,-1498 143.12,-1510 143.12,-1510 143.12,-1516 137.12,-1522 131.12,-1522"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1500.88" font-family="Helvetica,sans-Serif" font-size="10.00">gitea-runner</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:authelia -->
|
|
||||||
<g id="node19" class="node">
|
|
||||||
<title>svc:authelia</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M121,-1608C121,-1608 89.25,-1608 89.25,-1608 83.25,-1608 77.25,-1602 77.25,-1596 77.25,-1596 77.25,-1584 77.25,-1584 77.25,-1578 83.25,-1572 89.25,-1572 89.25,-1572 121,-1572 121,-1572 127,-1572 133,-1578 133,-1584 133,-1584 133,-1596 133,-1596 133,-1602 127,-1608 121,-1608"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1586.88" font-family="Helvetica,sans-Serif" font-size="10.00">authelia</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:docker-socket-proxy -->
|
|
||||||
<g id="node20" class="node">
|
|
||||||
<title>svc:docker-socket-proxy</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M150.62,-1694C150.62,-1694 59.62,-1694 59.62,-1694 53.62,-1694 47.62,-1688 47.62,-1682 47.62,-1682 47.62,-1670 47.62,-1670 47.62,-1664 53.62,-1658 59.62,-1658 59.62,-1658 150.62,-1658 150.62,-1658 156.62,-1658 162.62,-1664 162.62,-1670 162.62,-1670 162.62,-1682 162.62,-1682 162.62,-1688 156.62,-1694 150.62,-1694"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1672.88" font-family="Helvetica,sans-Serif" font-size="10.00">docker-socket-proxy</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:traefik -->
|
|
||||||
<g id="node21" class="node">
|
|
||||||
<title>svc:traefik</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-1780C120.12,-1780 90.12,-1780 90.12,-1780 84.12,-1780 78.12,-1774 78.12,-1768 78.12,-1768 78.12,-1756 78.12,-1756 78.12,-1750 84.12,-1744 90.12,-1744 90.12,-1744 120.12,-1744 120.12,-1744 126.12,-1744 132.12,-1750 132.12,-1756 132.12,-1756 132.12,-1768 132.12,-1768 132.12,-1774 126.12,-1780 120.12,-1780"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1758.88" font-family="Helvetica,sans-Serif" font-size="10.00">traefik</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grafana -->
|
|
||||||
<g id="node22" class="node">
|
|
||||||
<title>svc:grafana</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-1866C120.12,-1866 90.12,-1866 90.12,-1866 84.12,-1866 78.12,-1860 78.12,-1854 78.12,-1854 78.12,-1842 78.12,-1842 78.12,-1836 84.12,-1830 90.12,-1830 90.12,-1830 120.12,-1830 120.12,-1830 126.12,-1830 132.12,-1836 132.12,-1842 132.12,-1842 132.12,-1854 132.12,-1854 132.12,-1860 126.12,-1866 120.12,-1866"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1844.88" font-family="Helvetica,sans-Serif" font-size="10.00">grafana</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:node-exporter -->
|
|
||||||
<g id="node23" class="node">
|
|
||||||
<title>svc:node-exporter</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M135.62,-1952C135.62,-1952 74.62,-1952 74.62,-1952 68.62,-1952 62.62,-1946 62.62,-1940 62.62,-1940 62.62,-1928 62.62,-1928 62.62,-1922 68.62,-1916 74.62,-1916 74.62,-1916 135.62,-1916 135.62,-1916 141.62,-1916 147.62,-1922 147.62,-1928 147.62,-1928 147.62,-1940 147.62,-1940 147.62,-1946 141.62,-1952 135.62,-1952"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1930.88" font-family="Helvetica,sans-Serif" font-size="10.00">node-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:prometheus -->
|
|
||||||
<g id="node24" class="node">
|
|
||||||
<title>svc:prometheus</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M130.38,-2038C130.38,-2038 79.88,-2038 79.88,-2038 73.88,-2038 67.88,-2032 67.88,-2026 67.88,-2026 67.88,-2014 67.88,-2014 67.88,-2008 73.88,-2002 79.88,-2002 79.88,-2002 130.38,-2002 130.38,-2002 136.38,-2002 142.38,-2008 142.38,-2014 142.38,-2014 142.38,-2026 142.38,-2026 142.38,-2032 136.38,-2038 130.38,-2038"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2016.88" font-family="Helvetica,sans-Serif" font-size="10.00">prometheus</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gramps-redis -->
|
|
||||||
<g id="node25" class="node">
|
|
||||||
<title>svc:gramps-redis</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M133.38,-2124C133.38,-2124 76.88,-2124 76.88,-2124 70.88,-2124 64.88,-2118 64.88,-2112 64.88,-2112 64.88,-2100 64.88,-2100 64.88,-2094 70.88,-2088 76.88,-2088 76.88,-2088 133.38,-2088 133.38,-2088 139.38,-2088 145.38,-2094 145.38,-2100 145.38,-2100 145.38,-2112 145.38,-2112 145.38,-2118 139.38,-2124 133.38,-2124"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2102.88" font-family="Helvetica,sans-Serif" font-size="10.00">gramps-redis</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:influxdb -->
|
|
||||||
<g id="node26" class="node">
|
|
||||||
<title>svc:influxdb</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.62,-2210C120.62,-2210 89.62,-2210 89.62,-2210 83.62,-2210 77.62,-2204 77.62,-2198 77.62,-2198 77.62,-2186 77.62,-2186 77.62,-2180 83.62,-2174 89.62,-2174 89.62,-2174 120.62,-2174 120.62,-2174 126.62,-2174 132.62,-2180 132.62,-2186 132.62,-2186 132.62,-2198 132.62,-2198 132.62,-2204 126.62,-2210 120.62,-2210"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2188.88" font-family="Helvetica,sans-Serif" font-size="10.00">influxdb</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-db -->
|
|
||||||
<g id="node27" class="node">
|
|
||||||
<title>svc:nextcloud-db</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M133,-2296C133,-2296 77.25,-2296 77.25,-2296 71.25,-2296 65.25,-2290 65.25,-2284 65.25,-2284 65.25,-2272 65.25,-2272 65.25,-2266 71.25,-2260 77.25,-2260 77.25,-2260 133,-2260 133,-2260 139,-2260 145,-2266 145,-2272 145,-2272 145,-2284 145,-2284 145,-2290 139,-2296 133,-2296"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2274.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-db</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-redis -->
|
|
||||||
<g id="node28" class="node">
|
|
||||||
<title>svc:nextcloud-redis</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M139,-2382C139,-2382 71.25,-2382 71.25,-2382 65.25,-2382 59.25,-2376 59.25,-2370 59.25,-2370 59.25,-2358 59.25,-2358 59.25,-2352 65.25,-2346 71.25,-2346 71.25,-2346 139,-2346 139,-2346 145,-2346 151,-2352 151,-2358 151,-2358 151,-2370 151,-2370 151,-2376 145,-2382 139,-2382"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2360.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-redis</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:passbolt-db -->
|
|
||||||
<g id="node29" class="node">
|
|
||||||
<title>svc:passbolt-db</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.62,-2468C129.62,-2468 80.62,-2468 80.62,-2468 74.62,-2468 68.62,-2462 68.62,-2456 68.62,-2456 68.62,-2444 68.62,-2444 68.62,-2438 74.62,-2432 80.62,-2432 80.62,-2432 129.62,-2432 129.62,-2432 135.62,-2432 141.62,-2438 141.62,-2444 141.62,-2444 141.62,-2456 141.62,-2456 141.62,-2462 135.62,-2468 129.62,-2468"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2446.88" font-family="Helvetica,sans-Serif" font-size="10.00">passbolt-db</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:pihole-exporter -->
|
|
||||||
<g id="node30" class="node">
|
|
||||||
<title>svc:pihole-exporter</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M138.62,-2594C138.62,-2594 71.62,-2594 71.62,-2594 65.62,-2594 59.62,-2588 59.62,-2582 59.62,-2582 59.62,-2570 59.62,-2570 59.62,-2564 65.62,-2558 71.62,-2558 71.62,-2558 138.62,-2558 138.62,-2558 144.62,-2558 150.62,-2564 150.62,-2570 150.62,-2570 150.62,-2582 150.62,-2582 150.62,-2588 144.62,-2594 138.62,-2594"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2572.88" font-family="Helvetica,sans-Serif" font-size="10.00">pihole-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_host -->
|
|
||||||
<g id="node31" class="node">
|
|
||||||
<title>leg_host</title>
|
|
||||||
<polygon fill="#eff6ff" stroke="black" points="142.38,-2712 71.88,-2712 67.88,-2708 67.88,-2676 138.38,-2676 142.38,-2680 142.38,-2712"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 67.88,-2708"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 138.38,-2676"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 142.38,-2712"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Host cluster</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_cat -->
|
|
||||||
<g id="node32" class="node">
|
|
||||||
<title>leg_cat</title>
|
|
||||||
<polygon fill="#f8fbff" stroke="black" points="379,-2712 376,-2716 355,-2716 352,-2712 281.25,-2712 281.25,-2676 379,-2676 379,-2712"/>
|
|
||||||
<text text-anchor="middle" x="330.12" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Service category</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_host->leg_cat -->
|
|
||||||
<g id="edge1" class="edge">
|
|
||||||
<title>leg_host->leg_cat</title>
|
|
||||||
<path fill="none" stroke="#64748b" stroke-dasharray="5,2" d="M142.45,-2694C176.9,-2694 229.26,-2694 269.77,-2694"/>
|
|
||||||
<polygon fill="#64748b" stroke="#64748b" points="269.61,-2697.5 279.61,-2694 269.61,-2690.5 269.61,-2697.5"/>
|
|
||||||
</g>
|
|
||||||
<!-- leg_svc -->
|
|
||||||
<g id="node33" class="node">
|
|
||||||
<title>leg_svc</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M554.5,-2712C554.5,-2712 477,-2712 477,-2712 471,-2712 465,-2706 465,-2700 465,-2700 465,-2688 465,-2688 465,-2682 471,-2676 477,-2676 477,-2676 554.5,-2676 554.5,-2676 560.5,-2676 566.5,-2682 566.5,-2688 566.5,-2688 566.5,-2700 566.5,-2700 566.5,-2706 560.5,-2712 554.5,-2712"/>
|
|
||||||
<text text-anchor="middle" x="515.75" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Container/service</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_cat->leg_svc -->
|
|
||||||
<g id="edge2" class="edge">
|
|
||||||
<title>leg_cat->leg_svc</title>
|
|
||||||
<path fill="none" stroke="#64748b" stroke-dasharray="5,2" d="M379.37,-2694C401.93,-2694 429.05,-2694 453.07,-2694"/>
|
|
||||||
<polygon fill="#64748b" stroke="#64748b" points="453.07,-2697.5 463.07,-2694 453.07,-2690.5 453.07,-2697.5"/>
|
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,12 +1,12 @@
|
|||||||
# Docker Compose Inventory
|
# Docker Compose Inventory
|
||||||
|
|
||||||
Source fingerprint: `0fad36c3fed6`
|
Source fingerprint: `232be78ef441`
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
| Item | Count |
|
| Item | Count |
|
||||||
|---|---:|
|
|---|---:|
|
||||||
| Services | 30 |
|
| Services | 28 |
|
||||||
| Networks | 5 |
|
| Networks | 5 |
|
||||||
| Volumes | 0 |
|
| Volumes | 0 |
|
||||||
|
|
||||||
@@ -40,8 +40,6 @@ Source fingerprint: `0fad36c3fed6`
|
|||||||
| portainer | portainer | portainer/portainer-ce:latest | | monitoring, all, portainer | traefik | | unless-stopped |
|
| portainer | portainer | portainer/portainer-ce:latest | | monitoring, all, portainer | traefik | | unless-stopped |
|
||||||
| prometheus | prometheus | prom/prometheus:latest | | monitoring, all, prometheus | monitor, 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 |
|
| 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 |
|
| 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 |
|
| 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 |
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,9 @@
|
|||||||
|
|
||||||
This view groups containers by inferred host and service role (edge/proxy/auth, monitoring, automation, apps, and supporting storage/services).
|
This view groups containers by inferred host and service role (edge/proxy/auth, monitoring, automation, apps, and supporting storage/services).
|
||||||
|
|
||||||

|
<div class="diagram-wrap">
|
||||||
|
<img src="physical-topology.svg" alt="Physical topology">
|
||||||
|
</div>
|
||||||
|
|
||||||
## Docker, Traefik and Dynu routing
|
## Docker, Traefik and Dynu routing
|
||||||
|
|
||||||
@@ -12,4 +14,6 @@ This view shows sanitised public DNS names flowing to Traefik, then to exposed D
|
|||||||
|
|
||||||
_Diagrams are generated from Compose data and Traefik labels._
|
_Diagrams are generated from Compose data and Traefik labels._
|
||||||
|
|
||||||

|
<div class="diagram-wrap">
|
||||||
|
<img src="docker-traefik-dynu.svg" alt="Docker Traefik Dynu">
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -1,463 +1,439 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<!-- Generated by graphviz version 12.2.1 (0)
|
<!-- Generated by graphviz version 2.43.0 (0)
|
||||||
-->
|
-->
|
||||||
<!-- Title: Compose Pages: 1 -->
|
<!-- Title: Compose Pages: 1 -->
|
||||||
<svg width="342pt" height="1610pt"
|
<svg width="334pt" height="1502pt"
|
||||||
viewBox="0.00 0.00 341.70 1610.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 334.49 1502.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1606)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1498)">
|
||||||
<title>Compose</title>
|
<title>Compose</title>
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1606 337.7,-1606 337.7,4 -4,4"/>
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1498 330.49,-1498 330.49,4 -4,4"/>
|
||||||
<!-- svc:authelia -->
|
<!-- svc:authelia -->
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>svc:authelia</title>
|
<title>svc:authelia</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="125.5,-900 54,-900 54,-864 125.5,-864 125.5,-900"/>
|
<polygon fill="#dfefff" stroke="black" points="126,-738 54,-738 54,-702 126,-702 126,-738"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-877.33" font-family="Helvetica,sans-Serif" font-size="14.00">authelia</text>
|
<text text-anchor="middle" x="90" y="-716.3" font-family="Helvetica,sans-Serif" font-size="14.00">authelia</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:traefik -->
|
<!-- net:traefik -->
|
||||||
<g id="node35" class="node">
|
<g id="node33" class="node">
|
||||||
<title>net:traefik</title>
|
<title>net:traefik</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-828" rx="42.79" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-774" rx="40.09" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
<text text-anchor="middle" x="271.25" y="-770.3" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:authelia->net:traefik -->
|
<!-- svc:authelia->net:traefik -->
|
||||||
<g id="edge1" class="edge">
|
<g id="edge1" class="edge">
|
||||||
<title>svc:authelia->net:traefik</title>
|
<title>svc:authelia->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M125.57,-871.72C154.68,-863.12 196.4,-850.8 228.13,-841.43"/>
|
<path fill="none" stroke="black" d="M126.41,-730.67C155.5,-739.43 196.8,-751.87 227.69,-761.18"/>
|
||||||
<polygon fill="black" stroke="black" points="228.86,-844.86 237.45,-838.67 226.87,-838.15 228.86,-844.86"/>
|
<polygon fill="black" stroke="black" points="226.74,-764.55 237.32,-764.08 228.76,-757.85 226.74,-764.55"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:crowdsec -->
|
<!-- svc:crowdsec -->
|
||||||
<g id="node2" class="node">
|
<g id="node2" class="node">
|
||||||
<title>svc:crowdsec</title>
|
<title>svc:crowdsec</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="130,-846 49.5,-846 49.5,-810 130,-810 130,-846"/>
|
<polygon fill="#dfefff" stroke="black" points="130.5,-684 49.5,-684 49.5,-648 130.5,-648 130.5,-684"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">crowdsec</text>
|
<text text-anchor="middle" x="90" y="-662.3" font-family="Helvetica,sans-Serif" font-size="14.00">crowdsec</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:crowdsec->net:traefik -->
|
<!-- svc:crowdsec->net:traefik -->
|
||||||
<g id="edge2" class="edge">
|
<g id="edge2" class="edge">
|
||||||
<title>svc:crowdsec->net:traefik</title>
|
<title>svc:crowdsec->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M130.43,-828C156.64,-828 191.33,-828 219.99,-828"/>
|
<path fill="none" stroke="black" d="M130.61,-674.06C146.59,-678.3 164.81,-684.44 180,-693 206.25,-707.78 231.35,-731.35 248.38,-749.26"/>
|
||||||
<polygon fill="black" stroke="black" points="219.94,-831.5 229.94,-828 219.94,-824.5 219.94,-831.5"/>
|
<polygon fill="black" stroke="black" points="246.24,-752.1 255.62,-757.03 251.37,-747.33 246.24,-752.1"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy -->
|
<!-- svc:docker-socket-proxy -->
|
||||||
<g id="node3" class="node">
|
<g id="node3" class="node">
|
||||||
<title>svc:docker-socket-proxy</title>
|
<title>svc:docker-socket-proxy</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="167.12,-1116 12.38,-1116 12.38,-1080 167.12,-1080 167.12,-1116"/>
|
<polygon fill="#dfefff" stroke="black" points="167.5,-954 12.5,-954 12.5,-918 167.5,-918 167.5,-954"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1093.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker-socket-proxy</text>
|
<text text-anchor="middle" x="90" y="-932.3" font-family="Helvetica,sans-Serif" font-size="14.00">docker-socket-proxy</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:monitor -->
|
<!-- net:monitor -->
|
||||||
<g id="node32" class="node">
|
<g id="node30" class="node">
|
||||||
<title>net:monitor</title>
|
<title>net:monitor</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-1314" rx="49.1" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-1206" rx="46.29" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor</text>
|
<text text-anchor="middle" x="271.25" y="-1202.3" font-family="Helvetica,sans-Serif" font-size="14.00">monitor</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy->net:monitor -->
|
<!-- svc:docker-socket-proxy->net:monitor -->
|
||||||
<g id="edge3" class="edge">
|
<g id="edge3" class="edge">
|
||||||
<title>svc:docker-socket-proxy->net:monitor</title>
|
<title>svc:docker-socket-proxy->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M167.08,-1116.44C171.5,-1118.94 175.69,-1121.78 179.5,-1125 229.66,-1167.43 255.71,-1243.09 266.82,-1284.65"/>
|
<path fill="none" stroke="black" d="M167.53,-953.71C172.02,-956.38 176.24,-959.46 180,-963 242.3,-1021.6 261.83,-1127.12 267.77,-1177.6"/>
|
||||||
<polygon fill="black" stroke="black" points="263.39,-1285.36 269.25,-1294.19 270.17,-1283.63 263.39,-1285.36"/>
|
<polygon fill="black" stroke="black" points="264.31,-1178.21 268.86,-1187.78 271.27,-1177.46 264.31,-1178.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-socket-proxy->net:traefik -->
|
<!-- svc:docker-socket-proxy->net:traefik -->
|
||||||
<g id="edge4" class="edge">
|
<g id="edge4" class="edge">
|
||||||
<title>svc:docker-socket-proxy->net:traefik</title>
|
<title>svc:docker-socket-proxy->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M167.43,-1079.96C171.77,-1077.37 175.84,-1074.4 179.5,-1071 242.11,-1012.86 263.56,-908.25 270.5,-857.38"/>
|
<path fill="none" stroke="black" d="M165.31,-917.9C170.5,-915.32 175.46,-912.37 180,-909 218.01,-880.82 244.97,-831.56 259.03,-800.98"/>
|
||||||
<polygon fill="black" stroke="black" points="273.94,-858.09 271.71,-847.73 266.99,-857.22 273.94,-858.09"/>
|
<polygon fill="black" stroke="black" points="262.27,-802.31 263.14,-791.76 255.87,-799.46 262.27,-802.31"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-update-exporter -->
|
<!-- svc:docker-update-exporter -->
|
||||||
<g id="node4" class="node">
|
<g id="node4" class="node">
|
||||||
<title>svc:docker-update-exporter</title>
|
<title>svc:docker-update-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="179.5,-1494 0,-1494 0,-1458 179.5,-1458 179.5,-1494"/>
|
<polygon fill="#dfefff" stroke="black" points="180,-1494 0,-1494 0,-1458 180,-1458 180,-1494"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1471.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker-update-exporter</text>
|
<text text-anchor="middle" x="90" y="-1472.3" font-family="Helvetica,sans-Serif" font-size="14.00">docker-update-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:docker-update-exporter->net:monitor -->
|
<!-- svc:docker-update-exporter->net:monitor -->
|
||||||
<g id="edge5" class="edge">
|
<g id="edge5" class="edge">
|
||||||
<title>svc:docker-update-exporter->net:monitor</title>
|
<title>svc:docker-update-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M165.23,-1457.57C170.25,-1455.06 175.07,-1452.22 179.5,-1449 217.95,-1421.05 246.17,-1372.4 261.21,-1341.77"/>
|
<path fill="none" stroke="black" d="M168.37,-1457.79C172.55,-1455.23 176.47,-1452.32 180,-1449 242.3,-1390.4 261.83,-1284.88 267.77,-1234.4"/>
|
||||||
<polygon fill="black" stroke="black" points="264.19,-1343.65 265.33,-1333.12 257.87,-1340.64 264.19,-1343.65"/>
|
<polygon fill="black" stroke="black" points="271.27,-1234.54 268.86,-1224.22 264.31,-1233.79 271.27,-1234.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:error-pages -->
|
<!-- svc:error-pages -->
|
||||||
<g id="node5" class="node">
|
<g id="node5" class="node">
|
||||||
<title>svc:error-pages</title>
|
<title>svc:error-pages</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="137.12,-792 42.38,-792 42.38,-756 137.12,-756 137.12,-792"/>
|
<polygon fill="#dfefff" stroke="black" points="137.5,-630 42.5,-630 42.5,-594 137.5,-594 137.5,-630"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-769.33" font-family="Helvetica,sans-Serif" font-size="14.00">error-pages</text>
|
<text text-anchor="middle" x="90" y="-608.3" font-family="Helvetica,sans-Serif" font-size="14.00">error-pages</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:error-pages->net:traefik -->
|
<!-- svc:error-pages->net:traefik -->
|
||||||
<g id="edge6" class="edge">
|
<g id="edge6" class="edge">
|
||||||
<title>svc:error-pages->net:traefik</title>
|
<title>svc:error-pages->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M137.36,-787.77C165.17,-795.98 200.32,-806.36 227.95,-814.52"/>
|
<path fill="none" stroke="black" d="M137.71,-619.76C152.25,-623.79 167.68,-629.86 180,-639 218.01,-667.18 244.97,-716.44 259.03,-747.02"/>
|
||||||
<polygon fill="black" stroke="black" points="226.88,-817.85 237.46,-817.33 228.86,-811.14 226.88,-817.85"/>
|
<polygon fill="black" stroke="black" points="255.87,-748.54 263.14,-756.24 262.27,-745.69 255.87,-748.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea -->
|
<!-- svc:gitea -->
|
||||||
<g id="node6" class="node">
|
<g id="node6" class="node">
|
||||||
<title>svc:gitea</title>
|
<title>svc:gitea</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="116.75,-738 62.75,-738 62.75,-702 116.75,-702 116.75,-738"/>
|
<polygon fill="#dfefff" stroke="black" points="117,-576 63,-576 63,-540 117,-540 117,-576"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-715.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea</text>
|
<text text-anchor="middle" x="90" y="-554.3" font-family="Helvetica,sans-Serif" font-size="14.00">gitea</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea->net:traefik -->
|
<!-- svc:gitea->net:traefik -->
|
||||||
<g id="edge7" class="edge">
|
<g id="edge7" class="edge">
|
||||||
<title>svc:gitea->net:traefik</title>
|
<title>svc:gitea->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M117.13,-725C135.41,-729.18 159.89,-736.21 179.5,-747 206.52,-761.87 232.73,-785.42 250.6,-803.3"/>
|
<path fill="none" stroke="black" d="M117.07,-560.28C136.41,-563.2 162.37,-569.85 180,-585 229.98,-627.95 254.42,-704.8 264.44,-746.04"/>
|
||||||
<polygon fill="black" stroke="black" points="247.64,-805.29 257.14,-809.99 252.65,-800.39 247.64,-805.29"/>
|
<polygon fill="black" stroke="black" points="261.07,-747 266.73,-755.95 267.88,-745.42 261.07,-747"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea-runner -->
|
<!-- svc:gitea-runner -->
|
||||||
<g id="node7" class="node">
|
<g id="node7" class="node">
|
||||||
<title>svc:gitea-runner</title>
|
<title>svc:gitea-runner</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="141.25,-684 38.25,-684 38.25,-648 141.25,-648 141.25,-684"/>
|
<polygon fill="#dfefff" stroke="black" points="142,-522 38,-522 38,-486 142,-486 142,-522"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-661.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea-runner</text>
|
<text text-anchor="middle" x="90" y="-500.3" font-family="Helvetica,sans-Serif" font-size="14.00">gitea-runner</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gitea-runner->net:traefik -->
|
<!-- svc:gitea-runner->net:traefik -->
|
||||||
<g id="edge8" class="edge">
|
<g id="edge8" class="edge">
|
||||||
<title>svc:gitea-runner->net:traefik</title>
|
<title>svc:gitea-runner->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M141.36,-675.13C154.61,-679.13 168.3,-684.85 179.5,-693 217.95,-720.95 246.17,-769.6 261.21,-800.23"/>
|
<path fill="none" stroke="black" d="M142.31,-511.04C155.9,-515.03 169.65,-521.26 180,-531 242.3,-589.6 261.83,-695.12 267.77,-745.6"/>
|
||||||
<polygon fill="black" stroke="black" points="257.87,-801.36 265.33,-808.88 264.19,-798.35 257.87,-801.36"/>
|
<polygon fill="black" stroke="black" points="264.31,-746.21 268.86,-755.78 271.27,-745.46 264.31,-746.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gotify -->
|
<!-- svc:gotify -->
|
||||||
<g id="node8" class="node">
|
<g id="node8" class="node">
|
||||||
<title>svc:gotify</title>
|
<title>svc:gotify</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="117.25,-630 62.25,-630 62.25,-594 117.25,-594 117.25,-630"/>
|
<polygon fill="#dfefff" stroke="black" points="118,-468 62,-468 62,-432 118,-432 118,-468"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-607.33" font-family="Helvetica,sans-Serif" font-size="14.00">gotify</text>
|
<text text-anchor="middle" x="90" y="-446.3" font-family="Helvetica,sans-Serif" font-size="14.00">gotify</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gotify->net:traefik -->
|
<!-- svc:gotify->net:traefik -->
|
||||||
<g id="edge9" class="edge">
|
<g id="edge9" class="edge">
|
||||||
<title>svc:gotify->net:traefik</title>
|
<title>svc:gotify->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M117.49,-614.51C136.64,-617.54 162.04,-624.23 179.5,-639 229.66,-681.43 255.71,-757.09 266.82,-798.65"/>
|
<path fill="none" stroke="black" d="M118.17,-451.6C137.81,-454.16 163.67,-460.68 180,-477 254.99,-551.96 268.02,-687.13 270.03,-745.69"/>
|
||||||
<polygon fill="black" stroke="black" points="263.39,-799.36 269.25,-808.19 270.17,-797.63 263.39,-799.36"/>
|
<polygon fill="black" stroke="black" points="266.53,-745.79 270.29,-755.69 273.53,-745.61 266.53,-745.79"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana -->
|
<!-- svc:grafana -->
|
||||||
<g id="node9" class="node">
|
<g id="node9" class="node">
|
||||||
<title>svc:grafana</title>
|
<title>svc:grafana</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.75,-1062 54.75,-1062 54.75,-1026 124.75,-1026 124.75,-1062"/>
|
<polygon fill="#dfefff" stroke="black" points="125.5,-1278 54.5,-1278 54.5,-1242 125.5,-1242 125.5,-1278"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1039.33" font-family="Helvetica,sans-Serif" font-size="14.00">grafana</text>
|
<text text-anchor="middle" x="90" y="-1256.3" font-family="Helvetica,sans-Serif" font-size="14.00">grafana</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana->net:monitor -->
|
<!-- svc:grafana->net:monitor -->
|
||||||
<g id="edge10" class="edge">
|
<g id="edge10" class="edge">
|
||||||
<title>svc:grafana->net:monitor</title>
|
<title>svc:grafana->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M125.1,-1047.21C143.24,-1050.54 164.75,-1057.3 179.5,-1071 242.11,-1129.14 263.56,-1233.75 270.5,-1284.62"/>
|
<path fill="none" stroke="black" d="M125.56,-1249.59C153.74,-1241.1 193.78,-1229.04 224.6,-1219.75"/>
|
||||||
<polygon fill="black" stroke="black" points="266.99,-1284.78 271.71,-1294.27 273.94,-1283.91 266.99,-1284.78"/>
|
<polygon fill="black" stroke="black" points="225.69,-1223.08 234.26,-1216.84 223.67,-1216.38 225.69,-1223.08"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grafana->net:traefik -->
|
<!-- svc:grafana->net:traefik -->
|
||||||
<g id="edge11" class="edge">
|
<g id="edge11" class="edge">
|
||||||
<title>svc:grafana->net:traefik</title>
|
<title>svc:grafana->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M125.04,-1040.15C142.95,-1036.63 164.25,-1029.9 179.5,-1017 229.66,-974.57 255.71,-898.91 266.82,-857.35"/>
|
<path fill="none" stroke="black" d="M125.54,-1257.93C144.23,-1254.97 166.25,-1248.21 180,-1233 238.17,-1168.67 262.1,-892.17 268.43,-802.32"/>
|
||||||
<polygon fill="black" stroke="black" points="270.17,-858.37 269.25,-847.81 263.39,-856.64 270.17,-858.37"/>
|
<polygon fill="black" stroke="black" points="271.93,-802.3 269.13,-792.08 264.95,-801.82 271.93,-802.3"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gramps-redis -->
|
<!-- svc:gramps-redis -->
|
||||||
<g id="node10" class="node">
|
<g id="node10" class="node">
|
||||||
<title>svc:gramps-redis</title>
|
<title>svc:gramps-redis</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="143.88,-360 35.62,-360 35.62,-324 143.88,-324 143.88,-360"/>
|
<polygon fill="#dfefff" stroke="black" points="144.5,-360 35.5,-360 35.5,-324 144.5,-324 144.5,-360"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps-redis</text>
|
<text text-anchor="middle" x="90" y="-338.3" font-family="Helvetica,sans-Serif" font-size="14.00">gramps-redis</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:gramps -->
|
<!-- net:gramps -->
|
||||||
<g id="node31" class="node">
|
<g id="node29" class="node">
|
||||||
<title>net:gramps</title>
|
<title>net:gramps</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-342" rx="48.58" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-342" rx="45.49" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps</text>
|
<text text-anchor="middle" x="271.25" y="-338.3" font-family="Helvetica,sans-Serif" font-size="14.00">gramps</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:gramps-redis->net:gramps -->
|
<!-- svc:gramps-redis->net:gramps -->
|
||||||
<g id="edge12" class="edge">
|
<g id="edge12" class="edge">
|
||||||
<title>svc:gramps-redis->net:gramps</title>
|
<title>svc:gramps-redis->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M144.13,-342C166.12,-342 191.69,-342 214.27,-342"/>
|
<path fill="none" stroke="black" d="M144.78,-342C167.14,-342 193.05,-342 215.51,-342"/>
|
||||||
<polygon fill="black" stroke="black" points="214.25,-345.5 224.25,-342 214.25,-338.5 214.25,-345.5"/>
|
<polygon fill="black" stroke="black" points="215.56,-345.5 225.56,-342 215.56,-338.5 215.56,-345.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb -->
|
<!-- svc:grampsweb -->
|
||||||
<g id="node11" class="node">
|
<g id="node11" class="node">
|
||||||
<title>svc:grampsweb</title>
|
<title>svc:grampsweb</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="138.62,-414 40.88,-414 40.88,-378 138.62,-378 138.62,-414"/>
|
<polygon fill="#dfefff" stroke="black" points="139,-414 41,-414 41,-378 139,-378 139,-414"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-391.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb</text>
|
<text text-anchor="middle" x="90" y="-392.3" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb->net:gramps -->
|
<!-- svc:grampsweb->net:gramps -->
|
||||||
<g id="edge13" class="edge">
|
<g id="edge13" class="edge">
|
||||||
<title>svc:grampsweb->net:gramps</title>
|
<title>svc:grampsweb->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M138.79,-381.81C165.27,-373.99 198.07,-364.31 224.69,-356.45"/>
|
<path fill="none" stroke="black" d="M139.03,-381.53C165.7,-373.5 198.68,-363.56 224.9,-355.66"/>
|
||||||
<polygon fill="black" stroke="black" points="225.63,-359.82 234.23,-353.63 223.65,-353.1 225.63,-359.82"/>
|
<polygon fill="black" stroke="black" points="226.03,-358.98 234.59,-352.74 224.01,-352.27 226.03,-358.98"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb->net:traefik -->
|
<!-- svc:grampsweb->net:traefik -->
|
||||||
<g id="edge14" class="edge">
|
<g id="edge14" class="edge">
|
||||||
<title>svc:grampsweb->net:traefik</title>
|
<title>svc:grampsweb->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M139.04,-401.22C153.82,-405.09 168.94,-411.71 179.5,-423 231.19,-478.28 261.34,-714.72 270.55,-798.46"/>
|
<path fill="none" stroke="black" d="M139.27,-401.34C154.08,-405.21 169.28,-411.81 180,-423 225.12,-470.09 256.34,-671.08 266.59,-745.84"/>
|
||||||
<polygon fill="black" stroke="black" points="267.04,-798.59 271.6,-808.16 274,-797.84 267.04,-798.59"/>
|
<polygon fill="black" stroke="black" points="263.14,-746.48 267.95,-755.92 270.08,-745.55 263.14,-746.48"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb_celery -->
|
<!-- svc:grampsweb_celery -->
|
||||||
<g id="node12" class="node">
|
<g id="node12" class="node">
|
||||||
<title>svc:grampsweb_celery</title>
|
<title>svc:grampsweb_celery</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="163,-306 16.5,-306 16.5,-270 163,-270 163,-306"/>
|
<polygon fill="#dfefff" stroke="black" points="163.5,-306 16.5,-306 16.5,-270 163.5,-270 163.5,-306"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-283.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb_celery</text>
|
<text text-anchor="middle" x="90" y="-284.3" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb_celery</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:grampsweb_celery->net:gramps -->
|
<!-- svc:grampsweb_celery->net:gramps -->
|
||||||
<g id="edge15" class="edge">
|
<g id="edge15" class="edge">
|
||||||
<title>svc:grampsweb_celery->net:gramps</title>
|
<title>svc:grampsweb_celery->net:gramps</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-306.43C176.62,-313.36 202.91,-321.12 224.94,-327.63"/>
|
<path fill="none" stroke="black" d="M151.18,-306.13C175.28,-313.39 202.57,-321.61 224.94,-328.35"/>
|
||||||
<polygon fill="black" stroke="black" points="223.66,-330.9 234.25,-330.38 225.65,-324.19 223.66,-330.9"/>
|
<polygon fill="black" stroke="black" points="223.94,-331.71 234.52,-331.24 225.96,-325 223.94,-331.71"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb -->
|
<!-- svc:influxdb -->
|
||||||
<g id="node13" class="node">
|
<g id="node13" class="node">
|
||||||
<title>svc:influxdb</title>
|
<title>svc:influxdb</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="126.25,-1386 53.25,-1386 53.25,-1350 126.25,-1350 126.25,-1386"/>
|
<polygon fill="#dfefff" stroke="black" points="127,-1224 53,-1224 53,-1188 127,-1188 127,-1224"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1363.33" font-family="Helvetica,sans-Serif" font-size="14.00">influxdb</text>
|
<text text-anchor="middle" x="90" y="-1202.3" font-family="Helvetica,sans-Serif" font-size="14.00">influxdb</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb->net:monitor -->
|
<!-- svc:influxdb->net:monitor -->
|
||||||
<g id="edge16" class="edge">
|
<g id="edge16" class="edge">
|
||||||
<title>svc:influxdb->net:monitor</title>
|
<title>svc:influxdb->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M126.44,-1357.46C154.39,-1349.2 193.59,-1337.63 224.5,-1328.5"/>
|
<path fill="none" stroke="black" d="M127.27,-1206C152.33,-1206 186.13,-1206 214.57,-1206"/>
|
||||||
<polygon fill="black" stroke="black" points="225.43,-1331.88 234.03,-1325.69 223.45,-1325.16 225.43,-1331.88"/>
|
<polygon fill="black" stroke="black" points="214.79,-1209.5 224.79,-1206 214.79,-1202.5 214.79,-1209.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:influxdb->net:traefik -->
|
<!-- svc:influxdb->net:traefik -->
|
||||||
<g id="edge17" class="edge">
|
<g id="edge17" class="edge">
|
||||||
<title>svc:influxdb->net:traefik</title>
|
<title>svc:influxdb->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M126.6,-1365.75C144.97,-1362.7 166.21,-1355.9 179.5,-1341 244.32,-1268.35 266.64,-955.74 272.12,-857.6"/>
|
<path fill="none" stroke="black" d="M127.17,-1203.5C145.42,-1200.36 166.5,-1193.56 180,-1179 231.57,-1123.4 259.36,-885.3 267.6,-802.51"/>
|
||||||
<polygon fill="black" stroke="black" points="275.61,-857.9 272.65,-847.73 268.62,-857.53 275.61,-857.9"/>
|
<polygon fill="black" stroke="black" points="271.1,-802.62 268.59,-792.33 264.14,-801.94 271.1,-802.62"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma -->
|
<!-- svc:monitor-kuma -->
|
||||||
<g id="node14" class="node">
|
<g id="node14" class="node">
|
||||||
<title>svc:monitor-kuma</title>
|
<title>svc:monitor-kuma</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="145.75,-1332 33.75,-1332 33.75,-1296 145.75,-1296 145.75,-1332"/>
|
<polygon fill="#dfefff" stroke="black" points="146.5,-1170 33.5,-1170 33.5,-1134 146.5,-1134 146.5,-1170"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor-kuma</text>
|
<text text-anchor="middle" x="90" y="-1148.3" font-family="Helvetica,sans-Serif" font-size="14.00">monitor-kuma</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma->net:monitor -->
|
<!-- svc:monitor-kuma->net:monitor -->
|
||||||
<g id="edge18" class="edge">
|
<g id="edge18" class="edge">
|
||||||
<title>svc:monitor-kuma->net:monitor</title>
|
<title>svc:monitor-kuma->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M146.11,-1314C167.49,-1314 192.01,-1314 213.8,-1314"/>
|
<path fill="none" stroke="black" d="M146.73,-1168.79C171.73,-1176.32 200.85,-1185.1 224.54,-1192.23"/>
|
||||||
<polygon fill="black" stroke="black" points="213.73,-1317.5 223.73,-1314 213.73,-1310.5 213.73,-1317.5"/>
|
<polygon fill="black" stroke="black" points="223.75,-1195.65 234.33,-1195.18 225.77,-1188.94 223.75,-1195.65"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:monitor-kuma->net:traefik -->
|
<!-- svc:monitor-kuma->net:traefik -->
|
||||||
<g id="edge19" class="edge">
|
<g id="edge19" class="edge">
|
||||||
<title>svc:monitor-kuma->net:traefik</title>
|
<title>svc:monitor-kuma->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M146.15,-1306.92C158.6,-1302.89 170.71,-1296.64 179.5,-1287 237.7,-1223.11 264.11,-949.07 271.41,-857.74"/>
|
<path fill="none" stroke="black" d="M146.69,-1144.49C159.02,-1140.46 171.06,-1134.33 180,-1125 225.12,-1077.91 256.34,-876.92 266.59,-802.16"/>
|
||||||
<polygon fill="black" stroke="black" points="274.89,-858.1 272.18,-847.85 267.92,-857.55 274.89,-858.1"/>
|
<polygon fill="black" stroke="black" points="270.08,-802.45 267.95,-792.08 263.14,-801.52 270.08,-802.45"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge -->
|
<!-- svc:mtls-bridge -->
|
||||||
<g id="node15" class="node">
|
<g id="node15" class="node">
|
||||||
<title>svc:mtls-bridge</title>
|
<title>svc:mtls-bridge</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="137.88,-1278 41.62,-1278 41.62,-1242 137.88,-1242 137.88,-1278"/>
|
<polygon fill="#dfefff" stroke="black" points="138.5,-1116 41.5,-1116 41.5,-1080 138.5,-1080 138.5,-1116"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1255.33" font-family="Helvetica,sans-Serif" font-size="14.00">mtls-bridge</text>
|
<text text-anchor="middle" x="90" y="-1094.3" font-family="Helvetica,sans-Serif" font-size="14.00">mtls-bridge</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge->net:monitor -->
|
<!-- svc:mtls-bridge->net:monitor -->
|
||||||
<g id="edge20" class="edge">
|
<g id="edge20" class="edge">
|
||||||
<title>svc:mtls-bridge->net:monitor</title>
|
<title>svc:mtls-bridge->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M138.31,-1274.05C164.79,-1281.87 197.71,-1291.59 224.44,-1299.48"/>
|
<path fill="none" stroke="black" d="M138.76,-1108.34C152.58,-1112.41 167.34,-1117.87 180,-1125 206.25,-1139.78 231.35,-1163.35 248.38,-1181.26"/>
|
||||||
<polygon fill="black" stroke="black" points="223.45,-1302.84 234.03,-1302.31 225.43,-1296.13 223.45,-1302.84"/>
|
<polygon fill="black" stroke="black" points="246.24,-1184.1 255.62,-1189.03 251.37,-1179.33 246.24,-1184.1"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:mtls-bridge->net:traefik -->
|
<!-- svc:mtls-bridge->net:traefik -->
|
||||||
<g id="edge21" class="edge">
|
<g id="edge21" class="edge">
|
||||||
<title>svc:mtls-bridge->net:traefik</title>
|
<title>svc:mtls-bridge->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M138.12,-1255.01C153.19,-1251.19 168.72,-1244.53 179.5,-1233 231.19,-1177.72 261.34,-941.28 270.55,-857.54"/>
|
<path fill="none" stroke="black" d="M138.53,-1092.51C153.46,-1088.63 168.92,-1082.07 180,-1071 254.99,-996.04 268.02,-860.87 270.03,-802.31"/>
|
||||||
<polygon fill="black" stroke="black" points="274,-858.16 271.6,-847.84 267.04,-857.41 274,-858.16"/>
|
<polygon fill="black" stroke="black" points="273.53,-802.39 270.29,-792.31 266.53,-802.21 273.53,-802.39"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-db -->
|
<!-- svc:nextcloud-db -->
|
||||||
<g id="node16" class="node">
|
<g id="node16" class="node">
|
||||||
<title>svc:nextcloud-db</title>
|
<title>svc:nextcloud-db</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="143.5,-90 36,-90 36,-54 143.5,-54 143.5,-90"/>
|
<polygon fill="#dfefff" stroke="black" points="144,-90 36,-90 36,-54 144,-54 144,-90"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-db</text>
|
<text text-anchor="middle" x="90" y="-68.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-db</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:nextcloud -->
|
<!-- net:nextcloud -->
|
||||||
<g id="node33" class="node">
|
<g id="node31" class="node">
|
||||||
<title>net:nextcloud</title>
|
<title>net:nextcloud</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-180" rx="59.1" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-180" rx="55.49" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud</text>
|
<text text-anchor="middle" x="271.25" y="-176.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-db->net:nextcloud -->
|
<!-- svc:nextcloud-db->net:nextcloud -->
|
||||||
<g id="edge22" class="edge">
|
<g id="edge22" class="edge">
|
||||||
<title>svc:nextcloud-db->net:nextcloud</title>
|
<title>svc:nextcloud-db->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M143.84,-84.22C155.96,-88.07 168.49,-92.94 179.5,-99 206.19,-113.69 232.1,-136.85 249.95,-154.65"/>
|
<path fill="none" stroke="black" d="M144.33,-84.04C156.48,-87.9 169.03,-92.82 180,-99 206.09,-113.7 231.04,-137.06 248.07,-154.93"/>
|
||||||
<polygon fill="black" stroke="black" points="246.99,-156.64 256.49,-161.32 251.99,-151.73 246.99,-156.64"/>
|
<polygon fill="black" stroke="black" points="245.93,-157.77 255.31,-162.7 251.06,-153 245.93,-157.77"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-redis -->
|
<!-- svc:nextcloud-redis -->
|
||||||
<g id="node17" class="node">
|
<g id="node17" class="node">
|
||||||
<title>svc:nextcloud-redis</title>
|
<title>svc:nextcloud-redis</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="151.38,-198 28.12,-198 28.12,-162 151.38,-162 151.38,-198"/>
|
<polygon fill="#dfefff" stroke="black" points="152,-198 28,-198 28,-162 152,-162 152,-198"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-redis</text>
|
<text text-anchor="middle" x="90" y="-176.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-redis</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-redis->net:nextcloud -->
|
<!-- svc:nextcloud-redis->net:nextcloud -->
|
||||||
<g id="edge23" class="edge">
|
<g id="edge23" class="edge">
|
||||||
<title>svc:nextcloud-redis->net:nextcloud</title>
|
<title>svc:nextcloud-redis->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M151.64,-180C168.42,-180 186.77,-180 204.01,-180"/>
|
<path fill="none" stroke="black" d="M152.18,-180C169.48,-180 188.35,-180 205.83,-180"/>
|
||||||
<polygon fill="black" stroke="black" points="203.64,-183.5 213.64,-180 203.64,-176.5 203.64,-183.5"/>
|
<polygon fill="black" stroke="black" points="205.94,-183.5 215.94,-180 205.94,-176.5 205.94,-183.5"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp -->
|
<!-- svc:nextcloud-webapp -->
|
||||||
<g id="node18" class="node">
|
<g id="node18" class="node">
|
||||||
<title>svc:nextcloud-webapp</title>
|
<title>svc:nextcloud-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="161.88,-252 17.62,-252 17.62,-216 161.88,-216 161.88,-252"/>
|
<polygon fill="#dfefff" stroke="black" points="162.5,-252 17.5,-252 17.5,-216 162.5,-216 162.5,-252"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-229.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-webapp</text>
|
<text text-anchor="middle" x="90" y="-230.3" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp->net:nextcloud -->
|
<!-- svc:nextcloud-webapp->net:nextcloud -->
|
||||||
<g id="edge24" class="edge">
|
<g id="edge24" class="edge">
|
||||||
<title>svc:nextcloud-webapp->net:nextcloud</title>
|
<title>svc:nextcloud-webapp->net:nextcloud</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-215.57C174.91,-209.14 199.11,-202 220.07,-195.81"/>
|
<path fill="none" stroke="black" d="M151.18,-215.87C173.57,-209.12 198.72,-201.55 220.11,-195.1"/>
|
||||||
<polygon fill="black" stroke="black" points="220.97,-199.19 229.57,-193 218.99,-192.48 220.97,-199.19"/>
|
<polygon fill="black" stroke="black" points="221.4,-198.37 229.97,-192.13 219.38,-191.67 221.4,-198.37"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:nextcloud-webapp->net:traefik -->
|
<!-- svc:nextcloud-webapp->net:traefik -->
|
||||||
<g id="edge25" class="edge">
|
<g id="edge25" class="edge">
|
||||||
<title>svc:nextcloud-webapp->net:traefik</title>
|
<title>svc:nextcloud-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M162.07,-247.45C168.62,-250.99 174.62,-255.43 179.5,-261 215.53,-302.08 258.79,-687.96 270.53,-798.52"/>
|
<path fill="none" stroke="black" d="M162.89,-247.71C169.31,-251.2 175.18,-255.56 180,-261 212.66,-297.85 255.07,-643.36 267,-745.62"/>
|
||||||
<polygon fill="black" stroke="black" points="267.03,-798.68 271.56,-808.26 273.99,-797.95 267.03,-798.68"/>
|
<polygon fill="black" stroke="black" points="263.55,-746.27 268.18,-755.8 270.51,-745.47 263.55,-746.27"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-exporter -->
|
<!-- svc:node-exporter -->
|
||||||
<g id="node19" class="node">
|
<g id="node19" class="node">
|
||||||
<title>svc:node-exporter</title>
|
<title>svc:node-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="147.25,-1440 32.25,-1440 32.25,-1404 147.25,-1404 147.25,-1440"/>
|
<polygon fill="#dfefff" stroke="black" points="148,-1440 32,-1440 32,-1404 148,-1404 148,-1440"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1417.33" font-family="Helvetica,sans-Serif" font-size="14.00">node-exporter</text>
|
<text text-anchor="middle" x="90" y="-1418.3" font-family="Helvetica,sans-Serif" font-size="14.00">node-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-exporter->net:monitor -->
|
<!-- svc:node-exporter->net:monitor -->
|
||||||
<g id="edge26" class="edge">
|
<g id="edge26" class="edge">
|
||||||
<title>svc:node-exporter->net:monitor</title>
|
<title>svc:node-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M147.58,-1408.56C158.51,-1404.92 169.62,-1400.43 179.5,-1395 206.36,-1380.22 232.42,-1356.86 250.27,-1339.02"/>
|
<path fill="none" stroke="black" d="M148.25,-1412.27C159.68,-1408.33 170.94,-1402.79 180,-1395 229.98,-1352.05 254.42,-1275.2 264.44,-1233.96"/>
|
||||||
<polygon fill="black" stroke="black" points="252.32,-1341.94 256.82,-1332.34 247.32,-1337.04 252.32,-1341.94"/>
|
<polygon fill="black" stroke="black" points="267.88,-1234.58 266.73,-1224.05 261.07,-1233 267.88,-1234.58"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red -->
|
<!-- svc:node-red -->
|
||||||
<g id="node20" class="node">
|
<g id="node20" class="node">
|
||||||
<title>svc:node-red</title>
|
<title>svc:node-red</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="128.88,-1224 50.62,-1224 50.62,-1188 128.88,-1188 128.88,-1224"/>
|
<polygon fill="#dfefff" stroke="black" points="129.5,-1062 50.5,-1062 50.5,-1026 129.5,-1026 129.5,-1062"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1201.33" font-family="Helvetica,sans-Serif" font-size="14.00">node-red</text>
|
<text text-anchor="middle" x="90" y="-1040.3" font-family="Helvetica,sans-Serif" font-size="14.00">node-red</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red->net:monitor -->
|
<!-- svc:node-red->net:monitor -->
|
||||||
<g id="edge27" class="edge">
|
<g id="edge27" class="edge">
|
||||||
<title>svc:node-red->net:monitor</title>
|
<title>svc:node-red->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M129.28,-1214C145.41,-1218.27 163.98,-1224.46 179.5,-1233 206.36,-1247.78 232.42,-1271.14 250.27,-1288.98"/>
|
<path fill="none" stroke="black" d="M129.57,-1049.69C146.29,-1053.6 165.34,-1060.13 180,-1071 218.01,-1099.18 244.97,-1148.44 259.03,-1179.02"/>
|
||||||
<polygon fill="black" stroke="black" points="247.32,-1290.96 256.82,-1295.66 252.32,-1286.06 247.32,-1290.96"/>
|
<polygon fill="black" stroke="black" points="255.87,-1180.54 263.14,-1188.24 262.27,-1177.69 255.87,-1180.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:node-red->net:traefik -->
|
<!-- svc:node-red->net:traefik -->
|
||||||
<g id="edge28" class="edge">
|
<g id="edge28" class="edge">
|
||||||
<title>svc:node-red->net:traefik</title>
|
<title>svc:node-red->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M129.25,-1202.74C146.74,-1199.35 166.4,-1192.54 179.5,-1179 224.78,-1132.19 258.23,-932.59 269.48,-857.09"/>
|
<path fill="none" stroke="black" d="M129.95,-1040.03C147.14,-1036.46 166.48,-1029.72 180,-1017 242.3,-958.4 261.83,-852.88 267.77,-802.4"/>
|
||||||
<polygon fill="black" stroke="black" points="272.88,-857.98 270.87,-847.58 265.96,-856.97 272.88,-857.98"/>
|
<polygon fill="black" stroke="black" points="271.27,-802.54 268.86,-792.22 264.31,-801.79 271.27,-802.54"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-db -->
|
<!-- svc:passbolt-db -->
|
||||||
<g id="node21" class="node">
|
<g id="node21" class="node">
|
||||||
<title>svc:passbolt-db</title>
|
<title>svc:passbolt-db</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="138.62,-36 40.88,-36 40.88,0 138.62,0 138.62,-36"/>
|
<polygon fill="#dfefff" stroke="black" points="139,-36 41,-36 41,0 139,0 139,-36"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-13.32" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-db</text>
|
<text text-anchor="middle" x="90" y="-14.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-db</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- net:passbolt -->
|
<!-- net:passbolt -->
|
||||||
<g id="node34" class="node">
|
<g id="node32" class="node">
|
||||||
<title>net:passbolt</title>
|
<title>net:passbolt</title>
|
||||||
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-72" rx="52.26" ry="18"/>
|
<ellipse fill="#f4f4f4" stroke="black" cx="271.25" cy="-72" rx="48.99" ry="18"/>
|
||||||
<text text-anchor="middle" x="274.6" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt</text>
|
<text text-anchor="middle" x="271.25" y="-68.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-db->net:passbolt -->
|
<!-- svc:passbolt-db->net:passbolt -->
|
||||||
<g id="edge29" class="edge">
|
<g id="edge29" class="edge">
|
||||||
<title>svc:passbolt-db->net:passbolt</title>
|
<title>svc:passbolt-db->net:passbolt</title>
|
||||||
<path fill="none" stroke="black" d="M138.79,-32.19C164.72,-39.84 196.7,-49.29 223,-57.06"/>
|
<path fill="none" stroke="black" d="M139.03,-32.47C165.15,-40.34 197.32,-50.03 223.27,-57.85"/>
|
||||||
<polygon fill="black" stroke="black" points="221.86,-60.37 232.44,-59.85 223.85,-53.66 221.86,-60.37"/>
|
<polygon fill="black" stroke="black" points="222.3,-61.21 232.88,-60.74 224.32,-54.51 222.3,-61.21"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp -->
|
<!-- svc:passbolt-webapp -->
|
||||||
<g id="node22" class="node">
|
<g id="node22" class="node">
|
||||||
<title>svc:passbolt-webapp</title>
|
<title>svc:passbolt-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="157,-144 22.5,-144 22.5,-108 157,-108 157,-144"/>
|
<polygon fill="#dfefff" stroke="black" points="157.5,-144 22.5,-144 22.5,-108 157.5,-108 157.5,-144"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-121.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-webapp</text>
|
<text text-anchor="middle" x="90" y="-122.3" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp->net:passbolt -->
|
<!-- svc:passbolt-webapp->net:passbolt -->
|
||||||
<g id="edge30" class="edge">
|
<g id="edge30" class="edge">
|
||||||
<title>svc:passbolt-webapp->net:passbolt</title>
|
<title>svc:passbolt-webapp->net:passbolt</title>
|
||||||
<path fill="none" stroke="black" d="M153.17,-107.57C175.98,-100.83 201.49,-93.3 223.14,-86.9"/>
|
<path fill="none" stroke="black" d="M151.18,-107.87C174.64,-100.8 201.13,-92.82 223.16,-86.19"/>
|
||||||
<polygon fill="black" stroke="black" points="224.02,-90.29 232.62,-84.1 222.04,-83.58 224.02,-90.29"/>
|
<polygon fill="black" stroke="black" points="224.37,-89.48 232.94,-83.24 222.35,-82.77 224.37,-89.48"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:passbolt-webapp->net:traefik -->
|
<!-- svc:passbolt-webapp->net:traefik -->
|
||||||
<g id="edge31" class="edge">
|
<g id="edge31" class="edge">
|
||||||
<title>svc:passbolt-webapp->net:traefik</title>
|
<title>svc:passbolt-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M157.45,-136.93C165.83,-140.81 173.54,-146.02 179.5,-153 190.23,-165.56 253.83,-669.77 269.91,-798.38"/>
|
<path fill="none" stroke="black" d="M157.85,-136.93C166.26,-140.81 174,-146.02 180,-153 189.88,-164.49 250.79,-625.33 266.53,-745.56"/>
|
||||||
<polygon fill="black" stroke="black" points="266.41,-798.64 271.13,-808.13 273.36,-797.77 266.41,-798.64"/>
|
<polygon fill="black" stroke="black" points="263.1,-746.33 267.87,-755.8 270.04,-745.43 263.1,-746.33"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:pihole-exporter -->
|
<!-- svc:pihole-exporter -->
|
||||||
<g id="node23" class="node">
|
<g id="node23" class="node">
|
||||||
<title>svc:pihole-exporter</title>
|
<title>svc:pihole-exporter</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="151,-1602 28.5,-1602 28.5,-1566 151,-1566 151,-1602"/>
|
<polygon fill="#dfefff" stroke="black" points="151.5,-1386 28.5,-1386 28.5,-1350 151.5,-1350 151.5,-1386"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1579.33" font-family="Helvetica,sans-Serif" font-size="14.00">pihole-exporter</text>
|
<text text-anchor="middle" x="90" y="-1364.3" font-family="Helvetica,sans-Serif" font-size="14.00">pihole-exporter</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:pihole-exporter->net:monitor -->
|
<!-- svc:pihole-exporter->net:monitor -->
|
||||||
<g id="edge32" class="edge">
|
<g id="edge32" class="edge">
|
||||||
<title>svc:pihole-exporter->net:monitor</title>
|
<title>svc:pihole-exporter->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M151.06,-1573.76C161.45,-1569.85 171.47,-1564.45 179.5,-1557 242.11,-1498.86 263.56,-1394.25 270.5,-1343.38"/>
|
<path fill="none" stroke="black" d="M151.62,-1355.78C161.68,-1352.07 171.57,-1347.25 180,-1341 218.01,-1312.82 244.97,-1263.56 259.03,-1232.98"/>
|
||||||
<polygon fill="black" stroke="black" points="273.94,-1344.09 271.71,-1333.73 266.99,-1343.22 273.94,-1344.09"/>
|
<polygon fill="black" stroke="black" points="262.27,-1234.31 263.14,-1223.76 255.87,-1231.46 262.27,-1234.31"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:portainer -->
|
<!-- svc:portainer -->
|
||||||
<g id="node24" class="node">
|
<g id="node24" class="node">
|
||||||
<title>svc:portainer</title>
|
<title>svc:portainer</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="129.62,-576 49.88,-576 49.88,-540 129.62,-540 129.62,-576"/>
|
<polygon fill="#dfefff" stroke="black" points="130,-900 50,-900 50,-864 130,-864 130,-900"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-553.33" font-family="Helvetica,sans-Serif" font-size="14.00">portainer</text>
|
<text text-anchor="middle" x="90" y="-878.3" font-family="Helvetica,sans-Serif" font-size="14.00">portainer</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:portainer->net:traefik -->
|
<!-- svc:portainer->net:traefik -->
|
||||||
<g id="edge33" class="edge">
|
<g id="edge33" class="edge">
|
||||||
<title>svc:portainer->net:traefik</title>
|
<title>svc:portainer->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M129.96,-562.18C146.97,-565.79 166.05,-572.51 179.5,-585 242.11,-643.14 263.56,-747.75 270.5,-798.62"/>
|
<path fill="none" stroke="black" d="M130.17,-874.06C146.25,-869.82 164.67,-863.64 180,-855 206.25,-840.22 231.35,-816.65 248.38,-798.74"/>
|
||||||
<polygon fill="black" stroke="black" points="266.99,-798.78 271.71,-808.27 273.94,-797.91 266.99,-798.78"/>
|
<polygon fill="black" stroke="black" points="251.37,-800.67 255.62,-790.97 246.24,-795.9 251.37,-800.67"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus -->
|
<!-- svc:prometheus -->
|
||||||
<g id="node25" class="node">
|
<g id="node25" class="node">
|
||||||
<title>svc:prometheus</title>
|
<title>svc:prometheus</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="139.38,-1170 40.12,-1170 40.12,-1134 139.38,-1134 139.38,-1170"/>
|
<polygon fill="#dfefff" stroke="black" points="140,-1008 40,-1008 40,-972 140,-972 140,-1008"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1147.33" font-family="Helvetica,sans-Serif" font-size="14.00">prometheus</text>
|
<text text-anchor="middle" x="90" y="-986.3" font-family="Helvetica,sans-Serif" font-size="14.00">prometheus</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus->net:monitor -->
|
<!-- svc:prometheus->net:monitor -->
|
||||||
<g id="edge34" class="edge">
|
<g id="edge34" class="edge">
|
||||||
<title>svc:prometheus->net:monitor</title>
|
<title>svc:prometheus->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M139.52,-1160.58C153.33,-1164.61 167.78,-1170.48 179.5,-1179 217.95,-1206.95 246.17,-1255.6 261.21,-1286.23"/>
|
<path fill="none" stroke="black" d="M140.37,-997.26C154.39,-1001.24 168.86,-1007.42 180,-1017 229.98,-1059.95 254.42,-1136.8 264.44,-1178.04"/>
|
||||||
<polygon fill="black" stroke="black" points="257.87,-1287.36 265.33,-1294.88 264.19,-1284.35 257.87,-1287.36"/>
|
<polygon fill="black" stroke="black" points="261.07,-1179 266.73,-1187.95 267.88,-1177.42 261.07,-1179"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:prometheus->net:traefik -->
|
<!-- svc:prometheus->net:traefik -->
|
||||||
<g id="edge35" class="edge">
|
<g id="edge35" class="edge">
|
||||||
<title>svc:prometheus->net:traefik</title>
|
<title>svc:prometheus->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M139.46,-1146.03C153.91,-1142.11 168.73,-1135.64 179.5,-1125 254.55,-1050.8 269.86,-917.17 272.9,-857.81"/>
|
<path fill="none" stroke="black" d="M140.37,-982.74C154.39,-978.76 168.86,-972.58 180,-963 229.98,-920.05 254.42,-843.2 264.44,-801.96"/>
|
||||||
<polygon fill="black" stroke="black" points="276.4,-857.97 273.32,-847.83 269.4,-857.68 276.4,-857.97"/>
|
<polygon fill="black" stroke="black" points="267.88,-802.58 266.73,-792.05 261.07,-801 267.88,-802.58"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:searxng-webapp -->
|
<!-- svc:searxng-webapp -->
|
||||||
<g id="node26" class="node">
|
<g id="node26" class="node">
|
||||||
<title>svc:searxng-webapp</title>
|
<title>svc:searxng-webapp</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="155.5,-522 24,-522 24,-486 155.5,-486 155.5,-522"/>
|
<polygon fill="#dfefff" stroke="black" points="156,-846 24,-846 24,-810 156,-810 156,-846"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-499.32" font-family="Helvetica,sans-Serif" font-size="14.00">searxng-webapp</text>
|
<text text-anchor="middle" x="90" y="-824.3" font-family="Helvetica,sans-Serif" font-size="14.00">searxng-webapp</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:searxng-webapp->net:traefik -->
|
<!-- svc:searxng-webapp->net:traefik -->
|
||||||
<g id="edge36" class="edge">
|
<g id="edge36" class="edge">
|
||||||
<title>svc:searxng-webapp->net:traefik</title>
|
<title>svc:searxng-webapp->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M155.98,-515.68C164.67,-519.46 172.86,-524.43 179.5,-531 254.55,-605.2 269.86,-738.83 272.9,-798.19"/>
|
<path fill="none" stroke="black" d="M151.18,-809.87C176.26,-802.32 204.79,-793.72 227.63,-786.84"/>
|
||||||
<polygon fill="black" stroke="black" points="269.4,-798.32 273.32,-808.17 276.4,-798.03 269.4,-798.32"/>
|
<polygon fill="black" stroke="black" points="228.81,-790.14 237.37,-783.9 226.79,-783.44 228.81,-790.14"/>
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web -->
|
|
||||||
<g id="node27" class="node">
|
|
||||||
<title>svc:shift-recorder-web</title>
|
|
||||||
<polygon fill="#dfefff" stroke="black" points="160.38,-468 19.12,-468 19.12,-432 160.38,-432 160.38,-468"/>
|
|
||||||
<text text-anchor="middle" x="89.75" y="-445.32" font-family="Helvetica,sans-Serif" font-size="14.00">shift-recorder-web</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web->net:traefik -->
|
|
||||||
<g id="edge37" class="edge">
|
|
||||||
<title>svc:shift-recorder-web->net:traefik</title>
|
|
||||||
<path fill="none" stroke="black" d="M160.67,-463.5C167.65,-467.02 174.13,-471.44 179.5,-477 224.78,-523.81 258.23,-723.41 269.48,-798.91"/>
|
|
||||||
<polygon fill="black" stroke="black" points="265.96,-799.03 270.87,-808.42 272.88,-798.02 265.96,-799.03"/>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill -->
|
|
||||||
<g id="node28" class="node">
|
|
||||||
<title>svc:stockfill</title>
|
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.38,-1008 55.12,-1008 55.12,-972 124.38,-972 124.38,-1008"/>
|
|
||||||
<text text-anchor="middle" x="89.75" y="-985.33" font-family="Helvetica,sans-Serif" font-size="14.00">stockfill</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill->net:traefik -->
|
|
||||||
<g id="edge38" class="edge">
|
|
||||||
<title>svc:stockfill->net:traefik</title>
|
|
||||||
<path fill="none" stroke="black" d="M124.75,-985.14C142.36,-981.34 163.48,-974.65 179.5,-963 217.95,-935.05 246.17,-886.4 261.21,-855.77"/>
|
|
||||||
<polygon fill="black" stroke="black" points="264.19,-857.65 265.33,-847.12 257.87,-854.64 264.19,-857.65"/>
|
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:telegraf -->
|
<!-- svc:telegraf -->
|
||||||
<g id="node29" class="node">
|
<g id="node27" class="node">
|
||||||
<title>svc:telegraf</title>
|
<title>svc:telegraf</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="124.75,-1548 54.75,-1548 54.75,-1512 124.75,-1512 124.75,-1548"/>
|
<polygon fill="#dfefff" stroke="black" points="125.5,-1332 54.5,-1332 54.5,-1296 125.5,-1296 125.5,-1332"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-1525.33" font-family="Helvetica,sans-Serif" font-size="14.00">telegraf</text>
|
<text text-anchor="middle" x="90" y="-1310.3" font-family="Helvetica,sans-Serif" font-size="14.00">telegraf</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:telegraf->net:monitor -->
|
<!-- svc:telegraf->net:monitor -->
|
||||||
<g id="edge39" class="edge">
|
<g id="edge37" class="edge">
|
||||||
<title>svc:telegraf->net:monitor</title>
|
<title>svc:telegraf->net:monitor</title>
|
||||||
<path fill="none" stroke="black" d="M125.04,-1526.15C142.95,-1522.63 164.25,-1515.9 179.5,-1503 229.66,-1460.57 255.71,-1384.91 266.82,-1343.35"/>
|
<path fill="none" stroke="black" d="M125.8,-1307.18C142.85,-1302.93 163.26,-1296.43 180,-1287 206.25,-1272.22 231.35,-1248.65 248.38,-1230.74"/>
|
||||||
<polygon fill="black" stroke="black" points="270.17,-1344.37 269.25,-1333.81 263.39,-1342.64 270.17,-1344.37"/>
|
<polygon fill="black" stroke="black" points="251.37,-1232.67 255.62,-1222.97 246.24,-1227.9 251.37,-1232.67"/>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:traefik -->
|
<!-- svc:traefik -->
|
||||||
<g id="node30" class="node">
|
<g id="node28" class="node">
|
||||||
<title>svc:traefik</title>
|
<title>svc:traefik</title>
|
||||||
<polygon fill="#dfefff" stroke="black" points="120.25,-954 59.25,-954 59.25,-918 120.25,-918 120.25,-954"/>
|
<polygon fill="#dfefff" stroke="black" points="121,-792 59,-792 59,-756 121,-756 121,-792"/>
|
||||||
<text text-anchor="middle" x="89.75" y="-931.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
<text text-anchor="middle" x="90" y="-770.3" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
|
||||||
</g>
|
</g>
|
||||||
<!-- svc:traefik->net:traefik -->
|
<!-- svc:traefik->net:traefik -->
|
||||||
<g id="edge40" class="edge">
|
<g id="edge38" class="edge">
|
||||||
<title>svc:traefik->net:traefik</title>
|
<title>svc:traefik->net:traefik</title>
|
||||||
<path fill="none" stroke="black" d="M120.34,-930.25C138.21,-926 161.02,-919.17 179.5,-909 206.52,-894.13 232.73,-870.58 250.6,-852.7"/>
|
<path fill="none" stroke="black" d="M121,-774C148.16,-774 188.69,-774 220.66,-774"/>
|
||||||
<polygon fill="black" stroke="black" points="252.65,-855.61 257.14,-846.01 247.64,-850.71 252.65,-855.61"/>
|
<polygon fill="black" stroke="black" points="220.71,-777.5 230.71,-774 220.71,-770.5 220.71,-777.5"/>
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 41 KiB |
@@ -1,271 +1,23 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
<!-- Generated by graphviz version 12.2.1 (0)
|
<!-- Generated by graphviz version 2.43.0 (0)
|
||||||
-->
|
-->
|
||||||
<!-- Title: PhysicalTopology Pages: 1 -->
|
<!-- Title: PhysicalTopology Pages: 1 -->
|
||||||
<svg width="591pt" height="2761pt"
|
<svg width="514pt" height="61pt"
|
||||||
viewBox="0.00 0.00 590.50 2761.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
viewBox="0.00 0.00 514.00 61.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2757)">
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 57)">
|
||||||
<title>PhysicalTopology</title>
|
<title>PhysicalTopology</title>
|
||||||
<polygon fill="white" stroke="none" points="-4,4 -4,-2757 586.5,-2757 586.5,4 -4,4"/>
|
<polygon fill="white" stroke="transparent" points="-4,4 -4,-57 510,-57 510,4 -4,4"/>
|
||||||
<g id="clust1" class="cluster">
|
<!-- placeholder:inventory -->
|
||||||
<title>cluster_docker</title>
|
|
||||||
<path fill="#eff6ff" stroke="#93c5fd" d="M12,-8C12,-8 199.25,-8 199.25,-8 205.25,-8 211.25,-14 211.25,-20 211.25,-20 211.25,-2522 211.25,-2522 211.25,-2528 205.25,-2534 199.25,-2534 199.25,-2534 12,-2534 12,-2534 6,-2534 0,-2528 0,-2522 0,-2522 0,-20 0,-20 0,-14 6,-8 12,-8"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2516.7" font-family="Helvetica,sans-Serif" font-size="14.00">docker host</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust2" class="cluster">
|
|
||||||
<title>cluster_docker_apps</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M43.75,-16C43.75,-16 166.5,-16 166.5,-16 172.5,-16 178.5,-22 178.5,-28 178.5,-28 178.5,-1457 178.5,-1457 178.5,-1463 172.5,-1469 166.5,-1469 166.5,-1469 43.75,-1469 43.75,-1469 37.75,-1469 31.75,-1463 31.75,-1457 31.75,-1457 31.75,-28 31.75,-28 31.75,-22 37.75,-16 43.75,-16"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1451.7" font-family="Helvetica,sans-Serif" font-size="14.00">apps</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust3" class="cluster">
|
|
||||||
<title>cluster_docker_automation</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M70.25,-1478C70.25,-1478 141,-1478 141,-1478 147,-1478 153,-1484 153,-1490 153,-1490 153,-1543 153,-1543 153,-1549 147,-1555 141,-1555 141,-1555 70.25,-1555 70.25,-1555 64.25,-1555 58.25,-1549 58.25,-1543 58.25,-1543 58.25,-1490 58.25,-1490 58.25,-1484 64.25,-1478 70.25,-1478"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-1537.7" font-family="Helvetica,sans-Serif" font-size="14.00">automation</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust4" class="cluster">
|
|
||||||
<title>cluster_docker_edge_proxy_auth</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M51.62,-1564C51.62,-1564 158.62,-1564 158.62,-1564 164.62,-1564 170.62,-1570 170.62,-1576 170.62,-1576 170.62,-1801 170.62,-1801 170.62,-1807 164.62,-1813 158.62,-1813 158.62,-1813 51.62,-1813 51.62,-1813 45.62,-1813 39.62,-1807 39.62,-1801 39.62,-1801 39.62,-1576 39.62,-1576 39.62,-1570 45.62,-1564 51.62,-1564"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1795.7" font-family="Helvetica,sans-Serif" font-size="14.00">edge/proxy/auth</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust5" class="cluster">
|
|
||||||
<title>cluster_docker_monitoring</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M66.62,-1822C66.62,-1822 143.62,-1822 143.62,-1822 149.62,-1822 155.62,-1828 155.62,-1834 155.62,-1834 155.62,-2059 155.62,-2059 155.62,-2065 149.62,-2071 143.62,-2071 143.62,-2071 66.62,-2071 66.62,-2071 60.62,-2071 54.62,-2065 54.62,-2059 54.62,-2059 54.62,-1834 54.62,-1834 54.62,-1828 60.62,-1822 66.62,-1822"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2053.7" font-family="Helvetica,sans-Serif" font-size="14.00">monitoring</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust6" class="cluster">
|
|
||||||
<title>cluster_docker_storage_database_support</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M20,-2080C20,-2080 191.25,-2080 191.25,-2080 197.25,-2080 203.25,-2086 203.25,-2092 203.25,-2092 203.25,-2489 203.25,-2489 203.25,-2495 197.25,-2501 191.25,-2501 191.25,-2501 20,-2501 20,-2501 14,-2501 8,-2495 8,-2489 8,-2489 8,-2092 8,-2092 8,-2086 14,-2080 20,-2080"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2483.7" font-family="Helvetica,sans-Serif" font-size="14.00">storage/database/support</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust7" class="cluster">
|
|
||||||
<title>cluster_raspberrypi</title>
|
|
||||||
<path fill="#eff6ff" stroke="#93c5fd" d="M52.25,-2542C52.25,-2542 159,-2542 159,-2542 165,-2542 171,-2548 171,-2554 171,-2554 171,-2648 171,-2648 171,-2654 165,-2660 159,-2660 159,-2660 52.25,-2660 52.25,-2660 46.25,-2660 40.25,-2654 40.25,-2648 40.25,-2648 40.25,-2554 40.25,-2554 40.25,-2548 46.25,-2542 52.25,-2542"/>
|
|
||||||
<text text-anchor="middle" x="105.62" y="-2642.7" font-family="Helvetica,sans-Serif" font-size="14.00">raspberrypi host</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust8" class="cluster">
|
|
||||||
<title>cluster_raspberrypi_apps</title>
|
|
||||||
<path fill="none" stroke="#bfdbfe" stroke-dasharray="5,2" d="M63.62,-2550C63.62,-2550 146.62,-2550 146.62,-2550 152.62,-2550 158.62,-2556 158.62,-2562 158.62,-2562 158.62,-2615 158.62,-2615 158.62,-2621 152.62,-2627 146.62,-2627 146.62,-2627 63.62,-2627 63.62,-2627 57.62,-2627 51.62,-2621 51.62,-2615 51.62,-2615 51.62,-2562 51.62,-2562 51.62,-2556 57.62,-2550 63.62,-2550"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2609.7" font-family="Helvetica,sans-Serif" font-size="14.00">apps</text>
|
|
||||||
</g>
|
|
||||||
<g id="clust9" class="cluster">
|
|
||||||
<title>cluster_legend</title>
|
|
||||||
<path fill="none" stroke="#d1d5db" d="M71.88,-2668C71.88,-2668 562.5,-2668 562.5,-2668 568.5,-2668 574.5,-2674 574.5,-2680 574.5,-2680 574.5,-2733 574.5,-2733 574.5,-2739 568.5,-2745 562.5,-2745 562.5,-2745 71.88,-2745 71.88,-2745 65.88,-2745 59.88,-2739 59.88,-2733 59.88,-2733 59.88,-2680 59.88,-2680 59.88,-2674 65.88,-2668 71.88,-2668"/>
|
|
||||||
<text text-anchor="middle" x="317.19" y="-2727.7" font-family="Helvetica,sans-Serif" font-size="14.00">Legend</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:crowdsec -->
|
|
||||||
<g id="node1" class="node">
|
<g id="node1" class="node">
|
||||||
<title>svc:crowdsec</title>
|
<title>placeholder:inventory</title>
|
||||||
<path fill="#dcfce7" stroke="black" d="M124,-60C124,-60 86.25,-60 86.25,-60 80.25,-60 74.25,-54 74.25,-48 74.25,-48 74.25,-36 74.25,-36 74.25,-30 80.25,-24 86.25,-24 86.25,-24 124,-24 124,-24 130,-24 136,-30 136,-36 136,-36 136,-48 136,-48 136,-54 130,-60 124,-60"/>
|
<polygon fill="#fef3c7" stroke="black" points="500,-53 0,-53 0,0 506,0 506,-47 500,-53"/>
|
||||||
<text text-anchor="middle" x="105.12" y="-38.88" font-family="Helvetica,sans-Serif" font-size="10.00">crowdsec</text>
|
<polyline fill="none" stroke="black" points="500,-53 500,-47 "/>
|
||||||
</g>
|
<polyline fill="none" stroke="black" points="506,-47 500,-47 "/>
|
||||||
<!-- svc:docker-update-exporter -->
|
<text text-anchor="middle" x="253" y="-37.8" font-family="Times,serif" font-size="14.00">Host inventory JSON not found.</text>
|
||||||
<g id="node2" class="node">
|
<text text-anchor="middle" x="253" y="-22.8" font-family="Times,serif" font-size="14.00">Generate terraform inventory and rerun scripts/docs/generate-all.sh</text>
|
||||||
<title>svc:docker-update-exporter</title>
|
<text text-anchor="middle" x="253" y="-7.8" font-family="Times,serif" font-size="14.00">(--host-inventory <path>).</text>
|
||||||
<path fill="#dcfce7" stroke="black" d="M158.5,-146C158.5,-146 51.75,-146 51.75,-146 45.75,-146 39.75,-140 39.75,-134 39.75,-134 39.75,-122 39.75,-122 39.75,-116 45.75,-110 51.75,-110 51.75,-110 158.5,-110 158.5,-110 164.5,-110 170.5,-116 170.5,-122 170.5,-122 170.5,-134 170.5,-134 170.5,-140 164.5,-146 158.5,-146"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-124.88" font-family="Helvetica,sans-Serif" font-size="10.00">docker-update-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:error-pages -->
|
|
||||||
<g id="node3" class="node">
|
|
||||||
<title>svc:error-pages</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.25,-232C129.25,-232 81,-232 81,-232 75,-232 69,-226 69,-220 69,-220 69,-208 69,-208 69,-202 75,-196 81,-196 81,-196 129.25,-196 129.25,-196 135.25,-196 141.25,-202 141.25,-208 141.25,-208 141.25,-220 141.25,-220 141.25,-226 135.25,-232 129.25,-232"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-210.88" font-family="Helvetica,sans-Serif" font-size="10.00">error-pages</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gitea -->
|
|
||||||
<g id="node4" class="node">
|
|
||||||
<title>svc:gitea</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-318C120.12,-318 90.12,-318 90.12,-318 84.12,-318 78.12,-312 78.12,-306 78.12,-306 78.12,-294 78.12,-294 78.12,-288 84.12,-282 90.12,-282 90.12,-282 120.12,-282 120.12,-282 126.12,-282 132.12,-288 132.12,-294 132.12,-294 132.12,-306 132.12,-306 132.12,-312 126.12,-318 120.12,-318"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-296.88" font-family="Helvetica,sans-Serif" font-size="10.00">gitea</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gotify -->
|
|
||||||
<g id="node5" class="node">
|
|
||||||
<title>svc:gotify</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-404C120.12,-404 90.12,-404 90.12,-404 84.12,-404 78.12,-398 78.12,-392 78.12,-392 78.12,-380 78.12,-380 78.12,-374 84.12,-368 90.12,-368 90.12,-368 120.12,-368 120.12,-368 126.12,-368 132.12,-374 132.12,-380 132.12,-380 132.12,-392 132.12,-392 132.12,-398 126.12,-404 120.12,-404"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-382.88" font-family="Helvetica,sans-Serif" font-size="10.00">gotify</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grampsweb -->
|
|
||||||
<g id="node6" class="node">
|
|
||||||
<title>svc:grampsweb</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.62,-490C129.62,-490 80.62,-490 80.62,-490 74.62,-490 68.62,-484 68.62,-478 68.62,-478 68.62,-466 68.62,-466 68.62,-460 74.62,-454 80.62,-454 80.62,-454 129.62,-454 129.62,-454 135.62,-454 141.62,-460 141.62,-466 141.62,-466 141.62,-478 141.62,-478 141.62,-484 135.62,-490 129.62,-490"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-468.88" font-family="Helvetica,sans-Serif" font-size="10.00">grampsweb</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grampsweb_celery -->
|
|
||||||
<g id="node7" class="node">
|
|
||||||
<title>svc:grampsweb_celery</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M147.25,-576C147.25,-576 63,-576 63,-576 57,-576 51,-570 51,-564 51,-564 51,-552 51,-552 51,-546 57,-540 63,-540 63,-540 147.25,-540 147.25,-540 153.25,-540 159.25,-546 159.25,-552 159.25,-552 159.25,-564 159.25,-564 159.25,-570 153.25,-576 147.25,-576"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-554.88" font-family="Helvetica,sans-Serif" font-size="10.00">grampsweb_celery</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:monitor-kuma -->
|
|
||||||
<g id="node8" class="node">
|
|
||||||
<title>svc:monitor-kuma</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M135.62,-662C135.62,-662 74.62,-662 74.62,-662 68.62,-662 62.62,-656 62.62,-650 62.62,-650 62.62,-638 62.62,-638 62.62,-632 68.62,-626 74.62,-626 74.62,-626 135.62,-626 135.62,-626 141.62,-626 147.62,-632 147.62,-638 147.62,-638 147.62,-650 147.62,-650 147.62,-656 141.62,-662 135.62,-662"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-640.88" font-family="Helvetica,sans-Serif" font-size="10.00">monitor-kuma</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:mtls-bridge -->
|
|
||||||
<g id="node9" class="node">
|
|
||||||
<title>svc:mtls-bridge</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.25,-748C129.25,-748 81,-748 81,-748 75,-748 69,-742 69,-736 69,-736 69,-724 69,-724 69,-718 75,-712 81,-712 81,-712 129.25,-712 129.25,-712 135.25,-712 141.25,-718 141.25,-724 141.25,-724 141.25,-736 141.25,-736 141.25,-742 135.25,-748 129.25,-748"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-726.88" font-family="Helvetica,sans-Serif" font-size="10.00">mtls-bridge</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-webapp -->
|
|
||||||
<g id="node10" class="node">
|
|
||||||
<title>svc:nextcloud-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M146.12,-834C146.12,-834 64.12,-834 64.12,-834 58.12,-834 52.12,-828 52.12,-822 52.12,-822 52.12,-810 52.12,-810 52.12,-804 58.12,-798 64.12,-798 64.12,-798 146.12,-798 146.12,-798 152.12,-798 158.12,-804 158.12,-810 158.12,-810 158.12,-822 158.12,-822 158.12,-828 152.12,-834 146.12,-834"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-812.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:node-red -->
|
|
||||||
<g id="node11" class="node">
|
|
||||||
<title>svc:node-red</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M122.88,-920C122.88,-920 87.38,-920 87.38,-920 81.38,-920 75.38,-914 75.38,-908 75.38,-908 75.38,-896 75.38,-896 75.38,-890 81.38,-884 87.38,-884 87.38,-884 122.88,-884 122.88,-884 128.88,-884 134.88,-890 134.88,-896 134.88,-896 134.88,-908 134.88,-908 134.88,-914 128.88,-920 122.88,-920"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-898.88" font-family="Helvetica,sans-Serif" font-size="10.00">node-red</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:passbolt-webapp -->
|
|
||||||
<g id="node12" class="node">
|
|
||||||
<title>svc:passbolt-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M142.75,-1006C142.75,-1006 67.5,-1006 67.5,-1006 61.5,-1006 55.5,-1000 55.5,-994 55.5,-994 55.5,-982 55.5,-982 55.5,-976 61.5,-970 67.5,-970 67.5,-970 142.75,-970 142.75,-970 148.75,-970 154.75,-976 154.75,-982 154.75,-982 154.75,-994 154.75,-994 154.75,-1000 148.75,-1006 142.75,-1006"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-984.88" font-family="Helvetica,sans-Serif" font-size="10.00">passbolt-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:portainer -->
|
|
||||||
<g id="node13" class="node">
|
|
||||||
<title>svc:portainer</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M123.25,-1092C123.25,-1092 87,-1092 87,-1092 81,-1092 75,-1086 75,-1080 75,-1080 75,-1068 75,-1068 75,-1062 81,-1056 87,-1056 87,-1056 123.25,-1056 123.25,-1056 129.25,-1056 135.25,-1062 135.25,-1068 135.25,-1068 135.25,-1080 135.25,-1080 135.25,-1086 129.25,-1092 123.25,-1092"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1070.88" font-family="Helvetica,sans-Serif" font-size="10.00">portainer</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:searxng-webapp -->
|
|
||||||
<g id="node14" class="node">
|
|
||||||
<title>svc:searxng-webapp</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M141.62,-1178C141.62,-1178 68.62,-1178 68.62,-1178 62.62,-1178 56.62,-1172 56.62,-1166 56.62,-1166 56.62,-1154 56.62,-1154 56.62,-1148 62.62,-1142 68.62,-1142 68.62,-1142 141.62,-1142 141.62,-1142 147.62,-1142 153.62,-1148 153.62,-1154 153.62,-1154 153.62,-1166 153.62,-1166 153.62,-1172 147.62,-1178 141.62,-1178"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1156.88" font-family="Helvetica,sans-Serif" font-size="10.00">searxng-webapp</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:shift-recorder-web -->
|
|
||||||
<g id="node15" class="node">
|
|
||||||
<title>svc:shift-recorder-web</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M145.75,-1264C145.75,-1264 64.5,-1264 64.5,-1264 58.5,-1264 52.5,-1258 52.5,-1252 52.5,-1252 52.5,-1240 52.5,-1240 52.5,-1234 58.5,-1228 64.5,-1228 64.5,-1228 145.75,-1228 145.75,-1228 151.75,-1228 157.75,-1234 157.75,-1240 157.75,-1240 157.75,-1252 157.75,-1252 157.75,-1258 151.75,-1264 145.75,-1264"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1242.88" font-family="Helvetica,sans-Serif" font-size="10.00">shift-recorder-web</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:stockfill -->
|
|
||||||
<g id="node16" class="node">
|
|
||||||
<title>svc:stockfill</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.25,-1350C120.25,-1350 90,-1350 90,-1350 84,-1350 78,-1344 78,-1338 78,-1338 78,-1326 78,-1326 78,-1320 84,-1314 90,-1314 90,-1314 120.25,-1314 120.25,-1314 126.25,-1314 132.25,-1320 132.25,-1326 132.25,-1326 132.25,-1338 132.25,-1338 132.25,-1344 126.25,-1350 120.25,-1350"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1328.88" font-family="Helvetica,sans-Serif" font-size="10.00">stockfill</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:telegraf -->
|
|
||||||
<g id="node17" class="node">
|
|
||||||
<title>svc:telegraf</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.25,-1436C120.25,-1436 90,-1436 90,-1436 84,-1436 78,-1430 78,-1424 78,-1424 78,-1412 78,-1412 78,-1406 84,-1400 90,-1400 90,-1400 120.25,-1400 120.25,-1400 126.25,-1400 132.25,-1406 132.25,-1412 132.25,-1412 132.25,-1424 132.25,-1424 132.25,-1430 126.25,-1436 120.25,-1436"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1414.88" font-family="Helvetica,sans-Serif" font-size="10.00">telegraf</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gitea-runner -->
|
|
||||||
<g id="node18" class="node">
|
|
||||||
<title>svc:gitea-runner</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M131.12,-1522C131.12,-1522 79.12,-1522 79.12,-1522 73.12,-1522 67.12,-1516 67.12,-1510 67.12,-1510 67.12,-1498 67.12,-1498 67.12,-1492 73.12,-1486 79.12,-1486 79.12,-1486 131.12,-1486 131.12,-1486 137.12,-1486 143.12,-1492 143.12,-1498 143.12,-1498 143.12,-1510 143.12,-1510 143.12,-1516 137.12,-1522 131.12,-1522"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1500.88" font-family="Helvetica,sans-Serif" font-size="10.00">gitea-runner</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:authelia -->
|
|
||||||
<g id="node19" class="node">
|
|
||||||
<title>svc:authelia</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M121,-1608C121,-1608 89.25,-1608 89.25,-1608 83.25,-1608 77.25,-1602 77.25,-1596 77.25,-1596 77.25,-1584 77.25,-1584 77.25,-1578 83.25,-1572 89.25,-1572 89.25,-1572 121,-1572 121,-1572 127,-1572 133,-1578 133,-1584 133,-1584 133,-1596 133,-1596 133,-1602 127,-1608 121,-1608"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1586.88" font-family="Helvetica,sans-Serif" font-size="10.00">authelia</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:docker-socket-proxy -->
|
|
||||||
<g id="node20" class="node">
|
|
||||||
<title>svc:docker-socket-proxy</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M150.62,-1694C150.62,-1694 59.62,-1694 59.62,-1694 53.62,-1694 47.62,-1688 47.62,-1682 47.62,-1682 47.62,-1670 47.62,-1670 47.62,-1664 53.62,-1658 59.62,-1658 59.62,-1658 150.62,-1658 150.62,-1658 156.62,-1658 162.62,-1664 162.62,-1670 162.62,-1670 162.62,-1682 162.62,-1682 162.62,-1688 156.62,-1694 150.62,-1694"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1672.88" font-family="Helvetica,sans-Serif" font-size="10.00">docker-socket-proxy</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:traefik -->
|
|
||||||
<g id="node21" class="node">
|
|
||||||
<title>svc:traefik</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-1780C120.12,-1780 90.12,-1780 90.12,-1780 84.12,-1780 78.12,-1774 78.12,-1768 78.12,-1768 78.12,-1756 78.12,-1756 78.12,-1750 84.12,-1744 90.12,-1744 90.12,-1744 120.12,-1744 120.12,-1744 126.12,-1744 132.12,-1750 132.12,-1756 132.12,-1756 132.12,-1768 132.12,-1768 132.12,-1774 126.12,-1780 120.12,-1780"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1758.88" font-family="Helvetica,sans-Serif" font-size="10.00">traefik</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:grafana -->
|
|
||||||
<g id="node22" class="node">
|
|
||||||
<title>svc:grafana</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.12,-1866C120.12,-1866 90.12,-1866 90.12,-1866 84.12,-1866 78.12,-1860 78.12,-1854 78.12,-1854 78.12,-1842 78.12,-1842 78.12,-1836 84.12,-1830 90.12,-1830 90.12,-1830 120.12,-1830 120.12,-1830 126.12,-1830 132.12,-1836 132.12,-1842 132.12,-1842 132.12,-1854 132.12,-1854 132.12,-1860 126.12,-1866 120.12,-1866"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1844.88" font-family="Helvetica,sans-Serif" font-size="10.00">grafana</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:node-exporter -->
|
|
||||||
<g id="node23" class="node">
|
|
||||||
<title>svc:node-exporter</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M135.62,-1952C135.62,-1952 74.62,-1952 74.62,-1952 68.62,-1952 62.62,-1946 62.62,-1940 62.62,-1940 62.62,-1928 62.62,-1928 62.62,-1922 68.62,-1916 74.62,-1916 74.62,-1916 135.62,-1916 135.62,-1916 141.62,-1916 147.62,-1922 147.62,-1928 147.62,-1928 147.62,-1940 147.62,-1940 147.62,-1946 141.62,-1952 135.62,-1952"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-1930.88" font-family="Helvetica,sans-Serif" font-size="10.00">node-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:prometheus -->
|
|
||||||
<g id="node24" class="node">
|
|
||||||
<title>svc:prometheus</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M130.38,-2038C130.38,-2038 79.88,-2038 79.88,-2038 73.88,-2038 67.88,-2032 67.88,-2026 67.88,-2026 67.88,-2014 67.88,-2014 67.88,-2008 73.88,-2002 79.88,-2002 79.88,-2002 130.38,-2002 130.38,-2002 136.38,-2002 142.38,-2008 142.38,-2014 142.38,-2014 142.38,-2026 142.38,-2026 142.38,-2032 136.38,-2038 130.38,-2038"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2016.88" font-family="Helvetica,sans-Serif" font-size="10.00">prometheus</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:gramps-redis -->
|
|
||||||
<g id="node25" class="node">
|
|
||||||
<title>svc:gramps-redis</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M133.38,-2124C133.38,-2124 76.88,-2124 76.88,-2124 70.88,-2124 64.88,-2118 64.88,-2112 64.88,-2112 64.88,-2100 64.88,-2100 64.88,-2094 70.88,-2088 76.88,-2088 76.88,-2088 133.38,-2088 133.38,-2088 139.38,-2088 145.38,-2094 145.38,-2100 145.38,-2100 145.38,-2112 145.38,-2112 145.38,-2118 139.38,-2124 133.38,-2124"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2102.88" font-family="Helvetica,sans-Serif" font-size="10.00">gramps-redis</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:influxdb -->
|
|
||||||
<g id="node26" class="node">
|
|
||||||
<title>svc:influxdb</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M120.62,-2210C120.62,-2210 89.62,-2210 89.62,-2210 83.62,-2210 77.62,-2204 77.62,-2198 77.62,-2198 77.62,-2186 77.62,-2186 77.62,-2180 83.62,-2174 89.62,-2174 89.62,-2174 120.62,-2174 120.62,-2174 126.62,-2174 132.62,-2180 132.62,-2186 132.62,-2186 132.62,-2198 132.62,-2198 132.62,-2204 126.62,-2210 120.62,-2210"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2188.88" font-family="Helvetica,sans-Serif" font-size="10.00">influxdb</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-db -->
|
|
||||||
<g id="node27" class="node">
|
|
||||||
<title>svc:nextcloud-db</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M133,-2296C133,-2296 77.25,-2296 77.25,-2296 71.25,-2296 65.25,-2290 65.25,-2284 65.25,-2284 65.25,-2272 65.25,-2272 65.25,-2266 71.25,-2260 77.25,-2260 77.25,-2260 133,-2260 133,-2260 139,-2260 145,-2266 145,-2272 145,-2272 145,-2284 145,-2284 145,-2290 139,-2296 133,-2296"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2274.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-db</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:nextcloud-redis -->
|
|
||||||
<g id="node28" class="node">
|
|
||||||
<title>svc:nextcloud-redis</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M139,-2382C139,-2382 71.25,-2382 71.25,-2382 65.25,-2382 59.25,-2376 59.25,-2370 59.25,-2370 59.25,-2358 59.25,-2358 59.25,-2352 65.25,-2346 71.25,-2346 71.25,-2346 139,-2346 139,-2346 145,-2346 151,-2352 151,-2358 151,-2358 151,-2370 151,-2370 151,-2376 145,-2382 139,-2382"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2360.88" font-family="Helvetica,sans-Serif" font-size="10.00">nextcloud-redis</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:passbolt-db -->
|
|
||||||
<g id="node29" class="node">
|
|
||||||
<title>svc:passbolt-db</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M129.62,-2468C129.62,-2468 80.62,-2468 80.62,-2468 74.62,-2468 68.62,-2462 68.62,-2456 68.62,-2456 68.62,-2444 68.62,-2444 68.62,-2438 74.62,-2432 80.62,-2432 80.62,-2432 129.62,-2432 129.62,-2432 135.62,-2432 141.62,-2438 141.62,-2444 141.62,-2444 141.62,-2456 141.62,-2456 141.62,-2462 135.62,-2468 129.62,-2468"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2446.88" font-family="Helvetica,sans-Serif" font-size="10.00">passbolt-db</text>
|
|
||||||
</g>
|
|
||||||
<!-- svc:pihole-exporter -->
|
|
||||||
<g id="node30" class="node">
|
|
||||||
<title>svc:pihole-exporter</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M138.62,-2594C138.62,-2594 71.62,-2594 71.62,-2594 65.62,-2594 59.62,-2588 59.62,-2582 59.62,-2582 59.62,-2570 59.62,-2570 59.62,-2564 65.62,-2558 71.62,-2558 71.62,-2558 138.62,-2558 138.62,-2558 144.62,-2558 150.62,-2564 150.62,-2570 150.62,-2570 150.62,-2582 150.62,-2582 150.62,-2588 144.62,-2594 138.62,-2594"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2572.88" font-family="Helvetica,sans-Serif" font-size="10.00">pihole-exporter</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_host -->
|
|
||||||
<g id="node31" class="node">
|
|
||||||
<title>leg_host</title>
|
|
||||||
<polygon fill="#eff6ff" stroke="black" points="142.38,-2712 71.88,-2712 67.88,-2708 67.88,-2676 138.38,-2676 142.38,-2680 142.38,-2712"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 67.88,-2708"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 138.38,-2676"/>
|
|
||||||
<polyline fill="none" stroke="black" points="138.38,-2708 142.38,-2712"/>
|
|
||||||
<text text-anchor="middle" x="105.12" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Host cluster</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_cat -->
|
|
||||||
<g id="node32" class="node">
|
|
||||||
<title>leg_cat</title>
|
|
||||||
<polygon fill="#f8fbff" stroke="black" points="379,-2712 376,-2716 355,-2716 352,-2712 281.25,-2712 281.25,-2676 379,-2676 379,-2712"/>
|
|
||||||
<text text-anchor="middle" x="330.12" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Service category</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_host->leg_cat -->
|
|
||||||
<g id="edge1" class="edge">
|
|
||||||
<title>leg_host->leg_cat</title>
|
|
||||||
<path fill="none" stroke="#64748b" stroke-dasharray="5,2" d="M142.45,-2694C176.9,-2694 229.26,-2694 269.77,-2694"/>
|
|
||||||
<polygon fill="#64748b" stroke="#64748b" points="269.61,-2697.5 279.61,-2694 269.61,-2690.5 269.61,-2697.5"/>
|
|
||||||
</g>
|
|
||||||
<!-- leg_svc -->
|
|
||||||
<g id="node33" class="node">
|
|
||||||
<title>leg_svc</title>
|
|
||||||
<path fill="#dcfce7" stroke="black" d="M554.5,-2712C554.5,-2712 477,-2712 477,-2712 471,-2712 465,-2706 465,-2700 465,-2700 465,-2688 465,-2688 465,-2682 471,-2676 477,-2676 477,-2676 554.5,-2676 554.5,-2676 560.5,-2676 566.5,-2682 566.5,-2688 566.5,-2688 566.5,-2700 566.5,-2700 566.5,-2706 560.5,-2712 554.5,-2712"/>
|
|
||||||
<text text-anchor="middle" x="515.75" y="-2690.88" font-family="Helvetica,sans-Serif" font-size="10.00">Container/service</text>
|
|
||||||
</g>
|
|
||||||
<!-- leg_cat->leg_svc -->
|
|
||||||
<g id="edge2" class="edge">
|
|
||||||
<title>leg_cat->leg_svc</title>
|
|
||||||
<path fill="none" stroke="#64748b" stroke-dasharray="5,2" d="M379.37,-2694C401.93,-2694 429.05,-2694 453.07,-2694"/>
|
|
||||||
<polygon fill="#64748b" stroke="#64748b" points="453.07,-2697.5 463.07,-2694 453.07,-2690.5 453.07,-2697.5"/>
|
|
||||||
</g>
|
</g>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,23 @@
|
|||||||
|
.md-content img, article img {
|
||||||
|
max-width: 100%;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diagram-wrap {
|
||||||
|
width: 100%;
|
||||||
|
overflow-x: auto;
|
||||||
|
margin: 1rem 0 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diagram-wrap img {
|
||||||
|
max-width: none;
|
||||||
|
width: 1400px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 900px) {
|
||||||
|
.diagram-wrap img {
|
||||||
|
width: 1200px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,22 +2,20 @@
|
|||||||
|
|
||||||
| Service | Router | Rule | Entrypoints | TLS | Middlewares | Target Port |
|
| Service | Router | Rule | Entrypoints | TLS | Middlewares | Target Port |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| authelia | authelia | Host(`<internal-domain>`) | websecure | true | | |
|
| authelia | authelia | Host(`auth.<domain>`) | websecure | true | | |
|
||||||
| error-pages | error-pages-router | HostRegexp(`{host:.+}`) | web | | error-pages-middleware | |
|
| error-pages | error-pages-router | HostRegexp(`{host:.+}`) | web | | error-pages-middleware | |
|
||||||
| gitea | gitea | Host(`<internal-domain>`) | websecure | true | | 3000 |
|
| gitea | gitea | Host(`gitea.<domain>`) | websecure | true | | 3000 |
|
||||||
| gotify | gotify | Host(`<internal-domain>`) | websecure | | | 80 |
|
| gotify | gotify | Host(`gotify.<domain>`) | websecure | | | 80 |
|
||||||
| grafana | grafana | Host(`<internal-domain>`) | websecure | | | 3000 |
|
| grafana | grafana | Host(`grafana.<domain>`) | websecure | | | 3000 |
|
||||||
| grampsweb | gramps | Host(`<internal-domain>`) | websecure | | | 5000 |
|
| grampsweb | gramps | Host(`familytree.<domain>`) | websecure | | | 5000 |
|
||||||
| influxdb | influxdb | Host(`<internal-domain>`) | websecure | | authelia | 8086 |
|
| influxdb | influxdb | Host(`influxdb.<domain>`) | websecure | | authelia | 8086 |
|
||||||
| monitor-kuma | monitor | Host(`<internal-domain>`) | websecure | true | | 3001 |
|
| monitor-kuma | monitor | Host(`monitor-kuma.<domain>`) | websecure | true | | 3001 |
|
||||||
| mtls-bridge | mtls-bridge | Host(`<internal-domain>`) | websecure | | mtls-bridge-auth,mtls-bridge-cors | 8080 |
|
| mtls-bridge | mtls-bridge | Host(`mtls-bridge.<domain>`) | websecure | | mtls-bridge-auth,mtls-bridge-cors | 8080 |
|
||||||
| mtls-bridge | mtls-bridge-preflight | Host(`<internal-domain>`) && Method(`OPTIONS`) | websecure | | mtls-bridge-cors | |
|
| mtls-bridge | mtls-bridge-preflight | Host(`mtls-bridge.<domain>`) && Method(`OPTIONS`) | websecure | | mtls-bridge-cors | |
|
||||||
| nextcloud-webapp | nextcloud | Host(`<internal-domain>`) | websecure | | nextcloud-dav, nextcloud-webfinger | |
|
| nextcloud-webapp | nextcloud | Host(`nextcloud.<domain>`) | websecure | | nextcloud-dav, nextcloud-webfinger | |
|
||||||
| node-red | node-red | Host(`<internal-domain>`) | websecure | | authelia | 1880 |
|
| node-red | node-red | Host(`node-red.<domain>`) | websecure | | authelia | 1880 |
|
||||||
| passbolt-webapp | passbolt | Host(`<internal-domain>`) | websecure | | | |
|
| passbolt-webapp | passbolt | Host(`passbolt.<domain>`) | websecure | | | |
|
||||||
| portainer | portainer | Host(`<internal-domain>`) | websecure | true | | 9000 |
|
| portainer | portainer | Host(`portainer.<domain>`) | websecure | true | | 9000 |
|
||||||
| prometheus | prometheus | Host(`<internal-domain>`) | websecure | | authelia | 9090 |
|
| prometheus | prometheus | Host(`prometheus.<domain>`) | websecure | | authelia | 9090 |
|
||||||
| searxng-webapp | searxng | Host(`<internal-domain>`) | websecure | | | 8080 |
|
| searxng-webapp | searxng | Host(`searxng.<domain>`) | websecure | | | 8080 |
|
||||||
| shift-recorder-web | shifts | Host(`<internal-domain>`) | websecure | true | | 80 |
|
| traefik | traefik | Host(`traefik.<domain>`) | websecure | | authelia | |
|
||||||
| stockfill | stockfill | Host(`<internal-domain>`) | websecure | true | | 80 |
|
|
||||||
| traefik | traefik | Host(`<internal-domain>`) | websecure | | authelia | |
|
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ nav:
|
|||||||
|
|
||||||
theme:
|
theme:
|
||||||
name: mkdocs
|
name: mkdocs
|
||||||
|
extra_css:
|
||||||
|
- stylesheets/extra.css
|
||||||
|
|
||||||
validation:
|
validation:
|
||||||
nav:
|
nav:
|
||||||
|
|||||||
@@ -7,5 +7,16 @@ scripts/docs/render-compose-config.sh
|
|||||||
python3 scripts/docs/generate-compose-inventory.py docs/generated/docker-compose.resolved.yml docs/generated/compose-inventory.md
|
python3 scripts/docs/generate-compose-inventory.py docs/generated/docker-compose.resolved.yml docs/generated/compose-inventory.md
|
||||||
python3 scripts/docs/generate-traefik-routes.py docs/generated/docker-compose.resolved.yml docs/generated/traefik-routes.md
|
python3 scripts/docs/generate-traefik-routes.py docs/generated/docker-compose.resolved.yml docs/generated/traefik-routes.md
|
||||||
python3 scripts/docs/generate-docs-index.py docs/generated/index.md
|
python3 scripts/docs/generate-docs-index.py docs/generated/index.md
|
||||||
python3 scripts/docs/generate-diagrams.py --compose docs/generated/docker-compose.resolved.yml --out-dir docs/diagrams
|
HOST_INVENTORY=""
|
||||||
|
for p in data/terraform/proxmox-inventory.json infrastructure/terraform/proxmox/generated/infrastructure_inventory.json; do
|
||||||
|
if [[ -f "$p" ]]; then
|
||||||
|
HOST_INVENTORY="$p"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
DNS_INVENTORY="infrastructure/terraform/dynu/generated/dynu_dns_records_inventory.json"
|
||||||
|
GEN_ARGS=(--compose docs/generated/docker-compose.resolved.yml --out-dir docs/diagrams --domain-display redacted-label)
|
||||||
|
[[ -n "$HOST_INVENTORY" ]] && GEN_ARGS+=(--host-inventory "$HOST_INVENTORY")
|
||||||
|
[[ -f "$DNS_INVENTORY" ]] && GEN_ARGS+=(--dns-inventory "$DNS_INVENTORY")
|
||||||
|
python3 scripts/docs/generate-diagrams.py "${GEN_ARGS[@]}"
|
||||||
python3 scripts/docs/sanitize-public-docs.py docs/generated docs/diagrams docs/public
|
python3 scripts/docs/sanitize-public-docs.py docs/generated docs/diagrams docs/public
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import argparse
|
import argparse
|
||||||
|
import json
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import shutil
|
import shutil
|
||||||
@@ -23,13 +24,17 @@ def load_compose(path: Path) -> dict:
|
|||||||
return yaml.safe_load(handle) or {}
|
return yaml.safe_load(handle) or {}
|
||||||
|
|
||||||
|
|
||||||
def sanitize_domain(value: str, known: dict[str, str]) -> str:
|
PARENT_KEYS = ("node", "node_name", "host", "physical_host", "hypervisor_host", "proxmox_node")
|
||||||
if value in known:
|
|
||||||
return known[value]
|
|
||||||
|
def display_domain(value: str, mode: str) -> str:
|
||||||
|
if mode == "full":
|
||||||
|
return value
|
||||||
|
if mode == "placeholder":
|
||||||
|
return "<internal-domain>" if INTERNAL_DOMAIN_RE.search(value) else value
|
||||||
if INTERNAL_DOMAIN_RE.search(value):
|
if INTERNAL_DOMAIN_RE.search(value):
|
||||||
mapped = f"service-{len(known)+1}.<internal-domain>"
|
label = re.sub(r"\.lan\.ddnsgeek\.com$", "", value)
|
||||||
known[value] = mapped
|
return f"{label}.<domain>"
|
||||||
return mapped
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
@@ -90,51 +95,109 @@ def categorize_service(service_name: str) -> str:
|
|||||||
return "apps"
|
return "apps"
|
||||||
|
|
||||||
|
|
||||||
def generate_physical_topology(compose: dict, out_dot: Path, out_svg: Path) -> None:
|
def load_inventory(path: Path | None) -> dict:
|
||||||
services = compose.get("services") or {}
|
if not path or not path.exists():
|
||||||
hosts: dict[str, dict[str, list[str]]] = {}
|
return {}
|
||||||
for name, svc in services.items():
|
payload = json.loads(path.read_text())
|
||||||
host = infer_host(name, svc)
|
return payload.get("value", payload) if isinstance(payload, dict) else {}
|
||||||
cat = categorize_service(name)
|
|
||||||
hosts.setdefault(host, {}).setdefault(cat, []).append(name)
|
|
||||||
|
def to_records(data) -> list[dict]:
|
||||||
|
if not isinstance(data, dict):
|
||||||
|
return []
|
||||||
|
out = []
|
||||||
|
for key, value in data.items():
|
||||||
|
if isinstance(value, dict):
|
||||||
|
rec = dict(value)
|
||||||
|
rec.setdefault("_key", str(key))
|
||||||
|
rec.setdefault("name", rec.get("hostname") or rec.get("vm_name") or str(key))
|
||||||
|
out.append(rec)
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
||||||
|
def parent_name(item: dict) -> str:
|
||||||
|
for k in PARENT_KEYS:
|
||||||
|
v = item.get(k)
|
||||||
|
if v:
|
||||||
|
return str(v)
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def generate_physical_topology(compose: dict, inventory: dict, out_dot: Path, out_svg: Path) -> None:
|
||||||
|
physical = to_records(inventory.get("physical_hosts", {}))
|
||||||
|
virtual = to_records(inventory.get("virtual_hosts", {})) + to_records(inventory.get("vms", {}))
|
||||||
|
if not physical and not virtual:
|
||||||
|
lines = [
|
||||||
|
"digraph PhysicalTopology {",
|
||||||
|
" graph [rankdir=LR, fontname=\"Helvetica\", nodesep=1.0, ranksep=1.5];",
|
||||||
|
' "placeholder:inventory" [shape=note, style="filled", fillcolor="#fef3c7", label="Host inventory JSON not found.\\nGenerate terraform inventory and rerun scripts/docs/generate-all.sh\\n(--host-inventory <path>)."];',
|
||||||
|
]
|
||||||
|
lines.append("}")
|
||||||
|
write_dot(out_dot, lines)
|
||||||
|
render_svg(out_dot, out_svg)
|
||||||
|
return
|
||||||
|
|
||||||
lines = [
|
lines = [
|
||||||
"digraph PhysicalTopology {",
|
"digraph PhysicalTopology {",
|
||||||
" graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.7, ranksep=1.2, fontname=\"Helvetica\", concentrate=true];",
|
" graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.95, ranksep=1.7, ratio=compress, fontname=\"Helvetica\", fontsize=13, concentrate=true, newrank=true];",
|
||||||
" node [fontname=\"Helvetica\", fontsize=10, style=\"rounded,filled\", fillcolor=\"#ffffff\"];",
|
" node [fontname=\"Helvetica\", fontsize=12, style=\"rounded,filled\", fillcolor=\"#ffffff\"];",
|
||||||
" edge [fontname=\"Helvetica\", fontsize=9, color=\"#64748b\"];",
|
" edge [fontname=\"Helvetica\", fontsize=10, color=\"#64748b\"];",
|
||||||
]
|
]
|
||||||
|
phys_names = {str(p.get("name")): p for p in physical}
|
||||||
for host, cat_map in sorted(hosts.items()):
|
children: dict[str, list[dict]] = {k: [] for k in phys_names}
|
||||||
|
orphans: list[dict] = []
|
||||||
|
for vm in virtual:
|
||||||
|
parent = parent_name(vm)
|
||||||
|
if parent in children:
|
||||||
|
children[parent].append(vm)
|
||||||
|
else:
|
||||||
|
orphans.append(vm)
|
||||||
|
for host, record in sorted(phys_names.items()):
|
||||||
|
host_role = record.get("role", "")
|
||||||
lines.extend([
|
lines.extend([
|
||||||
f' subgraph "cluster_{host}" {{',
|
f' subgraph "cluster_{host}" {{',
|
||||||
f' label="{host} host";',
|
f' label="{host}\\n{host_role}".strip();',
|
||||||
' style="rounded,filled";',
|
' style="rounded,filled";',
|
||||||
' color="#93c5fd";',
|
' color="#60a5fa";',
|
||||||
' fillcolor="#eff6ff";',
|
' fillcolor="#eff6ff";',
|
||||||
|
f' "phys:{host}" [label="{host}", shape=box3d, fillcolor="#bfdbfe"];',
|
||||||
])
|
])
|
||||||
for category, svcs in sorted(cat_map.items()):
|
for vm in sorted(children.get(host, []), key=lambda x: str(x.get("name", "")).lower()):
|
||||||
cluster_id = f"cluster_{host}_{re.sub(r'[^a-zA-Z0-9]+', '_', category)}"
|
vm_name = str(vm.get("name"))
|
||||||
|
vm_role = str(vm.get("role", "") or "virtual host")
|
||||||
|
cluster_id = f"cluster_{host}_{re.sub(r'[^a-zA-Z0-9]+', '_', vm_name)}"
|
||||||
lines.extend([
|
lines.extend([
|
||||||
f' subgraph "{cluster_id}" {{',
|
f' subgraph "{cluster_id}" {{',
|
||||||
f' label="{category}";',
|
f' label="{vm_name}";',
|
||||||
' style="rounded,dashed";',
|
' style="rounded,dashed";',
|
||||||
' color="#bfdbfe";',
|
' color="#bfdbfe";',
|
||||||
' fillcolor="#f8fbff";',
|
' fillcolor="#f8fbff";',
|
||||||
|
f' "vm:{vm_name}" [label="{vm_name}\\n{vm_role}", shape=component, fillcolor="#dcfce7"];',
|
||||||
])
|
])
|
||||||
for service in sorted(svcs):
|
if "docker" in vm_role.lower() or "docker" in vm_name.lower():
|
||||||
lines.append(f' "svc:{service}" [label="{service}", shape=box, fillcolor="#dcfce7"];')
|
lines.append(f' "role:{vm_name}" [label="Docker host", shape=box, fillcolor="#fef3c7"];')
|
||||||
|
lines.append(f' "vm:{vm_name}" -> "role:{vm_name}" [style=dashed, label="runs"];')
|
||||||
lines.append(' }')
|
lines.append(' }')
|
||||||
|
lines.append(f' "phys:{host}" -> "vm:{vm_name}" [label="hosts"];')
|
||||||
lines.append(' }')
|
lines.append(' }')
|
||||||
|
if orphans:
|
||||||
|
lines.extend([
|
||||||
|
' subgraph "cluster_orphans" {',
|
||||||
|
' label="Unmapped virtual hosts"; style="rounded,dashed"; color="#d1d5db";',
|
||||||
|
])
|
||||||
|
for vm in sorted(orphans, key=lambda x: str(x.get("name", "")).lower()):
|
||||||
|
vm_name = str(vm.get("name"))
|
||||||
|
lines.append(f' "vm:{vm_name}" [label="{vm_name}", shape=component, fillcolor="#fee2e2"];')
|
||||||
|
lines.append(" }")
|
||||||
|
|
||||||
lines.extend([
|
lines.extend([
|
||||||
' subgraph "cluster_legend" {',
|
' subgraph "cluster_legend" {',
|
||||||
' label="Legend"; style="rounded"; color="#d1d5db";',
|
' label="Legend"; style="rounded"; color="#d1d5db";',
|
||||||
' "leg_host" [label="Host cluster", shape=box3d, fillcolor="#eff6ff"];',
|
' "leg_host" [label="Physical host", shape=box3d, fillcolor="#eff6ff"];',
|
||||||
' "leg_cat" [label="Service category", shape=folder, fillcolor="#f8fbff"];',
|
' "leg_vm" [label="Virtual machine", shape=component, fillcolor="#dcfce7"];',
|
||||||
' "leg_svc" [label="Container/service", shape=box, fillcolor="#dcfce7"];',
|
' "leg_role" [label="Hosted role", shape=box, fillcolor="#fef3c7"];',
|
||||||
' "leg_host" -> "leg_cat" [style=dashed];',
|
' "leg_host" -> "leg_vm" [label="hosts"];',
|
||||||
' "leg_cat" -> "leg_svc" [style=dashed];',
|
' "leg_vm" -> "leg_role" [style=dashed, label="runs"];',
|
||||||
' }',
|
' }',
|
||||||
"}",
|
"}",
|
||||||
])
|
])
|
||||||
@@ -142,17 +205,17 @@ def generate_physical_topology(compose: dict, out_dot: Path, out_svg: Path) -> N
|
|||||||
render_svg(out_dot, out_svg)
|
render_svg(out_dot, out_svg)
|
||||||
|
|
||||||
|
|
||||||
def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) -> None:
|
def generate_docker_traefik_dynu(compose: dict, dns_inventory: dict, domain_mode: str, out_dot: Path, out_svg: Path) -> None:
|
||||||
services = compose.get("services") or {}
|
services = compose.get("services") or {}
|
||||||
networks = compose.get("networks") or {}
|
networks = compose.get("networks") or {}
|
||||||
known_domains: dict[str, str] = {}
|
|
||||||
|
|
||||||
lines = [
|
lines = [
|
||||||
"digraph DockerTraefikDynu {",
|
"digraph DockerTraefikDynu {",
|
||||||
" graph [rankdir=LR, compound=true, splines=ortho, nodesep=0.7, ranksep=1.2, fontname=\"Helvetica\", concentrate=true];",
|
" graph [rankdir=LR, compound=true, splines=polyline, nodesep=0.9, ranksep=1.6, fontname=\"Helvetica\", concentrate=true, newrank=true];",
|
||||||
" node [fontname=\"Helvetica\", fontsize=10, style=\"rounded,filled\"];",
|
" node [fontname=\"Helvetica\", fontsize=11, style=\"rounded,filled\"];",
|
||||||
" edge [fontname=\"Helvetica\", fontsize=9, color=\"#334155\"];",
|
" edge [fontname=\"Helvetica\", fontsize=9, color=\"#334155\"];",
|
||||||
' "svc:traefik" [label="Traefik\n(entrypoint)", shape=box, fillcolor="#bfdbfe"];',
|
' "dynu" [label="Dynu / Public DNS", shape=box, fillcolor="#fde68a"];',
|
||||||
|
' "svc:traefik" [label="Traefik", shape=box, fillcolor="#bfdbfe"];',
|
||||||
|
' "dynu" -> "svc:traefik" [penwidth=1.6];',
|
||||||
]
|
]
|
||||||
|
|
||||||
routes: dict[str, dict] = {}
|
routes: dict[str, dict] = {}
|
||||||
@@ -182,7 +245,7 @@ def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) ->
|
|||||||
badges.append("authelia")
|
badges.append("authelia")
|
||||||
if "mtls" in mw_low:
|
if "mtls" in mw_low:
|
||||||
badges.append("mTLS")
|
badges.append("mTLS")
|
||||||
hosts = [sanitize_domain(h, known_domains) for h in extract_hosts(rule)]
|
hosts = [display_domain(h, domain_mode) for h in extract_hosts(rule)]
|
||||||
if not hosts:
|
if not hosts:
|
||||||
continue
|
continue
|
||||||
info = routes.setdefault(svc_name, {"hosts": set(), "port": port, "badges": set()})
|
info = routes.setdefault(svc_name, {"hosts": set(), "port": port, "badges": set()})
|
||||||
@@ -202,7 +265,17 @@ def generate_docker_traefik_dynu(compose: dict, out_dot: Path, out_svg: Path) ->
|
|||||||
for host in sorted(info["hosts"]):
|
for host in sorted(info["hosts"]):
|
||||||
dns_nodes.add(host)
|
dns_nodes.add(host)
|
||||||
lines.append(f' "dns:{host}" [label="{host}", shape=note, fillcolor="#fef3c7"];')
|
lines.append(f' "dns:{host}" [label="{host}", shape=note, fillcolor="#fef3c7"];')
|
||||||
lines.append(f' "dns:{host}" -> "svc:traefik";')
|
lines.append(f' "dns:{host}" -> "dynu";')
|
||||||
|
for record in (dns_inventory.get("records", []) if isinstance(dns_inventory, dict) else []):
|
||||||
|
host = record.get("hostname") or record.get("name")
|
||||||
|
if not host:
|
||||||
|
continue
|
||||||
|
host_disp = display_domain(str(host), domain_mode)
|
||||||
|
if host_disp in dns_nodes:
|
||||||
|
continue
|
||||||
|
dns_nodes.add(host_disp)
|
||||||
|
lines.append(f' "dns:{host_disp}" [label="{host_disp}", shape=note, fillcolor="#fef3c7"];')
|
||||||
|
lines.append(f' "dns:{host_disp}" -> "dynu" [style=dashed, color=\"#94a3b8\"];')
|
||||||
|
|
||||||
lines.append(' { rank=same; ' + '; '.join([f'"dns:{d}"' for d in sorted(dns_nodes)]) + '; }' if dns_nodes else '')
|
lines.append(' { rank=same; ' + '; '.join([f'"dns:{d}"' for d in sorted(dns_nodes)]) + '; }' if dns_nodes else '')
|
||||||
|
|
||||||
@@ -256,6 +329,9 @@ def main() -> None:
|
|||||||
parser.add_argument("legacy", nargs="*")
|
parser.add_argument("legacy", nargs="*")
|
||||||
parser.add_argument("--compose")
|
parser.add_argument("--compose")
|
||||||
parser.add_argument("--out-dir")
|
parser.add_argument("--out-dir")
|
||||||
|
parser.add_argument("--host-inventory")
|
||||||
|
parser.add_argument("--dns-inventory")
|
||||||
|
parser.add_argument("--domain-display", choices=["full", "redacted-label", "placeholder"], default="redacted-label")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
require_dot()
|
require_dot()
|
||||||
@@ -271,9 +347,11 @@ def main() -> None:
|
|||||||
|
|
||||||
out_dir.mkdir(parents=True, exist_ok=True)
|
out_dir.mkdir(parents=True, exist_ok=True)
|
||||||
compose = load_compose(compose_path)
|
compose = load_compose(compose_path)
|
||||||
|
host_inventory = load_inventory(Path(args.host_inventory)) if args.host_inventory else {}
|
||||||
|
dns_inventory = load_inventory(Path(args.dns_inventory)) if args.dns_inventory else {}
|
||||||
|
|
||||||
generate_docker_traefik_dynu(compose, out_dir / "docker-traefik-dynu.dot", out_dir / "docker-traefik-dynu.svg")
|
generate_docker_traefik_dynu(compose, dns_inventory, args.domain_display, out_dir / "docker-traefik-dynu.dot", out_dir / "docker-traefik-dynu.svg")
|
||||||
generate_physical_topology(compose, out_dir / "physical-topology.dot", out_dir / "physical-topology.svg")
|
generate_physical_topology(compose, host_inventory, out_dir / "physical-topology.dot", out_dir / "physical-topology.svg")
|
||||||
generate_compose_topology(compose, out_dir / "docker-compose.dot", out_dir / "docker-compose.svg")
|
generate_compose_topology(compose, out_dir / "docker-compose.dot", out_dir / "docker-compose.svg")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ out_dir.mkdir(parents=True, exist_ok=True)
|
|||||||
|
|
||||||
|
|
||||||
def sanitize_text(content: str) -> str:
|
def sanitize_text(content: str) -> str:
|
||||||
content = re.sub(r'\b[a-zA-Z0-9.-]+\.lan\.ddnsgeek\.com\b', '<internal-domain>', content)
|
content = re.sub(r'\b([a-zA-Z0-9-]+)\.lan\.ddnsgeek\.com\b', r'\1.<domain>', content)
|
||||||
content = re.sub(
|
content = re.sub(
|
||||||
r'\b(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3})\b',
|
r'\b(?:10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3})\b',
|
||||||
'<private-ip>',
|
'<private-ip>',
|
||||||
@@ -63,7 +63,9 @@ This documentation is generated from the infrastructure repository. Sensitive va
|
|||||||
|
|
||||||
This view groups containers by inferred host and service role (edge/proxy/auth, monitoring, automation, apps, and supporting storage/services).
|
This view groups containers by inferred host and service role (edge/proxy/auth, monitoring, automation, apps, and supporting storage/services).
|
||||||
|
|
||||||

|
<div class="diagram-wrap">
|
||||||
|
<img src="physical-topology.svg" alt="Physical topology">
|
||||||
|
</div>
|
||||||
|
|
||||||
## Docker, Traefik and Dynu routing
|
## Docker, Traefik and Dynu routing
|
||||||
|
|
||||||
@@ -71,6 +73,8 @@ This view shows sanitised public DNS names flowing to Traefik, then to exposed D
|
|||||||
|
|
||||||
_Diagrams are generated from Compose data and Traefik labels._
|
_Diagrams are generated from Compose data and Traefik labels._
|
||||||
|
|
||||||

|
<div class="diagram-wrap">
|
||||||
|
<img src="docker-traefik-dynu.svg" alt="Docker Traefik Dynu">
|
||||||
|
</div>
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
|
|||||||