The previous regex routed all methods for /login to the backend.
A browser navigating to /login sends GET, which returned 405 because
the backend only has POST /login. Now GET goes to the React SPA.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously AUDIOFILES_PATH=/media was mounted as /audiofiles in the
container, so the file browser showed /audiofiles instead of /media.
Now the host path is preserved inside the container, so /media stays
/media. The default (./audiofiles) still maps to /audiofiles.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Sidebar: show Podcasts section only when podcast libraries exist;
show hint text when no libraries are configured yet
- Admin: extract LibraryForm component, add edit (Pencil) button per
library with inline form and PATCH support
- Backend: add media_type to LibraryUpdate schema and PATCH handler
- FileBrowser: add quick-access shortcuts (/audiofiles /data /media /),
show all files+dirs so users can confirm correct folder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Toggle: add left-0.5 anchor so translate works correctly
- FileBrowser: show files (grayed out) alongside dirs so users can
confirm they are in the right folder before selecting it
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
passlib 1.7.4 runs an internal bcrypt wrap-bug test on startup that
fails with bcrypt 4.x because it uses a >72 byte test password.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- On first start (no users in DB), show a setup page in the web UI
to create the admin account instead of reading credentials from .env
- New public endpoints: GET /api/setup/status, POST /api/setup
- New admin endpoint: GET /api/filebrowser?path=... for directory listing
- FileBrowser modal component with navigation, used in Admin > Libraries
- Remove _seed_admin / _seed_default_library from server startup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Login.tsx: Eye/EyeOff toggle button on password field
- main.py: _seed_admin() now updates stored bcrypt hash when ENV password changed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>