Nexus Board – Installation und Administration
Version 4.8.3 · kostenlos · als PDF herunterladen
Nexus Board ist deine eigene Forensoftware: Foren mit Unterforen, Gruppen und Rechten, Freischaltung neuer Mitglieder, Zwei-Faktor-Anmeldung, Galerie, Downloads, Kalender und Module für Themengebiete. Diese Anleitung führt dich vom leeren Ubuntu-Server zum laufenden Forum und zeigt die tägliche Administration.
1 Überblick und Voraussetzungen
Das Forum besteht aus einem Kern (Foren, Nachrichten, Galerie, Downloads, Kalender und mehr) und optionalen Modulen für Themengebiete, die du später einzeln importierst. Es läuft auf deinem eigenen Server mit Apache, PHP und MariaDB.
Was du brauchst
- Einen Ubuntu-Server (22.04 oder 24.04 LTS) mit sudo-Zugang. Getestet mit Ubuntu 24.04, Apache 2.4.58, PHP 8.3 und MariaDB 10.11.
- Eine Domain oder Subdomain, zum Beispiel
forum.deine-firma.de, mit A-Eintrag (und ggf. AAAA) auf die Adresse des Servers. Das ist für das HTTPS-Zertifikat nötig. - Die Ports 80 und 443 müssen offen sein.
- Das Programmpaket (ZIP) und deinen Lizenzschlüssel
NXB-…aus der Kaufbestätigung beziehungsweise aus „Meine Käufe“ im Shop.
sudo ufw allow 'Apache Full' # nur falls die Firewall ufw aktiv ist
dig +short forum.deine-firma.de # muss die IP-Adresse deines Servers zeigen2 Server installieren
2.1 Pakete installieren
sudo apt update
sudo apt install apache2 mariadb-server \
php php-cli php-mysql php-gd php-mbstring php-xml php-zip php-curl \
libapache2-mod-php unzip ffmpeg certbot python3-certbot-apache
sudo a2enmod rewrite headers
php -v # muss 8.1 oder neuer zeigenffmpeg wandelt Videos (zum Beispiel vom iPhone) automatisch in ein Format um, das jeder Browser abspielt, und entfernt dabei Standortdaten. Ohne ffmpeg läuft das Forum auch, Videos werden dann aber unverändert gespeichert.2.2 Dateien nach /var/www/forum
Kopiere das ZIP auf den Server (zum Beispiel mit scp stammtisch-4.8.3.zip benutzer@server:/tmp/) und führe aus:
cd /tmp
unzip -q stammtisch-*.zip
sudo mv stammtisch /var/www/forum
sudo chown -R root:root /var/www/forum
sudo chown -R www-data:www-data /var/www/forum/{config,storage,public/uploads}sudo chown -R www-data:www-data /var/www/forum. Sicherer ist es, den Code bei root zu lassen und Updates per SSH einzuspielen (Abschnitt 8.3).2.3 Datenbank und Forum per Shell installieren
sudo mysql_secure_installation # einmalig bei frischem MariaDB; root-Passwort leer lassen / unix_socket beibehalten
sudo php /var/www/forum/bin/install.phpDer Installer fragt nacheinander:
| Frage | Vorschlag |
|---|---|
| Datenbankname | forum |
| Datenbankbenutzer | forum |
| Datenbankpasswort | dein eigenes (mindestens 8 Zeichen, verdeckt, zweimal). Leer lassen erzeugt ein zufälliges. |
| Name des Forums, Untertitel | frei wählbar |
| Domain des Forums | zum Beispiel forum.deine-firma.de. Die Lizenz wird an diese Domain gebunden. |
| Lizenzschlüssel | NXB-XXXXX-XXXXX-XXXXX-XXXXX aus der Kaufbestätigung. Auf Testdomains wie localhost nicht nötig. |
| Module | nur falls schon in modules/ vorhanden. Sonst später importieren (Abschnitt 6). |
| Admin-Benutzername, E-Mail, Passwort | dein Administratorkonto (Passwort wird verdeckt eingegeben) |
Danach erledigt der Installer alles in einem Durchgang: Er legt die Datenbank (utf8mb4) und den Benutzer mit deinem Passwort an, trägt es in config/config.php ein, erstellt Tabellen, Grundforen und dein Administratorkonto, setzt die Schreibrechte für www-data und löscht den Web-Installer public/install.php.
Für Skripte ohne Rückfragen (alle Optionen zeigt php bin/install.php --help):
sudo php /var/www/forum/bin/install.php --yes \
--db-pass='DB-PASSWORT' --board="Mein Forum" --admin=admin --email=admin@deine-firma.de \
--admin-pass='DEIN-PASSWORT' --domain=forum.deine-firma.de --license-key=NXB-XXXXX-XXXXX-XXXXX-XXXXXNXR-…) aus. Den fügst du im Shop unter *Meine Käufe → Offline aktivieren* ein und startest den Installer erneut mit --license-token=ANTWORT-CODE.2.4 Alternative: Installer im Browser
Wenn du keinen Shell-Zugang hast, öffnest du https://forum.deine-firma.de/install.php (Webverzeichnis ist public/). Du legst die leere Datenbank vorher selbst an (CREATE DATABASE forum CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; samt Benutzer). Die Systemprüfung muss durchgehend „OK“ zeigen.

