asteroid/docs
Glenn Thompson 63c32c25f3 Add listener statistics feature design document 2025-12-10 11:11:32 -05:00
..
API-ENDPOINTS.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
API-REFERENCE.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
DEVELOPMENT.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
DOCKER-STREAMING.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
INSTALLATION.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
LISTENER-STATISTICS.org Add listener statistics feature design document 2025-12-10 11:11:32 -05:00
PARENSCRIPT-EXPERIMENT.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
PLAYLIST-SYSTEM.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
POSTGRESQL-SETUP.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
PROJECT-HISTORY.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
PROJECT-OVERVIEW.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
README.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
STREAM-CONTROL.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
TESTING.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
TRACK-PAGINATION-SYSTEM.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
USER-MANAGEMENT-SYSTEM.org feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00

README.org

Asteroid Radio - Documentation Index

Welcome to Asteroid Radio Documentation

Asteroid Radio is a modern internet radio platform designed for developers and music enthusiasts who want to run their own radio stations streaming Asteroid Music - the perfect soundtrack for coding and hacking sessions.

Quick Start

For immediate setup, see:

  1. Installation Guide - Get Asteroid Radio running
  2. Docker Streaming Setup - Docker-based streaming infrastructure

Documentation Structure

Core Documentation

Project Overview

Complete overview of Asteroid Radio's architecture, technology stack, and vision. Start here to understand what Asteroid Radio is and how it works.

Project History

Comprehensive development history from inception to present, including timeline, milestones, and contributor information.

Installation Guide

Comprehensive installation instructions for multiple operating systems, including system requirements, dependencies, and production deployment considerations.

Docker Streaming Setup

Complete guide to the Docker-based streaming infrastructure using Icecast2 and Liquidsoap. Includes container configuration, management scripts, and troubleshooting.

Development & Integration

Development Guide

Development environment setup, contributing guidelines, coding standards, and debugging procedures for developers working on Asteroid Radio.

API Endpoints Reference

Complete documentation of all REST API endpoints including authentication, tracks, playlists, player control, and admin functions.

Interface Reference

Documentation of streaming endpoints, Icecast admin interface, Liquidsoap telnet control, and Docker management commands.

Testing Guide

Automated testing suite documentation, test script usage, and manual testing procedures.

Feature Documentation

PostgreSQL Setup

Database configuration, schema design, and migration guide for PostgreSQL backend.

Playlist System

User playlist functionality including creation, management, and playback features.

User Management

User administration system with role management, authentication, and access control.

Track Pagination

Pagination system for efficient browsing of large music libraries.

Current System Status

What's Working Now

  • Web Application: Full-featured web interface with authentication
  • REST API: JSON API with 15+ endpoints for programmatic access
  • User Management: Registration, login, roles (Admin/DJ/Listener), and profiles
  • Music Library: Track management with pagination, search, and filtering
  • Playlists: User playlists with creation and playback
  • Multiple Player Modes: Inline, pop-out, and persistent frameset players
  • Stream Queue Control: Admin control over broadcast stream queue
  • Docker Streaming Infrastructure: Icecast2 + Liquidsoap containers
  • Three Quality Streams: 128kbps MP3, 96kbps AAC, 64kbps MP3
  • Admin Interface: Icecast web admin at http://localhost:8000/admin/
  • Liquidsoap DJ Controls: Telnet control via localhost:1234
  • Professional Features: Crossfading, ReplayGain normalization, metadata support
  • PostgreSQL Database: Configured and ready for migration
  • Dynamic Stream URLs: Automatic host detection for multi-environment support
  • Responsive Design: Works on desktop and mobile devices

Stream URLs (when running)

Getting Started

New Users

  1. Read the Project Overview to understand Asteroid Radio
  2. Follow the Installation Guide for your operating system
  3. Set up streaming with the Docker Guide

Developers

  1. Review the Development Guide for setup procedures
  2. Check the API Endpoints Reference for REST API documentation
  3. Review the Interface Reference for streaming controls
  4. See Testing Guide for automated testing
  5. Join our IRC channel: #asteroid.music on irc.libera.chat

System Administrators

  1. Follow the Installation Guide production deployment section
  2. Review Docker Streaming Setup for container management
  3. Monitor system resources and streaming performance

Support & Community

Getting Help

  • Documentation: Start with the relevant guide above
  • IRC Chat: Join #asteroid.music on irc.libera.chat
  • Issues: Submit detailed bug reports with system information
  • Logs: Check Docker container logs for troubleshooting

Contributing

  • Review the Development Guide for contribution guidelines
  • Follow coding standards and testing procedures
  • Submit pull requests with clear descriptions

About Asteroid Music

Asteroid Radio streams Asteroid Music - a carefully curated genre designed for developers:

  • Focus-Enhancing: Ambient, electronic, and instrumental tracks
  • Coding-Optimized: Rhythms that complement programming flow
  • Hacker Culture: Music that resonates with developer aesthetics
  • Flow State: Tracks selected to maintain deep concentration

This isn't just background music - it's the soundtrack to the hacker lifestyle, designed by hackers for hackers who understand that the right music can elevate your code.

Technical Architecture

Asteroid Radio uses a modern, containerized architecture:

┌─────────────────────────────────────────────────────────────┐
│                    Asteroid Radio Platform                  │
├─────────────────────────────────────────────────────────────┤
│  Streaming Infrastructure (Docker)                          │
│  ├── Icecast2 (HTTP Streaming Server)                       │
│  ├── Liquidsoap (Audio Processing Pipeline)                 │
│  └── Multiple Format Support (AAC, MP3)                     │
├─────────────────────────────────────────────────────────────┤
│  Control Interfaces                                         │
│  ├── Icecast Admin Web Interface                            │
│  ├── Liquidsoap Telnet Control                              │
│  └── Docker Container Management                            │
└─────────────────────────────────────────────────────────────┘

For detailed technical information, see the Project Overview.

Last Updated: 2025-10-26 Documentation Version: 3.0