Skip to content

TuneCampFederated Music Platform

Self-hosted streaming for indie artists, labels, and communities β€” with federation, Web3, and Subsonic support.

Documentation ​

πŸš€ Getting Started ​

New here? Start with the Getting Started guide. It walks you from an empty machine to a running instance with music in it β€” install, first login, adding your library, and listening β€” in about 10 minutes.

Once you're up and running, the guides below go deeper.

DocDescription
Getting StartedInstall β†’ first login β†’ add music β†’ listen (start here)
API & Services SetupStep-by-step configuration for Stripe, Google Drive, AI, and other integrations
Nginx ConfigurationReverse proxy setup for SSL, WebSocket, and HLS
Backup & MigrationDatabase backup, restore, and moving your instance

User Guide ​

For listeners and artists using a TuneCamp instance.

DocDescription
Roles & PermissionsWhat each role (Owner, Manager, Curator, Listener) can do
RadioBroadcasting an always-on station from your library (playlists + genre mixes)
Subsonic ProtocolConnecting external clients (DSub, Symfonium, Tempo, Substreamer)
Social & Community FeaturesPosts, comments, and fan interactions
Becoming an Artist & SellingArtist request flow and the can_sell sales gate
Payments & MonetizationStripe checkout, crypto on-ramp, and on-chain purchases

Administrator Guide ​

For people running a TuneCamp instance.

DocDescription
FederationActivityPub and HTTP gossip discovery β€” how instances find each other
PluginsLoading custom streaming, metadata, and storage providers
Peer SharingBuilt-in, reverse-tunnel WebSocket daemon for transient local music folder sharing
Monitoring/health endpoint, the admin System Resources panel, Sentry crash reporting, and uptime checks
ScalingSQLite / single-process limits and mitigations
MCP SetupExposing the TuneCamp catalog to AI clients via MCP

Developer Guide ​

For contributors and people building on TuneCamp.

DocDescription
ContributingCode contribution guidelines and pull request process
Development GuideLocal dev environment setup, running, and testing
Backend ArchitectureExpress server, SQLite, ActivityPub, and federated discovery
Webapp ArchitectureReact, Vite, Zustand, and instance discovery in the frontend
UI Component InventoryCatalog of the webapp's React components by directory
Data ModelsDatabase schema and entity relationships
API ContractsREST endpoints, authentication, and supported protocols
Source TreeDirectory layout and entry points
Lab AppsCreating and submitting experimental audio tools
Lab App: AudiofabricReal-time 3D WebGL music visualizer built-in Lab app
Lab App: 4-Track RecorderBrowser-based 4-track cassette recorder companion package

Integrations ​

Optional third-party services you can connect to your instance.

DocDescription
AI IntegrationsMetadata automation and recommendations via OpenRouter
Smart ContractsSolidity contracts (Factory, NFT, Checkout) on Base
Google DriveCloud storage backend for media files
SoulseekP2P search and one-click import
TorrentsWebTorrent integration for catalog ingestion
Telegram BotRapid file ingestion and remote management

Reference ​

DocDescription
Project OverviewGoals, tech stack, and repository structure
Status & MaturityHonest maturity level of each area and known limitations
Comparison with FunkwhaleDifferences in models and features
Audio FingerprintingHow TuneCamp deduplicates tracks in the library
Payments Security ReviewInternal security review findings for the payments flow

Last updated: June 24, 2026

Released under the MIT License.