- Lizenzschlüssel aus der Kaufbestätigung.
- Datenbankname, Benutzer und Passwort der vorher angelegten Datenbank.
- Name des Forums und Untertitel. „Schöne Adressen“ braucht
mod_rewriteundAllowOverride All. - Benutzername und E-Mail des Administrators.
- Passwort des Administrators.
- Forum installieren klicken. Danach
public/install.phplöschen.
2.5 Apache einrichten
Die mitgelieferte Konfiguration ist auf forum.hartmann74.com und /var/www/forum eingestellt. Passe zuerst Domain und Pfad an:
sudo cp /var/www/forum/deploy/forum.conf /etc/apache2/sites-available/forum.conf
sudo nano /etc/apache2/sites-available/forum.conf # ServerName auf deine Domain ändern
sudo a2ensite forum
sudo a2dissite 000-default
sudo apache2ctl configtest && sudo systemctl reload apache2DocumentRoot ist /var/www/forum/public. Konfiguration, Backups und Programmcode liegen damit außerhalb des Webs. In public/uploads wird PHP grundsätzlich nicht ausgeführt. Test: http://forum.deine-firma.de sollte jetzt das Forum zeigen.
2.6 HTTPS mit Let's Encrypt
sudo certbot --apache -d forum.deine-firma.de --redirect -m admin@deine-firma.de --agree-tos
sudo certbot renew --dry-runCertbot holt das Zertifikat, legt den HTTPS-Virtual-Host an und leitet HTTP automatisch auf HTTPS um. Die Verlängerung läuft automatisch, renew --dry-run testet sie. Das Forum erkennt HTTPS selbst: Anmelde-Cookies werden dann nur verschlüsselt übertragen und Links in E-Mails verwenden https://.
2.7 Anmelden
Öffne https://forum.deine-firma.de und melde dich mit dem Administratorkonto an. Die Administration findest du im Benutzermenü oben rechts.

- Benutzername oder E-Mail und Passwort eingeben, dann Anmelden. Bei „Angemeldet bleiben“ bleibt die Sitzung 30 Tage erhalten.

