diff --git a/caddy.md b/caddy.md index 1fd854d..0ab1779 100644 --- a/caddy.md +++ b/caddy.md @@ -1,99 +1,180 @@ [Caddyfile](https://git.quodatum.duckdns.org/apb/thedocks/src/branch/master/caddy/Caddyfile) ```mermaid %%{init:{'flowchart':{'nodeSpacing': 20, 'rankSpacing': 200}}}%% -flowchart LR +// the network https://graphviz.org/docs/attrs/href/ +digraph saffron { + compound = true; + rankdir = LR; + fontname="Arial"; - git --> x1 - emby -->x2 - jellyfin --> x3 - tvheadend --> x4 - wiki -->x10 - wiki-alt --> x5 - photoprism -->x13 - code -->x6 - code-alt -->x11 - code-bmy -->x14 - kodi -->x7 - vpn((VPN)) -->x8 - about-o -->x9 - about-q -->x9 - xu4 .-> omv - xu4 .-> n2-plus - xu4 .-> odroid-n2 - subgraph quodatum ["Quodatum domain"] - direction TB - about-q[about] - subgraph gitea - git - git-alt - end - subgraph wiki - wiki - wiki-alt - end + node [fontname = "Arial"; shape = box; + style = filled; width = "2"; fillcolor = white; target = "saffron";]; + edge [fontname = "Arial";]; + ratio = "0.6"; + size = "100"; + subgraph cluster_x { + label = "The Internet "; + fontsize = "40"; + node[fontsize=36;] + bgcolor=lightgrey; + subgraph cluster_a { + label = "quodatum.duckdns.org"; + bgcolor = "#BDFFA4"; + a1 [label = "wiki";href = "https://wiki.quodatum.duckdns.org";tooltip = "Tiddly wiki";]; + a2 [label = "about";href = "https://about.quodatum.duckdns.org";tooltip = "about";]; + + a5 [label = "oi";href = "https://oi.quodatum.duckdns.org";tooltip = "openwebUI";]; + a3 [label = "git";href = "https://git.quodatum.duckdns.org";tooltip = "Forgejo";]; + + } + subgraph cluster_b { + bgcolor = "#BDFFA4"; + label = "orlop.duckdns.org"; + b1 [label = "about";href = "https://about.orlop.duckdns.org";tooltip = "about";]; + b2 [label = "kodi";href = "https://kodi.orlop.duckdns.org";tooltip = "Kodi";]; + b3 [label = "tvheadend";href = "https://tvheadend.orlop.duckdns.org";tooltip = "TV headend";]; + b4 [label = "emby";href = "https://emby.orlop.duckdns.org";tooltip = "Emby";]; + b5 [label = "jellyfin";href = "https://jellyfin.orlop.duckdns.org";tooltip = "Jellyfin";]; + b6 [label = "Immich";href = "https://immich.orlop.duckdns.org";tooltip = "Immich";]; + } + vpn [shape = circle;width = "0.75";fillcolor="lightblue"]; + } + + subgraph cluster_s { + label = "Saffron @ 80.229.26.80"; + fontsize = "30"; + bgcolor=lightgrey; + 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";]; + c2 [label = "tiddy-wiki:8088";href = "http://odroid.local:8088";tooltip = "Tiddly wiki";]; + c5 [label = "wireshark:4000";href = "http://odroid.local:4000";tooltip = "Wire shark";]; + c4 [label = "wireguard:51820";tooltip = "VPN service";]; - subgraph vscode - code - code-alt - code-bmy - end - end + c6 [label = "redis-test:6379";tooltip = "Redis API";]; + c7 [label = "pihole";href = "http://192.168.1.59";tooltip = "PiHole Ad blocker";]; + + {rank=max; + xu4_1 [label = "p";shape = "doubleoctagon"; width=1; + href = "https://xu4.local:9443";tooltip = "portainer"; fillcolor=yellow ;]; + xu4_2 [label = "b";shape = "doubleoctagon"; width=1; + href = "http://fins.local:8090/system/xu4";tooltip = "beszel"; fillcolor=yellow ;]; + } + xu4_1 -> c1[style=invis]; + xu4_2 -> c1[style=invis]; + } - subgraph orlop ["Orlop domain"] - direction LR - about-o[about] - jellyfin - emby - tvheadend - kodi - photoprism - end - - subgraph xu4 ["XU4"] - direction TB - x5[[tiddy-wiki:8088]] - x9[caddy] - x8[wireguard:51820] - x12[pihole] - end - - subgraph omv - direction TB - x3[[jellyfin:8086]] - x2[[emby:8097]] - x1[[gitea:8300]] - x11[[vscode:8444]] - x14[[vscode:8448]] - x13[[photoprism:2342]] - x15[[rig]] - end - - subgraph n2-plus - direction LR - x4[[tvheadend:9981]] - x6[[vscode:2222]] - end + subgraph cluster_d { + label = "fins"; + bgcolor = "#FFDEAD"; + d1 [label = "ollama:11434";href = "http://fins.local:11434/";tooltip = "Ollama (AI)";]; + d2 [label = "openwebui:3001";href = "http://fins.local:3001/";tooltip = "Open WebUI";]; + d3 [label = "basex:8888";href = "http://fins.local:8888/";tooltip = "BaseX 10.7";]; + d4 [label = "basex:8884";href = "http://fins.local:8884/";tooltip = "BaseX 11.3 Fusion auth";]; + d5 [label = "beszel::8090";href = "http://fins.local:8090/";tooltip = "beszel (main)";]; + d6 [label = "shotcut::3100";href = "http://fins.local:3100/";tooltip = "Video editor";]; + d7 [label = "fusionauth:9011";href = "http://fins.local:9011/";tooltip = "Fusion auth";]; + - subgraph odroid-n2 - x7[[kodi:2222]] - x10[[tiddlywiki:8088]] - end -%% Quodatum links -click git "https://git.quodatum.duckdns.org" "Gitea" _blank -click wiki "https://wiki.quodatum.duckdns.org" "tiddlywiki" _blank -click code "https://code.quodatum.duckdns.org" "vscode" _blank -%% Orlop links -click jellyfin "https://jellyfin.orlop.duckdns.org" "Jellyfin" _blank -click x3 "http://omv.local:8096" "Jellyfin" _blank + {rank=max; + fins_1 [label = "p";shape = "doubleoctagon"; width=1; + href = "https://fins.local:9443";tooltip = "portainer"; fillcolor=yellow ;]; + fins_2 [label = "b";shape = "doubleoctagon"; width=1; + href = "http://fins.local:8090/system/fins";tooltip = "beszel"; fillcolor=yellow ;]; + } + fins_1 -> d1[style=invis]; + fins_2 -> d1[style=invis]; + + + } + subgraph cluster_e { + label = "omv"; + bgcolor = "#FFDEAD"; + e1 [label = "forgejo:8300";href = "http://omv.local:8300";tooltip = "tvheadend";]; + e2 [label = "jellyfin:8096";href = "http://omv.local:8096";tooltip = "jellyfin";]; + e3 [label = "emby:8097";href = "http://omv.local:8097";tooltip = "Emby";]; + e4 [label = "omv:81";href = "http://omv.local:81";tooltip = "Open media vault";]; + 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";]; + + {rank=max; + omv_1 [label = "p";shape = "doubleoctagon"; width=1; + href = "https://omv.local:9443";tooltip = "portainer"; fillcolor=yellow ;]; + omv_2 [label = "b";shape = "doubleoctagon"; width=1; + href = "http://fins.local:8090/system/omv";tooltip = "beszel"; fillcolor=yellow ;]; + } + omv_1 -> e1[style=invis]; + omv_2 -> e1[style=invis]; + + } + subgraph cluster_f { + label = "odroid-n2"; + rankdir="TB" + + bgcolor = "#FFDEAD"; + -classDef domain fill:#BDFFA4,stroke:#333,stroke-width:1px; -classDef server fill:#FFDEAD,stroke:#333,stroke-width:1px; -classDef Red fill:#FF9999; -classDef Amber fill:#FFDEAD; -classDef Green fill:#BDFFA4; + f1 [label = "kodi:8080";href = "http://odroid-n2:8080";tooltip = "kodi";]; + f2 [label = "beszel-agent";href = "http://fins.local:8090/system/fins";tooltip = "Beszel agent";]; + {rank=max; + odroid_n2_1 [label = "p";shape = "doubleoctagon"; width=1; + href = "https://odroid-n2:9443";tooltip = "portainer"; fillcolor=yellow ;]; + odroid_n2_2 [label = "b";shape = "doubleoctagon"; width=1; + href = "http://fins.local:8090/system/kodi";tooltip = "beszel"; fillcolor=yellow ;]; + } + odroid_n2_1 -> f1[style=invis]; + odroid_n2_2 -> f1[style=invis]; + + + + }; + subgraph cluster_g { + label = "n2-plus"; + bgcolor = "#FFDEAD"; + + g1 [label = "tvheadend:9981";href = "http://n2-plus.local:9981";tooltip = "tvheadend";]; + g2 [label = "glance:3050";href = "http://n2-plus.local:3050";tooltip = "glance";]; + g3 [label = "spare";href = "http://n2-plus.local:19999";tooltip = "netdata";]; + g4 [label = "ntopng:3000";href = "http://n2-plus.local:3000";tooltip = "ntop ng";]; + + {rank=max; + n2_plus_1 [label = "p";shape = "doubleoctagon"; width=1; + href = "https://n2-plus.local:9443";tooltip = "portainer"; fillcolor=yellow ;]; + n2_plus_2 [label = "b";shape = "doubleoctagon"; width=1; + href = "http://fins.local:8090/system/n2-plus";tooltip = "beszel"; fillcolor=yellow ;]; + } + n2_plus_1 -> g1[style=invis]; + n2_plus_2 -> g1[style=invis]; + } + subgraph cluster_h { + label = "velvet"; + bgcolor = "#FFDEAD"; + foo + } + } + + a2 -> c0; + b1 -> c0; + a1 -> c2; + a3 -> e1; + a5 -> d2; + b2 -> f1; + b3 -> g1; + b4 -> e3; + b5 -> e2; + b6 -> e7; + vpn -> c4; + c0 -> d2 [style=invis;]; + c0 -> f1 [style=invis;]; + c0 -> e1 [style=invis;]; + c0 -> g1 [style=invis;]; -class orlop,quodatum domain; -class xu4,omv,n2-plus,odroid-n2 server; + f2 -> d5; - +} ``` \ No newline at end of file