Skip to content

Lokke/subcaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

172 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SubCaster

Build and Push Docker Image Docker Image

Professional web interface for radio moderators and DJs. Provides access to music from OpenSubsonic-compatible servers with live streaming to AzuraCast.

Available on multiple platforms:

  • 🌐 Web Browser (Docker/Node.js)
  • πŸ’» Desktop App (Electron - Windows/macOS/Linux)
  • πŸ“± Android App (Native with embedded Node.js server)
Screenshot 2025-09-24 002355

Features

  • Music library browser for OpenSubsonic servers (Navidrome, Gonic, Ampache, Astiga, etc.)
  • 4-deck audio player with crossfader
  • Microphone input with live mixing
  • Direct streaming to AzuraCast
  • Smart metadata transmission
  • Browser-based interface with native desktop/mobile apps

πŸš€ Quick Start

Web (Docker - Recommended)

docker pull ghcr.io/lokke/subcaster:latest
docker-compose -f docker-compose.env.yml up -d

Desktop (Electron)

npm install
npm run electron:dev

Android

npm install
npm run android:init
npm run android:sync
npm run android:open

πŸ“– See PLATFORM_BUILDS.md for complete platform-specific instructions.

License

Non-commercial use only.

See LICENSE and COMMERCIAL-LICENSE.md for details.

Third-Party Licenses

This project uses Material Icons (MaterialIcons-Regular.woff2) provided by Google under the Apache License 2.0. See LICENSE-MATERIAL-ICONS for the full license text.

🐳 Docker Deployment

Quick Start (Pre-built Image)

The easiest way to run SubCaster is using the pre-built Docker image from GitHub Container Registry:

# Pull latest image
docker pull ghcr.io/lokke/subcaster:latest

# Run with docker-compose
docker-compose -f docker-compose.env.yml up -d

Image automatically rebuilds on every commit! βœ…

Deployment Options

We provide 3 deployment configurations:

File Use Case Documentation
docker-compose.production.yml Standalone (all ENV in file) For Portainer/Remote
docker-compose.env.yml With .env file Recommended
docker-compose.ghcr.yml Minimal Manual config

πŸ“– Full deployment guide: DOCKER_DEPLOYMENT.md

πŸ“– CI/CD setup: DOCKER_CI_CD.md

Environment Variables

Create a .env file with your configuration:

# Copy example
cp .env.example .env

# Edit with your values
nano .env

Essential Variables:

  • VITE_OPENSUBSONIC_URL - Your music server URL
  • VITE_AZURACAST_SERVERS - Your radio server URL(s)
  • VITE_DISCORD_CHANNEL_ID - Discord channel for song requests (optional)

Security Note: πŸ”’

  • Variables with VITE_ prefix are public (embedded in frontend)
  • Variables without VITE_ are private (server-side only)
  • Never put secrets in VITE_* variables!

Full variable list: See .env.example or DOCKER_DEPLOYMENT.md

Update to Latest Version

# Pull new image
docker-compose -f docker-compose.env.yml pull

# Restart with new version
docker-compose -f docker-compose.env.yml up -d

Check logs:

docker logs -f subcaster

Manual Installation

Install dependencies:

npm install

Configure streaming in .env:

VITE_STREAM_USERNAME=username
VITE_STREAM_PASSWORD=password

Start development server:

npm run dev

Open interface at http://localhost:5173

About

Opensubsonic-based web DJ solution for AzuraCast live streaming

Topics

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
LICENSE.md
Unknown
LICENSE-MATERIAL-ICONS

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors