Versions Compared


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


PlantUML Macro

actor users as "Internet Users" #Pink

rectangle cloud_flare as "Cloudflare" {
    card www_dns as "www. (" #PaleGreen{
    card confluence_dns as ""  #PaleGreen
    card repo_dns as ""  #PaleGreen
    card vsphere_dns as "" #PaleGreen
    card firewall_dns as "" #PaleGreen
    card frontend_dns as "" #PaleGreen

    database tenzin_io_dns as ""  #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 (" {
    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 "" #AliceBlue
        card home_confluence as "" #AliceBlue
        card home_repo as "" #AliceBlue
        card home_vsphere as "" #AliceBlue
        card home_backend as "" #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 |



  • Internet access to on-premises hosted applications.
  • An Nginx proxy that sends request to the backend host connected on the Tailscale network.
  • An Nginx proxy will route to the designated upstream server depending on the server_nameΒ  that was received.
  • A JFrog Artifactory server (JCR version) that stores artifacts generated by home lab build pipelines.
  • Repository for Docker images, Helm charts and generic blobs.
  • This Confluence server!
  • A Squid proxy server on the Tailscale network.
  • I can use Oracle Cloud's Internet gateway for web browser traffic.
  • pfSense firewall host.
  • Protects the Home Lab.
  • Currently the Home Lab's DNS forwarder and DHCP server.