Self-hosted · ActivityPub · AGPL-3.0

Your music. Your server. Your rules.

Songhive is a self-hosted music streaming and sharing platform — think Funkwhale meets Mastodon. Your library lives on your hardware, but your music travels across the Fediverse.

Free and open source · PostgreSQL or SQLite · Docker or pip

The Songhive home page: a dark sidebar with library navigation, album cards under 'Jump back in' and 'Your favorites', and a persistent player bar
Library & streaming

A real music library, not a folder of files

Upload, organize and stream artists, albums and tracks — Songhive takes care of the metadata so you can take care of the listening.

  • Automatic tag extraction and duplicate detection on upload
  • MusicBrainz enrichment — MBIDs, Cover Art Archive artwork and artist images, written back to the audio files
  • On-the-fly transcoding to MP3, OGG, FLAC, AAC and Opus, with range requests and per-role bitrate caps
  • Playlists and dynamic radios, plus a responsive web player that works on any screen
Songhive on mobile: album and track cards with a mini player pinned to the bottom
Social & federated

Music as social content

Tracks, albums and playlists are first-class ActivityPub objects. Publish, follow, reply, boost and quote — from Songhive or from your Mastodon client.

  • Full ActivityPub federation — interoperates with Mastodon, Funkwhale and other Songhive instances
  • Mastodon-style posts with mentions, hashtags, Markdown, threaded replies, quotes and link preview cards
  • Federated music entities — follow remote libraries and artists, add remote tracks to your collection
  • Real-time notifications over WebSocket, with per-type email and daily-digest options
A federated activity feed in Songhive: posts with embedded track players, link preview cards and reply/boost/like actions
Embeds, feeds & Webmentions

Plays anywhere on the web

A public Songhive link is never a dead link — it's a player. Share a track on Mastodon and it renders with a working play button, right in the timeline.

  • Embeddable players via <audio>, Markdown, <script> widgets or iframes — CORS-enabled for Fediverse clients
  • Webmentions in both directions — get notified when blogs link your music, and ping sources you link to
  • RSS 2.0 and Atom feeds for every profile, artist, playlist, library, tag and genre
  • Rich link previews — OpenGraph cards for tracks, albums, artists and profiles
A Songhive track shared on Mastodon, rendered as an embedded audio player with cover art, play button and seek controls
Sharing & privacy

Share on your terms

Every track, album, playlist and library carries its own visibility — and every share is revocable.

  • Fine-grained visibility — private, instance-only or public, per item
  • Share grants for specific users, or revocable short links that open a preview page with a player
  • Fediverse-aware sharing — public tracks federate; private ones stay home
  • Mastodon-style moderation — mutes, blocks, reports, actor suspension and per-instance defederation
The share dialog for a track, with tabs for sharing with users, public links, the Fediverse, embed snippets and a public URL
History, stats & scrobbling

Every play counts

Songhive records your listening history out of the box and turns it into stats you'll actually want to look at.

  • Personal listening stats — top artists, albums and tracks over any date range
  • Release-decade histograms and a listening clock that maps your plays around the day
  • Last.fm and Libre.fm scrobbling built in — no browser extensions needed
  • Favorites and history synced across web, Subsonic clients and remote tracks alike
Listening stats: ranked tables of top artists and top albums with play counts
Listening stats: a release-decade bar chart and a radial listening-clock chart
Clients & integrations

Your apps already speak Songhive

A full Subsonic/OpenSubsonic compatibility layer means the player you already use on your phone or desktop just works — point it at your instance and log in with an API token.

  • Subsonic API under /rest/*.view — Substreamer, Tempus, Symfonium, Ultrasonic, Supersonic and more
  • Mopidy extension — browse and play your library from any Mopidy server
  • Server-side outputs — relay to Icecast, cast to Snapcast, or host native HTTP mountpoints that keep playing when you close the tab
  • Podcasts — subscribe and listen without leaving your library
A Songhive library browsed from a Subsonic-compatible Android client, showing frequently played albums and a mini player
For artists

Made for the people who make the music

Songhive isn't only a player — it's a place to publish. Optional payments support lets artists sell tracks and albums, and instances run paid memberships.

  • Sell tracks and albums — set a price, pick whether unpaid visitors stream, hear a sample, or get nothing
  • Stripe Connect payouts — sellers onboard with their own account; money goes straight to them
  • Paid memberships — gate an instance behind a subscription if you want a supporters-only space
  • Entitlement-aware everywhere — purchases unlock downloads across the web UI, API and Subsonic clients
The 'sell this item' panel: price and currency fields, an unpaid-visitors policy selector, and sample start/length settings
The membership panel showing an active subscription and a Stripe Connect payout onboarding form
And there's more

Built like a platform, not a toy

The boring-but-essential pieces are already in place, so your instance can grow from a personal library to a community hub.

External libraries

Attach local folders, S3, SFTP, WebDAV, Dropbox or Google Drive — or import collections from Jellyfin, TIDAL and YouTube.

OAuth2 & API tokens

A built-in OAuth2 provider for third-party apps, plus revocable API tokens for scripts and Subsonic clients.

Multi-user by design

Open, invite-only, approval-required or closed registration, public/local/private profiles, and admin tooling.

Remote discovery

Look up remote actors, posts and tracks by handle or URL — SSRF-guarded, domain-moderated and cached.

Moderation toolbox

User mutes and blocks, reports forwarded over ActivityPub, actor limits and per-instance defederation.

Your storage, your rules

Local filesystem or S3-compatible object storage, content-addressed files and per-user upload quotas.

Real-time everything

WebSocket notifications in-app, per-type email delivery, daily digests and optional push notifications.

Open API

A documented REST API under /api/v1 with an OpenAPI spec and bundled Swagger UI.

Self-host

Running your own hive takes minutes

A single Docker Compose stack — or a plain pip install — brings up the web UI, the API, background workers and federation.

🐳  Docker
# Bootstrap docker-compose.yml, nginx.conf,
# config.toml and .env in one step
curl -fsSL https://git.fabiomanganiello.com/songhive/raw/branch/main/docker/bootstrap.sh | sh

# Start the stack
docker compose up -d
🐍  pip
# Install the latest stable release
pip install songhive

# Configure, then run
songhive -c /path/to/config.toml

Songhive is free software, released under the AGPL-3.0 license. Hack on it, run it, federate it.