lab

self hosted hub

lab · infrastructure · static site

soupnode.top is an artist portfolio that lives on a home server. Public pages are static HTML. There is no rented SaaS CMS in the middle.

Why host it here

Running the site at home keeps the portfolio close to studio practice. Projects and lab notes stay in one git repo. Publishing is a generate step plus a copy to the live nginx tree, not a mystery deploy button on someone else’s platform.

Edit, draft, approve, publish

Content lives as JSON for projects and lab items. Kåre edits in a browser editor that is reachable only on the Tailscale network. David and agents use the soupnode CLI for the same loop: draft, approve, then publish. Drafts stay out of the public grid until they are approved.

Static generate

soupnode generate rebuilds HTML from the JSON, refreshes cache busting query strings on images, and can regenerate the CV PDF. soupnode publish rsyncs the result to staging and to the live public tree. Origin holds the hub repo; the live www folder is a promote target, not a second git checkout.

What stays private

The public site is the portfolio and lab. Studio tools (the editor, assistant chat, and other home services) stay on Tailscale. That split is intentional: the internet sees a quiet static site; the workshop stays on the private network.

Gallery: ATX breakout with relay and Arduino, HP 800W PSU with breakout board, and the DIY hub shelf with GPUs, motherboard, PDU, and network switch.

https://soupnode.top/