2.8 PHP-Limits für Uploads
Die Apache-Konfiguration setzt upload_max_filesize 256M und post_max_size 260M (für Handyvideos). Brauchst du mehr, erhöhe beide Werte in /etc/apache2/sites-available/forum.conf und in forum-le-ssl.conf (von Certbot angelegt) und lade Apache neu. Die Obergrenzen innerhalb des Forums stellst du unter *Administration → Einstellungen → Beiträge & Anhänge* ein.
3 Hintergrund-Aufgaben (Cron)
Ein einziger Cron-Eintrag erledigt alles Regelmäßige: Aufräumen und Löschfristen, automatische Backups, Upload nach OneDrive/SharePoint, Erinnerungen, Sensor-Überwachung, Ablauf von Anzeigen und hängengebliebene Videos. Alle 15 Minuten als www-data:
sudo crontab -u www-data -e
# Zeile einfügen:
*/15 * * * * php /var/www/forum/bin/cron.php > /dev/null 2>&1Von Hand testen (zeigt, was erledigt wurde):
sudo -u www-data php /var/www/forum/bin/cron.php --force4 Die Administration
Die Administration erreichst du über das Benutzermenü oben rechts. Links gibt es eine durchsuchbare Menüleiste mit einklappbaren Bereichen.

- Foren & Rechte: Foren anlegen und Rechte setzen.
- Mitglieder: Konten verwalten, freischalten, sperren.
- Module: Themenmodule importieren und einschalten.
- Backups: Sicherungen erstellen und planen.
Das Dashboard zeigt Kennzahlen (Mitglieder, Themen, Beiträge, Dateien), eine Grafik der letzten 14 Tage, neue Mitglieder, letzte Aktionen im Moderationsprotokoll und Schnellzugriffe. Gibt es eine neuere Version, erscheint hier ein Hinweis.
4.1 Foren und Rechte

- Rechte pro Forum: Welche Gruppe darf lesen, Themen eröffnen, antworten und Dateien anhängen.
Foren gliedern sich in Kategorien („Willkommen“, „Gemeinsam“ im Beispiel). Jedes Forum kann Unterforen haben. Die Reihenfolge änderst du über die Zahl neben dem Namen. Mit Forum in „…“ hinzufügen legst du neue Foren an. Eigene Icons und Header-Banner stellst du in den Foreneinstellungen ein.
4.2 Mitglieder

- Mitglied anlegen: Konto von Hand erstellen.
Du suchst nach Name, E-Mail oder IP und filterst nach Gruppe und Status. Pro Mitglied kannst du Gruppe ändern, Zwei-Faktor zurücksetzen, sperren oder löschen. Unter Als Mitglied ansehen siehst du das Forum mit den Rechten eines Mitglieds (nur lesend, mit Eintrag im Moderationsprotokoll).
4.3 Registrierung, Freischaltung und Einladungen
- Freischaltung: Neue Mitglieder geben einen Beitrittsgrund an, bestätigen ihre E-Mail und warten dann auf das Team. Administratoren und Gruppen mit dem Recht *Mitglieder freischalten* bekommen eine Benachrichtigung. Freischalten unter *Administration → Mitglieder → Freischaltungen*.
- Einladungslinks unter *Administration → Mitglieder → Einladungslinks*: Wer über den Link kommt, braucht keinen Beitrittsgrund und wird nach der E-Mail-Bestätigung ohne Freischaltung aufgenommen. Gültigkeit und Höchstzahl sind einstellbar.
- Nur für Mitglieder: Standardmäßig sehen Gäste nur Anmeldung, Registrierung, Forenregeln, Impressum und Datenschutz. Abschaltbar unter *Einstellungen → Registrierung*.
4.4 Gruppen und Rechte

Gruppen bündeln Rechte (zum Beispiel Administratoren, Moderatoren, Mitglieder, Gäste). Jedes Mitglied gehört mindestens einer Gruppe an. Mit Neue Gruppe legst du eigene Gruppen an, etwa „Team“ oder „Kunden“. Rechte pro Forum setzt du in *Foren & Rechte*.
4.5 Einstellungen

