meta/architecture-docs/Fediversity-architecture-notes-1.svg
2024-11-26 11:01:43 +01:00

1 line
31 KiB
XML

<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="-8 -8 1152.66796875 1398.706787109375" style="max-width: 1152.67px; background-color: white;" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="my-svg"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:2px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span,#my-svg p{color:#333;}#my-svg .label text,#my-svg span,#my-svg p{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .flowchart-label text{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .node .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:#e8e8e8;text-align:center;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span,#my-svg p{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="6" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"/></marker><marker orient="auto" markerHeight="12" markerWidth="12" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart" id="my-svg_flowchart-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart" id="my-svg_flowchart-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"/></marker><g class="root"><g class="clusters"><g id="Virtualization" class="cluster default flowchart-label"><rect height="310" width="616.28515625" y="539.7067413330078" x="0" ry="0" rx="0" style=""/><g transform="translate(262.486328125, 539.7067413330078)" class="cluster-label"><foreignObject height="18" width="91.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Virtualization</span></div></foreignObject></g></g><g id="Hardware" class="cluster default flowchart-label"><rect height="292" width="1049.96484375" y="1090.7067413330078" x="79.1484375" ry="0" rx="0" style=""/><g transform="translate(569.451171875, 1090.7067413330078)" class="cluster-label"><foreignObject height="18" width="69.359375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Hardware</span></div></foreignObject></g></g><g id="Management" class="cluster default flowchart-label"><rect height="489.7067413330078" width="925.328125" y="0" x="211.33984375" ry="0" rx="0" style=""/><g transform="translate(627.30859375, 0)" class="cluster-label"><foreignObject height="18" width="93.390625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Management</span></div></foreignObject></g></g></g><g class="edgePaths"><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-A LE-I" id="L-A-I-0" d="M756.594,58L756.594,62.167C756.594,66.333,756.594,74.667,756.594,82.117C756.594,89.567,756.594,96.133,756.594,99.417L756.594,102.7"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Z LE-B" id="L-Z-B-0" d="M679.402,280.707L679.402,284.873C679.402,289.04,679.402,297.373,679.402,304.823C679.402,312.273,679.402,318.84,679.402,322.123L679.402,325.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-D" id="L-B-D-0" d="M627.441,373.823L611.276,379.304C595.111,384.784,562.78,395.746,546.615,404.509C530.449,413.273,530.449,419.84,530.449,423.123L530.449,426.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-E" id="L-B-E-0" d="M627.441,363.385L575.18,370.606C522.918,377.826,418.395,392.266,366.133,402.77C313.871,413.273,313.871,419.84,313.871,423.123L313.871,426.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-G" id="L-B-G-0" d="M714.504,381.707L720.24,385.873C725.976,390.04,737.447,398.373,743.182,405.823C748.918,413.273,748.918,419.84,748.918,423.123L748.918,426.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-F" id="L-B-F-0" d="M663.051,381.707L660.379,385.873C657.707,390.04,652.363,398.373,649.691,405.823C647.02,413.273,647.02,419.84,647.02,423.123L647.02,426.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-J" id="L-B-J-0" d="M731.363,362.968L787.383,370.258C843.402,377.548,955.441,392.127,1011.461,402.7C1067.48,413.273,1067.48,419.84,1067.48,423.123L1067.48,426.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-B LE-H" id="L-B-H-0" d="M731.363,372.952L748.821,378.577C766.279,384.203,801.194,395.455,824.646,404.783C848.099,414.112,860.088,421.517,866.082,425.219L872.077,428.922"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-I LE-Z" id="L-I-Z-0" d="M725.903,141L718.153,145.167C710.403,149.333,694.903,157.667,687.152,165.117C679.402,172.567,679.402,179.133,679.402,182.417L679.402,185.7"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-H LE-I" id="L-H-I-0" d="M931.963,431.707L939.201,427.54C946.439,423.373,960.915,415.04,968.153,402.457C975.391,389.873,975.391,373.04,975.391,356.207C975.391,339.373,975.391,322.54,975.391,302.481C975.391,282.422,975.391,259.138,975.391,235.853C975.391,212.569,975.391,189.284,949.269,172.688C923.147,156.091,870.904,146.182,844.782,141.227L818.66,136.272"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Systems LE-Storage" id="L-Systems-Storage-0" d="M535.625,1220.707L535.625,1224.873C535.625,1229.04,535.625,1237.373,576.988,1250.35C618.35,1263.326,701.075,1280.945,742.438,1289.754L783.801,1298.563"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Services LE-Core" id="L-Services-Core-0" d="M287.75,824.707L287.75,828.873C287.75,833.04,287.75,841.373,287.75,849.707C287.75,858.04,287.75,866.373,316.368,881.566C344.987,896.759,402.224,918.811,430.842,929.837L459.461,940.863"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-FediServices LE-Core" id="L-FediServices-Core-0" d="M496.586,824.707L496.586,828.873C496.586,833.04,496.586,841.373,496.586,849.707C496.586,858.04,496.586,866.373,497.955,873.889C499.324,881.405,502.062,888.103,503.431,891.452L504.8,894.801"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Nixos LE-Services" id="L-Nixos-Services-0" d="M352.066,609.601L341.347,614.785C330.628,619.97,309.189,630.338,298.469,638.806C287.75,647.273,287.75,653.84,287.75,657.123L287.75,660.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Nixos LE-FediServices" id="L-Nixos-FediServices-0" d="M432.27,609.601L442.989,614.785C453.708,619.97,475.147,630.338,485.867,638.806C496.586,647.273,496.586,653.84,496.586,657.123L496.586,660.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-F LE-Core" id="L-F-Core-0" d="M647.02,464.707L647.02,468.873C647.02,473.04,647.02,481.373,647.02,489.707C647.02,498.04,647.02,506.373,647.02,514.707C647.02,523.04,647.02,531.373,647.02,543.957C647.02,556.54,647.02,573.373,647.02,590.207C647.02,607.04,647.02,623.873,647.02,649.707C647.02,675.54,647.02,710.373,647.02,745.207C647.02,780.04,647.02,814.873,635.592,836.457C624.164,858.04,601.309,866.373,588.374,873.901C575.439,881.428,572.425,888.149,570.917,891.51L569.41,894.871"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-G LE-Core" id="L-G-Core-0" d="M748.918,464.707L748.918,468.873C748.918,473.04,748.918,481.373,748.918,489.707C748.918,498.04,748.918,506.373,748.918,514.707C748.918,523.04,748.918,531.373,748.918,543.957C748.918,556.54,748.918,573.373,748.918,590.207C748.918,607.04,748.918,623.873,748.918,649.707C748.918,675.54,748.918,710.373,748.918,745.207C748.918,780.04,748.918,814.873,730.665,836.457C712.413,858.04,675.908,866.373,652.879,874.936C629.849,883.498,620.297,892.289,615.52,896.684L610.744,901.08"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-J LE-Storage" id="L-J-Storage-0" d="M1067.48,464.707L1067.48,468.873C1067.48,473.04,1067.48,481.373,1067.48,489.707C1067.48,498.04,1067.48,506.373,1067.48,514.707C1067.48,523.04,1067.48,531.373,1067.48,543.957C1067.48,556.54,1067.48,573.373,1067.48,590.207C1067.48,607.04,1067.48,623.873,1067.48,649.707C1067.48,675.54,1067.48,710.373,1067.48,745.207C1067.48,780.04,1067.48,814.873,1067.48,836.457C1067.48,858.04,1067.48,866.373,1067.48,886.457C1067.48,906.54,1067.48,938.373,1067.48,970.207C1067.48,1002.04,1067.48,1033.873,1067.48,1053.957C1067.48,1074.04,1067.48,1082.373,1067.48,1099.457C1067.48,1116.54,1067.48,1142.373,1067.48,1168.207C1067.48,1194.04,1067.48,1219.873,1044.66,1240.226C1021.839,1260.578,976.197,1275.45,953.376,1282.886L930.555,1290.322"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-E LE-Nixos" id="L-E-Nixos-0" d="M313.871,464.707L313.871,468.873C313.871,473.04,313.871,481.373,313.871,489.707C313.871,498.04,313.871,506.373,313.871,514.707C313.871,523.04,313.871,531.373,319.589,539.228C325.307,547.083,336.742,554.458,342.46,558.146L348.178,561.834"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-H LE-Core" id="L-H-Core-0" d="M903.301,464.707L903.301,468.873C903.301,473.04,903.301,481.373,903.301,489.707C903.301,498.04,903.301,506.373,903.301,514.707C903.301,523.04,903.301,531.373,903.301,543.957C903.301,556.54,903.301,573.373,903.301,590.207C903.301,607.04,903.301,623.873,903.301,649.707C903.301,675.54,903.301,710.373,903.301,745.207C903.301,780.04,903.301,814.873,873.85,836.457C844.398,858.04,785.496,866.373,736.877,880.126C688.257,893.878,649.921,913.05,630.752,922.635L611.584,932.221"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Hardware LE-Virtualization" id="L-Hardware-Virtualization-0" d="M789.703,1090.707L789.703,1086.54C789.703,1082.373,789.703,1074.04,789.703,1053.957C789.703,1033.873,789.703,1002.04,789.703,970.207C789.703,938.373,789.703,906.54,757.038,886.566C724.373,866.591,659.043,858.476,626.378,854.418L593.713,850.36"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Virtualization LE-Hardware" id="L-Virtualization-Hardware-0" d="M150.781,849.707L150.781,853.873C150.781,858.04,150.781,866.373,150.781,886.457C150.781,906.54,150.781,938.373,150.781,970.207C150.781,1002.04,150.781,1033.873,150.781,1053.073C150.781,1072.273,150.781,1078.84,150.781,1082.123L150.781,1085.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-Core LE-Hardware" id="L-Core-Hardware-0" d="M535.625,1040.707L535.625,1044.873C535.625,1049.04,535.625,1057.373,535.625,1064.823C535.625,1072.273,535.625,1078.84,535.625,1082.123L535.625,1085.407"/><path marker-end="url(#my-svg_flowchart-pointEnd)" style="fill:none;" class="edge-thickness-normal edge-pattern-solid flowchart-link LS-D LE-Virtualization" id="L-D-Virtualization-0" d="M530.449,464.707L530.449,468.873C530.449,473.04,530.449,481.373,530.449,489.707C530.449,498.04,530.449,506.373,530.449,513.823C530.449,521.273,530.449,527.84,530.449,531.123L530.449,534.407"/></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(392.16796875, 590.2067413330078)" data-id="Nixos" data-node="true" id="flowchart-Nixos-22" class="node default default flowchart-label"><rect height="51" width="80.203125" y="-25.5" x="-40.1015625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32.6015625, -18)" style="" class="label"><rect/><foreignObject height="36" width="65.203125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>Nixos</b><br /><small>Application</small></span></div></foreignObject></g></g><g transform="translate(75.390625, 745.2067413330078)" data-id="LinuxOS" data-node="true" id="flowchart-LinuxOS-23" class="node default default flowchart-label"><rect height="51" width="80.78125" y="-25.5" x="-40.390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-32.890625, -18)" style="" class="label"><rect/><foreignObject height="36" width="65.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>LinuxOS</b><br /><small>Application</small></span></div></foreignObject></g></g><g transform="translate(287.75, 745.2067413330078)" data-id="Services" data-node="true" id="flowchart-Services-24" class="node default default flowchart-label"><rect height="159" width="203.9375" y="-79.5" x="-101.96875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-94.46875, -72)" style="" class="label"><rect/><foreignObject height="144" width="188.9375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>Services</b><br /><small>Edumeet<br />NextCloud<br />secure_document_collaboration<br />Forgejo<br />webmail<br />HedgeDoc<br />project_planning</small></span></div></foreignObject></g></g><g transform="translate(496.5859375, 745.2067413330078)" data-id="FediServices" data-node="true" id="flowchart-FediServices-25" class="node default default flowchart-label"><rect height="159" width="113.734375" y="-79.5" x="-56.8671875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.3671875, -72)" style="" class="label"><rect/><foreignObject height="144" width="98.734375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>FediServices</b><br /><small>Matrix<br />Pixelfed<br />Peertube<br />Mastadon<br />Owncast<br />Castopod<br />activityPub</small></span></div></foreignObject></g></g><g transform="translate(535.625, 1168.2067413330078)" data-id="Systems" data-node="true" id="flowchart-Systems-20" class="node default default flowchart-label"><rect height="105" width="120.1875" y="-52.5" x="-60.09375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-52.59375, -45)" style="" class="label"><rect/><foreignObject height="90" width="105.1875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>Systems</b><br /><small>Storage<br />Networking<br />Operating-system<br />Virtualization</small></span></div></foreignObject></g></g><g transform="translate(857.25, 1314.2067413330078)" data-id="Storage" data-node="true" id="flowchart-Storage-21" class="node default default flowchart-label"><rect height="87" width="136.53125" y="-43.5" x="-68.265625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.765625, -36)" style="" class="label"><rect/><foreignObject height="72" width="121.53125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>Storage</b><br /><small>exclusive_filesystem<br />shared_blob Garage<br />zfs</small></span></div></foreignObject></g></g><g transform="translate(756.59375, 124.5)" data-id="I" data-node="true" id="flowchart-I-2" class="node default default flowchart-label"><rect height="33" width="113.71875" y="-16.5" x="-56.859375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-49.359375, -9)" style="" class="label"><rect/><foreignObject height="18" width="98.71875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Nix-Panel API</span></div></foreignObject></g></g><g transform="translate(756.59375, 41.5)" data-id="A" data-node="true" id="flowchart-A-1" class="node default default flowchart-label"><rect height="33" width="82.59375" y="-16.5" x="-41.296875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-33.796875, -9)" style="" class="label"><rect/><foreignObject height="18" width="67.59375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Nix-panel</span></div></foreignObject></g></g><g transform="translate(530.44921875, 448.2067413330078)" data-id="D" data-node="true" id="flowchart-D-5" class="node default default flowchart-label"><rect height="33" width="78.125" y="-16.5" x="-39.0625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-31.5625, -9)" style="" class="label"><rect/><foreignObject height="18" width="63.125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Proxmox</span></div></foreignObject></g></g><g transform="translate(679.40234375, 356.2067413330078)" data-id="B" data-node="true" id="flowchart-B-4" class="node default default flowchart-label"><rect height="51" width="103.921875" y="-25.5" x="-51.9609375" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-44.4609375, -18)" style="" class="label"><rect/><foreignObject height="36" width="88.921875"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Orchestrator<br />NixOps</span></div></foreignObject></g></g><g transform="translate(679.40234375, 235.8533706665039)" data-id="Z" data-node="true" id="flowchart-Z-3" class="node default default flowchart-label"><path transform="translate(-66.65625,-44.85337527219937)" d="M 0,12.902250181466249 a 66.65625,12.902250181466249 0,0,0 133.3125 0 a 66.65625,12.902250181466249 0,0,0 -133.3125 0 l 0,63.90225018146625 a 66.65625,12.902250181466249 0,0,0 133.3125 0 l 0,-63.90225018146625" style=""/><g transform="translate(-59.15625, -18)" style="" class="label"><rect/><foreignObject height="36" width="118.3125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">central database<br />Netbox</span></div></foreignObject></g></g><g transform="translate(313.87109375, 448.2067413330078)" data-id="E" data-node="true" id="flowchart-E-7" class="node default default flowchart-label"><rect height="33" width="135.0625" y="-16.5" x="-67.53125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-60.03125, -9)" style="" class="label"><rect/><foreignObject height="18" width="120.0625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Nix-configuration</span></div></foreignObject></g></g><g transform="translate(748.91796875, 448.2067413330078)" data-id="G" data-node="true" id="flowchart-G-9" class="node default default flowchart-label"><rect height="33" width="48.78125" y="-16.5" x="-24.390625" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-16.890625, -9)" style="" class="label"><rect/><foreignObject height="18" width="33.78125"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">DNS</span></div></foreignObject></g></g><g transform="translate(647.01953125, 448.2067413330078)" data-id="F" data-node="true" id="flowchart-F-11" class="node default default flowchart-label"><rect height="33" width="55.015625" y="-16.5" x="-27.5078125" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-20.0078125, -9)" style="" class="label"><rect/><foreignObject height="18" width="40.015625"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Email</span></div></foreignObject></g></g><g transform="translate(1067.48046875, 448.2067413330078)" data-id="J" data-node="true" id="flowchart-J-13" class="node default default flowchart-label"><rect height="33" width="68.375" y="-16.5" x="-34.1875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-26.6875, -9)" style="" class="label"><rect/><foreignObject height="18" width="53.375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">Garage</span></div></foreignObject></g></g><g transform="translate(903.30078125, 448.2067413330078)" data-id="H" data-node="true" id="flowchart-H-15" class="node default default flowchart-label"><rect height="33" width="159.984375" y="-16.5" x="-79.9921875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-72.4921875, -9)" style="" class="label"><rect/><foreignObject height="18" width="144.984375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel">IdentityManagement</span></div></foreignObject></g></g><g transform="translate(535.625, 970.2067413330078)" data-id="Core" data-node="true" id="flowchart-Core-0" class="node default default flowchart-label"><rect height="141" width="142.4375" y="-70.5" x="-71.21875" ry="0" rx="0" style="" class="basic label-container"/><g transform="translate(-63.71875, -63)" style="" class="label"><rect/><foreignObject height="126" width="127.4375"><div style="display: inline-block; white-space: nowrap;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><b>Core-services</b><br /><small>DNS<br />Email<br />identity_management<br />secret_management<br />authentication<br />SASL</small></span></div></foreignObject></g></g></g></g></g></svg>