deadair deadair/deadair:latest https://hub.docker.com/r/deadair/deadair bridge false sh https://github.com/robert-dean/deadair/issues https://github.com/robert-dean/deadair https://raw.githubusercontent.com/robert-dean/deadair/main/unraid/deadair.xml MIT An AI radio station: it picks the records, writes what the presenter says between them, speaks it, and streams the result. Everything is in this one container — the station, its console, the audio chain and the stream server. Pick the tag that matches what your server already runs: deadair/deadair:latest — a voice is included; point it at your own PostgreSQL and Redis. deadair/deadair:full — brings its own database and cache as well. Nothing else needed. deadair/deadair:slim — no voice either; for pointing at a speech server on another machine. Everything it keeps lives under one path, so backing it up is backing up one share. First run: open the console on the WebUI port and sign in. The database schema is applied automatically. The stream is served by this same container at /live.mp3, so whatever you put in front of the WebUI port (a reverse proxy or a tunnel) carries the station too. On Spotify there are TWO authorizations on the plugin page, and the station needs both. The connection lets the plugin read your library; the playback authorization below it lets the station fetch the audio. With only the first, your playlists list perfectly and nothing ever plays. The page Spotify sends your browser to will not load — that is expected, not a failure — so copy that address out of the bar and paste it back into the console. MediaApp:Music MediaServer:Music An x86-64 server: there is no arm64 image yet. On the latest and slim tags, a PostgreSQL database that already exists and a Redis server; the full tag brings both. On the slim tag, a speech server as well. Music comes from your own Spotify account or Subsonic server, such as Navidrome, because the station holds none of its own. A voice included. Bring your own PostgreSQL and Redis. full Brings its own database and cache as well. Nothing else needed. slim No voice. For pointing the speech plugin at a speech server on another machine. http://[IP]:[PORT:80]/ https://raw.githubusercontent.com/robert-dean/deadair/main/apps/web/public/logo-mark.png 8080 /mnt/user/appdata/deadair Etc/UTC 5432 deadair 6379 X-Forwarded-For true