selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
Airwave logo

Self-host Airwave

v1.0.0

Shared live audio streaming from YouTube and more

ReleaseOpen Source
Updated5 months ago
LanguagePython
Setup difficultyModerate
Stars
139
Ports
8000 (HTTP web UI and API), 8927 (SendSpin synchronized playback)
Requires
Ffmpeg, SQLite, Yt-dlp
Docker
ghcr.io/76696265636f646572/airwave
Install with Docker

What is Airwave?

Airwave is a self-hosted shared radio application that turns music links from YouTube, SoundCloud, Mixcloud, Spotify playlists, and direct audio URLs into a single live MP3 stream. Multiple listeners hear the exact same audio in perfect sync across browsers and Sonos speakers. It features a collaborative queue with drag-and-reorder, playlist management with auto-sync from imported sources, local file browsing, and optional WLED light synchronization via LedFX. The stack uses FastAPI, Vue 3, yt-dlp, ffmpeg, and SQLite. It runs via Docker (recommended with host networking for Sonos discovery) or docker-compose, exposing the web UI on port 8000 and an optional SendSpin synchronization port on 8927. No user accounts or authentication are required.

Should you self-host Airwave?

Airwave scores 45/100 on selfhost.directory (how scoring works) and ranks #32 of 59 in Music Streaming. It has 139 GitHub stars.

It shipped 1 stable release in the past year. The latest, v1.0.0, came out on 14 April 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is written mostly in Python.

Its closest alternative on selfhost.directory is koel (75/100, 17 318 stars). It scores higher overall, so compare the two before you pick. See Airwave vs koel side by side.

Features

  • Collaborative queue
  • Local file browsing
  • Multi-source playback
  • Playlist auto-sync
  • Playlist Management
  • SendSpin synchronized playback
  • Shared live audio stream
  • Sonos integration
  • Spotify playlist import
  • WLED/LedFX light sync

Airwave README

How to install Airwave

Install Airwave with Docker

Environment variables
AIRWAVE_HOST, AIRWAVE_PORT, AIRWAVE_PUBLIC_BASE_URL, AIRWAVE_FFMPEG_PATH, AIRWAVE_FFPROBE_PATH, AIRWAVE_YT_DLP_PATH, AIRWAVE_DENO_PATH, AIRWAVE_LOCAL_MEDIA_ROOTS, AIRWAVE_MP3_BITRATE, AIRWAVE_CHUNK_SIZE, AIRWAVE_STREAM_QUEUE_SIZE, AIRWAVE_LOG_LEVEL, AIRWAVE_SENDSPIN_ENABLED, AIRWAVE_SENDSPIN_PORT, AIRWAVE_SENDSPIN_NAME, AIRWAVE_SENDSPIN_MDNS_ENABLED, AIRWAVE_PLAYLIST_SYNC_INTERVAL_SECONDS, AIRWAVE_PLAYLIST_SYNC_MAX_CONCURRENT

docker run -d -p 8000:8000 ghcr.io/76696265636f646572/airwave

For full Sonos functionality, use host networking: network_mode: host

How to configure Airwave

  • AIRWAVE_CHUNK_SIZE4096Bytes read from ffmpeg stdout per pull into shared stream

    Bytes read from ffmpeg stdout per pull into shared stream

  • AIRWAVE_DENO_PATH./bin/denoPath to deno executable

    Path to deno executable

  • AIRWAVE_FFMPEG_PATH./bin/ffmpegPath to ffmpeg executable

    Path to ffmpeg executable

  • AIRWAVE_FFPROBE_PATH./bin/ffprobePath to ffprobe executable

    Path to ffprobe executable

  • AIRWAVE_HOST0.0.0.0Host address to bind the server

    Host address to bind the server

  • AIRWAVE_LOCAL_MEDIA_ROOTSComma-separated or JSON array of server-side directories for local media browsing

    Comma-separated or JSON array of server-side directories for local media browsing

  • AIRWAVE_LOG_LEVELinfoLogging level

    Logging level

  • AIRWAVE_MP3_BITRATE128kMP3 bitrate for the shared stream

    MP3 bitrate for the shared stream

  • AIRWAVE_PLAYLIST_SYNC_INTERVAL_SECONDS3600Target seconds between playlist auto-sync passes (minimum 30)

    Target seconds between playlist auto-sync passes (minimum 30)

  • AIRWAVE_PLAYLIST_SYNC_MAX_CONCURRENT2Max playlists to sync concurrently within a pass (1-10)

    Max playlists to sync concurrently within a pass (1-10)

  • AIRWAVE_PORT8000Port for the web UI and API

    Port for the web UI and API

  • AIRWAVE_PUBLIC_BASE_URLPublic base URL for the service (required for Sonos and sharing)

    Public base URL for the service (required for Sonos and sharing)

  • AIRWAVE_SENDSPIN_ENABLEDtrueEnable SendSpin for browser clients and synchronized playback

    Enable SendSpin for browser clients and synchronized playback

  • AIRWAVE_SENDSPIN_MDNS_ENABLEDtrueEnable mDNS discovery for SendSpin

    Enable mDNS discovery for SendSpin

  • AIRWAVE_SENDSPIN_NAMEAirwaveName for SendSpin service

    Name for SendSpin service

  • AIRWAVE_SENDSPIN_PORT8927Port for SendSpin synchronized playback

    Port for SendSpin synchronized playback

  • AIRWAVE_STREAM_QUEUE_SIZE16Max depth of in-memory buffer between ffmpeg and listeners

    Max depth of in-memory buffer between ffmpeg and listeners

  • AIRWAVE_YT_DLP_PATH./bin/yt-dlpPath to yt-dlp executable

    Path to yt-dlp executable

Airwave releases & version history

More in Music Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…