Die Einstellungen gliedern sich in die Reiter Allgemein, Registrierung, Beiträge & Anhänge, E-Mail, Datenschutz, Community und Wartung & Ankündigung.
- Allgemein: Name, Untertitel und die Adresse des Forums (
https://forum.deine-firma.de). Sie wird für Links in E-Mails gebraucht. Trage sie unbedingt ein. - Registrierung: Freischaltung, Pflicht zur Zwei-Faktor-Anmeldung für Administratoren und Moderatoren, Gäste-Zugriff.
- Beiträge & Anhänge: Obergrenzen für Dateien und Bilder.
- Datenschutz: Datenschutzerklärung und Aufbewahrungsfristen. Trage hier deine eigene Erklärung ein.
- Wartung & Ankündigung: Wartungsmodus und Hinweisbanner für alle Besucher.

4.6 Menü & Seiten, E-Mail-Texte, Design
- Menü & Seiten: Eigene Seiten wie Impressum und Datenschutz anlegen und ins Menü einhängen.
- E-Mail-Texte: Betreff und Text jeder automatischen Mail ändern (Bestätigung, Freischaltung, Passwort zurücksetzen, Benachrichtigungen und mehr). Mit der Probe-Mail prüfst du das Ergebnis mit echten Daten eines Mitglieds. Sie geht nur an dich.
- Darstellung → Stile: Farben und Logo anpassen.

5 E-Mail einrichten
Das Forum sendet über Microsoft Graph (App-Registrierung mit OAuth und Client-Secret). Die alte SMTP-Anmeldung mit Benutzer und Passwort schaltet Microsoft ab Ende 2026 standardmäßig ab. Für andere Anbieter steht weiterhin „SMTP-Server“ zur Verfügung (Administration → Einstellungen → E-Mail).
5.1 Absender-Postfach
Am besten ein freigegebenes Postfach, zum Beispiel forum@deine-firma.de. Es braucht keine Lizenz. Im Exchange Admin Center: Empfänger → Postfächer → Freigegebenes Postfach hinzufügen.
5.2 App-Registrierung in Entra ID
Lege in Entra ID eine eigene App-Registrierung nur fürs Forum an (eigenes Secret, eigene Rechte) und notiere:
| Feld im Forum | Wo in Entra |
|---|---|
| Verzeichnis-ID (Tenant-ID) | Übersicht → „Verzeichnis-ID (Mandant)“ |
| Anwendungs-ID (Client-ID) | Übersicht → „Anwendungs-ID (Client)“ |
| Geheimer Clientschlüssel | Zertifikate & Geheimnisse → Neuer geheimer Clientschlüssel → Wert kopieren (nicht die Geheimnis-ID, der Wert wird nur einmal angezeigt) |
| Läuft ab am | Ablaufdatum des Secrets. Das Forum warnt 30 Tage vorher. |
5.3 Berechtigung auf das Forum-Postfach beschränken
Die Anwendungsberechtigung Mail.Send in Entra würde der App erlauben, als jedes Postfach zu senden. Gib die Berechtigung deshalb per RBAC für Anwendungen in Exchange Online und begrenze sie auf das Forum-Postfach:
Connect-ExchangeOnline
# IDs aus Entra → Unternehmensanwendungen → deine App (NICHT App-Registrierungen)
$appId = "<Anwendungs-ID>"
$objId = "<Objekt-ID der Unternehmensanwendung>"
New-ServicePrincipal -AppId $appId -ObjectId $objId -DisplayName "Forum Mailversand"
New-ManagementScope -Name "Forum-Postfach" -RecipientRestrictionFilter "PrimarySmtpAddress -eq 'forum@deine-firma.de'"
New-ManagementRoleAssignment -App $appId -Role "Application Mail.Send" -CustomResourceScope "Forum-Postfach"
# Prüfen: InScope = True für das Forum-Postfach, False für alle anderen
Test-ServicePrincipalAuthorization -Identity $appId -Resource forum@deine-firma.deMail.Send (Anwendung) mit Administratorzustimmung, gilt diese Freigabe zusätzlich und die Beschränkung greift nicht. Entferne dann die Entra-Berechtigung oder lege eine eigene App an. Änderungen an RBAC können bis zu einer Stunde dauern.5.4 Im Forum eintragen und testen
*Administration → Einstellungen → E-Mail*: Versand „Microsoft 365 (Graph)“, Absender-Adresse, Tenant-ID, Client-ID, Secret und Ablaufdatum eintragen, speichern, dann Testmail senden.

| Meldung | Ursache |
|---|---|
| Client-Secret ist falsch (AADSTS7000215) | Secret-ID statt Wert eingetragen |
| Client-Secret ist abgelaufen (AADSTS7000222) | Neues Secret in Entra anlegen |
| Client-ID gibt es nicht (AADSTS700016) | Client-ID oder Tenant vertauscht |
| Mail.Send fehlt (ErrorAccessDenied) | Rolle oder Zustimmung fehlt, RBAC noch nicht aktiv oder auf anderes Postfach beschränkt |
| Postfach nicht gefunden (ResourceNotFound) | Absender-Adresse ist kein Postfach im Tenant |
| Keine Verbindung zu Microsoft | Server erreicht login.microsoftonline.com oder graph.microsoft.com nicht (Firewall, DNS) |
Unter *Administration → Mail-Protokoll* siehst du, an wen das Forum wann welche Mail geschickt hat und ob der Mailserver sie angenommen hat. Mails, die nicht zustellbar sind, versucht das Forum nach 5 Minuten, 30 Minuten, 2, 6 und 12 Stunden erneut.
6 Module
Themenfunktionen stecken in Modulen, die du einzeln kaufst und als ZIP importierst. Ein Modul abzuschalten löscht nichts: Menüpunkte und Seiten verschwinden, die Daten bleiben in der Datenbank und sind nach dem Einschalten wieder da.
- Lade das Modul-ZIP aus deinem Kundenkonto herunter.
- Öffne Administration → Module → Importieren und wähle das ZIP.
- Schalte das Modul auf der Seite Übersicht ein. Ein kostenpflichtiges Modul fragt dabei nach seinem Schlüssel (
NXM-…). Ohne Lizenz ruht ein Modul, die Daten bleiben. - Einstellungen des Moduls findest du unter *Einstellungen* in einem eigenen Reiter, Rechte unter *Gruppen & Rechte*.

- Importieren: Modul-ZIP hochladen.

modules/ beschreiben dürfen: sudo chown -R www-data:www-data /var/www/forum/modules. Der Shell-Installer macht das bereits. Modul-Updates holst du mit Module → Nach Updates suchen.7 Lizenz
Die Board-Lizenz wird einmal online beim Lizenzserver aktiviert und ist dann an die Domain gebunden. Danach läuft das Forum auch ohne Verbindung. Einmal pro Woche fragt es nach, ob die Lizenz gesperrt wurde. Fällt der Server aus, passiert nichts. Übertragen werden nur Schlüssel, Domain, Installations-ID und Versionsnummer.

- Aktivieren: Schlüssel eintragen und aktivieren. Ohne Internet gibt es die Offline-Aktivierung.
- Von dieser Installation lösen: vor einem Domain-Umzug, danach auf dem neuen Server aktivieren.
- Ohne gültige Lizenz sehen Besucher „Forum nicht freigeschaltet“, Administratoren landen auf der Lizenzseite.
- Testdomains (
localhost,*.test,*.local, private IP-Adressen) brauchen keine Lizenz.
8 Sicherung und Updates
8.1 Backups

- Backup erstellen: sofort eine Sicherung anlegen (nur Datenbank oder Datenbank plus Dateien).
Ein Backup enthält die komplette Datenbank und auf Wunsch die hochgeladenen Dateien (Avatare, Anhänge, Downloads, Stil-Bilder). Backups liegen geschützt in storage/backups. Rechts stellst du Automatische Backups ein: Intervall, Anzahl und Höchstalter. Das automatische Backup läuft über den Cron-Eintrag aus Abschnitt 3.
Sites.Selected für eine einzelne Website.8.2 Systemcheck

Der Systemcheck prüft auf einen Blick Forum-Adresse, E-Mail-Versand, Cron, Backups, Modul-Lizenzen, Datenbank, PHP, Schreibrechte, Speicherplatz, HTTPS und Zwei-Faktor der Administratoren. Der Systemwächter schreibt allen Administratoren, wenn der Cronjob steht, das Backup älter als eine Woche ist oder der Speicher unter 5 % fällt.
8.3 Updates

- Hochladen & prüfen: neues ZIP einspielen. Mit gültiger Lizenz holt Nach Updates suchen neue Versionen direkt vom Hersteller.
Über die Weboberfläche: *Administration → Updates*, ZIP hochladen und prüfen, dann bestätigen. Das erfordert Schreibrechte des Webservers auf den Programmcode (siehe 2.2).
Per SSH (ohne Schreibrechte für den Webserver):
sudo php /var/www/forum/bin/update.php /tmp/stammtisch-4.8.3.zipDas Skript sichert Datenbank und Code, schaltet den Wartungsmodus ein, tauscht den Programmcode aus, aktualisiert die Datenbank und lässt die Dateibesitzer unverändert. Zurück zur vorherigen Version:
sudo php /var/www/forum/bin/update.php --rollbackconfig/, storage/ und public/uploads/ werden bei Updates nie angefasst. Mache vor jedem Update ein Backup.
9 Fehlersuche
| Problem | Lösung |
|---|---|
| Startseite geht, Unterseiten liefern 404 | sudo a2enmod rewrite, AllowOverride All in der Apache-Konfiguration, Apache neu laden |
| „Keine Verbindung zur Datenbank“ | Zugangsdaten in config/config.php prüfen, sudo systemctl status mariadb |
| Avatare oder Anhänge lassen sich nicht hochladen | sudo chown -R www-data:www-data /var/www/forum/{storage,public/uploads} |
| Weiße Seite oder Fehler 500 | sudo tail -f /var/log/apache2/forum-error.log. Zur Diagnose in config/config.php vorübergehend 'debug' => true setzen |
| Testmail schlägt fehl | Meldung mit der Tabelle in Abschnitt 5.4 abgleichen |
| Video bleibt bei „wird umgewandelt“ | sudo apt install ffmpeg php-cli, dann sudo -u www-data php /var/www/forum/bin/video.php --pending |
| Certbot meldet „Challenge failed“ | DNS zeigt noch nicht auf den Server, oder Port 80 ist gesperrt |
| Keine Erinnerungen oder Backups | Cron-Eintrag aus Abschnitt 3 prüfen, sudo -u www-data php /var/www/forum/bin/cron.php --force |
| Zwei-Faktor-Code wird abgelehnt | Uhrzeit des Handys automatisch stellen lassen, notfalls Wiederherstellungscode. Ein Administrator kann 2FA unter *Mitglieder → bearbeiten* zurücksetzen |
| Uploads brechen bei großen Dateien ab | upload_max_filesize und post_max_size in der Apache-Konfiguration erhöhen |
10 Sicherheit und Datenschutz
- Betreibe das Forum nur über HTTPS und lösche
public/install.php, falls vorhanden. - Schreibe die Adresse des Forums in die Einstellungen und aktiviere die Zwei-Faktor-Anmeldung für Administratoren und Moderatoren (Einstellungen → Registrierung).
- Hinterlege Impressum und eine eigene Datenschutzerklärung (Menü & Seiten, Einstellungen → Datenschutz). Als Betreiber bist du Verantwortlicher im Sinne der DSGVO.
- Halte Betriebssystem, PHP und MariaDB aktuell und mache regelmäßig Backups.
Support: https://hartmann74.com