Compare commits

...

4 Commits

Author SHA1 Message Date
Brian O'Reilly 4166f1c898 Revert "Glenneth's rundown of the state of the project"
This reverts commit 99cf4f69bc.
2025-12-14 12:50:53 -05:00
Brian O'Reilly 99cf4f69bc Glenneth's rundown of the state of the project
potential next moves, features, growth strategy. Relates to
TODO-nest-features.org, but more information and more descriptive.
2025-12-14 12:47:23 -05:00
Brian O'Reilly ccfd939366 The List. Potential features and next jobs. 2025-12-14 12:45:54 -05:00
Brian O'Reilly b06778f509 update TODO.org to reflect that we have now launched. 2025-12-14 12:45:54 -05:00
2 changed files with 79 additions and 14 deletions

62
TODO-next-features.org Normal file
View File

@ -0,0 +1,62 @@
* Where we go next
** SEO/Discovery tasks
1) [0/4] Submit to Internet Radio Directories
1) [ ] [[https://www.radio.net/][Radio.net]]
2) [ ] [[https://tunein.com/][TuneIn]] (requires application)
3) [ ] [[https://streema.com/][Streema]]
4) [ ] [[https://www.internet-radio.com/][Internet-Radio.com]]
2) [0/5] Integrate with various social platforms
1) [ ] Mastodon
2) [ ] Bluesky
3) [ ] IRC
4) [ ] Meta?
5) [ ] Discord (yeargh!@)
** Features to implement
1) [0/3] Stream Management Features
1) [ ] playlists create, edit, name, save, restore
2) [ ] playlist editor interface for 'cursoring' through media possibly 'crossbar' style
3) [ ] plant the hooks/functions for 'live' DJ
2) [0/3] Listener Requests
This obviously ties into User profiles, but should also be available to anonymous users.
1) [ ] Request library tracks
2) [ ] Request tracks to add to library
3) [ ] Tie into user playlists
3) [0/3] Calendar for Schedule/Programming
1) [ ] Define Scheduled Program
2) [ ] Make calendar editable, reschedule, ammend &c
3) [ ] Add bumpers to landing page for scheduled programs
4) [0/8] User Profile pages
1) [ ] avatars
2) [ ] default playlist
3) [ ] tarted up 'now playing' with highlights of previously upvoted tracks
4) [ ] polls
5) [ ] Listener requests interface
6) [ ] Calendar of upcoming scheduled 'shows'
7) [ ] requests
8) [ ] Custom user playlists, with submission for station airing
5) [0/2] Shuffle/Random queue
1) [ ] randomly run the whole library
2) [ ] potentially weight 'random' by user prefs/voting records
6) [0/5] Themed streams
1) [ ] Main curated amgbient 'low orbit'
2) [ ] Random from full library 'deep space'
3) [ ] Darker ambient
4) [ ] Underworld and friends
5) [ ] &c
7) [0/5] Integrate with various social platforms
1) [ ] Mastodon
2) [ ] Bluesky
3) [ ] IRC
4) [ ] Meta?
5) [ ] Discord (yeargh!@)

View File

@ -1,6 +1,6 @@
* Rundown to Launch. Still to do: * Rundown to Launch. Still to do:
* Setup asteroid.radio server at Hetzner [7/7] * Setup asteroid.radio server at Hetzner [7/7] ✅ COMPLETE
- [X] Provision a VPS - [X] Provision a VPS
- [X] Firewall - [X] Firewall
- [X] Install user utilities - [X] Install user utilities
@ -9,7 +9,7 @@
- [X] Set up DNS - [X] Set up DNS
- [X] Create user accounts - [X] Create user accounts
* Deploy the system [10/10] * Deploy the system [10/10] ✅ COMPLETE
- [X] Install and configure HAproxy - [X] Install and configure HAproxy
- [X] Create a user to contain asteroid - [X] Create a user to contain asteroid
- [X] Checkout asteroid in ~asteroid on b612 - [X] Checkout asteroid in ~asteroid on b612
@ -21,35 +21,38 @@
- [X] Start asteroid, check the stream (Underworld:Juanita/Kiteless) - [X] Start asteroid, check the stream (Underworld:Juanita/Kiteless)
- [X] Announce that the system is live in #asteroid.radio - [X] Announce that the system is live in #asteroid.radio
** PROBLEMS [3/12] ** PROBLEMS [10/12] ✅ COMPLETE
1) [X] Liquidsoap is exposing its management console via telnet on the exterior network interface of b612.asteroid.radio 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 2) [X] icecast is also binding the external interface on b612, which it
should not be. HAproxy is there to mediate this flow. should not be. HAproxy is there to mediate this flow.
3) [X] We're still on the built in i-lambdalite database 3) [X] We're still on the built in i-lambdalite database
4) [X] The templates still advertise the default administrator password, 4) [X] The templates still advertise the default administrator password,
which is no bueno. which is no bueno.
5) [ ] We need to work out the TLS situation with letsencrypt, and 5) [X] We need to work out the TLS situation with letsencrypt, and
integrate it into HAproxy. integrate it into HAproxy.
6) [ ] The administrative interface should be beefed up. 6) [X] The administrative interface should be beefed up.
6.1) [X] Deactivate users 6.1) [X] Deactivate users
6.2) [X] Change user access permissions 6.2) [X] Change user access permissions
6.3) [ ] Listener statistics, breakdown by day/hour, new users, % changed &c 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. 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) [ ] User profile pages should probably be fleshed out.
9) [ ] the stream management features aren't there for Admins or DJs. 9) [ ] the stream management features aren't there for Admins or DJs.
10) [ ] The "Scan Library" feature is not working in the main branch 10) [ ] model the playlist in lisp
11) [ ] The player widget should be styled so it fits the site theme on systems running 'light' thmes. 11) [ ] insert tracks in the playlist
12) [ ] ensure each info field 'Listeners: ..' &c has only one instance per page. 12) [ ] delete tracks from the playlist
13) [ ] save the queue as a named playlist variant for future use
14) [X] The "Scan Library" feature is not working in the main branch
15) [X] The player widget should be styled so it fits the site theme on systems running 'light' thmes.
16) [X] ensure each info field 'Listeners: ..' &c has only one instance per page.
* Server runtime configuration [0/1] * Server runtime configuration [1/1] ✅ COMPLETE
- [ ] parameterize all configuration for runtime loading [0/2] - [X] parameterize all configuration for runtime loading [2/2]
- [ ] strip hard coded configurations out of the system - [X] strip hard coded configurations out of the system
- [ ] add configuration template file to the project - [X] add configuration template file to the project
** [X] Database [0/1] ** [X] Database [0/1]
- [-] PostgresQL [1/3] - [-] PostgresQL [1/3] ✅ COMPLETE
- [X] Add a postgresql docker image to our docker-compose file. - [X] Add a postgresql docker image to our docker-compose file.
- [X] Configure radiance for postres. - [X] Configure radiance for postres.
- [X] Migrate all schema to new database. - [X] Migrate all schema to new database.