Schnellstart

Du hast einen frischen Linux-Server und willst DGNCast Panel in Betrieb nehmen? In unter 10 Minuten fertig.

Vorbereitungen (einmalig durch Heiko)

  1. 1
    DGNCast-Lizenz anlegen Lizenz für die Server-Domain des Kunden eintragen (wird von Heiko erledigt).
  2. 2
    HDEncoder-Lizenz anlegen HDEncoder-Lizenz für dieselbe Domain – wird von Heiko eingetragen.
  3. 3
    DNS-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.

Fertig!

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

AnforderungMinimumEmpfohlen
BetriebssystemDebian 12 / Ubuntu 22.04Debian 13 / Ubuntu 24.04 LTS
RAM1 GB2 GB
Disk10 GB20 GB+
ZugangRoot (SSH)Root (SSH)
Empfohlener HosterHetzner 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
Wichtig

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:

  1. DGNCast-Lizenz – mit der exakten Panel-Domain als Scope (wird von Heiko eingetragen)
  2. 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

Was der Installer macht (12 Phasen, ca. 5–8 Min.)

  1. Konfiguration sammeln + DGNCast-Lizenz vom Lizenzserver ziehen
  2. System-Pakete: curl, wget, jq, PHP 8.5 + Extensions
  3. HDEncoder PHP-Extension installieren + Lizenz automatisch freigeben
  4. Apache 2 + SSL-Module aktivieren
  5. Certbot für Let's Encrypt
  6. Node.js 22 LTS + ffmpeg
  7. Systemd-User + Panel-Verzeichnis /opt/dgncast-panel-php
  8. Panel-Tarball entpacken
  9. DGNCast-Server-Tarball entpacken + npm install
  10. Zwei systemd-Services starten (Panel Port 8090, DGNCast-Server Port 8010)
  11. Apache-VHost + SSL-Zertifikat + UFW-Firewall
  12. Verifikations-Report generieren
Verifikations-Report

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.

Erster Schritt nach dem Login

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):

FeldWert
Base URLhttp://127.0.0.1:8010
API-Usernameadmin
API-PasswortDein Panel-Admin-Passwort (gleich wie beim Login)
Anzeigenamez.B. Hauptserver
Tipp: Auto-Ausfüllen

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?

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.

Sicherheitshinweis

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

  1. 1
    Im Panel: Pläne → Neuen Plan erstellen
  2. 2
    Name vergeben (z.B. "Starter 128k", "Pro 320k")
  3. 3
    Bitrate-Limit in kbps, max. gleichzeitige Hörer und Speicher-Kontingent eintragen
  4. 4
    Speichern

Typische Plan-Konfigurationen

PlanBitrateHörerSpeicher
Starter128 kbps50500 MB
Standard192 kbps2002 GB
Pro320 kbpsunbegrenzt10 GB
Hinweis

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

  1. 1
    Im Panel: Kunden → Neuen Kunden anlegen
  2. 2
    Name, E-Mail und Passwort eingeben
  3. 3
    Plan zuweisen (vorher anlegen unter Pläne anlegen)
  4. 4
    Optional: Ablaufdatum für zeitbegrenzte Accounts
  5. 5
    Erstellen

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.

Standard-Tier

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

  1. 1
    Im Panel: Streams → Neuen Stream anlegen
  2. 2
    Stream-Name und Beschreibung eingeben
  3. 3
    Bitrate wählen (muss im Plan-Limit liegen)
  4. 4
    Mount-Point festlegen, z.B. /radio oder /live
  5. 5
    Passwort für Broadcastsoftware setzen
  6. 6
    Stream erstellen

Sendesoftware verbinden

Verbindungsdaten für BUTT, MIXXX, SAM Broadcaster, Liquidsoap & Co. (Icecast2-kompatibel):

EinstellungWert
Server / Hostdeine-panel-domain.de
Port8010
Mount/radio (dein Mount-Point)
PasswortStream-Passwort (wie beim Anlegen gesetzt)
ProtokollIcecast2
Stream-URL für Hörer

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

Häufigste Ursache

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

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 / VerzeichnisInhaltWichtigkeit
/opt/dgncast-panel-php/config.jsonAdmin-PW, Lizenz, DB-PfadKritisch
/opt/dgncast-panel-php/data/SQLite-DB mit Streams, Kunden, ServernKritisch
/opt/dgncast/config.jsonDGNCast-Server-Konfiguration, API-PWWichtig
/etc/letsencrypt/SSL-ZertifikateOptional (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
Offsite-Backup

Kopiere das .tar.gz regelmäßig auf einen anderen Server oder in Cloud-Storage. Die Konfigurationsdateien sind sehr klein (< 1 MB).