Commit Graph

30 Commits

Author SHA1 Message Date
Glenn Thompson cb1d6e5596 Implement complete internet radio streaming system
- Add live streaming with Icecast2 and Liquidsoap integration
- Fix track streaming endpoints with proper RADIANCE database queries
- Implement music library management with metadata extraction
- Add web player interface with HTML5 audio controls
- Fix admin panel functionality for file management
- Create playlist system for continuous radio broadcasting
- Add live stream URL to web interface
- Support MP3 streaming at 128kbps with proper audio processing
- Enable network access for internal radio broadcasting
- Add comprehensive README.org documentation
- Create start/stop scripts for service management
- Use secure random password for streaming authentication
2025-09-11 15:30:01 +03:00
Glenn Thompson 9f1524da02 Implement complete metadata extraction and database integration
- Add taglib dependency for ID3/audio metadata extraction
- Implement extract-metadata-with-taglib function with fallback to basic metadata
- Fix database field access using gethash for RADIANCE hash table records
- Add /admin/scan-library API endpoint for triggering music library scans
- Add /admin/tracks API endpoint for retrieving stored track metadata
- Support MP3, FLAC, OGG, and WAV audio formats
- Implement recursive directory scanning with cl-fad
- Add comprehensive error handling and progress reporting
- Create music directory structure (library/, incoming/, temp/)
- Test metadata extraction workflow with sample files

All core metadata extraction and database functionality now working.
2025-09-11 10:47:57 +03:00
Glenn Thompson 1076582fb4 Implement RADIANCE database integration
- Add database collections for tracks and playlists
- Configure proper RADIANCE field types (:text, :integer)
- Add r-data-model dependency for database backend
- Fix build-executable.lisp RADIANCE environment handling
- Update admin dashboard to show real database connection status
- Database now initializes successfully on server startup
2025-09-11 08:54:12 +03:00
Glenn Thompson 1994e3b515 Merge remote-tracking branch 'upstream/main' 2025-09-10 20:28:35 +03:00
Glenn Thompson 526ae010e9 Add build-sbcl.sh to .gitignore 2025-09-10 10:51:02 -04:00
Glenn Thompson f119390459 Fix API status endpoint and update navigation
- Change API endpoint from /api/status to /status to avoid RADIANCE API call interpretation
- Update navigation link in front-page.chtml to point to new /status endpoint
- API now returns proper JSON instead of 500 error
2025-09-10 10:51:02 -04:00
Glenn Thompson 1d6bb33894 Complete CLIP templating migration
- Remove all inline HTML from asteroid.lisp
- Add CLIP templates: front-page.chtml, admin.chtml, player.chtml
- Implement data-text attribute processor for dynamic content
- Fix LASS compilation to use read-from-string
- Update all route handlers to use clip:process-to-string
- Maintain original asteroid radio functionality and styling
2025-09-10 10:51:02 -04:00
Glenn Thompson 8c9ee3cf33 Merge remote-tracking branch 'upstream/main' 2025-09-10 08:10:35 +03:00
Brian O'Reilly b14a4d5680 tiny cleanup. 2025-09-08 11:07:02 -04:00
Brian O'Reilly 6532633fe9 clean out the Makefile a bit. 2025-09-04 11:58:41 -04:00
Glenn Thompson 50afd14557 Merge branch 'main' of https://github.com/fade/asteroid 2025-09-04 18:52:00 +03:00
Glenn Thompson fa154b2fa5 Remove shebang from build-executable.lisp for --load compatibility 2025-09-04 18:51:51 +03:00
Brian O'Reilly 839b58e730 no shebang shebang 2025-09-04 11:48:19 -04:00
Glenn Thompson 7f0453207a Resolve merge conflict in build-executable.lisp 2025-09-04 18:32:04 +03:00
Glenn Thompson c95ff2f983 Update build-executable.lisp to use custom SBCL path 2025-09-04 18:28:58 +03:00
Brian O'Reilly 3854fdecac clean build shrapnel from previous runs prior to dumping our exec. 2025-09-04 11:08:07 -04:00
Brian O'Reilly ce6e5dd088 build changes, to account for differing sbcl paths
return to building with make. call sbcl without hard path, so the
normal shell expansion finds the appropriate exec for your host.
2025-09-04 10:54:28 -04:00
Glenn Thompson 77a23248f5 Fix LASS implementation: Enable dynamic CSS generation
- Fixed compile-styles function to properly use lass:compile-and-write
- LASS now generates CSS dynamically on server startup
- Removed dependency on static CSS files
- Added LASS-IMPLEMENTATION-NOTES.org documenting the fix
- Server now compiles LASS to CSS automatically on startup
- All styling preserved with proper LASS integration
2025-09-04 10:22:39 -04:00
Glenn Thompson 25f558c8e0 Fix LASS implementation: Enable dynamic CSS generation
- Fixed compile-styles function to properly use lass:compile-and-write
- LASS now generates CSS dynamically on server startup
- Removed dependency on static CSS files
- Added LASS-IMPLEMENTATION-NOTES.org documenting the fix
- Server now compiles LASS to CSS automatically on startup
- All styling preserved with proper LASS integration
2025-09-04 05:43:55 +03:00
Brian O'Reilly c0acff7d08 system building shenanigans, round one. 2025-09-01 12:46:11 -04:00
Brian O'Reilly 86011ae127 this is where the templates go.
front-page.chtml per glenneth's work.
2025-08-30 10:08:05 -04:00
Brian O'Reilly c6ebce4fdd reorganize the system around radiance specific build conventions. 2025-08-30 10:04:11 -04:00
Glenn Thompson 8298dfed4c Migrate from Hunchentoot to RADIANCE framework
Major Changes:
- Replace Hunchentoot with RADIANCE web framework
- Add Shirakumo distribution for RADIANCE access
- Implement proper RADIANCE module with define-module declaration
- Convert all route handlers to use define-page syntax
- Update route paths for subdomain routing (asteroid.localhost:8080)
- Fix API endpoint to use define-page instead of define-api
- Update server management to use radiance:startup/shutdown

