OwnTone
Media server with AirPlay, Chromecast and Spotify support
OwnTone is a media server that streams music to AirPlay and Chromecast devices, with support for Spotify and internet radio. It serves your local library through DAAP and the Subsonic API.
Key features
- AirPlay and Chromecast output
- Spotify integration
- Internet radio
Pros & cons
Strengths
- Excellent AirPlay support
- Low footprint
Trade-offs
- Web UI is minimal
- Configuration via files
OwnTone replaces
Last reviewed Sep 13, 2026 · 893 words
Most self-hosted music servers are built to stream to a phone. OwnTone is built to stream to the speakers already in your rooms. It discovers AirPlay 1 and 2 receivers and Chromecast devices on the network, lets you group them, and plays your local library, internet radio and Spotify to them in sync, from a C daemon that idles at well under 128 MB. It started life in 2009 as forked-daapd, it is GPL-2.0, and it remains the best answer to a specific question: "I have a NAS full of FLAC and a house full of HomePods, how do I connect them without an Apple device in the middle".
Speakers are the interface, the web UI is the remote
Think of OwnTone as a jukebox with outputs. The web interface on port 3689 is a compact player: browse artists and albums, queue tracks, pick which speakers are active, set per-speaker volume. That is the whole UI, and the catalogue's "minimal" is fair. It works well on a phone browser, and beyond that OwnTone is controlled through protocols rather than apps. It speaks DAAP, so Apple's Music app and old iTunes see it as a shared library. It speaks the MPD protocol, so any MPD client on any platform becomes a remote. It has a JSON API for scripts and Home Assistant, which has a native OwnTone integration and is how I trigger the kitchen radio at breakfast.
What it is not is a Spotify-style app experience. There is no recommendation engine, no per-user accounts, no polished mobile client of its own. If your listening happens on headphones away from home, Navidrome with a Subsonic client is the better fit, and the your own Spotify with Navidrome walkthrough covers that. Many people run both against the same music directory: Navidrome for the commute, OwnTone for the living room.
Everything lives in one config file
There is no settings page. OwnTone is configured in /etc/owntone.conf, and the four lines that matter are:
general {
uid = "owntone"
db_path = "/var/cache/owntone/songs3.db"
}
library {
name = "Music on the NAS"
directories = { "/srv/music" }
}
Point directories at the library, start the service, and the scanner indexes everything with inotify watching for changes afterwards. A 20,000-track library scans in a few minutes on a Raspberry Pi 4. Playlists are plain M3U files dropped into the library; radio stations are M3U files containing stream URLs, which is how the internet radio feature works. The file-based configuration is a con for people who expect a wizard and a pro for anyone managing the box with Ansible.
Networking is the part to get right. AirPlay and Chromecast discovery rely on mDNS, so OwnTone needs Avahi running and needs to be on the same layer-2 network as the speakers. In Docker that means network_mode: host; a bridged container will start fine and find no speakers, which is the single most common support question. Bare-metal packages for Debian, Ubuntu and Raspberry Pi OS avoid the issue entirely and are the deployment I recommend.
Spotify works, with an asterisk
OwnTone integrates Spotify through librespot, so your Spotify playlists appear next to your local albums and play to the same speaker groups. The asterisk is that it requires a Spotify Premium account, playback comes through Spotify's own restrictions on concurrent streams, and every time Spotify changes its login flow the integration needs an update. It has been broken for weeks at a stretch in the past. Treat it as a convenience, not a dependency; the local library and radio are what OwnTone reliably does.
Multi-room sync is the strength. Grouping 3 AirPlay 2 speakers and a Chromecast into one zone and having them stay in step across a house is something commercial systems charge for, and OwnTone does it from a first-generation Pi. If you also have non-smart speakers on Pi-based players, Snapcast covers those and can take OwnTone's output as a source.
How it compares to the bigger music stacks
Against Navidrome and Gonic, OwnTone is the odd one out: those are Subsonic servers for remote listening, it is a local player for speakers. Against Mopidy, the closest peer in spirit, OwnTone has the far better AirPlay implementation and a lower footprint, while Mopidy has the plugin ecosystem. Against Music Assistant, which is the fastest-growing project in this niche, OwnTone is simpler, lighter and older, and Music Assistant is the one to pick if you want dozens of streaming providers and deep Home Assistant integration in exchange for a heavier install. For a household that is mostly Apple speakers and mostly local files, OwnTone remains the one I would install first.
What I'd do
Install the Debian package on the box nearest the music, on the same VLAN as the speakers, with the library on a local mount rather than over SMB. Add radio stations as M3U files, connect the Home Assistant integration, and leave Spotify off unless someone in the house is already paying for Premium. Pair it with Navidrome on the same library for phones. Total cost is 10 minutes of editing a config file and perhaps 80 MB of RAM, for whole-house audio that does not phone home.
Compare OwnTone
21 head-to-head comparisons.
- OwnTone vs Navidrome
- OwnTone vs Koel
- OwnTone vs Feishin
- OwnTone vs Mopidy
- OwnTone vs Lidarr
- OwnTone vs Black Candy
- OwnTone vs Finamp
- OwnTone vs Ampache
- OwnTone vs Polaris
- OwnTone vs Funkwhale
- OwnTone vs Gonic
- OwnTone vs mStream
- OwnTone vs Tempo
- OwnTone vs Swing Music
- OwnTone vs Airsonic
- OwnTone vs Sonixd
- OwnTone vs Lyrion Music Server
- OwnTone vs Musicn
- OwnTone vs Amperfy
- OwnTone vs LMS
- OwnTone vs Airsonic-Advanced
Similar media servers apps
Jellyfin
Media ServersFree software media system for streaming your library
Replaces Plex, Emby
qBittorrent
Media ServersBittorrent client that aims to be a good alternative to all other
Replaces µTorrent
SRS
Media ServersA simple, high efficiency and real-time video server, supports RTMP,
Navidrome
Media ServersModern music streaming server for your collection
Replaces Spotify
Kodi
Media ServersOpen-source home theater and media center
Replaces Plex
Koel
Media ServersPersonal music streaming server with an elegant interface
Replaces Spotify