Files
docker/docs/diagrams/docker-compose.svg
T
2026-05-13 09:48:45 +10:00

464 lines
26 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 12.2.1 (0)
-->
<!-- Title: Compose Pages: 1 -->
<svg width="342pt" height="1610pt"
viewBox="0.00 0.00 341.70 1610.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)">
<title>Compose</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1606 337.7,-1606 337.7,4 -4,4"/>
<!-- svc:authelia -->
<g id="node1" class="node">
<title>svc:authelia</title>
<polygon fill="#dfefff" stroke="black" points="125.5,-900 54,-900 54,-864 125.5,-864 125.5,-900"/>
<text text-anchor="middle" x="89.75" y="-877.33" font-family="Helvetica,sans-Serif" font-size="14.00">authelia</text>
</g>
<!-- net:traefik -->
<g id="node35" class="node">
<title>net:traefik</title>
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-828" rx="42.79" ry="18"/>
<text text-anchor="middle" x="274.6" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
</g>
<!-- svc:authelia&#45;&gt;net:traefik -->
<g id="edge1" class="edge">
<title>svc:authelia&#45;&gt;net:traefik</title>
<path fill="none" stroke="black" d="M125.57,-871.72C154.68,-863.12 196.4,-850.8 228.13,-841.43"/>
<polygon fill="black" stroke="black" points="228.86,-844.86 237.45,-838.67 226.87,-838.15 228.86,-844.86"/>
</g>
<!-- svc:crowdsec -->
<g id="node2" class="node">
<title>svc:crowdsec</title>
<polygon fill="#dfefff" stroke="black" points="130,-846 49.5,-846 49.5,-810 130,-810 130,-846"/>
<text text-anchor="middle" x="89.75" y="-823.33" font-family="Helvetica,sans-Serif" font-size="14.00">crowdsec</text>
</g>
<!-- svc:crowdsec&#45;&gt;net:traefik -->
<g id="edge2" class="edge">
<title>svc:crowdsec&#45;&gt;net:traefik</title>
<path fill="none" stroke="black" d="M130.43,-828C156.64,-828 191.33,-828 219.99,-828"/>
<polygon fill="black" stroke="black" points="219.94,-831.5 229.94,-828 219.94,-824.5 219.94,-831.5"/>
</g>
<!-- svc:docker&#45;socket&#45;proxy -->
<g id="node3" class="node">
<title>svc:docker&#45;socket&#45;proxy</title>
<polygon fill="#dfefff" stroke="black" points="167.12,-1116 12.38,-1116 12.38,-1080 167.12,-1080 167.12,-1116"/>
<text text-anchor="middle" x="89.75" y="-1093.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker&#45;socket&#45;proxy</text>
</g>
<!-- net:monitor -->
<g id="node32" class="node">
<title>net:monitor</title>
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-1314" rx="49.1" ry="18"/>
<text text-anchor="middle" x="274.6" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor</text>
</g>
<!-- svc:docker&#45;socket&#45;proxy&#45;&gt;net:monitor -->
<g id="edge3" class="edge">
<title>svc:docker&#45;socket&#45;proxy&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="263.39,-1285.36 269.25,-1294.19 270.17,-1283.63 263.39,-1285.36"/>
</g>
<!-- svc:docker&#45;socket&#45;proxy&#45;&gt;net:traefik -->
<g id="edge4" class="edge">
<title>svc:docker&#45;socket&#45;proxy&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="273.94,-858.09 271.71,-847.73 266.99,-857.22 273.94,-858.09"/>
</g>
<!-- svc:docker&#45;update&#45;exporter -->
<g id="node4" class="node">
<title>svc:docker&#45;update&#45;exporter</title>
<polygon fill="#dfefff" stroke="black" points="179.5,-1494 0,-1494 0,-1458 179.5,-1458 179.5,-1494"/>
<text text-anchor="middle" x="89.75" y="-1471.33" font-family="Helvetica,sans-Serif" font-size="14.00">docker&#45;update&#45;exporter</text>
</g>
<!-- svc:docker&#45;update&#45;exporter&#45;&gt;net:monitor -->
<g id="edge5" class="edge">
<title>svc:docker&#45;update&#45;exporter&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="264.19,-1343.65 265.33,-1333.12 257.87,-1340.64 264.19,-1343.65"/>
</g>
<!-- svc:error&#45;pages -->
<g id="node5" class="node">
<title>svc:error&#45;pages</title>
<polygon fill="#dfefff" stroke="black" points="137.12,-792 42.38,-792 42.38,-756 137.12,-756 137.12,-792"/>
<text text-anchor="middle" x="89.75" y="-769.33" font-family="Helvetica,sans-Serif" font-size="14.00">error&#45;pages</text>
</g>
<!-- svc:error&#45;pages&#45;&gt;net:traefik -->
<g id="edge6" class="edge">
<title>svc:error&#45;pages&#45;&gt;net:traefik</title>
<path fill="none" stroke="black" d="M137.36,-787.77C165.17,-795.98 200.32,-806.36 227.95,-814.52"/>
<polygon fill="black" stroke="black" points="226.88,-817.85 237.46,-817.33 228.86,-811.14 226.88,-817.85"/>
</g>
<!-- svc:gitea -->
<g id="node6" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-715.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea</text>
</g>
<!-- svc:gitea&#45;&gt;net:traefik -->
<g id="edge7" class="edge">
<title>svc:gitea&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="247.64,-805.29 257.14,-809.99 252.65,-800.39 247.64,-805.29"/>
</g>
<!-- svc:gitea&#45;runner -->
<g id="node7" class="node">
<title>svc:gitea&#45;runner</title>
<polygon fill="#dfefff" stroke="black" points="141.25,-684 38.25,-684 38.25,-648 141.25,-648 141.25,-684"/>
<text text-anchor="middle" x="89.75" y="-661.33" font-family="Helvetica,sans-Serif" font-size="14.00">gitea&#45;runner</text>
</g>
<!-- svc:gitea&#45;runner&#45;&gt;net:traefik -->
<g id="edge8" class="edge">
<title>svc:gitea&#45;runner&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="257.87,-801.36 265.33,-808.88 264.19,-798.35 257.87,-801.36"/>
</g>
<!-- svc:gotify -->
<g id="node8" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-607.33" font-family="Helvetica,sans-Serif" font-size="14.00">gotify</text>
</g>
<!-- svc:gotify&#45;&gt;net:traefik -->
<g id="edge9" class="edge">
<title>svc:gotify&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="263.39,-799.36 269.25,-808.19 270.17,-797.63 263.39,-799.36"/>
</g>
<!-- svc:grafana -->
<g id="node9" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-1039.33" font-family="Helvetica,sans-Serif" font-size="14.00">grafana</text>
</g>
<!-- svc:grafana&#45;&gt;net:monitor -->
<g id="edge10" class="edge">
<title>svc:grafana&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="266.99,-1284.78 271.71,-1294.27 273.94,-1283.91 266.99,-1284.78"/>
</g>
<!-- svc:grafana&#45;&gt;net:traefik -->
<g id="edge11" class="edge">
<title>svc:grafana&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="270.17,-858.37 269.25,-847.81 263.39,-856.64 270.17,-858.37"/>
</g>
<!-- svc:gramps&#45;redis -->
<g id="node10" class="node">
<title>svc:gramps&#45;redis</title>
<polygon fill="#dfefff" stroke="black" points="143.88,-360 35.62,-360 35.62,-324 143.88,-324 143.88,-360"/>
<text text-anchor="middle" x="89.75" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps&#45;redis</text>
</g>
<!-- net:gramps -->
<g id="node31" class="node">
<title>net:gramps</title>
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-342" rx="48.58" ry="18"/>
<text text-anchor="middle" x="274.6" y="-337.32" font-family="Helvetica,sans-Serif" font-size="14.00">gramps</text>
</g>
<!-- svc:gramps&#45;redis&#45;&gt;net:gramps -->
<g id="edge12" class="edge">
<title>svc:gramps&#45;redis&#45;&gt;net:gramps</title>
<path fill="none" stroke="black" d="M144.13,-342C166.12,-342 191.69,-342 214.27,-342"/>
<polygon fill="black" stroke="black" points="214.25,-345.5 224.25,-342 214.25,-338.5 214.25,-345.5"/>
</g>
<!-- svc:grampsweb -->
<g id="node11" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-391.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb</text>
</g>
<!-- svc:grampsweb&#45;&gt;net:gramps -->
<g id="edge13" class="edge">
<title>svc:grampsweb&#45;&gt;net:gramps</title>
<path fill="none" stroke="black" d="M138.79,-381.81C165.27,-373.99 198.07,-364.31 224.69,-356.45"/>
<polygon fill="black" stroke="black" points="225.63,-359.82 234.23,-353.63 223.65,-353.1 225.63,-359.82"/>
</g>
<!-- svc:grampsweb&#45;&gt;net:traefik -->
<g id="edge14" class="edge">
<title>svc:grampsweb&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="267.04,-798.59 271.6,-808.16 274,-797.84 267.04,-798.59"/>
</g>
<!-- svc:grampsweb_celery -->
<g id="node12" class="node">
<title>svc:grampsweb_celery</title>
<polygon fill="#dfefff" stroke="black" points="163,-306 16.5,-306 16.5,-270 163,-270 163,-306"/>
<text text-anchor="middle" x="89.75" y="-283.32" font-family="Helvetica,sans-Serif" font-size="14.00">grampsweb_celery</text>
</g>
<!-- svc:grampsweb_celery&#45;&gt;net:gramps -->
<g id="edge15" class="edge">
<title>svc:grampsweb_celery&#45;&gt;net:gramps</title>
<path fill="none" stroke="black" d="M153.17,-306.43C176.62,-313.36 202.91,-321.12 224.94,-327.63"/>
<polygon fill="black" stroke="black" points="223.66,-330.9 234.25,-330.38 225.65,-324.19 223.66,-330.9"/>
</g>
<!-- svc:influxdb -->
<g id="node13" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-1363.33" font-family="Helvetica,sans-Serif" font-size="14.00">influxdb</text>
</g>
<!-- svc:influxdb&#45;&gt;net:monitor -->
<g id="edge16" class="edge">
<title>svc:influxdb&#45;&gt;net:monitor</title>
<path fill="none" stroke="black" d="M126.44,-1357.46C154.39,-1349.2 193.59,-1337.63 224.5,-1328.5"/>
<polygon fill="black" stroke="black" points="225.43,-1331.88 234.03,-1325.69 223.45,-1325.16 225.43,-1331.88"/>
</g>
<!-- svc:influxdb&#45;&gt;net:traefik -->
<g id="edge17" class="edge">
<title>svc:influxdb&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="275.61,-857.9 272.65,-847.73 268.62,-857.53 275.61,-857.9"/>
</g>
<!-- svc:monitor&#45;kuma -->
<g id="node14" class="node">
<title>svc:monitor&#45;kuma</title>
<polygon fill="#dfefff" stroke="black" points="145.75,-1332 33.75,-1332 33.75,-1296 145.75,-1296 145.75,-1332"/>
<text text-anchor="middle" x="89.75" y="-1309.33" font-family="Helvetica,sans-Serif" font-size="14.00">monitor&#45;kuma</text>
</g>
<!-- svc:monitor&#45;kuma&#45;&gt;net:monitor -->
<g id="edge18" class="edge">
<title>svc:monitor&#45;kuma&#45;&gt;net:monitor</title>
<path fill="none" stroke="black" d="M146.11,-1314C167.49,-1314 192.01,-1314 213.8,-1314"/>
<polygon fill="black" stroke="black" points="213.73,-1317.5 223.73,-1314 213.73,-1310.5 213.73,-1317.5"/>
</g>
<!-- svc:monitor&#45;kuma&#45;&gt;net:traefik -->
<g id="edge19" class="edge">
<title>svc:monitor&#45;kuma&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="274.89,-858.1 272.18,-847.85 267.92,-857.55 274.89,-858.1"/>
</g>
<!-- svc:mtls&#45;bridge -->
<g id="node15" class="node">
<title>svc:mtls&#45;bridge</title>
<polygon fill="#dfefff" stroke="black" points="137.88,-1278 41.62,-1278 41.62,-1242 137.88,-1242 137.88,-1278"/>
<text text-anchor="middle" x="89.75" y="-1255.33" font-family="Helvetica,sans-Serif" font-size="14.00">mtls&#45;bridge</text>
</g>
<!-- svc:mtls&#45;bridge&#45;&gt;net:monitor -->
<g id="edge20" class="edge">
<title>svc:mtls&#45;bridge&#45;&gt;net:monitor</title>
<path fill="none" stroke="black" d="M138.31,-1274.05C164.79,-1281.87 197.71,-1291.59 224.44,-1299.48"/>
<polygon fill="black" stroke="black" points="223.45,-1302.84 234.03,-1302.31 225.43,-1296.13 223.45,-1302.84"/>
</g>
<!-- svc:mtls&#45;bridge&#45;&gt;net:traefik -->
<g id="edge21" class="edge">
<title>svc:mtls&#45;bridge&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="274,-858.16 271.6,-847.84 267.04,-857.41 274,-858.16"/>
</g>
<!-- svc:nextcloud&#45;db -->
<g id="node16" class="node">
<title>svc:nextcloud&#45;db</title>
<polygon fill="#dfefff" stroke="black" points="143.5,-90 36,-90 36,-54 143.5,-54 143.5,-90"/>
<text text-anchor="middle" x="89.75" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud&#45;db</text>
</g>
<!-- net:nextcloud -->
<g id="node33" class="node">
<title>net:nextcloud</title>
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-180" rx="59.1" ry="18"/>
<text text-anchor="middle" x="274.6" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud</text>
</g>
<!-- svc:nextcloud&#45;db&#45;&gt;net:nextcloud -->
<g id="edge22" class="edge">
<title>svc:nextcloud&#45;db&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="246.99,-156.64 256.49,-161.32 251.99,-151.73 246.99,-156.64"/>
</g>
<!-- svc:nextcloud&#45;redis -->
<g id="node17" class="node">
<title>svc:nextcloud&#45;redis</title>
<polygon fill="#dfefff" stroke="black" points="151.38,-198 28.12,-198 28.12,-162 151.38,-162 151.38,-198"/>
<text text-anchor="middle" x="89.75" y="-175.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud&#45;redis</text>
</g>
<!-- svc:nextcloud&#45;redis&#45;&gt;net:nextcloud -->
<g id="edge23" class="edge">
<title>svc:nextcloud&#45;redis&#45;&gt;net:nextcloud</title>
<path fill="none" stroke="black" d="M151.64,-180C168.42,-180 186.77,-180 204.01,-180"/>
<polygon fill="black" stroke="black" points="203.64,-183.5 213.64,-180 203.64,-176.5 203.64,-183.5"/>
</g>
<!-- svc:nextcloud&#45;webapp -->
<g id="node18" class="node">
<title>svc:nextcloud&#45;webapp</title>
<polygon fill="#dfefff" stroke="black" points="161.88,-252 17.62,-252 17.62,-216 161.88,-216 161.88,-252"/>
<text text-anchor="middle" x="89.75" y="-229.32" font-family="Helvetica,sans-Serif" font-size="14.00">nextcloud&#45;webapp</text>
</g>
<!-- svc:nextcloud&#45;webapp&#45;&gt;net:nextcloud -->
<g id="edge24" class="edge">
<title>svc:nextcloud&#45;webapp&#45;&gt;net:nextcloud</title>
<path fill="none" stroke="black" d="M153.17,-215.57C174.91,-209.14 199.11,-202 220.07,-195.81"/>
<polygon fill="black" stroke="black" points="220.97,-199.19 229.57,-193 218.99,-192.48 220.97,-199.19"/>
</g>
<!-- svc:nextcloud&#45;webapp&#45;&gt;net:traefik -->
<g id="edge25" class="edge">
<title>svc:nextcloud&#45;webapp&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="267.03,-798.68 271.56,-808.26 273.99,-797.95 267.03,-798.68"/>
</g>
<!-- svc:node&#45;exporter -->
<g id="node19" class="node">
<title>svc:node&#45;exporter</title>
<polygon fill="#dfefff" stroke="black" points="147.25,-1440 32.25,-1440 32.25,-1404 147.25,-1404 147.25,-1440"/>
<text text-anchor="middle" x="89.75" y="-1417.33" font-family="Helvetica,sans-Serif" font-size="14.00">node&#45;exporter</text>
</g>
<!-- svc:node&#45;exporter&#45;&gt;net:monitor -->
<g id="edge26" class="edge">
<title>svc:node&#45;exporter&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="252.32,-1341.94 256.82,-1332.34 247.32,-1337.04 252.32,-1341.94"/>
</g>
<!-- svc:node&#45;red -->
<g id="node20" class="node">
<title>svc:node&#45;red</title>
<polygon fill="#dfefff" stroke="black" points="128.88,-1224 50.62,-1224 50.62,-1188 128.88,-1188 128.88,-1224"/>
<text text-anchor="middle" x="89.75" y="-1201.33" font-family="Helvetica,sans-Serif" font-size="14.00">node&#45;red</text>
</g>
<!-- svc:node&#45;red&#45;&gt;net:monitor -->
<g id="edge27" class="edge">
<title>svc:node&#45;red&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="247.32,-1290.96 256.82,-1295.66 252.32,-1286.06 247.32,-1290.96"/>
</g>
<!-- svc:node&#45;red&#45;&gt;net:traefik -->
<g id="edge28" class="edge">
<title>svc:node&#45;red&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="272.88,-857.98 270.87,-847.58 265.96,-856.97 272.88,-857.98"/>
</g>
<!-- svc:passbolt&#45;db -->
<g id="node21" class="node">
<title>svc:passbolt&#45;db</title>
<polygon fill="#dfefff" stroke="black" points="138.62,-36 40.88,-36 40.88,0 138.62,0 138.62,-36"/>
<text text-anchor="middle" x="89.75" y="-13.32" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt&#45;db</text>
</g>
<!-- net:passbolt -->
<g id="node34" class="node">
<title>net:passbolt</title>
<ellipse fill="#f4f4f4" stroke="black" cx="274.6" cy="-72" rx="52.26" ry="18"/>
<text text-anchor="middle" x="274.6" y="-67.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt</text>
</g>
<!-- svc:passbolt&#45;db&#45;&gt;net:passbolt -->
<g id="edge29" class="edge">
<title>svc:passbolt&#45;db&#45;&gt;net:passbolt</title>
<path fill="none" stroke="black" d="M138.79,-32.19C164.72,-39.84 196.7,-49.29 223,-57.06"/>
<polygon fill="black" stroke="black" points="221.86,-60.37 232.44,-59.85 223.85,-53.66 221.86,-60.37"/>
</g>
<!-- svc:passbolt&#45;webapp -->
<g id="node22" class="node">
<title>svc:passbolt&#45;webapp</title>
<polygon fill="#dfefff" stroke="black" points="157,-144 22.5,-144 22.5,-108 157,-108 157,-144"/>
<text text-anchor="middle" x="89.75" y="-121.33" font-family="Helvetica,sans-Serif" font-size="14.00">passbolt&#45;webapp</text>
</g>
<!-- svc:passbolt&#45;webapp&#45;&gt;net:passbolt -->
<g id="edge30" class="edge">
<title>svc:passbolt&#45;webapp&#45;&gt;net:passbolt</title>
<path fill="none" stroke="black" d="M153.17,-107.57C175.98,-100.83 201.49,-93.3 223.14,-86.9"/>
<polygon fill="black" stroke="black" points="224.02,-90.29 232.62,-84.1 222.04,-83.58 224.02,-90.29"/>
</g>
<!-- svc:passbolt&#45;webapp&#45;&gt;net:traefik -->
<g id="edge31" class="edge">
<title>svc:passbolt&#45;webapp&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="266.41,-798.64 271.13,-808.13 273.36,-797.77 266.41,-798.64"/>
</g>
<!-- svc:pihole&#45;exporter -->
<g id="node23" class="node">
<title>svc:pihole&#45;exporter</title>
<polygon fill="#dfefff" stroke="black" points="151,-1602 28.5,-1602 28.5,-1566 151,-1566 151,-1602"/>
<text text-anchor="middle" x="89.75" y="-1579.33" font-family="Helvetica,sans-Serif" font-size="14.00">pihole&#45;exporter</text>
</g>
<!-- svc:pihole&#45;exporter&#45;&gt;net:monitor -->
<g id="edge32" class="edge">
<title>svc:pihole&#45;exporter&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="273.94,-1344.09 271.71,-1333.73 266.99,-1343.22 273.94,-1344.09"/>
</g>
<!-- svc:portainer -->
<g id="node24" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-553.33" font-family="Helvetica,sans-Serif" font-size="14.00">portainer</text>
</g>
<!-- svc:portainer&#45;&gt;net:traefik -->
<g id="edge33" class="edge">
<title>svc:portainer&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="266.99,-798.78 271.71,-808.27 273.94,-797.91 266.99,-798.78"/>
</g>
<!-- svc:prometheus -->
<g id="node25" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-1147.33" font-family="Helvetica,sans-Serif" font-size="14.00">prometheus</text>
</g>
<!-- svc:prometheus&#45;&gt;net:monitor -->
<g id="edge34" class="edge">
<title>svc:prometheus&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="257.87,-1287.36 265.33,-1294.88 264.19,-1284.35 257.87,-1287.36"/>
</g>
<!-- svc:prometheus&#45;&gt;net:traefik -->
<g id="edge35" class="edge">
<title>svc:prometheus&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="276.4,-857.97 273.32,-847.83 269.4,-857.68 276.4,-857.97"/>
</g>
<!-- svc:searxng&#45;webapp -->
<g id="node26" class="node">
<title>svc:searxng&#45;webapp</title>
<polygon fill="#dfefff" stroke="black" points="155.5,-522 24,-522 24,-486 155.5,-486 155.5,-522"/>
<text text-anchor="middle" x="89.75" y="-499.32" font-family="Helvetica,sans-Serif" font-size="14.00">searxng&#45;webapp</text>
</g>
<!-- svc:searxng&#45;webapp&#45;&gt;net:traefik -->
<g id="edge36" class="edge">
<title>svc:searxng&#45;webapp&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="269.4,-798.32 273.32,-808.17 276.4,-798.03 269.4,-798.32"/>
</g>
<!-- svc:shift&#45;recorder&#45;web -->
<g id="node27" class="node">
<title>svc:shift&#45;recorder&#45;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&#45;recorder&#45;web</text>
</g>
<!-- svc:shift&#45;recorder&#45;web&#45;&gt;net:traefik -->
<g id="edge37" class="edge">
<title>svc:shift&#45;recorder&#45;web&#45;&gt;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&#45;&gt;net:traefik -->
<g id="edge38" class="edge">
<title>svc:stockfill&#45;&gt;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>
<!-- svc:telegraf -->
<g id="node29" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-1525.33" font-family="Helvetica,sans-Serif" font-size="14.00">telegraf</text>
</g>
<!-- svc:telegraf&#45;&gt;net:monitor -->
<g id="edge39" class="edge">
<title>svc:telegraf&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="270.17,-1344.37 269.25,-1333.81 263.39,-1342.64 270.17,-1344.37"/>
</g>
<!-- svc:traefik -->
<g id="node30" class="node">
<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"/>
<text text-anchor="middle" x="89.75" y="-931.33" font-family="Helvetica,sans-Serif" font-size="14.00">traefik</text>
</g>
<!-- svc:traefik&#45;&gt;net:traefik -->
<g id="edge40" class="edge">
<title>svc:traefik&#45;&gt;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"/>
<polygon fill="black" stroke="black" points="252.65,-855.61 257.14,-846.01 247.64,-850.71 252.65,-855.61"/>
</g>
</g>
</svg>