This repository contains a service-based setup for running NodeCG with Bingothon layouts.
├── services/
│ ├── nodecg/ # NodeCG service
│ │ ├── Dockerfile # Custom NodeCG image with bundles
│ │ ├── docker-compose.yml
│ │ └── cfg/ # NodeCG configuration
│ │ └── bingothon-layouts.json
│ └── mpd/ # MPD (Music Player Daemon) service
│ ├── Dockerfile # MPD image configuration
│ ├── docker-compose.yml
│ ├── mpd.conf # MPD configuration
│ └── add-music.sh # Script to add music files
├── docker-compose.yml # Main orchestrator
└── deploy.sh # Deployment script
- Base Image:
nodecg/nodecg:latest(official NodeCG Docker image) - Customizations:
- bingothon-layouts bundle
- nodecg-speedcontrol bundle
- Custom configuration
- Port: 9090
- Volumes: logs, db, assets
- Base Image:
musicpd/mpd:latest(official MPD Docker image) - Purpose: Music Player Daemon for background music and audio control
- Port: 6600
- Volumes: music, playlists, data
- Features:
- Supports MP3, OGG, FLAC, WAV formats
- Network accessible for remote control
- Integrated with bingothon-layouts bundle
./deploy.sh./deploy.sh develop
./deploy.sh feature/new-layoutcd services/nodecg && docker compose logs -fdocker compose downYou can add music in two ways:
Option 1: Drag and drop (Recommended)
# The music directory is mounted from the host
# Simply drag music files into: services/mpd/music/
# Then update the database:
cd services/mpd
./add-music.shOption 2: Command line
cd services/mpd
# Copy your music files to the music directory
cp /path/to/your/music/* ./music/
# Update the database
./add-music.shOpen http://localhost:9090 in your browser
The NodeCG configuration is stored in services/nodecg/cfg/bingothon-layouts.json. This file contains:
- OBS connection settings
- Discord bot configuration
- Donation tracker settings
- Firebase configuration
- MPD settings (enabled and configured for the MPD service)
The MPD configuration is stored in services/mpd/mpd.conf and includes:
- Audio format settings
- Network configuration
- Supported file formats
- Volume and replay gain settings
- Clean Separation: Each service has its own directory and configuration
- Official Base: Uses the official NodeCG Docker image
- Easy Maintenance: No need to maintain NodeCG code in this repo
- Scalable: Easy to add more services
- Flexible: Can override settings at the main compose level
To add a new service:
- Create a new directory in
services/ - Add a
docker-compose.ymlfor the service - Reference it in the main
docker-compose.ymlusingextends - Update deployment scripts as needed