// active · python · python · devops · htmx · fastapi

devops-dashboardv0.1

A FastAPI + HTMX ops dashboard for the home server. Surfaces CI runs, live container stats, project board, and Caddy subdomain health checks with HTMX polling.

Built as a daily driver for keeping tabs on personal infrastructure without opening five browser tabs.

Data sources: GitHub Actions API (CI runs, open PRs, repo stats), Docker socket (container stats via subprocess), Caddyfile parser with HTTP health checks, GitHub Projects v2 via GraphQL.

Stack: FastAPI + Jinja2 on the server. HTMX polling on the client — no JavaScript framework, partial swaps every 10–30 seconds depending on panel. Design system is draftspace-ui, a purpose-built design token kit.

The interesting part is the ChoiceLoader pattern that lets the app override specific templates from the shared design system while inheriting everything else — so the devops-specific views (CI runs grid, Docker container cards) live alongside the base components without forking.

_env = Environment(
    loader=ChoiceLoader([
        FileSystemLoader("devops/templates"),
        FileSystemLoader("draftspace-ui/templates"),
    ]),
)

Lives in atlas-apps/devops. Runs locally on arch, served behind Caddy.

online ~/projects/devops-dashboard UTF-8 html5
// © 2026 ·