Spotify may still dominate global music streaming, but for many technically inclined users and sysadmins, the cracks are impossible to ignore. The issues go beyond convenience:
- Artist royalties remain tiny, around $0.003–$0.005 per stream. It takes thousands of plays for a musician to make the equivalent of a single digital album sale.
- Playlists padded with “ghost artists” and AI-generated tracks, designed to cut royalty costs.
- Fake albums published under the names of real — even deceased — artists, exploiting weak content moderation.
- Biometric/ID verification in the UK, required just to play explicit tracks.
For some, the answer isn’t to wait for change but to take control. A growing number of sysadmins and hobbyists are turning to self-hosted music stacks, leveraging open source tools and containerization to build personal streaming platforms that rival — and often surpass — Spotify.
One such setup, detailed by developer James Ambrose, combines Navidrome, Lidarr, and Docker, with secure tunneling for remote access.
Architecture Overview
Ambrose’s stack follows a modular, containerized architecture, designed for flexibility and maintainability:
- Music server (Navidrome): indexes, organizes, and streams the music library through a modern web UI and Subsonic-compatible API.
- Project: Navidrome
- Deployment: standalone Docker container with persistent volumes.
- Integration: compatible with web, desktop, and mobile clients.
- Library management (Lidarr): automates library organization and monitors new releases.
- Project: Lidarr
- Function: integrates with download clients, keeps metadata consistent.
- Download client (sabnzbd): handles automated, legitimate downloads of purchased music.
- Project: sabnzbd
- Synced lyrics (lrcget): downloads LRC files to bring back synced lyrics.
- Project: lrcget
- History & discovery (Last.fm + ListenBrainz + Lidify): tracks listening habits (scrobbling) and generates recommendations.
- Secure remote access (tunneling): exposes Navidrome safely without direct port forwarding.
- Containerization (Docker): each component runs in its own container, isolated but connected via internal networking.
Why Go Self-Hosted Instead of Spotify?
For sysadmins, the appeal is clear:
- Audio quality: lossless FLAC or ALAC instead of Spotify’s 320 kbps cap.
- Ownership: files remain under user control, not subject to catalog removals or licensing disputes.
- Privacy: no tracking, telemetry, or targeted advertising.
- Scalability: deploy at home, on a NAS, VPS, or public cloud.
- Automation: Lidarr and sabnzbd automate acquisition and organization, reducing manual maintenance.
Practical Deployment with Docker
Most services are containerized. A basic docker-compose.yml
might look like this:
version: "3.8"
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
ports:
- "4533:4533"
volumes:
- ./data/navidrome:/data
- ./music:/music
environment:
- ND_SCANSCHEDULE=1h
- ND_LOGLEVEL=info
restart: unless-stopped
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
ports:
- "8686:8686"
volumes:
- ./data/lidarr:/config
- ./music:/music
- ./downloads:/downloads
restart: unless-stopped
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: sabnzbd
ports:
- "8080:8080"
volumes:
- ./data/sabnzbd:/config
- ./downloads:/downloads
restart: unless-stopped
Code language: PHP (php)
This structure isolates each service, while shared volumes keep the music and download directories consistent.
Security Considerations
Running your own stack means taking responsibility for security:
- Do not expose ports directly to the internet. Use secure tunneling or VPNs.
- Authentication: Navidrome supports token-based access; Lidarr should be kept behind internal networks.
- Automated updates: tools like Watchtower can keep containers up to date.
- TLS/HTTPS: always encrypt external traffic with valid certificates.
- Monitoring: integrate with Prometheus/Grafana for metrics and alerting.
User Experience: Multi-Platform Clients
Thanks to Navidrome’s Subsonic API, a wide range of clients can be used:
These clients bring features like offline playback, synced lyrics, playlist management, and high-quality streaming.
Supporting Artists Directly
Self-hosting doesn’t mean ignoring artist support. In fact, it encourages more direct, fairer relationships:
- Bandcamp: artists keep 80–90% of sales.
- Direct subscriptions: Patreon or artist-run platforms.
- Merchandise and concerts: tangible support outside streaming royalties.
A $10 album on Bandcamp yields about $8–$9 for the artist. On Spotify, they would need between 1,600–3,000 streams to earn the same — often more if a label takes a cut.
Comparison: Spotify vs. Self-Hosted Stack
Feature | Spotify | Self-Hosted Stack |
---|---|---|
Audio quality | Up to 320 kbps | FLAC/Lossless |
Content ownership | Rental only, no control | Full ownership |
Cost | $9.99–$14.99 monthly | One-time hardware + storage |
Artist compensation | ~$0.003–0.005 per stream | 80–90% of purchases |
Privacy | Heavy tracking & profiling | No telemetry |
Availability | Subject to catalog licensing | Permanent, user-controlled |
Conclusion
For sysadmins, engineers, and power users, a self-hosted music stack provides both technical freedom and ethical clarity. By combining Navidrome, Lidarr, sabnzbd, and add-ons like ListenBrainz and lrcget, it’s possible to replicate Spotify’s convenience while regaining control over audio quality, privacy, and ownership.
It’s not for everyone — casual listeners may prefer the convenience of a subscription — but for those with technical skills, the benefits outweigh the initial setup time. Most importantly, it puts the music back in the hands of the listener and ensures artists can be supported more directly.
FAQ
1. What’s the minimum hardware required for a self-hosted music stack?
A modest server with 2–4 CPU cores, 4–8 GB RAM, and sufficient storage (SSD for system, HDD for library) is enough. Many NAS devices work too.
2. Do I need to expose ports for remote access?
No. Best practice is to avoid open ports and instead use a tunneling solution or VPN for secure external access.
3. How can I keep containers up to date automatically?
Use Watchtower to monitor and update running Docker containers with the latest images.
4. Why use Lidarr instead of managing music manually?
Lidarr automates monitoring, metadata, and library organization. For large or growing collections, it eliminates the overhead of manual file management.
sources: leshicodes and messenger