Technical Improvements:
- Modular architecture with subdomain routing
- Proper RADIANCE module integration
- Updated documentation with migration details
- Fixed route syntax and parentheses issues
- Added comprehensive server startup commands

Routes now accessible at:
- Main: http://asteroid.localhost:8080/
- Admin: http://asteroid.localhost:8080/admin
- Player: http://asteroid.localhost:8080/player
- API: http://asteroid.localhost:8080/api/status
2025-08-20 09:40:14 -04:00
Glenn Thompson 4f399b95fa Add server startup commands to project documentation
- Include command-line and REPL startup instructions
- Document available server management functions
- Provide clear examples for both development and production use
2025-08-20 09:40:14 -04:00
Glenn Thompson 4bb1b1697a Implement Hunchentoot-based web server
- Replace RADIANCE with Hunchentoot web framework
- Remove unavailable dependencies (MITO, MITO-AUTH, STR, PZMQ)
- Add working web interface with main, admin, and player pages
- Implement JSON API endpoint at /api/status
- Fix HTML generation issues with proper Spinneret usage
- Add hacker-themed styling (green terminal aesthetic)
- Include comprehensive project documentation

Features:
- Web server on localhost:8080
- Admin dashboard with placeholder controls
- Web player interface (UI ready for streaming integration)
- Station status display
- Server management functions (start/stop/run)
- Upstream git remote configuration

Technical improvements:
- Direct Spinneret macro usage for reliable HTML generation
- Proper error handling and clean server shutdown
- Modular route handlers with consistent styling
- Cross-platform compatibility via app-utils
2025-08-20 09:40:14 -04:00
Glenneth 6adf23aee7
Add detailed design document for Asteroid Music radio station (#1) 2025-08-12 11:32:39 -04:00
Brian O'Reilly 7b8e727dfd git ignore tweaking. 2025-08-12 11:11:53 -04:00
Brian O'Reilly d860865c34 add the design doc. 2025-08-12 11:04:01 -04:00
Brian O'Reilly 746a6c9d72 Project skeleton. 2025-08-12 10:59:34 -04:00
Brian O'Reilly c43eb7eb97
Initial commit 2025-08-12 10:42:34 -04:00