Skip to content

v1.0.0

Choose a tag to compare

@nilicule nilicule released this 20 May 21:37
· 9 commits to main since this release

Added

Admin console — full config editor

  • New #admin/config view with per-section editors for server, transcode, mounts, relays, autodjs, and users. Saves go through PUT /api/config/<section>, round-trip via toml_edit to preserve comments and key order, write atomically, and apply through the same diff pipeline SIGHUP uses (sharing a write lock to avoid races).
  • Mounts / relays / autodjs / users use a collapsed list with one-at-a-time inline editing and an in-row confirm prompt for removal. Blank password fields resolve to the existing values server-side, so editing one entry doesn't require re-entering everyone else's secrets.
  • AutoDJ folders are picked via a server-side filesystem browser (BROWSE…); a browser file picker would point at the operator's machine, not the server.
  • apply_config now adds and removes mounts at runtime to match [[mounts]] — previously only metadata updates worked without a restart.

Role-based access

  • [[auth.users]] entries gain role = "admin" | "operator" (missing role defaults to admin, so existing configs upgrade cleanly). Operators can edit mounts, autodjs, and relays; admin-only sections are hidden from their sidebar, write attempts return 403, and GET /api/config strips those fields server-side.
  • The logged-in admin can't remove or demote themselves, and the user list is rejected if it contains no admins at all.

Fixed

  • Listener disconnects (broken pipe / connection reset) now log at debug instead of warn — that's normal player behavior, not a server problem.