fix(auth): subsonic_password on bootstrap + dev compose defaults #10

Merged
bvandeusen merged 262 commits from dev into main 2026-04-19 19:07:14 -04:00
bvandeusen commented 2026-04-19 18:17:01 -04:00 (Migrated from git.fabledsword.com)

Summary

Two things needed to make the dev stack testable end-to-end with real Subsonic clients:

  1. fix(auth) — bootstrap was creating password_hash + api_token but leaving subsonic_password nil, which meant Feishin/Symfonium got ErrTokenNotSupported on t+s auth. Mirror the bootstrap password into subsonic_password so the admin signs in to Subsonic clients with the same credential printed on first boot.
  2. chore(compose) — dev stack now runs with docker compose up --build and no extra env: music bind-mount, startup scan on, admin username seeded. Postgres is on a private bridge network with its host port unpublished to avoid conflicts.

Test plan

  • Fresh docker compose up --build
  • First-boot stderr shows username/password/api_token
  • Feishin at http://localhost:4533 logs in with admin + printed password
  • Native UI login works with the same password

🤖 Generated with Claude Code

## Summary Two things needed to make the dev stack testable end-to-end with real Subsonic clients: 1. **`fix(auth)`** — bootstrap was creating `password_hash` + `api_token` but leaving `subsonic_password` nil, which meant Feishin/Symfonium got `ErrTokenNotSupported` on t+s auth. Mirror the bootstrap password into `subsonic_password` so the admin signs in to Subsonic clients with the same credential printed on first boot. 2. **`chore(compose)`** — dev stack now runs with `docker compose up --build` and no extra env: music bind-mount, startup scan on, admin username seeded. Postgres is on a private bridge network with its host port unpublished to avoid conflicts. ## Test plan - [ ] Fresh `docker compose up --build` - [ ] First-boot stderr shows username/password/api_token - [ ] Feishin at `http://localhost:4533` logs in with `admin` + printed password - [ ] Native UI login works with the same password 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#10