// the network https://graphviz.org/docs/attrs/href/
digraph Thyme {
    compound = true;
    rankdir = LR;
    fontname="Arial";
    
    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";];
            a3 [label = "git";href = "https://git.quodatum.duckdns.org";tooltip = "Forgejo";];          
            a4 [label = "code-alt";href = "https://code-alt.quodatum.duckdns.org";tooltip = "code-server basex 10.7";];
            a5 [label = "oi";href = "https://oi.quodatum.duckdns.org";tooltip = "openwebUI fins";];
            a6 [label = "code";href = "https://code.quodatum.duckdns.org";tooltip = "code-server";];
            a7 [label = "ai";href = "https://ai.quodatum.duckdns.org";tooltip = "openwebui evo-x2";];
            a8 [label = "comfy";href = "https://comfy.quodatum.duckdns.org";tooltip = "comfy evo-x2";];
          
        }
        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";];
            b7 [label = "recipes";href = "https://recipes.orlop.duckdns.org";tooltip = "Mealie";];
        }

        oracle [label = "oracle-apr9";href = "http://132.145.60.66";tooltip = "Oracle cloud";];
    }
    
    subgraph cluster_s {
        label = "Thyme Local network";
        fontsize = "30";
        bgcolor=lightgrey;

        subgraph cluster_c {
            label = "xu4 (odroid) 192.168.1.5";
           // href="http://fins.lan:8090/system/xu4";
            tooltip="XU4 on beszel";
            bgcolor = "#FFDEAD";
            c0 [label = "caddy";];
            c1 [label = "basex-test:9090";href = "http://odroid.lan:9090";tooltip = "Basex 10.7";];
            c2 [label = "tiddy-wiki:8088";href = "http://odroid.lan:8088";tooltip = "Tiddly wiki";];
            c5 [label = "wireshark:4000";href = "http://odroid.lan:4000";tooltip = "Wire shark";];       
            c6 [label = "redis-test:6379";tooltip = "Redis API";];
            c7 [label = "pihole";href = "http://192.168.1.59/admin";tooltip = "PiHole Ad blocker";];
               
             {rank=max;
            xu4_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://xu4.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            xu4_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan:8090/system/xu4";tooltip = "beszel"; fillcolor=yellow ;];
            }
            xu4_1 -> c1[style=invis];
            xu4_2 -> c1[style=invis];
        }
        
        subgraph cluster_d {
            label = "fins 192.168.1.9";
            bgcolor = "#FFDEAD";
            d1 [label = "ollama:11434";href = "http://fins.lan:11434/";tooltip = "Ollama (AI)";];
            d2 [label = "openwebui:3001";href = "http://fins.lan:3001/";tooltip = "Open WebUI";];
            d3 [label = "basex:8888";href = "http://fins.lan:8888/";tooltip = "BaseX 10.7";];
            d4 [label = "basex:8884";href = "http://fins.lan:8884/";tooltip = "BaseX 11.3 Fusion auth";];
            d5 [label = "beszel::8090";href = "http://fins.lan:8090/";tooltip = "beszel (main)";];
            d6 [label = "shotcut::3100";href = "http://fins.lan:3100/";tooltip = "Video editor";];
            d7 [label = "fusionauth:9011";href = "http://fins.lan:9011/";tooltip = "Fusion auth";];
            d8 [label = "windows:8006";href = "http://fins.lan:8006/";tooltip = "Windows";];
         
           {rank=max;
            fins_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://fins.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            fins_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan:8090/system/fins";tooltip = "beszel"; fillcolor=yellow ;];
            }
            fins_1 -> d1[style=invis];
            fins_2 -> d1[style=invis];
            
            
        }
        subgraph cluster_e {
            label = "omv 192.168.1.6";
            bgcolor = "#FFDEAD";
            e1 [label = "forgejo:8300";href = "http://omv.lan:8300";tooltip = "tvheadend";];
            e2 [label = "jellyfin:8096";href = "http://omv.lan:8096";tooltip = "jellyfin";];
            e3 [label = "emby:8097";href = "http://omv.lan:8097";tooltip = "Emby";];
            e4 [label = "omv:81";href = "http://omv.lan:81";tooltip = "Open media vault";];
            e5 [label = "vikunja:3456";href = "http://omv.lan:3456/";tooltip = "Vikunja";];
            e6 [label = "dockge:5001";href = "http://omv.lan:5001/";tooltip = "dockge";];
            e7 [label = "immich:2283";href = "http://omv.lan:2283/";tooltip = "Photos";];
            e8 [label = "code-server4:8444";href = "http://omv.lan:8444/";tooltip = "Code";];
           {rank=max;
            omv_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://omv.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            omv_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan:8090/system/omv";tooltip = "beszel"; fillcolor=yellow ;];
            }
            omv_1 -> e1[style=invis];
            omv_2 -> e1[style=invis];
            
        }
        subgraph cluster_f {
            label = "odroid-n2 (kodi,CoreELEC) 192.168.1.4";
            rankdir="TB"   
            bgcolor = "#FFDEAD";
    
            f1 [label = "kodi:8080";href = "http://odroid-n2:8080";tooltip = "kodi";];
            f2 [label = "beszel-agent";href = "http://fins.lan:8090/system/fins";tooltip = "Beszel agent";];
            {rank=max;
            odroid_n2_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://odroid-n2.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            odroid_n2_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan: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 192.168.1.10";
            bgcolor = "#FFDEAD";
          
            g1 [label = "tvheadend:9981";href = "http://n2-plus.lan:9981";tooltip = "tvheadend";];
            g2 [label = "glance:3050";href = "http://n2-plus.lan:3050";tooltip = "glance";];
            g3 [label = "mealie:9925";href = "http://n2-plus.lan:9925";tooltip = "recipes";];

            g4 [label = "ntopng:3000";href = "http://n2-plus.lan:3000";tooltip = "ntop ng";];
            g5 [label = "code-server:8444";href = "http://n2-plus.lan:8444";tooltip = "codeserver";];
            g6 [label = "forgejo:8300";href = "http://n2-plus.lan:8300";tooltip = "forgejo";];
            {rank=max;
            n2_plus_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://n2-plus.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            n2_plus_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan:8090/system/n2-plus";tooltip = "beszel"; fillcolor=yellow ;];
            }
            n2_plus_1 -> g1[style=invis];
            n2_plus_2 -> g1[style=invis];
        }
         
        subgraph cluster_i {
            label = "evo-x2 192.168.1.11";
            bgcolor = "#FFDEAD";
            i1 [label = "openwebui:3001";href = "http://evo-x2.lan:3001";tooltip = "Openwebui";];
            i2 [label = "comfy:8188";href = "http://evo-x2.lan:8188";tooltip = "Comfy";];
            i3 [label = "llama:8877";href = "http://evo-x2.lan:8877";tooltip = "Llama";];
            {rank=max;
            evo_x2_1 [label = "p";shape = "doubleoctagon"; width=1; 
             href = "https://evo-x2.lan:9443";tooltip = "portainer"; fillcolor=yellow ;];
            evo_x2_2 [label = "b";shape = "doubleoctagon"; width=1; 
            href = "http://fins.lan:8090/system/evo-x2";tooltip = "beszel"; fillcolor=yellow ;];
            }
            evo_x2_1 -> i1[style=invis];
            evo_x2_2 -> i1[style=invis];
       }
       subgraph cluster_h {
            label = "Services";
            bgcolor = "#FFDEAD";
            h1 [label = "router 192.168.1.1";tooltip = "router";
            href="http://192.168.1.1";];
            h2 [label = "printer 192.68.1.16";
            href="http://[fe80::aa93:4aff:fe20:ec69]";tooltip = "printer";
            ];

            h3 [label = "voip 192.68.1.14";tooltip = "voip";
            ref="http://192.168.1.14";];
            
            h4 [label = "velvet 192.168.1.8";tooltip = "velvet";
            ref="http://192.168.1.8";];
       }
        
      
    }
      
    a2 -> c0;
    a4 -> e8;
    a6 -> g5;
    b1 -> c0;
    a1 -> c2;
    a3 -> e1;
    a5 -> d2;
    a7 -> i1;
    a8 -> i2;

    b2 -> f1;
    b3 -> g1;
    b4 -> e3;
    b5 -> e2;
    b6 -> e7;
    b7 -> g3;
    c0 -> d2 [style=invis;];
    c0 -> f1 [style=invis;];
    c0 -> e1 [style=invis;];
    c0 -> g1 [style=invis;];

    d5 -> f2 ;

}