Skip to content

scobru/shogun-tunecamp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,140 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tunecamp Logo

Tunecamp

A decentralized music platform for independent artists and labels.

License: MIT

Why This Exists

Streaming platforms take significant cuts from artists and lock their communities into walled gardens. Tunecamp allows you to host your own music with a beautiful web interface, fully compatible with existing Subsonic mobile apps. It connects you to the Fediverse (via ActivityPub) and creates a global, decentralized music discovery network (via GunDB)—giving artists ownership of their distribution without sacrificing reach.

Quick Start

The fastest way to run Tunecamp is using Docker Compose.

# 1. Start the server in the background
docker-compose up -d

# 2. Access the dashboard
# Open http://localhost:1970 in your browser

Note: Edit docker-compose.yml to set your desired music and data volume paths before running.

Features

  • 🎵 Audio-first: Automatically reads metadata and generates waveforms from your audio files.
  • 🖥️ Streaming Server: Personal streaming server with a modern web interface.
  • 🎨 Customizable: Responsive UI with theme support.
  • 🔐 Decentralized: GunDB integration for comments, stats, and identity roaming (cross-instance login).
  • 📡 Federation: ActivityPub support to connect with the Fediverse (Mastodon, Funkwhale, etc.).
  • 🔊 Subsonic/OpenSubsonic API: Full compatibility with mobile apps (DSub, Symfonium, Tempo, Substreamer, Amuse, etc.).
  • 📦 Docker Ready: Easy deployment with Docker and Docker Compose.

Installation & Setup

Using Node.js (Development)

Prerequisites: Node.js 18+, npm 9+

# Clone the repository
git clone https://github.com/your-username/tunecamp.git
cd tunecamp

# Install dependencies and build backend
npm install
npm run build

# Install frontend dependencies
cd webapp
npm install
cd ..

# Start the development server
npm run dev &

Configuration

Configuration is managed via environment variables (or an .env file).

Variable Description Default
PORT The port the server will listen on. 1970
TUNECAMP_SITE_NAME The name of your Tunecamp instance. My TuneCamp Server
TUNECAMP_PUBLIC_URL The public-facing URL of your server (required for ActivityPub). -
TUNECAMP_GUN_PEERS Comma-separated list of GunDB relay peers. -
VITE_GUN_PEERS (Frontend) Same as TUNECAMP_GUN_PEERS. -
TUNECAMP_RELAY_URL ActivityPub relay URL for broadcasting. -

For DeFi and Payments configuration (Base Network), see the full Configuration Guide.

API & Integrations

Subsonic API

Tunecamp exposes a full Subsonic API (version 1.16.1) at /rest. This allows you to use your Tunecamp library with major mobile clients like DSub, Symfonium, and Tempo.

See the Subsonic API Reference →

REST API

The platform is driven by a REST JSON API under /api/.

See the OpenAPI Reference →

Nginx Reverse Proxy

For production deployments, using Nginx as a reverse proxy is recommended for SSL and WebSocket support.

See the Nginx Configuration Guide →

Federation

Tunecamp is compatible with Funkwhale and Mastodon via ActivityPub.

See the Federation Guide →

Contributing

See CONTRIBUTING.md for details on how to get started.

Roadmap

Tunecamp is evolving towards a full Web3 sovereignty model, including native Onramp integration to easily fund wallets and direct tipping/payments in USDC, ETH, and other tokens.

See the Full Project Roadmap →

License

MIT License - see LICENSE file for details.

About

A modern static site generator for musicians and music labels, written in JavaScript/TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors