-
v2026.05.08.4 Stable
released this
2026-05-08 22:20:03 -04:00 | 976 commits to main since this releaseRemoves the bootstrap-admin path. Self-registration is now the only way to create the first admin on a fresh deploy.
What changed
internal/auth/bootstrap.goand its test — goneauth.Bootstrap()startup call removed fromcmd/minstrel/main.goAuthConfig+AdminBootstrapConfigstructs removed frominternal/configMINSTREL_AUTH_ADMIN_USERNAME/MINSTREL_AUTH_ADMIN_PASSWORDenv vars no longer readauth:block removed fromconfig.example.yaml- Bootstrap-related comments removed from
docker-compose.yml - README quickstart now points at
/registerinstead of "watch logs for password"
Net diff: +1 / -303 across 8 files.
New first-run flow
docker compose up- Visit
http://<host>/register - First user on an empty
userstable becomes admin automatically (existingCreateUserFirstAdminRacepath — now the only path)
Operator notes
- Existing instances that already have a bootstrap admin in the DB: the row sticks around (no migration), and the admin still works. To get rid of it, register a new admin via
/register(will need an invite token, sinceusersis non-empty), promote them in/admin/users, then delete the bootstrap account. - Fresh instances (including the prod instance reset for this release): just visit
/register. - Default registration mode stays
invite_onlyafter user #1 — generate invite tokens from/admin/usersfor additional users. UI for switching toopenregistration is a small follow-up task. - Recovery story: forgotten admin password on a single-admin instance now requires Fable #321 (CLI password reset, not yet shipped). Worth scheduling soon. The bootstrap path didn't help here either — it only fired on empty
users.
Downloads