Schnellstart
Du hast einen frischen Linux-Server und willst DGNCast Panel in Betrieb nehmen? In unter 10 Minuten fertig.
Vorbereitungen (einmalig durch Heiko)
-
1DGNCast-Lizenz anlegen Lizenz für die Server-Domain des Kunden eintragen (wird von Heiko erledigt).
-
2HDEncoder-Lizenz anlegen HDEncoder-Lizenz für dieselbe Domain – wird von Heiko eingetragen.
-
3DNS-Eintrag setzen A-Record für die Panel-Domain auf die Server-IP. DNS muss propagiert sein bevor der Installer läuft.
Installation (als Root auf dem Server)
ssh root@dein-server.de
curl -fsSL https://cast.dgnshop.com/setup/install.sh | bash
Der Installer fragt interaktiv nach Domain, E-Mail und Admin-Passwort. Fertig nach ca. 5–8 Minuten.
Nach der Installation erreichst du das Panel unter https://deine-domain.de/admin. Direkt als Nächstes: DGNCast-Server verbinden →
Nicht-interaktiv (für Automation)
INSTALL_DOMAIN=panel.kunde.de \
INSTALL_EMAIL=admin@kunde.de \
PANEL_ADMIN_PASS='langes-passwort' \
bash -c "$(curl -fsSL https://cast.dgnshop.com/setup/install.sh)"
Voraussetzungen
Server-Anforderungen
| Anforderung | Minimum | Empfohlen |
|---|---|---|
| Betriebssystem | Debian 12 / Ubuntu 22.04 | Debian 13 / Ubuntu 24.04 LTS |
| RAM | 1 GB | 2 GB |
| Disk | 10 GB | 20 GB+ |
| Zugang | Root (SSH) | Root (SSH) |
| Empfohlener Hoster | – | Hetzner CX22 (ca. 5 EUR/Monat) |
DNS-Voraussetzung
Du brauchst einen A-Record für deine Panel-Domain, der auf die Server-IP zeigt:
panel.deine-domain.de. IN A 1.2.3.4
Der DNS muss vollständig propagiert sein bevor du den Installer startest. Sonst schlägt Let's Encrypt fehl. Warte mindestens 5 Minuten nach dem Setzen des Eintrags.
Lizenzen (durch Heiko einzutragen)
Vor dem Install müssen zwei Lizenzen im Backend eingetragen sein:
- DGNCast-Lizenz – mit der exakten Panel-Domain als Scope (wird von Heiko eingetragen)
- HDEncoder-Lizenz – selbe Domain wie die DGNCast-Lizenz (wird von Heiko eingetragen)
Der Installer zieht die Lizenzen automatisch, du musst nichts eintragen.
Plesk-Server
Der Installer erkennt Plesk automatisch (/usr/local/psa oder /opt/psa). Apache-VHost und UFW werden dann übersprungen. Die Anleitung für die manuelle Konfiguration findest du nach der Installation unter /opt/dgncast-panel-php/PLESK-SETUP.txt.
Server installieren
Installer-Befehl
ssh root@dein-server.de
curl -fsSL https://cast.dgnshop.com/setup/install.sh | bash
Interaktive Abfragen
- Panel-Domain – z.B.
panel.deine-domain.de - E-Mail – für Let's Encrypt-Zertifikat
- Admin-Passwort – mindestens 12 Zeichen, unbedingt notieren!
Was der Installer macht (12 Phasen, ca. 5–8 Min.)
- Konfiguration sammeln + DGNCast-Lizenz vom Lizenzserver ziehen
- System-Pakete: curl, wget, jq, PHP 8.5 + Extensions
- HDEncoder PHP-Extension installieren + Lizenz automatisch freigeben
- Apache 2 + SSL-Module aktivieren
- Certbot für Let's Encrypt
- Node.js 22 LTS + ffmpeg
- Systemd-User + Panel-Verzeichnis
/opt/dgncast-panel-php - Panel-Tarball entpacken
- DGNCast-Server-Tarball entpacken + npm install
- Zwei systemd-Services starten (Panel Port 8090, DGNCast-Server Port 8010)
- Apache-VHost + SSL-Zertifikat + UFW-Firewall
- Verifikations-Report generieren
Am Ende erscheint in der FERTIG-Box ein Link zu einem HTML-Report. Dort siehst du alle 10 Checks auf einen Blick (Services, SSL, Lizenz, PHP-Extensions, ...).
Nach der Installation
Das Panel ist erreichbar unter:
https://deine-panel-domain.de/admin
Login: Benutzername admin, Passwort wie beim Install eingegeben.
Den DGNCast-Server verbinden! Ohne das können keine Streams angelegt werden. Weiter mit: DGNCast-Server verbinden →
DGNCast-Server verbinden
Das Panel verwaltet Streams, der eigentliche Streaming-Dienst ist der DGNCast-Server – ein Node.js-Dienst der nach der Installation bereits läuft.
Standard-Konfiguration (alles auf einem Server)
Wenn Panel und DGNCast-Server auf demselben Rechner laufen (Normalfall nach automatischer Installation):
| Feld | Wert |
|---|---|
| Base URL | http://127.0.0.1:8010 |
| API-Username | admin |
| API-Passwort | Dein Panel-Admin-Passwort (gleich wie beim Login) |
| Anzeigename | z.B. Hauptserver |
Im Panel unter Server → Neuen Server verbinden gibt es den Button "Felder mit Standardwerten ausfüllen" – ein Klick, dann nur noch das Passwort eingeben und auf Verbinden & Test klicken.
API-Passwort nachschlagen
Falls du das Passwort nicht mehr weißt, findest du es auf dem Server:
cat /opt/dgncast/config.json | grep password
Verbindungstest schlägt fehl?
- Läuft der DGNCast-Server?
systemctl status dgncast-server - Läuft er auf Port 8010?
ss -tlnp | grep 8010 - Stimmt das Passwort mit
/opt/dgncast/config.jsonüberein?
Externer Server (fortgeschritten)
Du kannst auch einen DGNCast-Server auf einem anderen Rechner verbinden. Trage als Base URL die externe IP oder Domain ein, z.B. http://stream.deine-domain.de:8010. Port 8010 muss in der Firewall freigegeben sein.
Wenn der DGNCast-Server extern erreichbar ist, unbedingt ein starkes API-Passwort verwenden und Port 8010 nur für bekannte IPs freigeben.
Pläne anlegen
Pläne definieren die Ressourcen die einem Stream oder Kunden zur Verfügung stehen (Bitrate, Hörer-Slots, Speicher).
Neuen Plan anlegen
-
1Im Panel: Pläne → Neuen Plan erstellen
-
2Name vergeben (z.B. "Starter 128k", "Pro 320k")
-
3Bitrate-Limit in kbps, max. gleichzeitige Hörer und Speicher-Kontingent eintragen
-
4Speichern
Typische Plan-Konfigurationen
| Plan | Bitrate | Hörer | Speicher |
|---|---|---|---|
| Starter | 128 kbps | 50 | 500 MB |
| Standard | 192 kbps | 200 | 2 GB |
| Pro | 320 kbps | unbegrenzt | 10 GB |
Pläne können nachträglich geändert werden. Die Änderung greift beim nächsten Stream-Neustart.
Kunden anlegen Nur Reseller-Tier
Im Reseller-Tier kannst du Unterkonten für deine Kunden anlegen. Jeder Kunde sieht nur seine eigenen Daten und Streams.
Neuen Kunden anlegen
-
1Im Panel: Kunden → Neuen Kunden anlegen
-
2Name, E-Mail und Passwort eingeben
-
3Plan zuweisen (vorher anlegen unter Pläne anlegen)
-
4Optional: Ablaufdatum für zeitbegrenzte Accounts
-
5Erstellen
Kunden sperren / löschen
Unter Kunden → [Kundenname] → Bearbeiten kannst du Plan, Passwort und Status ändern. Gesperrte Kunden können sich nicht mehr einloggen, ihre Streams werden angehalten.
Im Standard-Tier gibt es keine Kundenverwaltung – du verwaltest direkt deine eigenen Streams. Die Kunden-Funktion ist ausschließlich im Reseller-Tier verfügbar.
Streams anlegen
Ein Stream entspricht einem Radiosender. Du kannst mehrere Streams parallel betreiben.
Neuen Stream anlegen
-
1Im Panel: Streams → Neuen Stream anlegen
-
2Stream-Name und Beschreibung eingeben
-
3Bitrate wählen (muss im Plan-Limit liegen)
-
4Mount-Point festlegen, z.B.
/radiooder/live -
5Passwort für Broadcastsoftware setzen
-
6Stream erstellen
Sendesoftware verbinden
Verbindungsdaten für BUTT, MIXXX, SAM Broadcaster, Liquidsoap & Co. (Icecast2-kompatibel):
| Einstellung | Wert |
|---|---|
| Server / Host | deine-panel-domain.de |
| Port | 8010 |
| Mount | /radio (dein Mount-Point) |
| Passwort | Stream-Passwort (wie beim Anlegen gesetzt) |
| Protokoll | Icecast2 |
Dein Stream ist erreichbar unter http://deine-panel-domain.de:8010/radio. Diese URL kannst du in deine Webseite einbetten.
Troubleshooting
Panel nicht erreichbar
systemctl status dgncast-panel-php
systemctl status apache2
journalctl -u dgncast-panel-php -n 50
DGNCast-Server läuft nicht
systemctl status dgncast-server
journalctl -u dgncast-server -n 50
# Manuell testen:
curl http://127.0.0.1:8010/api/status
HDEncoder-Fehler (Panel leer oder PHP-Fehler)
php -m | grep hdencoder
# Falls leer: .ini prüfen
ls /etc/php/8.5/*/conf.d/ | grep hdencoder
# Notfall-Repair:
find /usr/lib/php -name hdencoder.so
echo 'extension=hdencoder.so' > /etc/php/8.5/mods-available/hdencoder.ini
phpenmod -v 8.5 hdencoder
systemctl restart dgncast-panel-php
Let's Encrypt schlägt fehl
DNS noch nicht propagiert. Prüfen: dig +short deine-domain.de A – muss die Server-IP zurückgeben.
# Zertifikat manuell anfordern:
certbot --apache -d deine-panel-domain.de
Lizenz-Fehler beim Install
- Heiko hat die Lizenz noch nicht für diese Domain eingetragen
- Der A-Record zeigt noch nicht auf diesen Server
- Tippfehler in der Domain beim Installer-Dialog
Wende dich in diesem Fall direkt an Heiko – er kann den Lizenzstatus prüfen und korrigieren.
Alle Services neu starten
systemctl restart dgncast-panel-php dgncast-server apache2
Installer erneut ausführen
Der Installer ist idempotent – kann auf einem bestehenden Server nochmal ausgeführt werden.
curl -fsSL https://cast.dgnshop.com/setup/install.sh | bash
FAQ
Kann ich das Panel auf einem Plesk-Server installieren?
Ja. Der Installer erkennt Plesk automatisch. Die VHost-Konfiguration machst du dann manuell nach der Anleitung in /opt/dgncast-panel-php/PLESK-SETUP.txt.
Welche Sendesoftware wird unterstützt?
Alles Icecast2-kompatible: BUTT, MIXXX, SAM Broadcaster, Rocket Broadcaster, Liquidsoap, Traktor (mit Plugin) u.v.m.
Können Panel und DGNCast-Server auf verschiedenen Servern laufen?
Ja. Du kannst unter Server → Neuen Server verbinden beliebige externe URLs eintragen. Port 8010 muss in der Firewall freigegeben sein.
Wie viele Hörer kann ein Server verkraften?
Abhängig von der Netzwerkbandbreite. Faustformel: 1 Mbit/s Upload = ca. 7 Hörer bei 128 kbps. Ein Hetzner CX22 (20 TB Traffic) reicht für die meisten kleinen bis mittleren Sender.
Was passiert wenn meine Lizenz abläuft?
Das Panel zeigt eine Warnung an. Kontakt: support@dgnshop.com
Gibt es eine API?
Der DGNCast-Server hat eine REST-API intern auf Port 8010. Das Panel selbst hat aktuell keine öffentliche API.
Wie sichere ich die Konfiguration?
Siehe Backup & Wiederherstellung.
Backup & Wiederherstellung
Was sichern?
| Datei / Verzeichnis | Inhalt | Wichtigkeit |
|---|---|---|
/opt/dgncast-panel-php/config.json | Admin-PW, Lizenz, DB-Pfad | Kritisch |
/opt/dgncast-panel-php/data/ | SQLite-DB mit Streams, Kunden, Servern | Kritisch |
/opt/dgncast/config.json | DGNCast-Server-Konfiguration, API-PW | Wichtig |
/etc/letsencrypt/ | SSL-Zertifikate | Optional (erneuerbar) |
Backup-Skript
#!/bin/bash
STAMP="$(date +%F-%H%M)"
BACKUP="/root/backups/panel-$STAMP"
mkdir -p "$BACKUP"
cp /opt/dgncast-panel-php/config.json "$BACKUP/"
cp -r /opt/dgncast-panel-php/data/ "$BACKUP/data/"
cp /opt/dgncast/config.json "$BACKUP/dgncast-config.json"
tar czf "$BACKUP.tar.gz" "$BACKUP/" && rm -rf "$BACKUP"
echo "Backup: $BACKUP.tar.gz"
Cronjob (täglich um 3 Uhr)
# crontab -e
0 3 * * * /root/backup-panel.sh >> /var/log/panel-backup.log 2>&1
Wiederherstellung
systemctl stop dgncast-panel-php
tar xzf /root/backups/panel-DATUM.tar.gz -C /tmp/
cp /tmp/panel-DATUM/config.json /opt/dgncast-panel-php/
cp -r /tmp/panel-DATUM/data/ /opt/dgncast-panel-php/data/
chown -R dgncast-panel-php:dgncast-panel-php \
/opt/dgncast-panel-php/data \
/opt/dgncast-panel-php/config.json
systemctl start dgncast-panel-php
Kopiere das .tar.gz regelmäßig auf einen anderen Server oder in Cloud-Storage. Die Konfigurationsdateien sind sehr klein (< 1 MB).