96 lines
4.2 KiB
Org Mode
96 lines
4.2 KiB
Org Mode
* 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
|
|
|
|
* Deploy the system
|
|
- [X] Install and configure HAproxy
|
|
- [X] Create a user to contain asteroid
|
|
- [X] Checkout asteroid in ~asteroid on b612
|
|
- [X] Build the docker containers
|
|
- [X] Build asteroid from the sources
|
|
- [X] Configure HAproxy to front http://asteroid.radio/ -> http://localhost:8080/
|
|
- [X] Set ASTEROID_STREAM_URL in ~asteroid/.bashrc
|
|
- [X] Start the docker containers for liquidsoap, icecast, and postgresql
|
|
- [X] Start asteroid, check the stream (Underworld:Juanita/Kiteless)
|
|
- [X] Announce that the system is live in #asteroid.radio
|
|
|
|
** PROBLEMS
|
|
1) Liquidsoap is exposing its management console via telnet on the exterior network interface of b612.asteroid.radio
|
|
2) icecast is also binding the external interface on b612, which it
|
|
should not be. HAproxy is there to mediate this flow.
|
|
3) We're still on the built in i-lambdalite database
|
|
4) The templates still advertise the default administrator password,
|
|
which is no bueno.
|
|
5) We need to work out the TLS situation with letsencrypt, and
|
|
integrate it into HAproxy.
|
|
6) the administrative interface should be beefed up.
|
|
5.1) Deactivate users
|
|
5.2) Change user access permissions
|
|
7) User profile pages should probably be fleshed out.
|
|
8) the stream management features aren't there for Admins or DJs.
|
|
9) The "Scan Library" feature is not working in the main branch
|
|
|
|
* 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)
|