Skip to content

Latest commit

 

History

History
104 lines (92 loc) · 4.89 KB

File metadata and controls

104 lines (92 loc) · 4.89 KB

Rundown to Launch. Still to do:

Setup asteroid.radio server at Hetzner [7/7] ✅ COMPLETE

  • [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 [10/10] ✅ COMPLETE

  • [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 [10/12] ✅ COMPLETE

  1. [X] Liquidsoap is exposing its management console via telnet on the exterior network interface of b612.asteroid.radio
  2. [X] icecast is also binding the external interface on b612, which it should not be. HAproxy is there to mediate this flow.
  3. [X] We’re still on the built in i-lambdalite database
  4. [X] The templates still advertise the default administrator password, which is no bueno.
  5. [X] We need to work out the TLS situation with letsencrypt, and integrate it into HAproxy.
  6. [X] The administrative interface should be beefed up. 6.1) [X] Deactivate users 6.2) [X] Change user access permissions 6.3) [ ] Listener statistics, breakdown by day/hour, new users, % changed &c
  7. [X] When the player is paused, there are pretty serious stream sync issues in the form of stuttering for some time after the stream is unpaused.
  8. [ ] the stream management features aren’t there for Admins or DJs.
  9. [ ] model the playlist in lisp
  10. [ ] insert tracks in the playlist
  11. [ ] delete tracks from the playlist
  12. [ ] save the queue as a named playlist variant for future use
  13. [X] The “Scan Library” feature is not working in the main branch
  14. [X] The player widget should be styled so it fits the site theme on systems running ‘light’ thmes.
  15. [X] ensure each info field ‘Listeners: ..’ &c has only one instance per page.

Server runtime configuration [1/1] ✅ COMPLETE

  • [X] parameterize all configuration for runtime loading [2/2]
    • [X] strip hard coded configurations out of the system
    • [X] add configuration template file to the project

[X] Database [0/1]

  • [-] PostgresQL [1/3] ✅ COMPLETE
    • [X] Add a postgresql docker image to our docker-compose file.
    • [X] Configure radiance for postres.
    • [X] 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)