Polaris
Music streaming server focused on speed and simplicity
Polaris is a self-hosted music streaming application written in Rust, designed to be fast and easy to set up. It lets you browse and stream your music collection from a clean web interface or compatible clients.
Key features
- Written in Rust for speed
- Simple setup
- Last.fm integration
- Collection browsing
Pros & cons
Strengths
- Low resource usage
- Single binary deployment
Trade-offs
- Smaller ecosystem
- Fewer client options
Polaris replaces
Last reviewed Sep 13, 2026 · 804 words
One question settles whether Polaris is your music server: whether you want third-party Subsonic clients. If yes, run Navidrome and stop reading, because Polaris speaks its own API and the ecosystem of Subsonic apps (Symfonium, DSub, play:Sub, the lot) will not connect to it. If no, and what you want is a fast, light server with a clean web player and a good official Android app, Polaris (MIT, Rust, 2,726 stars) is one of the nicest small projects in the media server category, and it gets out of the way better than anything else I have run.
What "simple" means here
Polaris indexes a folder of music by reading tags, and presents it as a browsable tree, plus album views by artist, year and random, search, playlists and Last.fm scrobbling. It does not transcode: files stream as-is, so a 30 MB FLAC over mobile data is a 30 MB download, and your client either handles the format or it does not. The web UI and the Android app play FLAC, MP3, Opus, Ogg, M4A and the usual suspects; there is also a download-for-offline mode in the Android app that turns it into a decent Spotify replacement for people who already own their music, which is the honest reading of the catalogue's Spotify alternatives framing.
Multi-user exists, with admin and regular accounts, but there is no per-user library scoping, no podcast support, no sharing links, and no smart playlists. That is a feature list you can hold in your head, and the 128 MB RAM figure in our catalogue is genuinely what it idles at.
Three-minute deployment
Docker is the easy route; there are also native builds and a Windows installer for people who want it on the same PC as their library:
services:
polaris:
image: agersant/polaris:latest
ports:
- "5050:5050"
volumes:
- /mnt/media/music:/music:ro
- polaris-data:/var/lib/polaris
restart: unless-stopped
volumes:
polaris-data:
Open port 5050, and the first-run wizard asks for an admin username and password and for a mount point: a name and the path inside the container (/music above). Mount the library read-only, since Polaris never needs to write to it. Indexing a 20,000-track library takes a couple of minutes on a mini PC and re-indexes on a timer you can set in the settings; there is no filesystem watcher, so new albums appear after the next scan rather than instantly. Put Caddy in front for TLS before pointing the Android app at it from outside the LAN.
The SQLite database and settings live in the data volume. Back that volume up if you care about playlists and users; the library itself is derived from your files and can always be rebuilt.
Speed is the point, and it delivers
Because it is a single Rust binary with SQLite and no transcoding path, page loads in the web UI are effectively instant, a cold start is under a second, and it runs comfortably on a Raspberry Pi 3 or a 512 MB VPS with room to spare. I have seen Navidrome and Jellyfin both do the job well, but neither idles this low, and Jellyfin's music handling in particular is a side feature of a video server. If a tiny always-on box serves your music and nothing else, Polaris is the one that lets the box stay tiny.
The trade is the client list. Web browser and the official Android app are the supported surfaces. There is no iOS app, no desktop app beyond the browser, and no Subsonic bridge, so an iPhone household is limited to the web player.
Where the bigger projects win
Navidrome is the safer choice for most people: comparable footprint, Subsonic and OpenSubsonic APIs that open up 30-plus clients on every platform, transcoding for mobile data, smart playlists and per-user libraries. The Jellyfin vs Navidrome comparison covers when a full media server is preferable to either. gonic is another minimal Subsonic-compatible option in Go if the attraction of Polaris was footprint alone. Polaris wins when its own two clients are enough and you value the clean UI over ecosystem breadth.
What I'd do
For an Android-and-browser household with a tagged library on a NAS, I would run Polaris from the compose file above, library read-only, Caddy in front, and the Android app with offline downloads for the commute. It would take 3 minutes and I would not touch it again for a year. For anyone with an iPhone, anyone who wants transcoding on mobile, or anyone who likes choosing their own client, Navidrome is the right answer and the bigger community makes it the safer one.
Compare Polaris
21 head-to-head comparisons.
- Polaris vs Navidrome
- Polaris vs Koel
- Polaris vs Feishin
- Polaris vs Mopidy
- Polaris vs Lidarr
- Polaris vs Black Candy
- Polaris vs Finamp
- Polaris vs Ampache
- Polaris vs Funkwhale
- Polaris vs OwnTone
- Polaris vs Gonic
- Polaris vs mStream
- Polaris vs Tempo
- Polaris vs Swing Music
- Polaris vs Airsonic
- Polaris vs Sonixd
- Polaris vs Lyrion Music Server
- Polaris vs Musicn
- Polaris vs Amperfy
- Polaris vs LMS
- Polaris 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