Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[Unreleased]
[0.1.3] - 2026-09-28
[0.1.2] - 2026-09-28
- Docs site, About page with component diagrams, expiry label fix
Added
- Docs site:
index.mdwith the component structure, theupsequence and the demo workflow as d2 diagrams, plus decision tables;task docs:buildrenders it,tp pagespreviews it, deployed to gobank-deploy.docs.bytestone.uk. - About page on the ui with the same three diagrams, embedded in the binary so the appliance shows them.
[0.1.1] - 2026-09-27
- Route 53 hostnames, version comparison, demo workflow with automatic removal
Added
- Demo workflow, the first on gobank-workflow's pipeline runner: "remove
after" on the Create forms makes a temporary environment that is created
with its expiry as a server label, served until then and removed. The
page reconciles every minute, resuming the workflow for any temporary
server without a job, so a restart does not leave one billing. Recent
workflow runs are listed on the page;
cmd/flowd2prints the d2. - Versions:
statusand the page report the version each environment is running (from the demo's page footer) against what the nextupwould deploy (the store's latest, or the checkout'sgit describe), and flag an environment that is behind. - Route 53: each environment is
<env>.gobank.drummonds.net, an A record set onup(redeploy repairs it) and removed ondown;statusand the page link by hostname.-dns DOMAIN/-dns ""; skipped with a notice when there are no AWS credentials.
[0.1.0] - 2026-09-26
- ui lists the project's gobank servers and adds environments by name; demo back in the default
Added
uilists everygobank-*server in the Hetzner project alongside the-envsnames, and has a New environment form (name + scale) so the list is no longer fixed at startup.demois back in the default-envs(prod,preprod,demo).buildsubcommand: cmd/demo for linux amd64 and arm64 into a release store (build/releases/<version>/demo-linux-<goarch>pluslatest), andtask pushto copy the latest into hydrogen's/perm/gobank-deploy/releases.-store DIR: deploy from a release store instead of building, for a host with no toolchain. Create / Redeploy become available on the page as soon as the store has a release (checked per request, no restart).GOBANK_DEPLOY_SSH_KEY: base64 of a PEM private key to ssh with, for a host with no agent and no ~/.ssh (the appliance).uion a host that cannot buildcmd/demo(no Go toolchain, or no gobank checkout at-src) shows status and offers Down only, says why, and refuses create / redeploy requests with 403. This is the mode for the hydrogen gokrazy appliance.upwrites/etc/gobank/deploy.envwithGOBANK_MEMORY_LIMITsized to half the box's RAM (the rest is PostgreSQL's), and makes the unit read it; works on boxes created before the unit had theEnvironmentFileline.ui: lofigui page listing each environment's state with Create (scale preset, marked as starting billing), Redeploy, Down (confirmation tick required) and Cancel; one job per environment, log on the page, polling while a job runs.up,down,statusfor a named environment on Hetzner Cloud, ported from gobank'sdeploy/hetznerscripts: explicit-creategate, scale presets, cloud-init Postgres setup, binary install over ssh, HTTP check.- Orchestration in
internal/deploybehindCloud,Dialer,BuilderandProberinterfaces, tested with fakes. - Project-local host-key pinning with accept-new semantics and forget-on-
recreate, tested. Negotiates the key types already pinned for a host (as
OpenSSH does) and understands hashed entries, so a manual
sshagainst the same file does not turn into a false "host key changed". - ssh credentials: the agent named by
IdentityAgentin~/.ssh/config, the default agent and the key files are merged into one publickey method (x/crypto/ssh tries each method name once). TestDialReal, gated byGOBANK_DEPLOY_SSH_IP, exercises the dialer against a live server.