ca-x

meowRadio

ca-x

meowRadio is a self-hosted internet radio written in Rust with its React interface embedded directly in the binary and accounts and favorites stored in SQLite, offering nine visual themes, a sleep timer and recording management.

v0.3.0
Published at
Sep 16, 2026
0
Stars
14
Download
Synced at
19d ago

Latest release

v0.3.0Sep 16, 2026, 04:45 PM
Downloads slow? Switch the source anytime above

README

Project Overview

meowRadio is a self-hosted internet radio service: the backend is written in Rust, the React interface is embedded into the binary at build time, and accounts, favorites and recordings live in SQLite. It puts the world radio directory, personal sources and per-user favorites behind one web page you listen to in a browser.

Tune the world to the station you like, with all your data kept on your own server.

Key Features

  • Nine themes: walnut radio, glass night, LED cube and more, each with its own light and dark palette, switching without interrupting playback
  • World radio: built on the Radio Browser API with combined filters for country, language, genre, sorting and quality
  • Personal sources: import from a URL or JSON file, saved per user, with backup addresses and cleanup of dead links
  • Paged favorites: 24 stations per page with search across all favorites, and paging never interrupts the current station
  • Sleep timer: drag the hands or type minutes, with cancel, reset and an emphasized countdown before shutdown
  • Recording library: record while playing through the server, with automatic upload and in-app preview, rename, download and delete
  • Multi-user: a dedicated register and login page with Argon2id passwords and HttpOnly session cookies, and separate favorites per account
  • Playback paths: direct browser playback, server relay or an outbound proxy, with staged retries after a drop

Target Audience

  • Users who want their own ad-free internet radio server
  • Households that need separate accounts and favorites per member
  • Users listening to overseas stations who need proxying or relaying

Quick Start

  1. Start the service with a single Docker command, mapping the port and mounting a data volume
  2. Open the service address in a browser and follow the wizard to create the first administrator
  3. Click Filter on the home page to pick stations by country, language or genre, then favorite them
  4. Choose themes, default playback mode and recording settings under the user menu → System Settings

Core Advantages

  • Single-file deployment: the front end is embedded in the binary, so no Node.js or external database is needed
  • Data you own: accounts, favorites, avatars and recordings sit in your own volume and can be backed up anytime
  • Refined visuals: nine themes each ship light and dark palettes and switch without interrupting playback
  • Flexible listening: direct, relay and proxy paths let HTTPS pages play HTTP stations too

System Requirements

Item Requirement
Deployment Docker image, or Linux, macOS and Windows binaries
Architecture amd64, arm64
Optional FFmpeg is needed for personal source playback and probing; the Docker image bundles it

Notes

  • Configuration is read from the process environment; .env is not loaded automatically
  • Initialization runs only once, so injecting the admin password from your platform's secret store is safer
  • Restart the service after changing environment settings
  • The project targets single-instance self-hosting, and login throttling keys off the connecting IP

Release history

Sort