Table of Contents

System Architecture

flowchart TB
    Users([Users])
    Devs([Developers])

    subgraph Linode["Linode Cloud"]
        NB[NodeBalancer<br/>:80 / :443]

        subgraph VMs["Linode VMs"]
            subgraph K3s["K3s Cluster"]
                Traefik[Traefik Ingress<br/>TLS termination]
                Apps[Application Workloads]
                Gitea[Gitea<br/>Source Control]
                Runners[Gitea Actions<br/>Runners]
                Nexus[Nexus<br/>Docker Registry]
            end
        end
    end

    Users -->|HTTPS| NB
    NB --> Traefik
    Traefik --> Apps
    Traefik --> Gitea
    Traefik --> Nexus

    Devs -->|git push| Gitea
    Gitea -->|trigger workflow| Runners
    Runners -->|push image| Nexus
    Nexus -->|pull image| Apps
    Runners -->|kubectl apply| K3s