Restyaboard auf CentOS 7 installieren — Self‑hosted Trello‑Alternative

Restyaboard ist eine kostenlose, Open‑Source‑Kanban‑Anwendung, die sich gut als selbst gehostete Alternative zu Trello eignet. Dieses Tutorial führt Sie schrittweise durch die Installation auf einem CentOS 7 Server: Nginx, PHP‑FPM (PHP 7.0), PostgreSQL 9.6, Restyaboard‑Dateien, Nginx‑Konfiguration, Dateiberechtigungen und Cron‑Jobs. Am Ende finden Sie zusätzliche Abschnitte zu Sicherheit, Backup, Fehlerbehebung, Akzeptanzkriterien und Checklisten für Administratoren.
Wichtig: Verwenden Sie sichere Passwörter und setzen Sie produktive Installationen nicht ohne TLS/HTTPS in Produktion ein.
Einleitung
Restyaboard ist eine freie und quelloffene Kanban‑Board‑Applikation, geschrieben in PHP und mit PostgreSQL als Datenbank. Diese Anleitung zeigt eine komplette Installation auf CentOS 7 mit Nginx und PHP‑FPM, optimiert für Stabilität und Wartbarkeit.
Kurzdefinition: Kanban‑Board — visuelle Darstellung von Aufgaben in Spalten (z. B. To‑Do, Doing, Done).
Voraussetzungen
- Minimal installiertes CentOS 7 (x86_64)
- Root‑Zugriff oder ein Benutzer mit sudo‑Rechten
- Offen für Port 80 / 443 und lokale PostgreSQL‑Verbindung
Hinweis: TLS/HTTPS ist für produktive Systeme Pflicht. Diese Anleitung konfiguriert zunächst HTTP; erweitern Sie das Setup anschließend um ein Zertifikat (Let’s Encrypt oder kommerziell).
Inhaltsübersicht
- Schritt 1: Nginx installieren
- Schritt 2: PHP‑FPM (PHP 7.0) mit mbstring und GeoIP
- Schritt 3: PostgreSQL 9.6 installieren und konfigurieren
- Schritt 4: Restyaboard herunterladen und Daten importieren
- Schritt 5: Nginx Server Block anpassen, Rechte setzen, Cron‑Jobs
- Zusätzliche Kapitel: Sicherheit, Backup, Troubleshooting, Wartungschecklisten, Akzeptanzkriterien, Glossar
Schritt 1 - Nginx installieren
Vor der Installation empfiehlt es sich, alle Pakete und Repositories zu aktualisieren:
yum -y update
Nginx ist nicht im Standard‑CentOS‑YUM‑Repository enthalten. Installieren Sie zunächst EPEL:
yum -y install epel-release
Dann Nginx installieren:
yum -y install nginx
Starten und aktivieren Sie Nginx für den Systemstart:
systemctl start nginx systemctl enable nginx
Nginx sollte nun laufen. Prüfen Sie den Dienststatus bei Bedarf mit systemctl status nginx.
Schritt 2 - PHP‑FPM (PHP 7.0) mit Mbstring konfigurieren
Restyaboard unterstützt PHP 7.0. Auf CentOS 7 installieren wir PHP 7.0 über das Webtatic‑Repository.
Installieren Sie Webtatic:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installieren Sie PHP 7.0, FPM und die benötigten Module:
yum -y install php70w php70w-fpm php70w-devel php70w-cli php70w-curl php70w-pgsql php70w-mbstring php70w-ldap php70w-pear php70w-imap php70w-xml php70w-pecl-imagick ImageMagick
Anpassung von PHP‑FPM (Standardkonfiguration ändert Apache‑User auf nginx):
Öffnen Sie die Konfigurationsdatei:
nano /etc/php-fpm.d/www.conf
Suchen Sie die Zeilen und stellen Sie sicher, dass user/group auf nginx gesetzt sind:
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
Statt eines Listen‑Ports verwenden wir einen Unix‑Socket. Ändern Sie:
listen = 127.0.0.1:9000
zu
listen = /run/php-fpm/php7.0-fpm.sock
Setzen Sie Besitzer, Gruppe und Rechte des Sockets:
;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660
zu
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Weitere PHP‑Einstellungen:
nano /etc/php.ini
Setzen Sie die Zeitzone passend für Ihre Region, z. B.:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Berlin
Und deaktivieren Sie cgi.fix_pathinfo:
cgi.fix_pathinfo=0
Installieren und aktivieren Sie GeoIP (optional, aber empfohlen für Feature‑Support):
yum -y install GeoIP-devel
Fügen Sie ans Ende von /etc/php.ini hinzu:
extension=geoip.so
Starten und aktivieren Sie PHP‑FPM:
systemctl start php-fpm systemctl enable php-fpm
Starten Sie Nginx neu:
systemctl restart nginx
Hinweis: Prüfen Sie bei Problemen die Logs /var/log/nginx/error.log und /var/log/php-fpm/error.log.
Schritt 3 - PostgreSQL 9.6 installieren und konfigurieren
PostgreSQL ist die von Restyaboard verwendete Datenbank. Das Paket kommt aus dem offiziellen PostgreSQL‑Repository.
Repository hinzufügen:
rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
PostgreSQL installieren:
yum -y install postgresql96-server postgresql96-contrib
Initialisieren der Datenbank:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
Ändern Sie die Authentifizierung in pg_hba.conf, um MD5‑Passwortauthentifizierung für lokale TCP/IP‑Verbindungen zu verwenden:
nano /var/lib/pgsql/9.6/data/pg_hba.conf
Passen Sie die Zeilen an:
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Starten und aktivieren Sie den Dienst:
systemctl start postgresql-9.6 systemctl enable postgresql-9.6
Setzen Sie das Root‑/Systemkennwort des postgres‑Linux‑Benutzers (nicht die DB‑Passwörter):
passwd postgres
Wechseln Sie zum postgres‑User und legen Sie DB‑User und DB an:
su - postgres
createuser rb_user
psql
ALTER USER rb_user WITH ENCRYPTED password 'StrongPassword';
CREATE DATABASE rb_data OWNER rb_user ENCODING 'UTF8' TEMPLATE template0;
\q
exit
Wichtig: Ersetzen Sie ‘StrongPassword’ durch ein sicheres Passwort Ihrer Wahl. Merken Sie sich Benutzername und Passwort für die Restyaboard‑Konfiguration.
Schritt 4 - Restyaboard herunterladen und SQL importieren
Wechseln Sie in das Web‑Root und laden Sie das Release‑Archiv herunter:
cd /usr/share/nginx/html wget https://github.com/RestyaPlatform/board/releases/download/v0.4.2/board-v0.4.2.zip
Extrahieren:
unzip board-v0.4.2.zip -d board
Importieren Sie das SQL‑Schema in die zuvor erstellte Datenbank:
psql -d rb_data -f "/usr/share/nginx/html/board/sql/restyaboard_with_empty_data.sql" -U rb_user
Konfigurieren Sie die Datenbankzugänge in Restyaboard:
nano /usr/share/nginx/html/board/server/php/config.inc.php
Ändern Sie die Werte auf Ihre DB‑Daten:
define('R_DB_HOST', 'localhost');
define('R_DB_USER', 'rb_user');
define('R_DB_PASSWORD', 'StrongPassword');
define('R_DB_NAME', 'rb_data');
define('R_DB_PORT', 5432);
Schritt 5 - Nginx Server Block konfigurieren und Dateirechte setzen
Restyaboard liefert eine Nginx‑Konfiguration im Zip‑Archiv. Kopieren Sie die Datei nach /etc/nginx/conf.d:
cp /usr/share/nginx/html/board/restyaboard.conf /etc/nginx/conf.d
nano /etc/nginx/conf.d/restyaboard.conf
Passen Sie in der Server‑Definition server_name und root‑Pfad an:
server {
listen 80;
server_name board.ihredomain.de;
root /usr/share/nginx/html/board;
location / {
root /usr/share/nginx/html/board/client;
}
root /usr/share/nginx/html/board/client;
fastcgi_pass unix:/run/php-fpm/php7.0-fpm.sock;
}
Ersetzen Sie board.ihredomain.de mit Ihrer Domain.
Setzen Sie Besitzer und Berechtigungen:
chown -R nginx:nginx /usr/share/nginx/html/board/
chmod -R go+w "/usr/share/nginx/html/board/media"
chmod -R go+w "/usr/share/nginx/html/board/client/img"
chmod -R go+w "/usr/share/nginx/html/board/tmp/cache"
chmod -R 0755 /usr/share/nginx/html/board/server/php/shell/*.sh
Fügen Sie Cron‑Jobs hinzu, damit periodische Aufgaben ausgeführt werden:
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/instant_email_notification.sh" >> /var/spool/cron/root
echo "0 * * * * /usr/share/nginx/html/board/server/php/shell/periodic_email_notification.sh" >> /var/spool/cron/root
echo "*/30 * * * * /usr/share/nginx/html/board/server/php/shell/imap.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/webhook.sh" >> /var/spool/cron/root
echo "*/5 * * * * /usr/share/nginx/html/board/server/php/shell/card_due_notification.sh" >> /var/spool/cron/root
Wichtig: Cron‑Jobs unter /var/spool/cron/root werden als root ausgeführt. Stellen Sie sicher, dass die Shell‑Skripte die richtigen Rechte besitzen und sicher programmiert sind.
SELinux‑Hinweis
In vielen Anleitungen wird SELinux deaktiviert, weil Proxy/Socket‑Konfigurationen ohne Anpassung der Richtlinien fehlschlagen. Temporär können Sie SELinux ohne Neustart deaktivieren:
setenforce 0
Für dauerhafte Deaktivierung bearbeiten Sie:
nano /etc/selinux/config
Ändern Sie:
SELINUX=disabled
Wichtig: Deaktivieren von SELinux reduziert die Systemsicherheit. Besser ist es, die passenden SELinux‑Kontexte und Booleans zu setzen oder eine policy zu erstellen. Falls möglich, konfigurieren Sie SELinux korrekt statt es vollständig zu deaktivieren.
Starten Sie Nginx neu und öffnen Sie Ihre Domain im Browser:
systemctl restart nginx
Zugriff:
http://board.ihredomain.de
Sie sollten zunächst den Login‑Bildschirm sehen. Standard‑Login (nur für erste Anmeldung testen): Benutzer admin, Passwort restya.
Alt‑Text: Restyaboard Anmeldebildschirm mit Formularfeldern für Benutzername und Passwort
Alt‑Text: Restyaboard Dashboard mit Kanban‑Boards und Seitenleistenmenü
Alt‑Text: Dialog zur Erstellung eines neuen Boards mit Optionen für Name und Vorlage
Alt‑Text: Auswahl einer Vorlage für das neue Board in Restyaboard
Alt‑Text: Neues Kanban‑Board in Restyaboard mit mehreren Spalten und Karten
Alt‑Text: Zugriff auf das Admin‑Panel in Restyaboard über Einstellungen im Benutzerinterface
Fehlerbehebung (Troubleshooting)
- Nginx 502 Bad Gateway → Prüfen Sie, ob PHP‑FPM läuft und ob der Socketpfad in Nginx mit /etc/php-fpm.d/www.conf übereinstimmt. Beispiel prüfen:
systemctl status php-fpm
ss -x | grep php
- Verbindungsfehler zur DB → Prüfen Sie pg_hba.conf, firewall, und DB‑Credentials in config.inc.php. Versuchen Sie lokale Verbindung:
psql -h localhost -U rb_user -d rb_data
Rechteprobleme bei Medien‑Uploads → Stellen Sie sicher, dass /usr/share/nginx/html/board/media Schreibrechte für nginx hat.
Cron‑Jobs laufen nicht → Prüfen Sie /var/log/cron und führen Sie die Skripte manuell aus, um Fehler zu sehen.
Sicherheits‑Härtungsempfehlungen
- TLS/HTTPS: Konfigurieren Sie ein gültiges Zertifikat (z. B. Let’s Encrypt Certbot) und erzwingen Sie HTTPS mit HSTS.
- Firewall: Öffnen Sie nur notwendige Ports (80, 443). Blockieren Sie externe PostgreSQL‑Zugriffe.
- Remove Default Credentials: Ändern Sie das Admin‑Passwort sofort nach der ersten Anmeldung.
- Updates: Planen Sie regelmäßige OS‑ und PHP/DB‑Updates. Testen Sie Updates in einer Staging‑Umgebung.
- Backup & Recovery: Erstellen Sie regelmäßige Dumps der PostgreSQL‑Datenbank und sichern Sie Konfigurationsdateien.
- Minimale Rechte: Webserver und PHP‑FPM sollten in einem eingeschränkten Benutzerkontext laufen (nginx), keine Root‑Berechtigungen für Webverzeichnisse.
Backup und Wiederherstellung
Empfohlene Backup‑Strategie (minimal):
- Täglicher Dump der PostgreSQL‑Datenbank:
PGPASSWORD='StrongPassword' pg_dump -U rb_user -F c rb_data > /var/backups/rb_data-$(date +%F).dump
- Wöchentliche Archivierung des Web‑Verzeichnisses (Konfiguration, benutzerdefinierte Anhänge):
tar -czf /var/backups/rb_www-$(date +%F).tar.gz /usr/share/nginx/html/board
Testen Sie Recovery regelmäßig: Stellen Sie Dumps in einer Testumgebung wieder her, um die Integrität sicherzustellen.
Wartungs‑ und Betriebscheckliste (für Admins)
Tägliche Aufgaben:
- Prüfen, ob Nginx, PHP‑FPM und PostgreSQL laufen
- Cron‑Log und Systemlogs auf Fehler prüfen
Wöchentliche Aufgaben:
- DB‑Backups validieren
- Updates für Sicherheitspatches prüfen
Monatliche Aufgaben:
- Testrestores durchführen
- Review von Nutzerkonten und Berechtigungen
Rollen‑basierte Kurzübersicht:
- Systemadministrator: Betriebssystem‑Updates, Firewall, Backups
- Web‑Administrator: Nginx‑Konfiguration, TLS‑Zertifikate
- Datenbankadministrator: PostgreSQL‑Backup, Replikation, Performance‑Tuning
- Applikationsadministrator: Restyaboard‑Versionen, Plugin‑/Vorlagenpflege
Akzeptanzkriterien (Kriterien bei Übergabe an Betrieb)
- Webseite erreichbar via HTTPS und gültiges Zertifikat installiert
- Login funktioniert mit Admin‑Account; Passwort geändert
- Beispiel‑Board anlegen, Karte erstellen, Dateianhang hochladen
- Cron‑Jobs laufen ohne Fehler (Überprüfung in /var/log/cron)
- Täglicher DB‑Dump erfolgreich und Wiederherstellungstest bestanden
Aktualisierung und Upgrade‑Kurzleitfaden
- Erstellen Sie ein vollständiges Backup (DB + Webverzeichnis).
- Testen Sie das Upgrade in einer Staging‑Instanz.
- Bei Erfolg: Wartungsfenster planen, Benutzer informieren, produktives System in Wartungsmodus setzen.
- Dateien ersetzen, DB‑Migrationsskripte ausführen (falls nötig), Konfiguration anpassen.
- Tests durchführen (Login, Board‑Operationen, Uploads).
- Wartungsmodus beenden.
Kurzes Glossar
- PHP‑FPM: FastCGI Process Manager für PHP
- Nginx: Webserver / Reverse Proxy
- pg_hba.conf: PostgreSQL Datei zur Zugriffssteuerung
- Socket: Unix Domain Socket für lokale Kommunikation (besser als TCP für localhost)
Entscheidungshilfe: Wann eignet sich Restyaboard nicht?
- Wenn Sie eine vollständig gehostete SaaS‑Lösung mit eingebauter Hochverfügbarkeit benötigen, sind gehostete Produktvarianten (z. B. Trello Cloud) oft passender.
- Große Unternehmen mit strengen Compliance‑Anforderungen sollten die Plattform vor Aufnahme in die Produktion auf Audit‑Fähigkeit prüfen.
Zusammenfassung
Restyaboard lässt sich auf CentOS 7 stabil mit Nginx, PHP‑FPM und PostgreSQL betreiben. Dieses Tutorial deckt Installation, Konfiguration, Rechte, Cron‑Jobs sowie wichtige Aspekte zur Sicherheit, Backups und Wartung ab. Für Produktionssysteme sind TLS, regelmäßige Backups, sicheres Passwortmanagement und vorsichtige SELinux‑Konfigurationen zwingend empfohlen.
Extras: Setzen Sie in Produktionsumgebungen zusätzlich Monitoring (z. B. Prometheus + Grafana oder einfache Nagios‑Checks) ein, um Verfügbarkeit und Ressourcennutzung zu überwachen.
Viel Erfolg bei der Installation und beim Betrieb Ihres selbst gehosteten Kanban‑Systems.
Ähnliche Materialien

WiKID: Authentifizierungsdomäne erstellen

ODT-Dateien im Browser öffnen

Windows 11 wie ChromeOS: Start11-Anleitung
MySQL-Replikation mit SSL auf CentOS 5.4

AppImage unter Linux öffnen – drei Methoden
