Songhive is a new project from Fabio Manganiello, built on a split he lays out himself: Jellyfin and Navidrome get the library right and treat sharing as a file problem, Funkwhale gets federation right and acts like a sync network, streaming services own the catalog. Songhive wants the whole stack: a self-hosted music server where tracks, albums, playlists and posts are first-class ActivityPub objects, so a published song is a playable post in Mastodon timelines. The code is AGPL-3.0.

The streaming half

The base is a real library server: uploads get tag extraction, duplicate detection and enrichment from MusicBrainz and the Cover Art Archive; playback transcodes between MP3, OGG, FLAC, AAC and Opus with per-user bitrate caps; and a Subsonic API runs by default, so the crowd of Subsonic-compatible clients works as it is. Scrobbling goes to Last.fm and Libre.fm, and a listening-stats dashboard covers top artists and release years. Libraries can point at local folders or S3, SFTP, WebDAV, Dropbox and Google Drive, or import from Jellyfin and TIDAL, and metadata is written back into the files. Server-side outputs fill the Spotify Connect-shaped hole: an Icecast relay, a Snapcast provider for whole-home audio, and native HTTP stream mountpoints, so playback keeps going after you close the tab.

The social half

Every user is an ActivityPub actor reachable at @user@instance, with Mastodon-style statuses, replies and notifications. Publishing is opt-in per upload, so a private library never leaks by accident, and a published track plays in Mastodon and Akkoma timelines with a link back to its page. Music federation is bidirectional and Funkwhale-compatible, and sharing has three levels of visibility, grants, revocable links and embeds. Artists, playlists and profiles expose RSS and Atom feeds, and moderation runs from mutes up to instance defederation.

A Mastodon post with a Songhive track embedded as a playable audio player.
A published Songhive track in a Mastodon timeline, player included. Screenshot: Songhive, from the project's introduction post.

Money, which most of these projects skip

Payments are part of it: artists connect a Stripe account, sell tracks or albums, and choose how much of a paid song streams free, and outside Stripe’s fee the project says it takes no share. Instance keepers get the other side: a paid registration mode, subscriptions that fund the server, quotas as a backstop.

Running it

The fastest path is the Docker bootstrap script, which drops a compose file, an nginx config and starter configuration into the current directory; two commands later you have an admin user and a server. There is also a pip install route and systemd units. It is a real stack underneath: PostgreSQL or SQLite, Redis, a Celery worker and ffmpeg, so not a static binary. The author says a Raspberry Pi 4 or 5 handles a family-scale library; federation stays off until you switch it on.

Still early

Fediverse audio is young: Mastodon treats audio as a converted attachment, so Songhive also emits note variants, and TIDAL imports federate as metadata only because the audio stays with the provider. It is early, and one person’s work.

My read

The stack underneath is the serious part: transcoding, Subsonic compatibility and server-side outputs are what you would build anyway, and the social layer is the part nobody else ships. If you keep a music library and a fediverse account, it is worth an afternoon.

Source: the project’s introduction post and the repository.