A complete internet-radio directory & streaming platform. Visitors can discover stations by genre, country and language, play them in a persistent bottom player with live “now playing” song + listener count, and engage through favorites, likes, comments, reports and sharing. Includes a full admin panel, REST API, automatic stream health checks, and a one-click migration tool for the legacy v1.x version. KEY FEATURES Persistent bottom player — keeps playing while browsing the site Live current song + listener count (Icecast / SHOUTcast / ICY metadata) Search & filters by genre, country and language LIVE / OFFLINE automatic stream health checks HLS (.m3u8), Icecast & SHOUTcast streaming support Favorites, like/dislike voting, comments with emoji, reports & share “Add Radio” user submissions with moderation workflow Full admin panel (Filament 5) with roles & permissions REST API v1 (Sanctum) SEO (sitemap, structured data, Open Graph), PWA, dark mode, mobile-first Web installer + shared-hosting cron worker — no Redis required One-click migration from the legacy v1.x version WHAT’S INCLUDED Full Laravel 13 application (public site + admin panel + REST API) Documentation (installation, configuration, admin & migration guide) Taxonomy included: 242 countries, 137 languages, 18+ genres v1.x migration tool (php artisan radio:import) Stream scraper for internet-radio.com REQUIREMENTS PHP 8.3+ (8.4 recommended) MySQL 8 / MariaDB 10.6+ (SQLite for local development) Apache (mod_rewrite) or Nginx Composer 2.x Node.js 20+ (only needed to build assets) Cron (one job per minute for queue + health checks) DEMO ADMIN Admin panel: https://try.mkswebs.com/radio-portal/admin Email: admin@radio-portal.test Password: admin123 Note: Restricted login — CRUD operations are not allowed in the demo.
React with ❤️ or 👎 to give feedback.
For questions or problems with this player, please contact the author through the support system or email
📧 Answer in:up to 48 business hours
📚 Documentation: Included in the ZIP