Skip to content

Getting Started ​

This page takes you from nothing to a running TuneCamp instance with music in it. It should take about 10 minutes. For deeper topics, follow the links at the end.

New to TuneCamp? It's a self-hosted music platform: your own streaming server with a web player, mobile-app support (Subsonic), Fediverse federation (ActivityPub), and optional Web3 monetization. You run it; you own the data.

1. Prerequisites ​

The fastest path uses Docker. You need:

  • Docker 20+ and Docker Compose
  • A folder of audio files (MP3, FLAC, WAV, …)

Prefer running from source for development instead? See the Development Guide.

2. Install & run ​

bash
# 1. Clone the repository
git clone https://github.com/scobru/tunecamp.git
cd tunecamp

# 2. Point TuneCamp at your music folder
#    Edit docker-compose.yml and replace /path/to/your/music
#    with the path to your audio files.

# 3. Build and start in the background
docker-compose up -d --build

When the container is healthy, open http://localhost:1970 in your browser.

3. First login & secure your instance ​

TuneCamp creates a default admin account on first run:

UsernamePassword
adminadmin

(Override these before first run with TUNECAMP_ADMIN_USER / TUNECAMP_ADMIN_PASS.)

Change the admin password immediately after logging in, from Admin β†’ Settings. The server logs a security warning at startup while the admin account, open CORS, or an auto-generated JWT secret are left at defaults β€” see the Configuration reference to harden these.

A built-in setup wizard forces a password change for any account still using a default password. Details in Roles & Permissions.

4. Add your music ​

  1. Go to Admin β†’ Library and trigger a Scan.
  2. TuneCamp reads tags, generates waveforms, and processes cover art.
  3. Scanned albums land in Draft mode β€” they're in your library but not publicly visible until you promote them to a Formal Release from the Admin dashboard.

You can also ingest music via the Telegram bot, Soulseek, torrents, or Google Drive.

5. Listen ​

  • Web player β€” already running at http://localhost:1970, with waveform display, queue, lyrics, and keyboard shortcuts.
  • Mobile / desktop apps β€” TuneCamp speaks the full Subsonic API. Point any Subsonic client (DSub, Symfonium, Tempo, Substreamer) at your server URL with your TuneCamp credentials. See Subsonic Protocol.

6. Where to go next ​

You now have a working instance. Pick the path that matches what you want to do:

If you want to…Read
Put it on a real domain with SSLNginx Configuration
Connect Stripe / crypto paymentsAPI & Services Setup β†’ Payments
Join the federated networkFederation
Understand who can do whatRoles & Permissions
Keep your data safeBackup & Migration
Run it in production at scaleMonitoring Β· Scaling
Contribute codeDevelopment Guide Β· Contributing

See the full documentation index for everything else.

Released under the MIT License.