tenison.cc
The homepage and generated CV-style sites are public. This is where you can see the design, browse the generated site examples, and understand the project without signing in.
Demo Overview
The public side of tenison.cc is intentionally open: it shows the CV, generated site examples, and the high-level architecture. The provisioning workflow itself lives behind Cloudflare Access on backstage.tenison.cc.
Site Model
The demo is split into a public entry point, a protected internal developer portal, and runtime services deployed into local Kubernetes.
The homepage and generated CV-style sites are public. This is where you can see the design, browse the generated site examples, and understand the project without signing in.
Backstage is the authenticated control plane. It is protected by Cloudflare Access and serves as the single portal for templates, workflows, and platform entry points.
Separate backend services handle different provisioning paths, including Node-based CV sites and static-site generation. Backstage orchestrates them, but they stay off the public edge.
Template inputs become Git-managed changes. GitHub Actions generates or updates manifests, and Argo CD deploys them into the local k3s workload plane.
Provisioning Flow
The workflow is designed to look like a slim internal developer platform rather than a single-purpose app.
Backstage exposes multiple golden paths through templates. In this demo, one path provisions a Node runtime and another provisions a static CV site.
The Backstage backend handles user input and hands off to the correct internal API. That keeps the portal unified while still allowing multiple provisioning backends behind it.
Generated files are committed through GitHub automation, then reconciled by Argo CD. The resulting site becomes available under the public hostname once the deployment is healthy.
Requesting Access
Access is intentionally limited. The public site is open; the provisioning portal is not.