Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
@startuml

actor users as "Internet Users" #Pink

rectangle cloud_flare as "Cloudflare" {
    card www_dns as "www. (tenzin.io)" #PaleGreen{
    card confluence_dns as "confluence.tenzin.io"  #PaleGreen
    card repo_dns as "repo.tenzin.io"  #PaleGreen
    card vsphere_dns as "vs.tenzin.io" #PaleGreen
    card firewall_dns as "firewall.tenzin.io" #PaleGreen
    card frontend_dns as "frontend.tenzin.io" #PaleGreen

    database tenzin_io_dns as "tenzin.io"  #PaleGreen
    www_dns .. tenzin_io_dns
    vsphere_dns .. tenzin_io_dns
    confluence_dns .. tenzin_io_dns
    repo_dns .. tenzin_io_dns
    firewall_dns .. tenzin_io_dns
    frontend_dns ... tenzin_io_dns
    confluence_dns --> frontend_dns
    repo_dns --> frontend_dns
    vsphere_dns --> frontend_dns

}

users --> cloud_flare

rectangle github as "GitHub (tenzin.io)" {
    database github_pagesrepo as "GitHub PagesRepos" #violet
    database actions_runner as "GitHub Actions" #violet
    www_dns ---> github_pages
}

rectangle oracle_cloud as "Oracle Cloud Infra (tenzin)" {
    node oci_squid as "oci-squid" #AliceBlue
    node frontend_1 as "frontend-1" #AliceBlue
    node runner_1 as "runner-1" #AliceBlue
    node runner_2 as "runner-2" #AliceBlue
    actions_runner --> runner_1
    actions_runner --> runner_2
    frontend_dns ---> frontend_1
}

rectangle home_lab as "Home Lab" #AliceBlue {
    actor home_user as "Home Users" #AliceBlue
    rectangle pfsense as "pfSense Firewall" {
        node firewall as "firewall" #Pink
        database tenzin_io_dns_home as "tenzin.io" #AliceBlue
        
        card home_confluence as "confluence.tenzin.io" #AliceBlue
        card home_repo as "repo.tenzin.io" #AliceBlue
        card home_vsphere as "vs.tenzin.io" #AliceBlue
        card home_backend as "backend.tenzin.io" #AliceBlue
        home_confluence .. tenzin_io_dns_home
        home_repo .. tenzin_io_dns_home
        home_vsphere .. tenzin_io_dns_home
        home_backend ... tenzin_io_dns_home
        
    } 
    firewall_dns ---> firewall
    rectangle vsphere_2 as "vSphere Host" {
        node confluence as "confluence-1" #AliceBlue
        node repo as "repo-1" #AliceBlue
        node backend_1 as "backend-1" #AliceBlue

        node runner_3 as "runner-3" #AliceBlue
        actions_runner --> runner_3

        home_backend <-- home_confluence
        home_backend <-- home_repo
        home_backend <-- home_vsphere
        backend_1 <-- home_backend


        repo -- backend_1
        confluence -- backend_1
    }
    home_user -> pfsense
}

cloud tailscale_net as "Tailscale Network" #AliceBlue
tailscale_net -- confluence
tailscale_net -- repo
frontend_1 --> tailscale_net
oci_squid -- tailscale_net
runner_1 -- tailscale_net
runner_2 -- tailscale_net
backend_1 <-- tailscale_net

legend right
| Color | Type |
|<#AliceBlue>| Home lab|
|<#Pink>| Firewall |
|<#violet>| GitHub|
|<#PaleGreen>| Cloudflare |
endlegend

@enduml

...


HostRepositoryDescription
1frontend-1https://github.com/tenzin-io/frontend
  • Internet access to on-premises hosted applications.
  • An Nginx proxy that sends request to the backend host connected on the Tailscale network.
2backend-1https://github.com/tenzin-io/backend
  • An Nginx proxy will route to the designated upstream server depending on the server_nameΒ  that was received.
3repo-1https://github.com/tenzin-io/repo
  • A JFrog Artifactory server (JCR version) that stores artifacts generated by home lab build pipelines.
  • Repository for Docker images, Helm charts and generic blobs.
4confluence-1https://github.com/tenzin-io/confluence
  • This Confluence server!
5oci-squidhttps://github.com/tenzin-io/squid
  • A Squid proxy server on the Tailscale network.
  • I can use Oracle Cloud's Internet gateway for web browser traffic.
6firewallhttps://www.pfsense.org/download
  • pfSense firewall host.
  • Protects the Home Lab.
  • Currently the Home Lab's DNS forwarder and DHCP server.

...