2025-08-09 15:53:51 +02:00
# 🎵 Jukebox 420 - Discord Soundboard v1.0.0
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
Ein modernes, feature-reiches Discord Soundboard mit Web-Frontend, Discord-Bot und Docker-Deployment. Perfekt für Gaming-Communities, Streamer und Discord-Server.
2025-08-07 23:24:56 +02:00
2025-08-09 15:53:51 +02:00

2025-08-09 01:10:09 +02:00


2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
## ✨ Features
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### 🎮 **Kern-Funktionen**
2025-08-09 01:26:37 +02:00
- **Web-Frontend** mit modernem UI und 3 Themes (Dark, Rainbow, 420)
2025-08-09 01:10:09 +02:00
- **Discord-Bot** für Voice-Channel Integration
- **Sound-Management** mit Ordner-Unterstützung
- **Live-Uhrzeit** (Berlin Timezone)
- **Volume Control** pro Server
- **Favoriten-System** mit Cookie-Persistenz
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### 🎨 **UI/UX Features**
2025-08-09 01:26:37 +02:00
- **3 Themes**: Dark, Rainbow, 420 (Cannabis/Trippy)
2025-08-09 01:10:09 +02:00
- **Responsive Design** für Desktop & Mobile
- **Glassmorphism-Effekte** mit Backdrop-Blur
- **Animierte Hintergründe** (Rainbow & 420 Theme)
- **Live-Zähler** für Sounds und Abspielungen
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### 🔧 **Admin-Funktionen**
- **Admin-Login** (Passwort-basiert)
- **Bulk-Delete** für mehrere Sounds
- **Sound-Umbenennen** mit Inline-Editor
- **Checkbox-Auswahl** für Massenoperationen
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### 🎵 **Audio-Features**
- **MP3 & WAV Support** für Uploads und Playback
- **Audio-Normalisierung** (Loudnorm)
- **URL-Download** für MP3/WAV Links
- **Random-Play** für zufällige Sounds
- **Panic-Button** zum sofortigen Stoppen
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### 📁 **Organisation**
- **Ordner-Unterstützung** mit Tab-Navigation
- **Favoriten-Tab** für gespeicherte Sounds
- **Neu-Tab** für die letzten 10 Uploads
- **Most Played** für Top 3 Sounds
- **Suchfunktion** für alle Sounds
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
## 🚀 Quick Start
### 1. Voraussetzungen
- **Docker & Docker Compose**
- **Discord Bot Token** mit folgenden Intents:
- `Guilds`
- `GuildVoiceStates`
- `DirectMessages`
- `MessageContent`
### 2. Setup
```bash
# Repository klonen
git clone https://github.com/flex420/jukebox-vibe.git
cd jukebox-vibe
# .env Datei erstellen
cp .env.example .env
```
### 3. Konfiguration
```env
# .env Datei bearbeiten
DISCORD_TOKEN=dein_discord_bot_token_hier
PORT=8080
SOUNDS_DIR=/data/sounds
# Optional: Bestimmte Server erlauben
ALLOWED_GUILD_IDS=GUILD_ID_1,GUILD_ID_2
# Optional: Audio-Normalisierung
NORMALIZE_AUDIO=true
NORMALIZE_TARGET=-14
NORMALIZE_THRESHOLD=-70
```
### 4. Deployment
2025-08-07 23:24:56 +02:00
```bash
2025-08-09 01:10:09 +02:00
# Container starten
2025-08-07 23:24:56 +02:00
docker compose up --build -d
2025-08-09 01:10:09 +02:00
# Logs anzeigen
docker compose logs -f
# Status prüfen
docker compose ps
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
### 5. Zugriff
- **Web-Interface**: `http://localhost:8199`
- **Health Check**: `http://localhost:8199/api/health`
## 🎯 Verwendung
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### **Erste Schritte**
1. **Discord Bot einladen** mit Voice-Permissions
2. **Sounds hochladen** via DM an den Bot (MP3/WAV)
3. **Web-Interface öffnen** und Theme wählen
4. **Voice-Channel auswählen** und Sounds abspielen
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### **Admin-Panel**
1. **Admin-Login** mit Passwort
2. **Sounds auswählen** via Checkboxen
3. **Bulk-Delete** oder **Umbenennen** durchführen
4. **Logout** zum Beenden
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### **URL-Downloads**
- **MP3/WAV Links** in das URL-Feld eingeben
- **Download-Button** klicken
- **Automatische Integration** in Soundboard
## 🎨 Themes
### **Dark Theme**
- Klassisches dunkles Design
- Blaue Akzente (#0a84ff )
- Glassmorphism-Effekte
### **Rainbow Theme**
- Animierter Regenbogen-Hintergrund
- Bunte Borders und Effekte
- 15s Animation-Loop
### **420 Theme**
- Cannabis-grüne Farbpalette
- Trippy animierte Gradienten
- 20s Animation-Loop
- Grüne Glow-Effekte
## 📊 API Endpunkte
### **Public Endpoints**
```http
GET /api/health # Health Check + Statistiken
GET /api/sounds # Sound-Liste mit Ordner-Struktur
GET /api/channels # Voice-Channel Liste
POST /api/play # Sound abspielen
POST /api/play-url # URL downloaden & abspielen
POST /api/stop # Aktuellen Sound stoppen
GET /api/volume # Volume abrufen
POST /api/volume # Volume setzen
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
### **Admin Endpoints**
```http
POST /api/admin/login # Admin-Login
POST /api/admin/logout # Admin-Logout
GET /api/admin/status # Login-Status
POST /api/admin/sounds/delete # Sounds löschen
POST /api/admin/sounds/rename # Sound umbenennen
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
## 🔧 Discord Bot Commands
### **DM Commands**
- `?help` - Hilfe anzeigen
- `?list` - Alle Sounds auflisten
- `?restart` - Bot neu starten (mit Bestätigung)
### **Upload via DM**
- **MP3/WAV Dateien** direkt an Bot senden
- **Automatische Speicherung** in `/data/sounds`
- **Sofortige Verfügbarkeit** im Frontend
## 🐳 Docker Deployment
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
### **Docker Compose (Empfohlen)**
```yaml
# docker-compose.yml
services:
2025-08-09 01:26:37 +02:00
app:
2025-08-09 01:10:09 +02:00
build: .
2025-08-09 01:26:37 +02:00
container_name: discord-soundboard
2025-08-09 01:10:09 +02:00
ports:
- "8199:8080"
2025-08-09 01:26:37 +02:00
env_file:
- .env
2025-08-09 01:10:09 +02:00
volumes:
- ./data/sounds:/data/sounds
restart: unless-stopped
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
### **Docker Run**
```bash
docker run -d \
--name jukebox-420 \
-p 8199:8080 \
--env-file .env \
-v $(pwd)/data/sounds:/data/sounds \
flex420/jukebox-vibe:latest
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
### **Docker Hub**
```bash
# Image pullen
docker pull flex420/jukebox-vibe:latest
# Container starten
docker run -d --name jukebox-420 -p 8199:8080 --env-file .env -v $(pwd)/data/sounds:/data/sounds flex420/jukebox-vibe:latest
```
## 📁 Projekt-Struktur
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
```
jukebox-vibe/
├── server/ # Backend (Node.js/Express)
│ ├── src/
│ │ ├── index.ts # Main Server + Discord Bot
│ │ └── types/ # TypeScript Definitions
│ ├── package.json
│ └── tsconfig.json
├── web/ # Frontend (React/Vite)
│ ├── src/
│ │ ├── App.tsx # Main React Component
│ │ ├── api.ts # API Client
│ │ ├── styles.css # Theme Styles
│ │ └── types.ts # TypeScript Types
│ ├── package.json
│ └── index.html
├── docker-compose.yml # Docker Compose Config
├── Dockerfile # Multi-Stage Build
├── .env.example # Environment Template
└── README.md # Diese Datei
```
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
## 🔧 Entwicklung
### **Lokale Entwicklung**
2025-08-07 23:24:56 +02:00
```bash
2025-08-09 01:10:09 +02:00
# Backend
2025-08-07 23:24:56 +02:00
cd server
npm install
npm run dev
2025-08-09 01:10:09 +02:00
# Frontend (neues Terminal)
2025-08-07 23:24:56 +02:00
cd web
npm install
npm run dev
```
2025-08-09 01:10:09 +02:00
### **Build**
2025-08-07 23:24:56 +02:00
```bash
2025-08-09 01:10:09 +02:00
# Production Build
docker build -t jukebox-vibe .
2025-08-07 23:24:56 +02:00
2025-08-09 01:10:09 +02:00
# Development Build
docker build --target development -t jukebox-vibe:dev .
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
## 📈 Statistiken
### **Persistente Daten**
- **Sounds**: `/data/sounds/` (Volume Mount)
- **State**: `/data/sounds/state.json` (Volume, Channel, Plays)
- **Favoriten**: Browser Cookies
- **Theme**: Browser LocalStorage
### **Monitoring**
- **Health Check**: `/api/health`
- **Docker Logs**: `docker compose logs -f`
- **Container Status**: `docker compose ps`
## 🛠️ Troubleshooting
### **Häufige Probleme**
**Bot joint nicht Voice-Channel:**
- Prüfe Bot-Permissions (Voice)
- Prüfe Intents in Discord Developer Portal
- Prüfe Network/Firewall
**Sounds werden nicht angezeigt:**
- Prüfe Volume Mount `/data/sounds`
- Prüfe Datei-Permissions
- Prüfe Bot-Uploads via DM
**Admin-Login funktioniert nicht:**
- Prüfe Browser-Cookies
- Prüfe Admin-Passwort
- Prüfe Server-Logs
### **Logs anzeigen**
2025-08-07 23:24:56 +02:00
```bash
2025-08-09 01:10:09 +02:00
# Docker Compose Logs
docker compose logs -f
# Container-spezifische Logs
2025-08-09 01:26:37 +02:00
docker compose logs -f app
2025-08-09 01:10:09 +02:00
# Letzte 100 Zeilen
2025-08-09 01:26:37 +02:00
docker compose logs --tail=100 app
2025-08-07 23:24:56 +02:00
```
2025-08-09 01:10:09 +02:00
## 🤝 Contributing
1. **Fork** das Repository
2. **Feature Branch** erstellen (`git checkout -b feature/AmazingFeature` )
3. **Commit** Änderungen (`git commit -m 'Add AmazingFeature'` )
4. **Push** zum Branch (`git push origin feature/AmazingFeature` )
5. **Pull Request** erstellen
## 📄 Lizenz
Dieses Projekt ist unter der MIT Lizenz lizenziert - siehe [LICENSE ](LICENSE ) Datei für Details.
## 🙏 Credits
- **Discord.js** für Bot-Funktionalität
- **React** für das Frontend
- **Vite** für Build-Tooling
- **Docker** für Containerisierung
- **Tailwind CSS** für Styling
---
**🎵 Jukebox 420** - Dein ultimatives Discord Soundboard! 🚀
2025-08-07 23:24:56 +02:00