[add] oi.quodatum.duckdns.org

This commit is contained in:
Andy Bunce 2025-03-14 22:51:40 +00:00
parent 1492098065
commit e5d521b51c
3 changed files with 334 additions and 230 deletions

View file

@ -108,6 +108,11 @@ quodatum.duckdns.org {
}
@shark host shark.quodatum.duckdns.org
handle @shark {
import auth_quodatum
import fins 3001
}
@oi host oi.quodatum.duckdns.org
handle @oi {
import auth_quodatum
import xu4 4000
}

View file

@ -1,454 +1,538 @@
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0.00 0.00 1488.00 1192.00">
<g id="graph0" class="graph" transform="translate(4,1188) scale(1)" data-name="">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0.00 0.00 1760.50 1410.00">
<g id="graph0" class="graph" transform="translate(4,1406) scale(1)" data-name="saffron">
<polygon fill="white" stroke="none" points="-4,4 -4,-1188 1484,-1188 1484,4 -4,4"/>
<g id="clust1" class="cluster">
<polygon fill="white" stroke="none" points="-4,4 -4,-1406 1756.5,-1406 1756.5,4 -4,4" style=""/>
<g id="clust1" class="cluster" data-name="cluster_x">
<polygon fill="none" stroke="black" points="0,-158 0,-880 553.64,-880 553.64,-158 0,-158"/>
<text text-anchor="middle" x="276.82" y="-849" font-family="Times,serif" font-size="30.00">The Internet </text>
<polygon fill="none" stroke="black" points="0,-236 0,-990 625.02,-990 625.02,-236 0,-236" style=""/>
<text text-anchor="middle" x="312.51" y="-959" font-family="Times,serif" font-size="30.00" style="">The Internet </text>
</g>
<g id="clust2" class="cluster">
<g id="clust2" class="cluster" data-name="cluster_a">
<polygon fill="#bdffa4" stroke="black" points="14.47,-520 14.47,-766 539.17,-766 539.17,-520 14.47,-520"/>
<text text-anchor="middle" x="276.82" y="-735" font-family="Times,serif" font-size="30.00">quodatum.duckdns.org</text>
<polygon fill="#bdffa4" stroke="black" points="16.34,-618 16.34,-876 608.68,-876 608.68,-618 16.34,-618" style=""/>
<text text-anchor="middle" x="312.51" y="-845" font-family="Times,serif" font-size="30.00" style="">quodatum.duckdns.org</text>
</g>
<g id="clust3" class="cluster">
<g id="clust3" class="cluster" data-name="cluster_b">
<polygon fill="#bdffa4" stroke="black" points="65.13,-166 65.13,-512 488.51,-512 488.51,-166 65.13,-166"/>
<text text-anchor="middle" x="276.82" y="-481" font-family="Times,serif" font-size="30.00">orlop.duckdns.org</text>
<polygon fill="#bdffa4" stroke="black" points="73.53,-244 73.53,-610 551.49,-610 551.49,-244 73.53,-244" style=""/>
<text text-anchor="middle" x="312.51" y="-579" font-family="Times,serif" font-size="30.00" style="">orlop.duckdns.org</text>
</g>
<g id="clust4" class="cluster">
<g id="clust4" class="cluster" data-name="cluster_s">
<polygon fill="none" stroke="black" points="691.15,-8 691.15,-1176 1465.53,-1176 1465.53,-8 691.15,-8"/>
<text text-anchor="middle" x="1078.34" y="-1145" font-family="Times,serif" font-size="30.00">Server Boxes</text>
<polygon fill="none" stroke="black" points="641.36,-8 641.36,-1394 1736.16,-1394 1736.16,-8 641.36,-8" style=""/>
<text text-anchor="middle" x="1188.76" y="-1363" font-family="Times,serif" font-size="30.00" style="">Server Boxes</text>
</g>
<g id="clust5" class="cluster">
<g id="clust5" class="cluster" data-name="cluster_c">
<polygon fill="#ffdead" stroke="black" points="705.62,-472 705.62,-868 995.11,-868 995.11,-472 705.62,-472"/>
<text text-anchor="middle" x="850.37" y="-837" font-family="Times,serif" font-size="30.00">xu4</text>
<g id="a_clust5"><a xlink:href="http://fins.local:8090/system/xu4" xlink:title="XU4 on beszel" style="">
<polygon fill="#ffdead" stroke="black" points="657.7,-718 657.7,-1192 984.5,-1192 984.5,-718 657.7,-718" style=""/>
<text text-anchor="middle" x="821.1" y="-1161" font-family="Times,serif" font-size="30.00" style="">xu4</text>
</a>
</g>
<g id="clust6" class="cluster">
<polygon fill="#ffdead" stroke="black" points="1161.56,-878 1161.56,-1124 1451.05,-1124 1451.05,-878 1161.56,-878"/>
<text text-anchor="middle" x="1306.31" y="-1093" font-family="Times,serif" font-size="30.00">fins</text>
</g>
<g id="clust7" class="cluster">
<g id="clust6" class="cluster" data-name="cluster_d">
<polygon fill="#ffdead" stroke="black" points="1161.56,-16 1161.56,-412 1451.05,-412 1451.05,-16 1161.56,-16"/>
<text text-anchor="middle" x="1306.31" y="-381" font-family="Times,serif" font-size="30.00">omv</text>
<polygon fill="#ffdead" stroke="black" points="1025.36,-1084 1025.36,-1342 1719.82,-1342 1719.82,-1084 1025.36,-1084" style=""/>
<text text-anchor="middle" x="1372.59" y="-1311" font-family="Times,serif" font-size="30.00" style="">fins</text>
</g>
<g id="clust8" class="cluster">
<g id="clust7" class="cluster" data-name="cluster_e">
<polygon fill="#ffdead" stroke="black" points="1161.56,-674 1161.56,-870 1451.05,-870 1451.05,-674 1161.56,-674"/>
<text text-anchor="middle" x="1306.31" y="-839" font-family="Times,serif" font-size="30.00">odroid-n2</text>
<polygon fill="#ffdead" stroke="black" points="1025.36,-16 1025.36,-490 1352.16,-490 1352.16,-16 1025.36,-16" style=""/>
<text text-anchor="middle" x="1188.76" y="-459" font-family="Times,serif" font-size="30.00" style="">omv</text>
</g>
<g id="clust9" class="cluster">
<g id="clust8" class="cluster" data-name="cluster_f">
<polygon fill="#ffdead" stroke="black" points="1161.56,-420 1161.56,-666 1451.05,-666 1451.05,-420 1161.56,-420"/>
<text text-anchor="middle" x="1306.31" y="-635" font-family="Times,serif" font-size="30.00">n2-plus</text>
<polygon fill="#ffdead" stroke="black" points="1025.36,-818 1025.36,-1076 1352.16,-1076 1352.16,-818 1025.36,-818" style=""/>
<text text-anchor="middle" x="1188.76" y="-1045" font-family="Times,serif" font-size="30.00" style="">odroid-n2</text>
</g>
<g id="clust9" class="cluster" data-name="cluster_g">
<polygon fill="#ffdead" stroke="black" points="1025.36,-498 1025.36,-810 1352.16,-810 1352.16,-498 1025.36,-498" style=""/>
<text text-anchor="middle" x="1188.76" y="-779" font-family="Times,serif" font-size="30.00" style="">n2-plus</text>
</g>
<!-- a1 -->
<g id="node1" class="node" pointer-events="visible">
<g id="node1" class="node" pointer-events="visible" data-name="a1">
<g id="a_node1"><a xlink:href="https://wiki.quodatum.duckdns.org" xlink:title="Tiddly wiki" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-714 204.53,-714 204.53,-678 348.53,-678 348.53,-714"/>
<text text-anchor="middle" x="276.53" y="-691.8" font-family="Helvetica,sans-Serif" font-size="14.00">wiki</text>
<g id="a_node1"><a xlink:href="https://wiki.quodatum.duckdns.org" xlink:title="Tiddly wiki" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-824 240.16,-824 240.16,-788 384.16,-788 384.16,-824" style=""/>
<text text-anchor="middle" x="312.16" y="-801.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">wiki</text>
</a>
</g>
</g>
<!-- c2 -->
<g id="node14" class="node" pointer-events="visible">
<g id="node14" class="node" pointer-events="visible" data-name="c2">
<g id="a_node14"><a xlink:href="http://odroid.local:8088" xlink:title="Tiddly wiki" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-716 778.53,-716 778.53,-680 922.53,-680 922.53,-716"/>
<text text-anchor="middle" x="850.53" y="-693.8" font-family="Helvetica,sans-Serif" font-size="14.00">tiddy-wiki:8088</text>
<g id="a_node14"><a xlink:href="http://odroid.local:8088" xlink:title="Tiddly wiki" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-1032 749.16,-1032 749.16,-996 893.16,-996 893.16,-1032" style=""/>
<text text-anchor="middle" x="821.16" y="-1009.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">tiddy-wiki:8088</text>
</a>
</g>
</g>
<!-- a1&#45;&gt;c2 -->
<g id="edge3" class="edge">
<g id="edge3" class="edge" data-name="a1-&gt;c2">
<path fill="none" stroke="black" d="M348.81,-696.25C455.07,-696.62 654.52,-697.32 766.97,-697.71"/>
<polygon fill="black" stroke="black" points="766.71,-701.21 776.73,-697.75 766.74,-694.21 766.71,-701.21"/>
<path fill="none" stroke="black" d="M384.54,-810.52C410.46,-813.66 439.64,-818.98 465.16,-828 595.75,-874.13 606.6,-930.76 733.16,-987 736.74,-988.59 740.43,-990.12 744.2,-991.6" style=""/>
<polygon fill="black" stroke="black" points="742.92,-994.86 753.51,-995.07 745.36,-988.3 742.92,-994.86" style=""/>
</g>
<!-- a2 -->
<g id="node2" class="node" pointer-events="visible">
<g id="node2" class="node" pointer-events="visible" data-name="a2">
<g id="a_node2"><a xlink:href="https://about.quodatum.duckdns.org" xlink:title="about" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-664 204.53,-664 204.53,-628 348.53,-628 348.53,-664"/>
<text text-anchor="middle" x="276.53" y="-641.8" font-family="Helvetica,sans-Serif" font-size="14.00">about</text>
<g id="a_node2"><a xlink:href="https://about.quodatum.duckdns.org" xlink:title="about" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-770 240.16,-770 240.16,-734 384.16,-734 384.16,-770" style=""/>
<text text-anchor="middle" x="312.16" y="-747.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">about</text>
</a>
</g>
</g>
<!-- c0 -->
<g id="node12" class="node" pointer-events="visible">
<g id="node12" class="node" pointer-events="visible" data-name="c0">
<polygon fill="white" stroke="black" points="922.53,-616 778.53,-616 778.53,-580 922.53,-580 922.53,-616"/>
<text text-anchor="middle" x="850.53" y="-593.8" font-family="Helvetica,sans-Serif" font-size="14.00">caddy</text>
<polygon fill="white" stroke="black" points="893.16,-762 749.16,-762 749.16,-726 893.16,-726 893.16,-762" style=""/>
<text text-anchor="middle" x="821.16" y="-739.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">caddy</text>
</g>
<!-- a2&#45;&gt;c0 -->
<g id="edge1" class="edge">
<g id="edge1" class="edge" data-name="a2-&gt;c0">
<path fill="none" stroke="black" d="M348.81,-640.02C455.07,-631.1 654.52,-614.36 766.97,-604.93"/>
<polygon fill="black" stroke="black" points="767.06,-608.43 776.73,-604.11 766.47,-601.46 767.06,-608.43"/>
<path fill="none" stroke="black" d="M384.46,-750.87C477.33,-749.41 639.39,-746.85 737.53,-745.3" style=""/>
<polygon fill="black" stroke="black" points="737.42,-748.81 747.36,-745.15 737.31,-741.81 737.42,-748.81" style=""/>
</g>
<!-- a3 -->
<g id="node3" class="node" pointer-events="visible">
<g id="node3" class="node" pointer-events="visible" data-name="a3">
<g id="a_node3"><a xlink:href="https://git.quodatum.duckdns.org" xlink:title="Forgejo" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-614 204.53,-614 204.53,-578 348.53,-578 348.53,-614"/>
<text text-anchor="middle" x="276.53" y="-591.8" font-family="Helvetica,sans-Serif" font-size="14.00">git</text>
<g id="a_node3"><a xlink:href="https://git.quodatum.duckdns.org" xlink:title="Forgejo" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-662 240.16,-662 240.16,-626 384.16,-626 384.16,-662" style=""/>
<text text-anchor="middle" x="312.16" y="-639.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">git</text>
</a>
</g>
</g>
<!-- e1 -->
<g id="node23" class="node" pointer-events="visible">
<g id="node25" class="node" pointer-events="visible" data-name="e1">
<g id="a_node23"><a xlink:href="http://omv.local:8300" xlink:title="tvheadend" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-360 1234.53,-360 1234.53,-324 1378.53,-324 1378.53,-360"/>
<text text-anchor="middle" x="1306.53" y="-337.8" font-family="Helvetica,sans-Serif" font-size="14.00">forgejo:8300</text>
<g id="a_node25"><a xlink:href="http://omv.local:8300" xlink:title="tvheadend" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-438 1117.16,-438 1117.16,-402 1261.16,-402 1261.16,-438" style=""/>
<text text-anchor="middle" x="1189.16" y="-415.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">forgejo:8300</text>
</a>
</g>
</g>
<!-- a3&#45;&gt;e1 -->
<g id="edge4" class="edge">
<g id="edge4" class="edge" data-name="a3-&gt;e1">
<path fill="none" stroke="black" d="M348.68,-586.32C374.31,-582.3 403.36,-577.13 429.53,-571 580.23,-535.69 613.08,-509.32 762.53,-469 924.8,-425.22 1116.7,-382.42 1223.42,-359.39"/>
<polygon fill="black" stroke="black" points="1223.9,-362.87 1232.94,-357.34 1222.43,-356.03 1223.9,-362.87"/>
<path fill="none" stroke="black" d="M384.51,-630.94C410.04,-626 438.96,-620.09 465.16,-614 704.08,-558.43 983.72,-479.34 1114.15,-441.63" style=""/>
<polygon fill="black" stroke="black" points="1115.09,-445 1123.72,-438.86 1113.14,-438.28 1115.09,-445" style=""/>
</g>
<!-- a4 -->
<g id="node4" class="node" pointer-events="visible">
<!-- a5 -->
<g id="node4" class="node" pointer-events="visible" data-name="a5">
<g id="a_node4"><a xlink:href="https://vscode.quodatum.duckdns.org" xlink:title="VScode" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-564 204.53,-564 204.53,-528 348.53,-528 348.53,-564"/>
<text text-anchor="middle" x="276.53" y="-541.8" font-family="Helvetica,sans-Serif" font-size="14.00">vscode</text>
<g id="a_node4"><a xlink:href="https://oi.quodatum.duckdns.org" xlink:title="openwebUI" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-716 240.16,-716 240.16,-680 384.16,-680 384.16,-716" style=""/>
<text text-anchor="middle" x="312.16" y="-693.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">oi</text>
</a>
</g>
</g>
<!-- b1 -->
<g id="node5" class="node" pointer-events="visible">
<!-- d2 -->
<g id="node20" class="node" pointer-events="visible" data-name="d2">
<g id="a_node5"><a xlink:href="https://about.orlop.duckdns.org" xlink:title="about" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-460 204.53,-460 204.53,-424 348.53,-424 348.53,-460"/>
<text text-anchor="middle" x="276.53" y="-437.8" font-family="Helvetica,sans-Serif" font-size="14.00">about</text>
<g id="a_node20"><a xlink:href="http://fins.local:11434/" xlink:title="Ollama (AI)" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-1290 1117.16,-1290 1117.16,-1254 1261.16,-1254 1261.16,-1290" style=""/>
<text text-anchor="middle" x="1189.16" y="-1267.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">olama:11434</text>
</a>
</g>
</g>
<!-- a5&#45;&gt;d2 -->
<g id="edge5" class="edge" data-name="a5-&gt;d2">
<path fill="none" stroke="black" d="M384.59,-690.44C522.69,-677.34 819.89,-656.92 901.16,-714 1108.57,-859.68 926.04,-1069.76 1109.16,-1245 1109.79,-1245.6 1110.43,-1246.19 1111.09,-1246.76" style=""/>
<polygon fill="black" stroke="black" points="1108.91,-1249.51 1119.03,-1252.63 1113.06,-1243.87 1108.91,-1249.51" style=""/>
</g>
<!-- b1 -->
<g id="node5" class="node" pointer-events="visible" data-name="b1">
<g id="a_node5"><a xlink:href="https://about.orlop.duckdns.org" xlink:title="about" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-558 240.16,-558 240.16,-522 384.16,-522 384.16,-558" style=""/>
<text text-anchor="middle" x="312.16" y="-535.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">about</text>
</a>
</g>
</g>
<!-- b1&#45;&gt;c0 -->
<g id="edge2" class="edge">
<g id="edge2" class="edge" data-name="b1-&gt;c0">
<path fill="none" stroke="black" d="M345.11,-460.43C451.68,-489.5 658.24,-545.83 771.16,-576.63"/>
<polygon fill="black" stroke="black" points="770.09,-579.96 780.66,-579.22 771.93,-573.21 770.09,-579.96"/>
<path fill="none" stroke="black" d="M359.05,-558.46C452.06,-595.89 662.57,-680.59 763.76,-721.31" style=""/>
<polygon fill="black" stroke="black" points="762.39,-724.53 772.97,-725.01 765,-718.03 762.39,-724.53" style=""/>
</g>
<!-- b2 -->
<g id="node6" class="node" pointer-events="visible">
<g id="node6" class="node" pointer-events="visible" data-name="b2">
<g id="a_node6"><a xlink:href="https://kodi.orlop.duckdns.org" xlink:title="Kodi" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-410 204.53,-410 204.53,-374 348.53,-374 348.53,-410"/>
<text text-anchor="middle" x="276.53" y="-387.8" font-family="Helvetica,sans-Serif" font-size="14.00">kodi</text>
<g id="a_node6"><a xlink:href="https://kodi.orlop.duckdns.org" xlink:title="Kodi" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-504 240.16,-504 240.16,-468 384.16,-468 384.16,-504" style=""/>
<text text-anchor="middle" x="312.16" y="-481.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">kodi</text>
</a>
</g>
</g>
<!-- f1 -->
<g id="node30" class="node" pointer-events="visible">
<g id="node33" class="node" pointer-events="visible" data-name="f1">
<g id="a_node30"><a xlink:href="http://odroid-n2:8080" xlink:title="kodi" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-818 1234.53,-818 1234.53,-782 1378.53,-782 1378.53,-818"/>
<text text-anchor="middle" x="1306.53" y="-795.8" font-family="Helvetica,sans-Serif" font-size="14.00">kodi:8080</text>
<g id="a_node33"><a xlink:href="http://odroid-n2:8080" xlink:title="kodi" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-1024 1117.16,-1024 1117.16,-988 1261.16,-988 1261.16,-1024" style=""/>
<text text-anchor="middle" x="1189.16" y="-1001.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">kodi:8080</text>
</a>
</g>
</g>
<!-- b2&#45;&gt;f1 -->
<g id="edge5" class="edge">
<g id="edge6" class="edge" data-name="b2-&gt;f1">
<path fill="none" stroke="black" d="M348.57,-385.39C473.39,-376.93 737.17,-373.28 930.53,-469 1100.1,-552.95 1065.64,-675.41 1226.53,-775 1227.26,-775.45 1228,-775.9 1228.75,-776.34"/>
<polygon fill="black" stroke="black" points="1227.08,-779.42 1237.57,-780.94 1230.32,-773.21 1227.08,-779.42"/>
<path fill="none" stroke="black" d="M384.58,-495.69C410.24,-499.96 439.23,-505.69 465.16,-513 515.24,-527.12 860.22,-651.88 901.16,-684 1027.38,-783.02 980.77,-882.81 1109.16,-979 1110.5,-980 1111.88,-980.97 1113.3,-981.91" style=""/>
<polygon fill="black" stroke="black" points="1111.34,-984.82 1121.75,-986.83 1114.87,-978.77 1111.34,-984.82" style=""/>
</g>
<!-- b3 -->
<g id="node7" class="node" pointer-events="visible">
<g id="node7" class="node" pointer-events="visible" data-name="b3">
<g id="a_node7"><a xlink:href="https://tvheadend.orlop.duckdns.org" xlink:title="TV headend" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-360 204.53,-360 204.53,-324 348.53,-324 348.53,-360"/>
<text text-anchor="middle" x="276.53" y="-337.8" font-family="Helvetica,sans-Serif" font-size="14.00">tvheadend</text>
<g id="a_node7"><a xlink:href="https://tvheadend.orlop.duckdns.org" xlink:title="TV headend" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-450 240.16,-450 240.16,-414 384.16,-414 384.16,-450" style=""/>
<text text-anchor="middle" x="312.16" y="-427.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">tvheadend</text>
</a>
</g>
</g>
<!-- g1 -->
<g id="node33" class="node" pointer-events="visible">
<g id="node37" class="node" pointer-events="visible" data-name="g1">
<g id="a_node33"><a xlink:href="http://n2-plus.local:9981" xlink:title="tvheadend" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-614 1234.53,-614 1234.53,-578 1378.53,-578 1378.53,-614"/>
<text text-anchor="middle" x="1306.53" y="-591.8" font-family="Helvetica,sans-Serif" font-size="14.00">tvheadend:9981</text>
<g id="a_node37"><a xlink:href="http://n2-plus.local:9981" xlink:title="tvheadend" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-758 1117.16,-758 1117.16,-722 1261.16,-722 1261.16,-758" style=""/>
<text text-anchor="middle" x="1189.16" y="-735.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">tvheadend:9981</text>
</a>
</g>
</g>
<!-- b3&#45;&gt;g1 -->
<g id="edge6" class="edge">
<g id="edge7" class="edge" data-name="b3-&gt;g1">
<path fill="none" stroke="black" d="M348.7,-336.29C470.99,-328.84 727.4,-323.58 930.53,-389 1077.52,-436.34 1086.08,-506.78 1226.53,-571 1228.28,-571.8 1230.07,-572.59 1231.88,-573.36"/>
<polygon fill="black" stroke="black" points="1230.48,-576.57 1241.06,-577.03 1233.07,-570.07 1230.48,-576.57"/>
<path fill="none" stroke="black" d="M384.53,-441.87C410.19,-446.15 439.19,-451.85 465.16,-459 664.91,-514.02 708.98,-546.56 901.16,-624 994.42,-661.58 1015.3,-676.94 1109.16,-713 1113.3,-714.59 1117.59,-716.19 1121.92,-717.77" style=""/>
<polygon fill="black" stroke="black" points="1120.7,-721.05 1131.3,-721.13 1123.06,-714.46 1120.7,-721.05" style=""/>
</g>
<!-- b4 -->
<g id="node8" class="node" pointer-events="visible">
<g id="node8" class="node" pointer-events="visible" data-name="b4">
<g id="a_node8"><a xlink:href="https://emby.orlop.duckdns.org" xlink:title="Emby" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-310 204.53,-310 204.53,-274 348.53,-274 348.53,-310"/>
<text text-anchor="middle" x="276.53" y="-287.8" font-family="Helvetica,sans-Serif" font-size="14.00">emby</text>
<g id="a_node8"><a xlink:href="https://emby.orlop.duckdns.org" xlink:title="Emby" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-396 240.16,-396 240.16,-360 384.16,-360 384.16,-396" style=""/>
<text text-anchor="middle" x="312.16" y="-373.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">emby</text>
</a>
</g>
</g>
<!-- e3 -->
<g id="node25" class="node" pointer-events="visible">
<g id="node27" class="node" pointer-events="visible" data-name="e3">
<g id="a_node25"><a xlink:href="http://omv.local:8097" xlink:title="Emby" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-310 1234.53,-310 1234.53,-274 1378.53,-274 1378.53,-310"/>
<text text-anchor="middle" x="1306.53" y="-287.8" font-family="Helvetica,sans-Serif" font-size="14.00">emby:8097</text>
<g id="a_node27"><a xlink:href="http://omv.local:8097" xlink:title="Emby" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-384 1117.16,-384 1117.16,-348 1261.16,-348 1261.16,-384" style=""/>
<text text-anchor="middle" x="1189.16" y="-361.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">emby:8097</text>
</a>
</g>
</g>
<!-- b4&#45;&gt;e3 -->
<g id="edge7" class="edge">
<g id="edge8" class="edge" data-name="b4-&gt;e3">
<path fill="none" stroke="black" d="M349,-292C533.71,-292 1026.2,-292 1222.8,-292"/>
<polygon fill="black" stroke="black" points="1222.67,-295.5 1232.67,-292 1222.67,-288.5 1222.67,-295.5"/>
<path fill="none" stroke="black" d="M384.39,-377.02C544.93,-374.82 934.27,-369.48 1105.28,-367.14" style=""/>
<polygon fill="black" stroke="black" points="1105.25,-370.64 1115.2,-367 1105.15,-363.64 1105.25,-370.64" style=""/>
</g>
<!-- b5 -->
<g id="node9" class="node" pointer-events="visible">
<g id="node9" class="node" pointer-events="visible" data-name="b5">
<g id="a_node9"><a xlink:href="https://jellyfin.orlop.duckdns.org" xlink:title="Jellyfin" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-260 204.53,-260 204.53,-224 348.53,-224 348.53,-260"/>
<text text-anchor="middle" x="276.53" y="-237.8" font-family="Helvetica,sans-Serif" font-size="14.00">jellyfin</text>
<g id="a_node9"><a xlink:href="https://jellyfin.orlop.duckdns.org" xlink:title="Jellyfin" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-342 240.16,-342 240.16,-306 384.16,-306 384.16,-342" style=""/>
<text text-anchor="middle" x="312.16" y="-319.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">jellyfin</text>
</a>
</g>
</g>
<!-- e2 -->
<g id="node24" class="node" pointer-events="visible">
<g id="node26" class="node" pointer-events="visible" data-name="e2">
<g id="a_node24"><a xlink:href="http://omv.local:8096" xlink:title="jellyfin" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-260 1234.53,-260 1234.53,-224 1378.53,-224 1378.53,-260"/>
<text text-anchor="middle" x="1306.53" y="-237.8" font-family="Helvetica,sans-Serif" font-size="14.00">jellyfin:8096</text>
<g id="a_node26"><a xlink:href="http://omv.local:8096" xlink:title="jellyfin" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-330 1117.16,-330 1117.16,-294 1261.16,-294 1261.16,-330" style=""/>
<text text-anchor="middle" x="1189.16" y="-307.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">jellyfin:8096</text>
</a>
</g>
</g>
<!-- b5&#45;&gt;e2 -->
<g id="edge8" class="edge">
<g id="edge9" class="edge" data-name="b5-&gt;e2">
<path fill="none" stroke="black" d="M349,-242C533.71,-242 1026.2,-242 1222.8,-242"/>
<polygon fill="black" stroke="black" points="1222.67,-245.5 1232.67,-242 1222.67,-238.5 1222.67,-245.5"/>
<path fill="none" stroke="black" d="M384.39,-323.02C544.93,-320.82 934.27,-315.48 1105.28,-313.14" style=""/>
<polygon fill="black" stroke="black" points="1105.25,-316.64 1115.2,-313 1105.15,-309.64 1105.25,-316.64" style=""/>
</g>
<!-- b6 -->
<g id="node10" class="node" pointer-events="visible">
<g id="node10" class="node" pointer-events="visible" data-name="b6">
<g id="a_node10"><a xlink:href="https://immich.orlop.duckdns.org" xlink:title="Immich" target="saffron">
<polygon fill="white" stroke="black" points="348.53,-210 204.53,-210 204.53,-174 348.53,-174 348.53,-210"/>
<text text-anchor="middle" x="276.53" y="-187.8" font-family="Helvetica,sans-Serif" font-size="14.00">Immich</text>
<g id="a_node10"><a xlink:href="https://immich.orlop.duckdns.org" xlink:title="Immich" target="saffron" style="">
<polygon fill="white" stroke="black" points="384.16,-288 240.16,-288 240.16,-252 384.16,-252 384.16,-288" style=""/>
<text text-anchor="middle" x="312.16" y="-265.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">Immich</text>
</a>
</g>
</g>
<!-- e7 -->
<g id="node29" class="node" pointer-events="visible">
<g id="node31" class="node" pointer-events="visible" data-name="e7">
<g id="a_node29"><a xlink:href="http://omv.local:2283/" xlink:title="Photos" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-60 1234.53,-60 1234.53,-24 1378.53,-24 1378.53,-60"/>
<text text-anchor="middle" x="1306.53" y="-37.8" font-family="Helvetica,sans-Serif" font-size="14.00">immich:2283</text>
<g id="a_node31"><a xlink:href="http://omv.local:2283/" xlink:title="Photos" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-114 1117.16,-114 1117.16,-78 1261.16,-78 1261.16,-114" style=""/>
<text text-anchor="middle" x="1189.16" y="-91.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">immich:2283</text>
</a>
</g>
</g>
<!-- b6&#45;&gt;e7 -->
<g id="edge9" class="edge">
<g id="edge10" class="edge" data-name="b6-&gt;e7">
<path fill="none" stroke="black" d="M349,-181.57C533.71,-154.62 1026.2,-82.76 1222.8,-54.07"/>
<polygon fill="black" stroke="black" points="1223.3,-57.54 1232.69,-52.63 1222.29,-50.61 1223.3,-57.54"/>
<path fill="none" stroke="black" d="M384.39,-255.83C545.01,-223.9 934.66,-146.41 1105.53,-112.43" style=""/>
<polygon fill="black" stroke="black" points="1106.1,-115.89 1115.23,-110.5 1104.74,-109.02 1106.1,-115.89" style=""/>
</g>
<!-- vpn -->
<g id="node11" class="node" pointer-events="visible">
<g id="node11" class="node" pointer-events="visible" data-name="vpn">
<ellipse fill="white" stroke="black" cx="276.53" cy="-801" rx="27" ry="27"/>
<text text-anchor="middle" x="276.53" y="-796.8" font-family="Helvetica,sans-Serif" font-size="14.00">vpn</text>
<ellipse fill="white" stroke="black" cx="312.16" cy="-911" rx="27" ry="27" style=""/>
<text text-anchor="middle" x="312.16" y="-906.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">vpn</text>
</g>
<!-- c4 -->
<g id="node16" class="node" pointer-events="visible">
<g id="node16" class="node" pointer-events="visible" data-name="c4">
<g id="a_node16"><a xlink:title="VPN service" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-816 778.53,-816 778.53,-780 922.53,-780 922.53,-816"/>
<text text-anchor="middle" x="850.53" y="-793.8" font-family="Helvetica,sans-Serif" font-size="14.00">wireguard:51820</text>
<g id="a_node16"><a xlink:title="VPN service" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-1140 749.16,-1140 749.16,-1104 893.16,-1104 893.16,-1140" style=""/>
<text text-anchor="middle" x="821.16" y="-1117.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">wireguard:51820</text>
</a>
</g>
</g>
<!-- vpn&#45;&gt;c4 -->
<g id="edge10" class="edge">
<g id="edge11" class="edge" data-name="vpn-&gt;c4">
<path fill="none" stroke="black" d="M303.97,-800.86C385.52,-800.43 635.56,-799.12 766.93,-798.43"/>
<polygon fill="black" stroke="black" points="766.61,-801.94 776.59,-798.38 766.57,-794.94 766.61,-801.94"/>
</g>
<!-- d2 -->
<g id="node19" class="node" pointer-events="visible">
<g id="a_node19"><a xlink:href="http://fins.local:11434/" xlink:title="Ollama (AI)" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-1072 1234.53,-1072 1234.53,-1036 1378.53,-1036 1378.53,-1072"/>
<text text-anchor="middle" x="1306.53" y="-1049.8" font-family="Helvetica,sans-Serif" font-size="14.00">olama:11434</text>
</a>
</g>
<path fill="none" stroke="black" d="M336.92,-922.54C400.31,-953.07 579.13,-1037.57 733.16,-1095 737.58,-1096.65 742.15,-1098.28 746.77,-1099.87" style=""/>
<polygon fill="black" stroke="black" points="745.59,-1103.17 756.18,-1103.03 747.82,-1096.53 745.59,-1103.17" style=""/>
</g>
<!-- c0&#45;&gt;d2 -->
<g id="edge11" class="edge">
<g id="edge12" class="edge" data-name="c0-&gt;d2">
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M995.11,-680.4C1077.76,-772.76 1076.81,-870.1 1154.31,-962.77"/>
<polygon fill="black" stroke="black" points="1151.39,-964.75 1160.58,-970.03 1156.69,-960.17 1151.39,-964.75"/>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M984.5,-898.26C1006.72,-967.11 1002.83,-1036.57 1022.13,-1105.5" style=""/>
<polygon fill="black" stroke="black" points="1018.71,-1106.27 1024.93,-1114.86 1025.42,-1104.27 1018.71,-1106.27" style=""/>
</g>
<!-- c0&#45;&gt;e1 -->
<g id="edge13" class="edge">
<g id="edge14" class="edge" data-name="c0-&gt;e1">
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M995.11,-541.07C1068.84,-502.17 1141.41,-456.18 1197.82,-418.22"/>
<polygon fill="black" stroke="black" points="1199.44,-421.34 1205.77,-412.84 1195.52,-415.54 1199.44,-421.34"/>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M851.53,-718C904.97,-670.69 1020.04,-568.83 1100.69,-497.43" style=""/>
<polygon fill="black" stroke="black" points="1102.79,-500.25 1107.95,-491 1098.15,-495.01 1102.79,-500.25" style=""/>
</g>
<!-- c0&#45;&gt;f1 -->
<g id="edge12" class="edge">
<g id="edge13" class="edge" data-name="c0-&gt;f1">
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M995.11,-652.2C1056.98,-683.07 1092.49,-710.05 1151.49,-740.49"/>
<polygon fill="black" stroke="black" points="1149.72,-743.52 1160.22,-744.92 1152.89,-737.27 1149.72,-743.52"/>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M984.5,-846.37C996.67,-862.24 1007.06,-878.12 1018.63,-893.99" style=""/>
<polygon fill="black" stroke="black" points="1015.67,-895.89 1024.46,-901.81 1021.28,-891.7 1015.67,-895.89" style=""/>
</g>
<!-- c0&#45;&gt;g1 -->
<g id="edge14" class="edge">
<g id="edge15" class="edge" data-name="c0-&gt;g1">
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M995.11,-597.37C1044.5,-597.15 1100.01,-596.91 1150.29,-596.68"/>
<polygon fill="black" stroke="black" points="1150.07,-600.18 1160.06,-596.64 1150.04,-593.19 1150.07,-600.18"/>
<path fill="none" stroke="black" stroke-dasharray="1,5" d="M984.5,-742.23C994.28,-742.12 1004.14,-742.01 1013.97,-741.9" style=""/>
<polygon fill="black" stroke="black" points="1013.88,-745.4 1023.84,-741.8 1013.81,-738.41 1013.88,-745.4" style=""/>
</g>
<!-- c1 -->
<g id="node13" class="node" pointer-events="visible">
<g id="node13" class="node" pointer-events="visible" data-name="c1">
<g id="a_node13"><a xlink:href="http://odroid.local:9090" xlink:title="Basex 10.7" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-766 778.53,-766 778.53,-730 922.53,-730 922.53,-766"/>
<text text-anchor="middle" x="850.53" y="-743.8" font-family="Helvetica,sans-Serif" font-size="14.00">basex-test:9090</text>
<g id="a_node13"><a xlink:href="http://odroid.local:9090" xlink:title="Basex 10.7" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-1086 749.16,-1086 749.16,-1050 893.16,-1050 893.16,-1086" style=""/>
<text text-anchor="middle" x="821.16" y="-1063.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">basex-test:9090</text>
</a>
</g>
</g>
<!-- c5 -->
<g id="node15" class="node" pointer-events="visible">
<g id="node15" class="node" pointer-events="visible" data-name="c5">
<g id="a_node15"><a xlink:href="http://odroid.local:4000" xlink:title="Wire shark" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-666 778.53,-666 778.53,-630 922.53,-630 922.53,-666"/>
<text text-anchor="middle" x="850.53" y="-643.8" font-family="Helvetica,sans-Serif" font-size="14.00">wireshark:4000</text>
<g id="a_node15"><a xlink:href="http://odroid.local:4000" xlink:title="Wire shark" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-978 749.16,-978 749.16,-942 893.16,-942 893.16,-978" style=""/>
<text text-anchor="middle" x="821.16" y="-955.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">wireshark:4000</text>
</a>
</g>
</g>
<!-- c6 -->
<g id="node17" class="node" pointer-events="visible">
<g id="node17" class="node" pointer-events="visible" data-name="c6">
<g id="a_node17"><a xlink:title="Redis API" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-566 778.53,-566 778.53,-530 922.53,-530 922.53,-566"/>
<text text-anchor="middle" x="850.53" y="-543.8" font-family="Helvetica,sans-Serif" font-size="14.00">redis-test:6379</text>
<g id="a_node17"><a xlink:title="Redis API" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-870 749.16,-870 749.16,-834 893.16,-834 893.16,-870" style=""/>
<text text-anchor="middle" x="821.16" y="-847.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">redis-test:6379</text>
</a>
</g>
</g>
<!-- c7 -->
<g id="node18" class="node" pointer-events="visible">
<g id="node18" class="node" pointer-events="visible" data-name="c7">
<g id="a_node18"><a xlink:href="http://192.168.1.59" xlink:title="PiHole Ad blocker" target="saffron">
<polygon fill="white" stroke="black" points="922.53,-516 778.53,-516 778.53,-480 922.53,-480 922.53,-516"/>
<text text-anchor="middle" x="850.53" y="-493.8" font-family="Helvetica,sans-Serif" font-size="14.00">pihole</text>
<g id="a_node18"><a xlink:href="http://192.168.1.59" xlink:title="PiHole Ad blocker" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-816 749.16,-816 749.16,-780 893.16,-780 893.16,-816" style=""/>
<text text-anchor="middle" x="821.16" y="-793.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">pihole</text>
</a>
</g>
</g>
<!-- d4 -->
<g id="node20" class="node" pointer-events="visible">
<!-- c8 -->
<g id="node19" class="node" pointer-events="visible" data-name="c8">
<g id="a_node20"><a xlink:href="http://fins.local:3001/" xlink:title="Open WebUI" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-1022 1234.53,-1022 1234.53,-986 1378.53,-986 1378.53,-1022"/>
<text text-anchor="middle" x="1306.53" y="-999.8" font-family="Helvetica,sans-Serif" font-size="14.00">openwebui:3001</text>
<g id="a_node19"><a xlink:href="http://fins.local:8090/system/xu4" xlink:title="Beszel" target="saffron" style="">
<polygon fill="white" stroke="black" points="893.16,-924 749.16,-924 749.16,-888 893.16,-888 893.16,-924" style=""/>
<text text-anchor="middle" x="821.16" y="-901.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel-agent</text>
</a>
</g>
</g>
<!-- d5 -->
<g id="node21" class="node" pointer-events="visible">
<g id="node22" class="node" pointer-events="visible" data-name="d5">
<g id="a_node21"><a xlink:href="http://fins.local:8090/" xlink:title="monitor" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-972 1234.53,-972 1234.53,-936 1378.53,-936 1378.53,-972"/>
<text text-anchor="middle" x="1306.53" y="-949.8" font-family="Helvetica,sans-Serif" font-size="14.00">beszel::8090</text>
<g id="a_node22"><a xlink:href="http://fins.local:8090/" xlink:title="beszel (main)" target="saffron" style="">
<polygon fill="white" stroke="black" points="1628.16,-1128 1484.16,-1128 1484.16,-1092 1628.16,-1092 1628.16,-1128" style=""/>
<text text-anchor="middle" x="1556.16" y="-1105.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel::8090</text>
</a>
</g>
</g>
<!-- c8&#45;&gt;d5 -->
<g id="edge16" class="edge" data-name="c8-&gt;d5">
<path fill="none" stroke="black" d="M888.4,-924.39C892.94,-926.91 897.25,-929.76 901.16,-933 1045.26,-1052.34 947.45,-1204.9 1109.16,-1299 1260.73,-1387.2 1461.29,-1206.31 1530.47,-1136.19" style=""/>
<polygon fill="black" stroke="black" points="1532.71,-1138.9 1537.19,-1129.3 1527.7,-1134.02 1532.71,-1138.9" style=""/>
</g>
<!-- d4 -->
<g id="node21" class="node" pointer-events="visible" data-name="d4">
<g id="a_node21"><a xlink:href="http://fins.local:3001/" xlink:title="Open WebUI" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-1236 1117.16,-1236 1117.16,-1200 1261.16,-1200 1261.16,-1236" style=""/>
<text text-anchor="middle" x="1189.16" y="-1213.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">openwebui:3001</text>
</a>
</g>
</g>
<!-- d6 -->
<g id="node22" class="node" pointer-events="visible">
<g id="node23" class="node" pointer-events="visible" data-name="d6">
<g id="a_node22"><a xlink:href="http://fins.local:3100/" xlink:title="Vidio editor" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-922 1234.53,-922 1234.53,-886 1378.53,-886 1378.53,-922"/>
<text text-anchor="middle" x="1306.53" y="-899.8" font-family="Helvetica,sans-Serif" font-size="14.00">shotcut::3100</text>
<g id="a_node23"><a xlink:href="http://fins.local:3100/" xlink:title="Vidio editor" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-1182 1117.16,-1182 1117.16,-1146 1261.16,-1146 1261.16,-1182" style=""/>
<text text-anchor="middle" x="1189.16" y="-1159.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">shotcut::3100</text>
</a>
</g>
</g>
<!-- e4 -->
<g id="node26" class="node" pointer-events="visible">
<!-- d7 -->
<g id="node24" class="node" pointer-events="visible" data-name="d7">
<g id="a_node26"><a xlink:href="http://omv.local:81" xlink:title="Open media vault" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-210 1234.53,-210 1234.53,-174 1378.53,-174 1378.53,-210"/>
<text text-anchor="middle" x="1306.53" y="-187.8" font-family="Helvetica,sans-Serif" font-size="14.00">omv:81</text>
<g id="a_node24"><a xlink:href="http://fins.local:8090/system/fins" xlink:title="Beszel agent" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-1128 1117.16,-1128 1117.16,-1092 1261.16,-1092 1261.16,-1128" style=""/>
<text text-anchor="middle" x="1189.16" y="-1105.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel-agent</text>
</a>
</g>
</g>
<!-- d7&#45;&gt;d5 -->
<g id="edge17" class="edge" data-name="d7-&gt;d5">
<path fill="none" stroke="black" d="M1261.4,-1110C1321.98,-1110 1408.99,-1110 1472.59,-1110" style=""/>
<polygon fill="black" stroke="black" points="1472.27,-1113.5 1482.27,-1110 1472.27,-1106.5 1472.27,-1113.5" style=""/>
</g>
<!-- e4 -->
<g id="node28" class="node" pointer-events="visible" data-name="e4">
<g id="a_node28"><a xlink:href="http://omv.local:81" xlink:title="Open media vault" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-276 1117.16,-276 1117.16,-240 1261.16,-240 1261.16,-276" style=""/>
<text text-anchor="middle" x="1189.16" y="-253.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">omv:81</text>
</a>
</g>
</g>
<!-- e5 -->
<g id="node27" class="node" pointer-events="visible">
<g id="node29" class="node" pointer-events="visible" data-name="e5">
<g id="a_node27"><a xlink:href="http://omv.local:3456/" xlink:title="Vikunja" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-160 1234.53,-160 1234.53,-124 1378.53,-124 1378.53,-160"/>
<text text-anchor="middle" x="1306.53" y="-137.8" font-family="Helvetica,sans-Serif" font-size="14.00">vikunja:3456</text>
<g id="a_node29"><a xlink:href="http://omv.local:3456/" xlink:title="Vikunja" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-222 1117.16,-222 1117.16,-186 1261.16,-186 1261.16,-222" style=""/>
<text text-anchor="middle" x="1189.16" y="-199.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">vikunja:3456</text>
</a>
</g>
</g>
<!-- e6 -->
<g id="node28" class="node" pointer-events="visible">
<g id="node30" class="node" pointer-events="visible" data-name="e6">
<g id="a_node28"><a xlink:href="http://omv.local:5001/" xlink:title="dockge" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-110 1234.53,-110 1234.53,-74 1378.53,-74 1378.53,-110"/>
<text text-anchor="middle" x="1306.53" y="-87.8" font-family="Helvetica,sans-Serif" font-size="14.00">dockge:5001</text>
<g id="a_node30"><a xlink:href="http://omv.local:5001/" xlink:title="dockge" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-168 1117.16,-168 1117.16,-132 1261.16,-132 1261.16,-168" style=""/>
<text text-anchor="middle" x="1189.16" y="-145.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">dockge:5001</text>
</a>
</g>
</g>
<!-- x1 -->
<g id="node31" class="node" pointer-events="visible">
<!-- e8 -->
<g id="node32" class="node" pointer-events="visible" data-name="e8">
<g id="a_node31"><a xlink:href="https://odroid-n2:9443" xlink:title="portainer" target="saffron">
<ellipse fill="yellow" stroke="black" cx="1306.53" cy="-750" rx="72" ry="18"/>
<text text-anchor="middle" x="1306.53" y="-745.8" font-family="Helvetica,sans-Serif" font-size="14.00">p</text>
<g id="a_node32"><a xlink:href="http://fins.local:8090/system/omv" xlink:title="Beszel agent" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-60 1117.16,-60 1117.16,-24 1261.16,-24 1261.16,-60" style=""/>
<text text-anchor="middle" x="1189.16" y="-37.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel-agent</text>
</a>
</g>
</g>
<!-- e8&#45;&gt;d5 -->
<g id="edge18" class="edge" data-name="e8-&gt;d5">
<path fill="none" stroke="black" d="M1258.83,-60.32C1262.59,-62.85 1266.08,-65.73 1269.16,-69 1415.44,-224.52 1527.87,-927.73 1550.85,-1080.61" style=""/>
<polygon fill="black" stroke="black" points="1547.35,-1080.92 1552.29,-1090.3 1554.28,-1079.89 1547.35,-1080.92" style=""/>
</g>
<!-- f2 -->
<g id="node34" class="node" pointer-events="visible" data-name="f2">
<g id="a_node34"><a xlink:href="http://fins.local:8090/system/odroid-n2" xlink:title="Beszel agent" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-970 1117.16,-970 1117.16,-934 1261.16,-934 1261.16,-970" style=""/>
<text text-anchor="middle" x="1189.16" y="-947.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel-agent</text>
</a>
</g>
</g>
<!-- f2&#45;&gt;d5 -->
<g id="edge19" class="edge" data-name="f2-&gt;d5">
<path fill="none" stroke="black" d="M1246.52,-970.49C1254.17,-973.22 1261.89,-976.1 1269.16,-979 1354.88,-1013.18 1452.05,-1059.32 1508.2,-1086.73" style=""/>
<polygon fill="black" stroke="black" points="1506.32,-1089.7 1516.84,-1090.96 1509.4,-1083.42 1506.32,-1089.7" style=""/>
</g>
<!-- x1 -->
<g id="node35" class="node" pointer-events="visible" data-name="x1">
<g id="a_node35"><a xlink:href="https://odroid-n2:9443" xlink:title="portainer" target="saffron" style="">
<ellipse fill="yellow" stroke="black" cx="1189.16" cy="-898" rx="72" ry="18" style=""/>
<text text-anchor="middle" x="1189.16" y="-893.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">p</text>
</a>
</g>
</g>
<!-- x2 -->
<g id="node32" class="node" pointer-events="visible">
<g id="node36" class="node" pointer-events="visible" data-name="x2">
<g id="a_node32"><a xlink:href="http://odroid-n2:19999" xlink:title="netdata" target="saffron">
<ellipse fill="yellow" stroke="black" cx="1306.53" cy="-700" rx="72" ry="18"/>
<text text-anchor="middle" x="1306.53" y="-695.8" font-family="Helvetica,sans-Serif" font-size="14.00">n</text>
<g id="a_node36"><a xlink:href="http://odroid-n2:19999" xlink:title="netdata" target="saffron" style="">
<ellipse fill="yellow" stroke="black" cx="1189.16" cy="-844" rx="72" ry="18" style=""/>
<text text-anchor="middle" x="1189.16" y="-839.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">n</text>
</a>
</g>
</g>
<!-- g2 -->
<g id="node34" class="node" pointer-events="visible">
<g id="node38" class="node" pointer-events="visible" data-name="g2">
<g id="a_node34"><a xlink:href="https://n2-plus.local:9443" xlink:title="portainer" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-564 1234.53,-564 1234.53,-528 1378.53,-528 1378.53,-564"/>
<text text-anchor="middle" x="1306.53" y="-541.8" font-family="Helvetica,sans-Serif" font-size="14.00">portainer:9443</text>
<g id="a_node38"><a xlink:href="https://n2-plus.local:9443" xlink:title="portainer" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-704 1117.16,-704 1117.16,-668 1261.16,-668 1261.16,-704" style=""/>
<text text-anchor="middle" x="1189.16" y="-681.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">portainer:9443</text>
</a>
</g>
</g>
<!-- g3 -->
<g id="node35" class="node" pointer-events="visible">
<g id="node39" class="node" pointer-events="visible" data-name="g3">
<g id="a_node35"><a xlink:href="http://n2-plus.local:19999" xlink:title="netdata" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-514 1234.53,-514 1234.53,-478 1378.53,-478 1378.53,-514"/>
<text text-anchor="middle" x="1306.53" y="-491.8" font-family="Helvetica,sans-Serif" font-size="14.00">netdata:19999</text>
<g id="a_node39"><a xlink:href="http://n2-plus.local:19999" xlink:title="netdata" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-650 1117.16,-650 1117.16,-614 1261.16,-614 1261.16,-650" style=""/>
<text text-anchor="middle" x="1189.16" y="-627.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">netdata:19999</text>
</a>
</g>
</g>
<!-- g4 -->
<g id="node36" class="node" pointer-events="visible">
<g id="node40" class="node" pointer-events="visible" data-name="g4">
<g id="a_node36"><a xlink:href="http://n2-plus.local:3000" xlink:title="ntop ng" target="saffron">
<polygon fill="white" stroke="black" points="1378.53,-464 1234.53,-464 1234.53,-428 1378.53,-428 1378.53,-464"/>
<text text-anchor="middle" x="1306.53" y="-441.8" font-family="Helvetica,sans-Serif" font-size="14.00">ntopng:3000</text>
<g id="a_node40"><a xlink:href="http://n2-plus.local:3000" xlink:title="ntop ng" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-596 1117.16,-596 1117.16,-560 1261.16,-560 1261.16,-596" style=""/>
<text text-anchor="middle" x="1189.16" y="-573.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">ntopng:3000</text>
</a>
</g>
</g>
<!-- g5 -->
<g id="node41" class="node" pointer-events="visible" data-name="g5">
<g id="a_node41"><a xlink:href="http://fins.local:8090/system/n2-plus" xlink:title="Beszel" target="saffron" style="">
<polygon fill="white" stroke="black" points="1261.16,-542 1117.16,-542 1117.16,-506 1261.16,-506 1261.16,-542" style=""/>
<text text-anchor="middle" x="1189.16" y="-519.8" font-family="Helvetica,sans-Serif" font-size="14.00" style="">beszel-agent</text>
</a>
</g>
</g>
<!-- g5&#45;&gt;d5 -->
<g id="edge20" class="edge" data-name="g5-&gt;d5">
<path fill="none" stroke="black" d="M1256.94,-542.42C1261.3,-544.93 1265.43,-547.77 1269.16,-551 1444.63,-702.93 1526.06,-988.82 1548.5,-1080.74" style=""/>
<polygon fill="black" stroke="black" points="1545.03,-1081.3 1550.76,-1090.21 1551.84,-1079.67 1545.03,-1081.3" style=""/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -3,9 +3,9 @@ digraph saffron {
compound = true;
rankdir = LR;
rank = same;
nodesep = 0.2;
ranksep = 1.5;
node [fontname = "helvetica"; shape = box; style = filled; width = "2"; fillcolor = white; target = "saffron";];
edge [fontname = "Arial";];
ratio = "0.8";
@ -20,7 +20,8 @@ digraph saffron {
a1 [label = "wiki";href = "https://wiki.quodatum.duckdns.org";tooltip = "Tiddly wiki";];
a2 [label = "about";href = "https://about.quodatum.duckdns.org";tooltip = "about";];
a3 [label = "git";href = "https://git.quodatum.duckdns.org";tooltip = "Forgejo";];
a4 [label = "vscode";href = "https://vscode.quodatum.duckdns.org";tooltip = "VScode";];
a5 [label = "oi";href = "https://oi.quodatum.duckdns.org";tooltip = "openwebUI";];
}
subgraph cluster_b {
bgcolor = "#BDFFA4";
@ -40,6 +41,8 @@ digraph saffron {
fontsize = "30";
subgraph cluster_c {
label = "xu4";
href="http://fins.local:8090/system/xu4";
tooltip="XU4 on beszel";
bgcolor = "#FFDEAD";
c0 [label = "caddy";];
c1 [label = "basex-test:9090";href = "http://odroid.local:9090";tooltip = "Basex 10.7";];
@ -49,14 +52,16 @@ digraph saffron {
c6 [label = "redis-test:6379";tooltip = "Redis API";];
c7 [label = "pihole";href = "http://192.168.1.59";tooltip = "PiHole Ad blocker";];
c8 [label = "beszel-agent";href = "http://fins.local:8090/system/xu4";tooltip = "Beszel";];
}
subgraph cluster_d {
label = "fins";
bgcolor = "#FFDEAD";
d2 [label = "olama:11434";href = "http://fins.local:11434/";tooltip = "Ollama (AI)";];
d4 [label = "openwebui:3001";href = "http://fins.local:3001/";tooltip = "Open WebUI";];
d5 [label = "beszel::8090";href = "http://fins.local:8090/";tooltip = "monitor";];
d5 [label = "beszel::8090";href = "http://fins.local:8090/";tooltip = "beszel (main)";];
d6 [label = "shotcut::3100";href = "http://fins.local:3100/";tooltip = "Vidio editor";];
d7 [label = "beszel-agent";href = "http://fins.local:8090/system/fins";tooltip = "Beszel agent";];
}
subgraph cluster_e {
label = "omv";
@ -68,16 +73,19 @@ digraph saffron {
e5 [label = "vikunja:3456";href = "http://omv.local:3456/";tooltip = "Vikunja";];
e6 [label = "dockge:5001";href = "http://omv.local:5001/";tooltip = "dockge";];
e7 [label = "immich:2283";href = "http://omv.local:2283/";tooltip = "Photos";];
e8 [label = "beszel-agent";href = "http://fins.local:8090/system/omv";tooltip = "Beszel agent";];
}
subgraph cluster_f {
label = "odroid-n2";
rankdir=TB
bgcolor = "#FFDEAD";
f1 [label = "kodi:8080";href = "http://odroid-n2:8080";tooltip = "kodi";];
f2 [label = "beszel-agent";href = "http://fins.local:8090/system/odroid-n2";tooltip = "Beszel agent";];
rank=max;
x1 [label = "p";shape = "oval"; area=0.1 href = "https://odroid-n2:9443";tooltip = "portainer"; fillcolor=yellow ;];
x2 [label = "n";shape = "oval";href = "http://odroid-n2:19999";tooltip = "netdata"; fillcolor=yellow ;];
@ -89,12 +97,14 @@ digraph saffron {
g2 [label = "portainer:9443";href = "https://n2-plus.local:9443";tooltip = "portainer";];
g3 [label = "netdata:19999";href = "http://n2-plus.local:19999";tooltip = "netdata";];
g4 [label = "ntopng:3000";href = "http://n2-plus.local:3000";tooltip = "ntop ng";];
g5 [label = "beszel-agent";href = "http://fins.local:8090/system/n2-plus";tooltip = "Beszel";];
}
}
a2 -> c0;
b1 -> c0;
a1 -> c2;
a3 -> e1;
a5 -> d2;
b2 -> f1;
b3 -> g1;
b4 -> e3;
@ -105,4 +115,9 @@ digraph saffron {
c0 -> f1 [ltail = "cluster_c"; lhead = "cluster_f"; style = "dotted";];
c0 -> e1 [ltail = "cluster_c"; lhead = "cluster_e"; style = "dotted";];
c0 -> g1 [ltail = "cluster_c"; lhead = "cluster_g"; style = "dotted";];
c8 -> d5;
d7 -> d5;
e8 -> d5;
f2 -> d5;
g5 -> d5;
}