Notice: This project was developed for my personal use as a touch display hardware jukebox.
Please note that the code quality is admittedly poor and was written for functionality over best practices.
Use at your own discretion!
System Requirements
- Go 1.26 or newer — only needed to build; the resulting binary runs on its own
- Chromium-based browser (Chrome or Edge) for Spotify playback — the Spotify Web Playback SDK needs the Widevine module. Local playback works in any browser.
- MP3 or FLAC music files (optional, for local library)
- Spotify Premium account (optional, for streaming)
Note: nJukebox (short for Nico's Jukebox) started as a Node.js project and has been completely rewritten in Go — a single statically linked binary with no runtime dependencies.
Installation Steps
1. Clone the Repository
git clone https://github.com/Nigcra/nJukebox.git
cd nJukebox
2. Build the Binary
go build -o njukebox ./cmd/njukebox
Note: On Windows the binary is njukebox.exe. Go is only needed for this step — the binary is statically linked and has no runtime dependencies.
3. Prepare Your Music Library
Copy your MP3 and FLAC files to the music/ directory (the server creates it on first start):
# Create music directory if it doesn't exist
mkdir -p music
# Copy your music files
cp /path/to/your/music/*.mp3 music/
Important: MP3 and FLAC files are supported. Make sure your files have proper metadata tags for best results. The application scans on startup and watches the folder while it runs.
4. Start the System
One binary serves both the web interface and the data server:
Option A: Start Everything (Recommended)
./njukebox
Option B: Start Components Separately
# Only the data server
./njukebox --data-only
# Only the web server
./njukebox --web-only
Tip: Use 127.0.0.1, not localhost — Spotify only accepts unencrypted HTTP redirect URIs for the loopback address.
First Time Setup
1. Music Library Scan
When you first access nJukebox, it will automatically scan your music/ directory for MP3 files. This process:
- Reads ID3 tags from your MP3 files
- Extracts album artwork
- Creates a searchable database
- Organizes music by artist, album, genre, and decade
2. Admin Access
To access admin features:
- Click the lock icon (🔒) in the top-left corner
- Enter the default PIN:
1234
- You now have access to admin controls
Security: Change the default PIN in the admin settings for production use.
3. Configure Settings
In the admin panel, you can configure:
- Language: Switch between German and English
- Auto-DJ: Enable automatic playlist generation
- Track Lock Time: Prevent recently played tracks from being queued again
- Visualizations: Customize visual effects
Basic Usage
Browsing Music
- 🌟 Neu: Recently added tracks
- 👤 Interpret: Browse by artist
- 💿 Album: Browse by album
- 🎷 Genre: Browse by music genre
- 🕰️ Jahrzehnt: Browse by decade
- 📊 Top Hits: Most played tracks
Playing Music
- Browse or search for a track
- Click on any track to add it to the playlist
- Use the player controls at the bottom
- View the current playlist on the right side
Search
Use the search bar to find music by:
- Artist name
- Album title
- Song title
- Genre
Next Steps
Hinweis: Dieses Projekt wurde für meinen persönlichen Gebrauch als Touch-Display Hardware-Jukebox entwickelt.
Die Code-Qualität ist zugegebenermaßen schlecht und wurde auf Funktionalität statt auf bewährte Praktiken ausgelegt.
Verwenden Sie es auf eigene Verantwortung!
Systemanforderungen
- Go 1.26 oder neuer — nur zum Bauen nötig; das fertige Binary läuft eigenständig
- Chromium-basierter Browser (Chrome oder Edge) für Spotify-Wiedergabe — das Spotify Web Playback SDK benötigt das Widevine-Modul. Lokale Wiedergabe funktioniert in jedem Browser.
- MP3- oder FLAC-Musikdateien (optional, für lokale Bibliothek)
- Spotify Premium-Account (optional, für Streaming)
Hinweis: nJukebox (kurz für Nico's Jukebox) begann als Node.js-Projekt und wurde vollständig in Go neu geschrieben — ein einzelnes, statisch gelinktes Binary ohne Laufzeitabhängigkeiten.
Installationsschritte
1. Repository klonen
git clone https://github.com/Nigcra/nJukebox.git
cd nJukebox
2. Binary bauen
go build -o njukebox ./cmd/njukebox
Hinweis: Unter Windows heißt das Binary njukebox.exe. Go wird nur für diesen Schritt benötigt — das Binary ist statisch gelinkt und hat keine Laufzeitabhängigkeiten.
3. Musikbibliothek vorbereiten
Kopieren Sie Ihre MP3- und FLAC-Dateien in das music/ Verzeichnis (der Server erstellt es beim ersten Start):
# Musikverzeichnis erstellen, falls es nicht existiert
mkdir -p music
# Ihre Musikdateien kopieren
cp /pfad/zu/ihrer/musik/*.mp3 music/
Wichtig: MP3- und FLAC-Dateien werden unterstützt. Stellen Sie sicher, dass Ihre Dateien ordnungsgemäße Metadaten-Tags haben. Die Anwendung scannt beim Start und überwacht den Ordner im laufenden Betrieb.
4. System starten
Ein Binary bedient sowohl die Web-Oberfläche als auch den Datenserver:
Option A: Alles starten (empfohlen)
./njukebox
Option B: Komponenten separat starten
# Nur der Datenserver
./njukebox --data-only
# Nur der Webserver
./njukebox --web-only
Tipp: Verwenden Sie 127.0.0.1, nicht localhost — Spotify akzeptiert unverschlüsselte HTTP-Redirect-URIs nur für die Loopback-Adresse.
Ersteinrichtung
1. Musikbibliothek scannen
Beim ersten Zugriff auf nJukebox wird automatisch Ihr music/ Verzeichnis nach MP3-Dateien durchsucht. Dieser Prozess:
- Liest ID3-Tags aus Ihren MP3-Dateien
- Extrahiert Album-Artwork
- Erstellt eine durchsuchbare Datenbank
- Organisiert Musik nach Interpret, Album, Genre und Jahrzehnt
2. Admin-Zugang
Um auf Admin-Funktionen zuzugreifen:
- Klicken Sie auf das Schloss-Symbol (🔒) in der oberen linken Ecke
- Geben Sie die Standard-PIN ein:
1234
- Sie haben jetzt Zugriff auf Admin-Funktionen
Sicherheit: Ändern Sie die Standard-PIN in den Admin-Einstellungen für den Produktiveinsatz.
3. Einstellungen konfigurieren
Im Admin-Panel können Sie konfigurieren:
- Sprache: Zwischen Deutsch und Englisch wechseln
- Auto-DJ: Automatische Playlist-Generierung aktivieren
- Track-Sperrzeit: Verhindert, dass kürzlich gespielte Titel erneut in die Warteschlange gestellt werden
- Visualisierungen: Visuelle Effekte anpassen
Grundlegende Nutzung
Musik durchsuchen
- 🌟 Neu: Kürzlich hinzugefügte Titel
- 👤 Interpret: Nach Künstler durchsuchen
- 💿 Album: Nach Album durchsuchen
- 🎷 Genre: Nach Musikgenre durchsuchen
- 🕰️ Jahrzehnt: Nach Jahrzehnt durchsuchen
- 📊 Top Hits: Meistgespielte Titel
Musik abspielen
- Durchsuchen oder suchen Sie nach einem Titel
- Klicken Sie auf einen beliebigen Titel, um ihn zur Playlist hinzuzufügen
- Verwenden Sie die Player-Steuerungen unten
- Sehen Sie sich die aktuelle Playlist auf der rechten Seite an
Suche
Verwenden Sie die Suchleiste, um Musik zu finden nach:
- Interpretenname
- Albumtitel
- Song-Titel
- Genre
Nächste Schritte