* Rundown to Launch. Still to do: * Setup asteroid.radio server at Hetzner [7/7] - [X] Provision a VPS - [X] Firewall - [X] Install user utilities - [X] Install base toolchain - [X] Install lisp - [X] Set up DNS - [X] Create user accounts * Server runtime configuration [0/1] - [ ] parameterize all configuration for runtime loading [0/2] - [ ] strip hard coded configurations out of the system - [ ] add configuration template file to the project ** [ ] Database [0/1] - [-] PostgresQL [1/3] - [X] Add a postgresql docker image to our docker-compose file. - [ ] Configure radiance for postres. - [ ] Migrate all schema to new database. ** [X] Page Flow [2/2] ✅ COMPLETE - [X] When a user logs in, their user profile page should become the root node of the app in their view. - [X] When the admin user logs in, their view should become the admin profile page which should have panels for adminstering various aspects of the station. note: Front-page conditional elements working correctly - nav links display based on authentication status and user role (Profile/Admin/Logout for logged-in users, Login/Register for anonymous users). ** [X] Templates: move our template hyrdration into the Clip machinery [4/4] ✅ COMPLETE - [X] Admin Dashboard [2/2] - [X] System Status [4/4] - [X] Server Status (Shows 🟢 Running) - [X] Database Status (Shows connection status) - [X] Liquidsoap Status (Checks Docker container) - [X] Icecast Status (Checks Docker container) - [X] Music Library Management [3/3] - [X] Add Music Files (Upload and scan working) - [X] Track Management (Pagination complete - 20 tracks per page, 4 pages total) Pagination implemented with configurable items per page (10/20/50/100). - [X] Player Control (Play/pause/stop working with HTML5 audio) play/pause/edit &etc - [X] User Management (Moved to separate /admin/users page) - [X] Live Stream - [X] Now Playing (Working correctly - displays artist and track) - [X] Front Page [3/3] - [X] Station Status (Shows live status, listeners, quality) - [X] Live Stream (Green indicator, quality selector working) - [X] Now Playing (Updates every 10s from Icecast, no HTML bugs) - [X] Web Player [5/6] ⚠️ MOSTLY COMPLETE (Playlists limited by database) - [X] Live Radio Stream (Working with quality selector) - [X] Now Playing (Updates correctly from Icecast) - [X] Personal Track Library (Pagination: 20 tracks/page, search working) - [X] Audio Player (Full controls: play/pause/prev/next/shuffle/repeat/volume) - [ ] Playlists (PARTIAL - Can create/view, but cannot save/load tracks - requires PostgreSQL) - [X] Create empty playlists - [X] View playlists - [ ] Save queue as playlist (tracks don't persist - db:update fails) - [ ] Load playlists (playlists are empty - no tracks saved) - [ ] Edit playlists (requires PostgreSQL) - [X] Play Queue (Add tracks, clear queue - save as playlist blocked by database)