OpenSourcePicks

Open source alternatives to popular software, with live GitHub data

GitHub stats refreshed every day

Polaris

Fast Rust music server built for very large collections, with no premium version

Open source alternative to

Visit PolarisGitHubDocumentation

Main features

  • Web interface with dark mode and custom color palette
  • Browsing by album, artist, genre or file tree
  • Search with per-field queries
  • Waveform display for each song
  • Multi-value metadata such as several artists per song
  • Multiple users, each with their own playlists
  • Plays FLAC, MP3, MP4, MPC, Ogg, Opus, APE, WAV and AIFF
  • Plain-text configuration that can also be edited in the UI
  • Built-in dynamic DNS updater
  • OpenAPI-documented server API
  • Official Android app on Google Play and F-Droid

What Polaris does

Polaris is a music streaming server written in Rust. Its stated goals are speed, first-class support for very large collections of 100,000 songs or more, easy installation and maintenance, and an attractive interface. The README is explicit that it is free software without any premium version.

The web interface browses by album, artist or genre, or as a file tree that mirrors your folders. Search supports per-field queries, so you can look for a word in the title or a specific artist rather than across everything. Songs show an audio waveform, metadata fields can hold several values (for example several artists on one track), and the color palette and dark mode can be customized. Each user has their own playlists.

Clients and API

Besides the browser interface, Polaris has an official Android app available on Google Play and F-Droid. On iOS there is Polarios, a third-party app, and Polarity is another third-party client. Polaris does not implement the Subsonic API, so general Subsonic apps cannot connect.

The server API is described with OpenAPI, and every installation serves interactive API documentation at /api-docs/. That makes it straightforward to script against the server or build another client.

Self-hosting Polaris

Polaris runs on Windows, Linux and BSD. On Windows there is an MSI installer that adds Polaris to the Start menu and the system tray and starts it with the computer. On Linux you download the release archive and run make install, either per user following the XDG directory layout or system-wide; building needs OpenSSL headers, binutils, pkg-config and the Rust toolchain. Several distributions also package it. For Docker, the documentation points to a separately maintained docker-polaris image rather than an official one.

There is no external database to install: Polaris stores its index itself. Configuration lives in a plain-text file that the web interface can also edit. By default the server listens on port 5050.

For listening away from home, the documentation describes forwarding a port on your router and using a dynamic DNS provider such as DuckDNS or freemyip; Polaris has a field in its settings for the provider’s update URL and keeps the address current. HTTPS and reverse proxies are left to you.

Hosted version

There is no hosted service. A public demo with Creative Commons music is available.

Limitations

Without Subsonic compatibility the client choice is narrow, and iOS users depend on a third-party app. The documentation does not describe transcoding, so check that your devices can play your files directly, especially lossless formats on mobile data. There is no official Docker image, and the project is maintained mainly by one developer.

Who it suits

Polaris suits owners of very large collections who want a fast, self-contained server with no database to manage and a permissive license, and who listen in the browser or on Android. It is one of the ways to replace Spotify for music you own. If you need many client apps, Navidrome is the usual alternative.

Technical details

Built with

  • Rust

Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.