Self-hosted music workspace

Document, version, and share unfinished music without losing the thread.

Studio is a private workspace for producers and artists to manage albums, track versions, notes, cover art, moodboards, metadata, and collaborator share links.

ALBUM

Night Sessions

8 tracks • 31:42

01 Glass Room v4 Ready
02 Late Static Mixing
03 Soft Reset Draft
Glass Room v4

Waveform player • queue • share access

01

Quick Start

Run Studio locally with the Vite frontend and Express API while you develop or test.

git clone https://github.com/ILostXD/Studio.git
cd Studio
npm install
npm run dev
Open http://localhost:5173. The API runs on http://localhost:3000.
02

Core Features

Project library

Sort albums, EPs, and singles by progress, update time, title, or artist.

Track versioning

Upload WAV, MP3, and FLAC files, switch active versions, and keep revisions organized.

Metadata

Track BPM, key, Camelot tags, LUFS, peaks, release dates, ratings, and todos.

Share links

Create view, listen, or edit links for collaborators without exposing your full library.

03

Deployment

For a single-server local or VPS deployment, build the frontend and start Express.

npm install
npm run build:web
npm start

For Docker Compose deployments:

docker compose up -d --build
For full Ubuntu server setup, storage paths, and Docker notes, read SERVER_SETUP.md.
04

Configuration

Variable Default Purpose
PORT 3000 HTTP port for the Express server.
SESSION_SECRET studio-session-secret Cookie session signing secret. Change this in production.
BCRYPT_COST 12 Password hashing cost, supported from 8 to 14.
DATA_DIR ./data Database, audio, and cover file storage location.
05

Data Storage

Studio stores runtime data in a JSON database and local file folders. Back up the data directory if you care about uploaded projects, tracks, covers, users, and metadata.

data/
  db.json
  files/
    audio/
    covers/
06

Troubleshooting

The app loads stale files

Run npm run build:web again, then restart the server or container.

Uploads fail

Check that DATA_DIR exists and that the server can write to it.