ship the frontend as a client-rendered SPA embedded in the single kepr binary (no Node, no second process, no split proxy): kepr-ui app.config ssr:false+preset static; gen-spa-assets.mjs copies the SPA build into src/web/static/spa + generates spa_assets.zig (@embedFile map); server.zig serves /_build/* + /atlas.js from the embed and App.notFound returns index.html for client routing; dropped rawFilePage. Self-hosters point one reverse proxy at :7701 โ existing Caddy config unchanged. native+musl+test green; browser-verified home/docs/ops render w/ no console errors. deploy/Caddyfile + CUTOVER.md simplified (v1.35.0)
$ koh steal kepr.uk/kepr@1f900b0dfd21
·
parent: e1bfb0cdf052
discussion
log in to leave a comment.