APBoard v3 · Dokumentation
Dokumentation

Alles was du brauchst, um APBoard zu installieren, zu konfigurieren und zu betreiben. Ausführlich erklärt, auch für absolute Einsteiger.

APBoard Dokumentation Installation auf Apache oder nginx

APBoard auf Apache oder nginx installieren

Diese Installation betreibt APBoard direkt auf einem normalen Webserver mit PHP und einer MySQL kompatiblen Datenbank. Sie passt für Shared Hosting oder für Administratoren, die bereits Apache oder nginx betreiben.

Verwende das Release ZIP

Für diese Installation solltest du ein APBoard Release ZIP nutzen, das vendor/ bereits enthält. Ein roher Git Checkout enthält die Composer Abhängigkeiten nicht, außer du führst selbst composer install --no-dev aus.

1. PHP und Datenbank vorbereiten

APBoard braucht PHP 8.5 mit mehreren Erweiterungen. Auf Ubuntu oder Debian mit Apache sehen die Paketnamen meistens so aus:

bash
sudo apt update
sudo apt install apache2 mariadb-server unzip
sudo apt install php8.5 php8.5-cli php8.5-mysqli php8.5-gd php8.5-mbstring php8.5-intl php8.5-zip

Paketnamen unterscheiden sich je nach Distribution und Hoster. Wichtig sind die PHP Version und die Erweiterungen.

2. Datenbank anlegen

Lege eine leere Datenbank und einen Datenbankbenutzer an. APBoard importiert seine Tabellen später im Setup Assistenten.

sql
CREATE DATABASE apboard CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'apboard'@'localhost' IDENTIFIED BY 'hier ein langes Passwort wählen';
GRANT ALL PRIVILEGES ON apboard.* TO 'apboard'@'localhost';
FLUSH PRIVILEGES;

Notiere Host, Datenbankname, Datenbankbenutzer und Passwort. Der Setup Assistent fragt danach.

3. APBoard entpacken

Lade das Release ZIP auf den Server und entpacke es. Das Beispiel installiert APBoard nach /var/www/apboard.

bash
cd /var/www
sudo mkdir -p apboard
sudo unzip /pfad/zu/apboard-v3.zip -d apboard
sudo chown -R www-data:www-data /var/www/apboard

4. Webroot auf public/ setzen

Das ist die wichtigste Regel dieser Installation. Der Browser darf nur /var/www/apboard/public sehen. Das übergeordnete Verzeichnis enthält private Dateien und darf nicht der Webroot sein.

Apache Beispiel

Aktiviere die nötigen Apache Module und lege einen VirtualHost an.

bash
sudo a2enmod rewrite headers
sudo nano /etc/apache2/sites-available/apboard.conf
apache
<VirtualHost *:80>
    ServerName forum.example.com
    DocumentRoot /var/www/apboard/public

    <Directory /var/www/apboard/public>
        AllowOverride None
        Require all granted
        Options FollowSymLinks

        RewriteEngine On
        RewriteRule ^\.well-known/webfinger$ /.well-known/webfinger.php [L,QSA]
        RewriteRule ^\.well-known/nodeinfo$ /.well-known/nodeinfo.php [L,QSA]
        RewriteRule ^nodeinfo/2\.0$ /nodeinfo.php [L,QSA]
        RewriteRule ^ap(/.*)?$ /ap.php [L,QSA]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^ index.php [L]
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/apboard_error.log
    CustomLog ${APACHE_LOG_DIR}/apboard_access.log combined
</VirtualHost>
bash
sudo a2ensite apboard.conf
sudo systemctl reload apache2

nginx Beispiel

Bei nginx zeigt root auf public/. Die ActivityPub Endpunkte stehen vor dem normalen Fallback.

nginx
server {
    listen 80;
    server_name forum.example.com;
    root /var/www/apboard/public;
    index index.php;

    location = /.well-known/webfinger { rewrite ^ /.well-known/webfinger.php last; }
    location = /.well-known/nodeinfo { rewrite ^ /.well-known/nodeinfo.php last; }
    location = /nodeinfo/2.0 { rewrite ^ /nodeinfo.php last; }
    location ^~ /ap { rewrite ^ /ap.php last; }

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.5-fpm.sock;
    }
}

5. Dateirechte setzen

Der Setup Assistent muss config.php schreiben, Asset Links anlegen und Upload Ordner erstellen können. Auf Debian oder Ubuntu mit Apache heißt der Webserver Benutzer meistens www-data.

bash
sudo chown -R www-data:www-data /var/www/apboard
sudo find /var/www/apboard -type d -exec chmod 755 {} \;
sudo find /var/www/apboard -type f -exec chmod 644 {} \;
sudo chmod -R 775 /var/www/apboard/public/shared
sudo chmod -R 775 /var/www/apboard/public/assets
sudo chmod 775 /var/www/apboard

6. Setup Assistent starten

Öffne https://forum.example.com/setup/ im Browser. Wenn HTTPS noch nicht eingerichtet ist, nutze für den ersten Test http://forum.example.com/setup/ und richte HTTPS danach sofort ein.

Der Setup Assistent hat drei Schritte:

  1. Datenbank: Host, Port, Tabellenpräfix, Datenbankname, Benutzer und Passwort. Der Assistent importiert setup/mysql/initial-setup-dump.sql.
  2. Admin Konto: E Mail Adresse, Anzeigename und Passwort für den ersten Administrator.
  3. Forum und Mail: öffentliche Forum URL, Forum Titel und SMTP Einstellungen. SMTP kannst du überspringen und später ergänzen.

Am Ende schreibt APBoard config.php, bereitet Verzeichnisse vor und erstellt Asset Symlinks. Sobald config.php existiert, leitet der Setup Assistent zum Forum weiter und kann nicht erneut benutzt werden.

7. Installation absichern

Nach dem Setup sollte config.php für den Webserver lesbar sein, aber nicht für alle beschreibbar.

bash
sudo chmod 640 /var/www/apboard/config.php
sudo chown www-data:www-data /var/www/apboard/config.php

Richte HTTPS über dein Hosting Panel, Certbot oder deinen Reverse Proxy ein. APBoard sollte produktiv immer über HTTPS laufen, weil Login Cookies und Admin Sitzungen sicheren Transport brauchen.