Technologieführer

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

7 min read Anleitung Aktualisiert 16 Oct 2025
Restyaboard auf CentOS 7 installieren
Restyaboard auf CentOS 7 installieren

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.

Restyaboard Login Screen

Alt‑Text: Restyaboard Anmeldebildschirm mit Formularfeldern für Benutzername und Passwort

Restyaboard Dashbard

Alt‑Text: Restyaboard Dashboard mit Kanban‑Boards und Seitenleistenmenü

Create new Board

Alt‑Text: Dialog zur Erstellung eines neuen Boards mit Optionen für Name und Vorlage

Choose template for board

Alt‑Text: Auswahl einer Vorlage für das neue Board in Restyaboard

New board in Restyaboard

Alt‑Text: Neues Kanban‑Board in Restyaboard mit mehreren Spalten und Karten

Access admin panel

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

  1. Erstellen Sie ein vollständiges Backup (DB + Webverzeichnis).
  2. Testen Sie das Upgrade in einer Staging‑Instanz.
  3. Bei Erfolg: Wartungsfenster planen, Benutzer informieren, produktives System in Wartungsmodus setzen.
  4. Dateien ersetzen, DB‑Migrationsskripte ausführen (falls nötig), Konfiguration anpassen.
  5. Tests durchführen (Login, Board‑Operationen, Uploads).
  6. 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.

Autor
Redaktion

Ähnliche Materialien

WiKID: Authentifizierungsdomäne erstellen
Authentifizierung

WiKID: Authentifizierungsdomäne erstellen

ODT-Dateien im Browser öffnen
Office-Software

ODT-Dateien im Browser öffnen

Windows 11 wie ChromeOS: Start11-Anleitung
Personalisierung

Windows 11 wie ChromeOS: Start11-Anleitung

MySQL-Replikation mit SSL auf CentOS 5.4
Datenbanken

MySQL-Replikation mit SSL auf CentOS 5.4

AppImage unter Linux öffnen – drei Methoden
Linux Anleitung

AppImage unter Linux öffnen – drei Methoden

Do Not Track: Erklärung & Browser-Anleitung
Datenschutz

Do Not Track: Erklärung & Browser-Anleitung