hartmann74 IT Solutions

← Alle Anleitungen

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

sudo ufw allow 'Apache Full'      # nur falls die Firewall ufw aktiv ist
dig +short forum.deine-firma.de   # muss die IP-Adresse deines Servers zeigen

2 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 zeigen
Hinweis ffmpeg 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}
Hinweis Updates über die Weboberfläche (Administration → Updates) brauchen Schreibrechte auf den Programmcode: 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.php

Der Installer fragt nacheinander:

FrageVorschlag
Datenbanknameforum
Datenbankbenutzerforum
Datenbankpasswortdein eigenes (mindestens 8 Zeichen, verdeckt, zweimal). Leer lassen erzeugt ein zufälliges.
Name des Forums, Untertitelfrei wählbar
Domain des Forumszum Beispiel forum.deine-firma.de. Die Lizenz wird an diese Domain gebunden.
LizenzschlüsselNXB-XXXXX-XXXXX-XXXXX-XXXXX aus der Kaufbestätigung. Auf Testdomains wie localhost nicht nötig.
Modulenur falls schon in modules/ vorhanden. Sonst später importieren (Abschnitt 6).
Admin-Benutzername, E-Mail, Passwortdein 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-XXXXX
Hinweis Hat der Server keinen Internetzugang, gibt der Installer einen Anfrage-Code (NXR-…) 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.

Der Browser-Installer mit Systemprüfung und Eingabefeldern.
Der Browser-Installer mit Systemprüfung und Eingabefeldern.
  1. Lizenzschlüssel aus der Kaufbestätigung.
  2. Datenbankname, Benutzer und Passwort der vorher angelegten Datenbank.
  3. Name des Forums und Untertitel. „Schöne Adressen“ braucht mod_rewrite und AllowOverride All.
  4. Benutzername und E-Mail des Administrators.
  5. Passwort des Administrators.
  6. Forum installieren klicken. Danach public/install.php lö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 apache2

DocumentRoot 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-run

Certbot 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.

Die Anmeldeseite des Forums.
Die Anmeldeseite des Forums.
  1. Benutzername oder E-Mail und Passwort eingeben, dann Anmelden. Bei „Angemeldet bleiben“ bleibt die Sitzung 30 Tage erhalten.
Die Startseite mit den Grundforen.
Die Startseite mit den Grundforen.

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>&1

Von Hand testen (zeigt, was erledigt wurde):

sudo -u www-data php /var/www/forum/bin/cron.php --force
Tipp Ohne Cron läuft das Forum, aber Backups, Erinnerungen und Aufräumarbeiten bleiben aus. Der Systemcheck in der Administration meldet es, wenn Cron nicht läuft.

4 Die Administration

Die Administration erreichst du über das Benutzermenü oben rechts. Links gibt es eine durchsuchbare Menüleiste mit einklappbaren Bereichen.

Das Dashboard der Administration.
Das Dashboard der Administration.
  1. Foren & Rechte: Foren anlegen und Rechte setzen.
  2. Mitglieder: Konten verwalten, freischalten, sperren.
  3. Module: Themenmodule importieren und einschalten.
  4. 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

Foren & Rechte.
Foren & Rechte.
  1. 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

Mitgliederverwaltung.
Mitgliederverwaltung.
  1. 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

4.4 Gruppen und Rechte

Gruppen & Rechte.
Gruppen & 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

Einstellungen, Reiter „Allgemein“.
Einstellungen, Reiter „Allgemein“.

Die Einstellungen gliedern sich in die Reiter Allgemein, Registrierung, Beiträge & Anhänge, E-Mail, Datenschutz, Community und Wartung & Ankündigung.

Einstellungen, Reiter „Registrierung“.
Einstellungen, Reiter „Registrierung“.

4.6 Menü & Seiten, E-Mail-Texte, Design

E-Mail-Texte bearbeiten.
E-Mail-Texte bearbeiten.

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 ForumWo in Entra
Verzeichnis-ID (Tenant-ID)Übersicht → „Verzeichnis-ID (Mandant)“
Anwendungs-ID (Client-ID)Übersicht → „Anwendungs-ID (Client)“
Geheimer ClientschlüsselZertifikate & Geheimnisse → Neuer geheimer Clientschlüssel → Wert kopieren (nicht die Geheimnis-ID, der Wert wird nur einmal angezeigt)
Läuft ab amAblaufdatum 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.de
Achtung Hat die App in Entra schon Mail.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.

Der Mail-Test in der Administration.
Der Mail-Test in der Administration.
MeldungUrsache
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 MicrosoftServer 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.

  1. Lade das Modul-ZIP aus deinem Kundenkonto herunter.
  2. Öffne Administration → Module → Importieren und wähle das ZIP.
  3. 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.
  4. Einstellungen des Moduls findest du unter *Einstellungen* in einem eigenen Reiter, Rechte unter *Gruppen & Rechte*.
Administration → Module.
Administration → Module.
  1. Importieren: Modul-ZIP hochladen.
Modul importieren.
Modul importieren.
Hinweis Für den Import muss der Webserver 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.

Administration → Lizenz.
Administration → Lizenz.
  1. Aktivieren: Schlüssel eintragen und aktivieren. Ohne Internet gibt es die Offline-Aktivierung.

8 Sicherung und Updates

8.1 Backups

Administration → Backups.
Administration → Backups.
  1. 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.

Tipp Lade wichtige Backups zusätzlich herunter und bewahre sie außerhalb des Servers auf. Alternativ legt das Forum jedes neue Backup automatisch in OneDrive oder SharePoint ab (Backups → „Zusätzlich nach OneDrive / SharePoint“). Nutze dafür dieselbe App wie für den Mailversand und gib ihr nur die Berechtigung Sites.Selected für eine einzelne Website.

8.2 Systemcheck

Administration → Systemcheck.
Administration → 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

Administration → Updates.
Administration → Updates.
  1. 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.zip

Das 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 --rollback

config/, storage/ und public/uploads/ werden bei Updates nie angefasst. Mache vor jedem Update ein Backup.

9 Fehlersuche

ProblemLösung
Startseite geht, Unterseiten liefern 404sudo 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 hochladensudo chown -R www-data:www-data /var/www/forum/{storage,public/uploads}
Weiße Seite oder Fehler 500sudo tail -f /var/log/apache2/forum-error.log. Zur Diagnose in config/config.php vorübergehend 'debug' => true setzen
Testmail schlägt fehlMeldung 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 BackupsCron-Eintrag aus Abschnitt 3 prüfen, sudo -u www-data php /var/www/forum/bin/cron.php --force
Zwei-Faktor-Code wird abgelehntUhrzeit des Handys automatisch stellen lassen, notfalls Wiederherstellungscode. Ein Administrator kann 2FA unter *Mitglieder → bearbeiten* zurücksetzen
Uploads brechen bei großen Dateien abupload_max_filesize und post_max_size in der Apache-Konfiguration erhöhen

10 Sicherheit und Datenschutz

Support: https://hartmann74.com