Hoe je je eigen muziekcollectie streamt zonder abonnementen met Polaris
Streamingsdiensten hebben ons verwend met gemak, maar ze hebben een vervelende gewoonte: favoriete nummers verdwijnen plotseling uit catalogi door auteursrechtelijke geschillen, en abonnementen worden steeds duurder. Als je gigabytes aan FLAC- en MP3-bestanden op je harde schijf of thuisserver hebt, opgebouwd over jaren, is het meenemen ervan op flashdrives onhandig. Je wilt je eigen streamingsdienst die overal werkt en geen maandelijks abonnement vereist.
Onlangs stuitte ik op Polaris — een lichtgewicht zelfgehoste muziekstreamingserver geschreven in Rust. Geen betaalde lagen, geen versies met beperkte functies en geen opgeblazen interfaces.
Wat Polaris kan doen
De belangrijkste focus van de auteur van het project is responsiviteit en het vermogen om echt enorme mediabibliotheken te verwerken. De beschrijving claimt solide prestaties met collecties van 100.000 nummers of meer.
In tegenstelling tot zware all-in-one oplossingen zoals Plex of Jellyfin, is Polaris uitsluitend gericht op audio:
- Leest flac, mp3, mp4, mpc, ogg, opus, ape, wav en aiff formaten.
- Render audio waveform-visualisatie direct in de speler, zodat je snel naar het gewenste moment in een nummer kunt springen.
- Ondersteunt multi-value tags in metadata wanneer een enkel nummer meerdere artiesten of genres heeft.
- Kan de muziekbibliotheek weergeven op basis van tags (artiest, album, genre) en ook in de vertrouwde mapstructuur op schijf. Dit redt de dag wanneer tags in oudere releases slordig zijn ingevuld.
- Heeft zoekfunctie op specifieke metadatavelden.
- Ondersteunt gebruikersscheiding met individuele afspeellijsten voor elke gebruiker.
Een leuk extraatje: de interface ondersteunt een donker thema en kleurpalet aanpassing.
Onder de motorkap
Polaris is geschreven in Rust, wat betekent dat het minimale systeembronnen verbruikt en snel statische inhoud en streams serveert. Geen gedoe met complexe databases voor configuratie: instellingen worden opgeslagen in een eenvoudig tekstbestand, maar je kunt ze ook rechtstreeks vanuit de webinterface bewerken als je dat verkiest.
De ontwikkelaars hebben de server API volledig open gemaakt en gedocumenteerd via OpenAPI. Elke lokale instantie van Polaris toont een interactieve Swagger op /api-docs/, dus het schrijven van je eigen clients of automatiseringen is uiterst eenvoudig.
Volwaardige clients bestaan er overigens al. Naast de webinterface kun je ook gebruiken:
- Officiële Android-client (verkrijgbaar op Google Play en F-Droid).
- Polarios app van derden voor iOS.
- Polarity client voor embedded systemen en desktop.
Aan de slag
De server bouwt voor Linux, Windows en BSD, maar de eenvoudigste manier om het te draaien is via Docker. De basale docker-compose.yml ziet er minimaal uit:
version: "3"
services:
polaris:
image: agersant/polaris:latest
container_name: polaris
ports:
- "5050:5050"
volumes:
- /path/to/your/music:/music:ro
- /path/to/polaris/data:/var/lib/polaris
restart: unless-stopped
Na het opstarten is de interface beschikbaar op poort 5050. Je hoeft alleen maar een admin-wachtwoord in te stellen en te verwijzen naar de map met je audiobestanden. Polaris zal de nummers snel op de achtergrond indexeren.
Als je niet meteen een container wilt instellen, houdt de ontwikkelaar een live demo open op demo.polaris.stream (login: demo_user, wachtwoord: demo_password), met nummers onder Creative Commons-licenties.
Voor wie is dit project
Polaris is ideaal voor iedereen die een thuisserver draait op bescheiden hardware (zoals een Raspberry Pi of een oude netbook) en op zoek is naar een snelle speler zonder de extra ballast zoals 4K-videotranscodering. Als je heldere audio, directe responsiviteit en volledige controle over je bestanden wilt, is dit hulpmiddel zeker het bookmarken waard.
Gerelateerde projecten