Wer zu Hause eine Handvoll nützlicher Serverdienste installieren will, sollte beim Aufwand bodenständig bleiben. Ein Raspberry Pi und das gewohnte OpenSuse-System genügen vollauf.
Linux ist das am weitesten verbreitete Betriebssystem für Server. OpenSuse Leap und Tumbleweed lassen sich remote ohne Ressourcen verschwendende grafische Nutzerschnittstelle per Konsole installieren (Abbildung 1). Der Paketbestand umfasst nicht nur grafische Programme, sondern auch Serverdienste, die für den Durchschnittsanwender nützliche Funktionen bieten. Als Beispiele dafür dienen hier ein Wiki, ein Texteditor für die Zusammenarbeit mehrerer Benutzer sowie Synchronisationsprogramme für Dateien und Termine oder Adressen.

Abbildung 1: Der Ressourcenmonitor Htop attestiert diesem RasPi 3 mit 1 GByte RAM, auf dem alle im Artikel beschriebenen Serverdienste laufen, noch genügend Luft.
Wenn Sie zu Hause einen durchgehend verfügbaren Server betreiben möchten, sollten Sie dafür einen stromsparenden Raspberry Pi in Betracht ziehen. Schon ein RasPi*3 mit 1 GByte RAM bietet genug Rechenpower für die vorgestellten Dienste, sofern nur wenige Anwender darauf zugreifen. Ausgediente Desktop-Rechner schultern die Anforderungen ebenfalls leicht, verbrauchen aber im Dauerbetrieb mehr Energie. Direkt auf dem Arbeitsrechner installiert, haben die Dienste nur geringen Einfluss auf die Performance.
Genau wie das dafür konzipierte Raspberry Pi OS braucht auch OpenSuse auf dem Rechenzwerg keine Installation. Es genügt, das OpenSuse-Leap-JeOS-Image [1] herunterzuladen, es mit Unxz zu entpacken und es mit Imagewriter (aus dem gleichnamigen Paket) auf eine Speicherkarte zu schreiben.
Dann bootet dort ein minimales System, in das sich bei Bedarf alle Pakete der OpenSuse-Leap-Repositories nachinstallieren lassen. Das Root-Passwort lautet linux, was Sie sofort per passwd ändern sollten. Der Raspberry Pi nennt oben im Anmeldebildschirm seine IP-Adressen, falls ein Monitor angeschlossen ist. Ansonsten sehen Sie im Router die IP des neu hinzugekommenen Geräts nach.
Schnell, schnell!
Der Erfolg von Wikipedia basiert zu einem guten Teil auf dem Wiki-Prinzip, mit dem Freiwillige ihre Seiten erstellen und aktualisieren. Direkt im Browser entstehen auf Basis simpler Formatierungscodes übersichtliche Webseiten mit Grafiken und vor allem Links auf andere Wiki-Seiten. Bekanntlich inspirierten den Erfinder des Wiki-Prinzips die Wiki-Wiki-Schnellbusse [2], die nach dem hawaiianischen Wort für “schnell” benannt sind. Wikis eignen sich daneben gut für schnelle Notizen und, dank Verlinkung, als umfangreiche Wissensspeicher.
Wer unter OpenSuse ein solches Wiki im Heimnetz bereitstellen möchte, kommt dank des Pakets dokuwiki [3] schnell zum Ziel. Das Programm liegt zwar nicht in den Standard-Repositories, findet sich aber auf dem OpenSuse Build Service [4]. Dokuwiki braucht keine Datenbank, ein Einrichten der Datenbankverbindung entfällt daher.
Auf der Seite des OpenSuse Build Service folgen Sie dem Link Download package rechts oben und wählen auf der folgenden Seite openSUSE als Betriebssystem. Nutzen Sie zur (Remote-)Installation auf der Konsole den Link Das Repository hinzufügen und manuell installieren. Er blendet drei Konsolenbefehle ein, die Sie kopieren und als Root ausführen, um das richtige Build-Service-Repository einzubinden und das Paket dokuwiki daraus zu installieren. YaST fragt, ob Sie der Schlüsselsignatur des neuen Repositorys vertrauen, was Sie, um Aktualisierungen zu erhalten, mit [I] oder durch einen Klick auf immer beantworten sollten.
Das Dokuwiki-Paket zieht die Programmiersprache PHP in Version 8 nach, ohne die die Wiki-Software nicht funktioniert. Einen Webserver, der den Zugriff auf die Seiten per Browser ermöglicht, müssen Sie selbst einrichten. Der gängige Vertreter der Gattung heißt Apache2. Mit dem Kommando zypper in apache2 apache2-mod_php8 installieren Sie das Programm und auch ein Modul zur Einbindung der Sprache PHP. Unter OpenSuse läuft ein Serverdienst nach der bloßen Installation noch nicht. Ein systemctl enable apache2 --now startet den Webserver jetzt und erneut nach jedem Reboot.
Um Wiki-Seiten auf anderen Rechnern im Heimnetz zu erreichen, müssen Sie die Firewall-Regeln lockern. Starten Sie auf der Konsole als Root das Systemverwaltungsprogramm YaST2 (Abbildung 2), blättern Sie im linken Unterfenster zur Rubrik Sicherheit und Benutzer, wechseln Sie dann per Tabulator zum rechten Unterfenster und navigieren Sie dort schließlich zu Firewall. Ein Druck auf die Eingabetaste startet das YaST-Modul. Dort navigieren Sie zur Zone namens public, der Standardzone für alle Netzwerkgeräte im Rechner nach der Installation. Ein erneuter Druck auf die Eingabetaste öffnet die Konfiguration. Mit [Tab] und [Umschalt]+[Tab] navigieren Sie zwischen den Spalten (rote Nummern in Abbildung 2).

Abbildung 2: Eine der Stärken von YaST2 ist das Kommandozeilen-Interface, dessen Aufbau (wie hier im Modul Firewall) Anwender des grafischen YaST sofort wiedererkennen.
Unter Dienste blättern Sie zu http, aktivieren durch einen Druck auf die Leertaste das Kontrollkästchen und fügen den Dienst per [Alt]+[I] oder Hinzufügen der Liste Erlaubt hinzu. Sobald Sie [Alt]+[R] für Übernehmen drücken, speichert YaST die Konfiguration, und der Zugriff auf HTTP-Seiten von außerhalb des Rechners ist nun möglich. Unter http://<I>IP-Adresse<I>/dokuwiki sollte die Startseite von Dokuwiki erscheinen, unter der URL http://<I>IP-Adresse<I>/dokuwiki/install.php richten Sie das Wiki ein.
Zusammen schreiben
Wiki-Seiten lassen sich nicht von zwei Benutzern gleichzeitig bearbeiten. Um das gegenseitige Überschreiben zu verhindern, sperrt Dokuwiki eine bereits zum Editieren geöffnete Seite. Es gibt jedoch mit Etherpad [5] eine Software, die es mehreren Anwendern ermöglicht, zugleich an einem Dokument zu arbeiten (Abbildung 3). Der eingegebene Text erscheint dabei in Echtzeit in den Fenstern aller Anwender, jedem Bearbeiter ist eine Farbe zugeordnet.

Abbildung 3: In Etherpad können mehrere Benutzer gleichzeitig tippen, der Text ist für alle sichtbar. Wichtige Features sind die Dokumentenhistorie und die Chat-Funktion.
Für x86-Rechner liegt der aktuelle Fork der Software als Paket etherpad-lite im selben Build-Service-Repository wie Dokuwiki. Folgen Sie zum Einbinden in das System der Beschreibung aus dem letzten Abschnitt, falls Sie das nicht bereits getan haben. Ansonsten genügt ein zypper in etherpad-lite zur Installation.
Auf dem Build Service fehlt eine Version für die ARM-CPU des Raspberry Pi. Die Anleitung [6] der Etherpad-Entwickler zum Selbstbau lässt sich zum Glück selbst auf einem RasPi 3 in wenigen Minuten abarbeiten, sofern Sie vorher die Pakete nodejs22 und git installiert haben. Führen Sie dazu als Root die Befehle aus Listing 1 aus. Die letzte Zeile startet den Etherpad-Server, Sie müssen sie nach jedem Reboot erneut aufrufen.
Listing 1
Etherpad installieren
$ npm install -g pnpm $ git clone -b master https://github.com/ether/etherpad-lite.git $ cd etherpad-lite $ pnpm i $ pnpm run build:etherpad $ pnpm run prod
Ein Login gibt es bei Etherpad in der Standardeinstellung nicht. Die Software legt Dokumente unter einer zufälligen, nicht erratbaren URL an. Jeder, der sie kennt, kann den Text dort editieren. Wie bei Wikipedia schützt eine History-Funktion vor Vandalismus oder Missgeschicken: Der Button Bearbeitungsverlauf rechts oben blendet einen Schieberegler ein, der sämtliche Revisionen des Texts durchblättert.
Statt eine Datei zu speichern, setzen Sie im Browser ein Lesezeichen auf das Etherpad-Dokument. Vom Editor als Webanwendung und dem bequemen Überblick über den Bearbeitungsverlauf profitieren auch Benutzer, die das simultane Editieren von Texten nicht nutzen. Für den vollen Funktionsumfang von Etherpad Lite sind einige Veränderungen der Konfiguration anzuraten. Standardmäßig dient zum Speichern der Bearbeitungshistorie die Pseudo-Datenbank DirtyDB, die alle Daten in einer einzigen Datei speichert. Für eine gute Performance bei langen Texten mit vielen Änderungen eignen sich MySQL oder der unter OpenSuse genutzte Fork MariaDB besser.
Installieren Sie daher, falls erforderlich, das Paket mariadb und aktivieren Sie die Datenbank mit dem Kommando systemctl enable mariadb --now. Mit mariadb -u root verbinden Sie den lokalen Kommandozeilenclient mit dem Server (Abbildung 4), ohne dass unter OpenSuse für den lokalen Datenbankzugriff als Root ein weiteres Passwort erforderlich wäre. Lassen Sie sich also nicht verwirren, falls eine Anleitung im Web für die Einrichtung einer Datenbankverbindung ein Root-Password erwähnt.

Abbildung 4: In aktuellen OpenSuse-Systemen darf sich Root am MySQL/MariaDB-Kommandozeilenclient ohne gesondertes Datenbankpasswort als Administrator anmelden.
An der Eingabeaufforderung des MySQL-Kommandozeilenclients legen Sie eine Datenbank (Listing 2, erste Zeile) und einen DB-User mit nur lokalen Zugriffsrechten (zweite Zeile) an. Letzterem erteilen Sie die Berechtigung zum Datenbankzugriff (dritte Zeile) und beenden dann den MySQL-Kommandozeilenclient (letzte Zeile).
Editieren Sie dann, zum Beispiel mit nano /etc/etherpad-lite/settings.json die Etherpad-Konfigurationsdatei. Richten Sie den MySQL-Zugriff durch Einfügen von Listing 3 in die Konfiguration ein.
Listing 2
Datenbank einrichten
> create database 'etherpad_lite_db'; > CREATE USER 'ether'@'localhost' identified by 'Passwort'; > grant CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on 'etherpad_lite_db'.* to 'ether'@'localhost'; > \q
Listing 3
DB-Konfiguration
"dbType" : "mysql",
"dbSettings" : {
"user": "ether",
"socketPath": "/var/run/mysql/mysql.sock",
"password": "Passwort",
"database": "etherpad_lite_db",
"charset": "utf8mb4"
},
Synchronizität
Um Dateien zwischen Linux-Rechnern auszutauschen, genügt unter OpenSuse der vorinstallierte Serverdienst SSH. Bei der Installation eines Desktop-Systems dürfen Sie wählen, ob SSH aktiv und der entsprechende Port 22 in der Firewall freigeschaltet sein soll. Nachträglich können Sie den Port analog wie den für HTTP im YaST-Modul entsperren. Das Kommando systemctl start sshd.service --now aktiviert den SSH-Dienst. Via Dateimanager greifen Sie per http://sftp://<I>Server-IP<I>/<I>Pfad<I>/<I>zur<I>/<I>Datei<I> direkt auf die Remote-Dateien zu. In KDE- und Gnome-Programmen gelingt das bereits über die normalen Datei-öffnen-Dialoge (Abbildung 5).

Abbildung 5: Anwendungen von KDE und GNOME greifen in ihren Öffnen– und Speichern-unter-Dialogen ohne Dateifreigabe direkt auf Dateisysteme entfernter Linux-Rechner zu.
Für mobile Geräte wie Laptops oder das Smartphone, die sich oft außerhalb des Heimnetzes befinden, benötigen Sie einen Synchronisationsdienst wie Syncthing [7]: Er kopiert ausgewählte Ordner auf das mobile Gerät, damit sie unterwegs verfügbar sind. Veränderungen daran, die Sie außerhalb des Heimnetzes vornehmen, überträgt Syncthing in das Ausgangsverzeichnis zurück, sobald das eigene WLAN wieder erreichbar ist (Abbildung 6).

Abbildung 6: Der Synchronisationsdienst Syncthing auf dem Rechner gloria6 (This Device) hält Verzeichnisse (Folders) auf mehreren nicht permanent am Netz hängenden Geräten (Remote Devices) synchron.
Syncthing installieren Sie auf dem zentralen Server sowie auf allen Mobilgeräten, die Dateien mit ihm teilen sollen. Die Software gibt es für praktisch alle Distributionen sowie für Android, dort inzwischen als Syncthing Fork [8].
Die Installation unter OpenSuse gelingt wieder mithilfe eines Pakets aus dem Build Service [9] und der manuellen Installation hinter dem Link Download Package oben auf der Build-Service-Seite. Nach der Einrichtung aktivieren Sie den Dienst mit Benutzerrechten für den Anwender, dessen Daten Sie synchronisieren möchten. Rufen Sie dazu als Benutzer den Befehl systemctl --user enable syncthing.service --now auf.
Können Sie auf dem Rechner direkt einen Webbrowser ausführen, dann lässt sich das Webfrontend von Syncthing dort unter der Adresse http://localhost:8384 aufrufen. Für einen Remote-Zugang müssen Sie im YaST-Modul Firewall die Dienste syncthing-gui, syncthing und syncthing-relay freischalten. Doch das genügt noch nicht, denn Syncthing liefert das Webfrontend standardmäßig nur lokal aus.
Ferngesteuert
Um das zu ändern, bearbeiten Sie die Datei ~/.local/state/syncthing/config.xml, die Syncthing beim ersten Start anlegt. Darin ändern Sie den Parameter address im Block gui von 127.0.0.1:8384 auf 0.0.0.0:8384 (Abbildung 7). Nach einem Neustart über systemctl --user restart syncthing.service (mit Anwenderrechten) lässt sich die Syncthing-Konfigurationsseite remote über die URL http://<I>Server-IP<I>:8384 erreichen.

Abbildung 7: Installieren Sie Syncthing auf einem Rechner ohne Bildschirm, müssen Sie für den Remote-Zugriff auf das Webfrontend dessen Adresse in der Konfigurationsdatei auf 0.0.0.0 setzen.
Damit zwei Syncthing-Server auf unterschiedlichen Geräten miteinander Daten austauschen, müssen Sie die beiden Instanzen miteinander bekannt machen. Öffnen Sie dazu auf dem stationären Gerät Actions | Show ID. Die dort genannte 56-stellige ID geben Sie in das Dialogfeld ein, das der Button Add Remote Device auf dem mobilen Gerät einblendet (Abbildung 8).

Abbildung 8: Die Android-App Syncthing Fork bietet neben der hier abgebildeten nativen GUI auch eine mit dem Syncthing-Webfrontend identische Weboberfläche.
In der Regel müssen Sie die lange Buchstabenkolonne nicht manuell übertragen: Sind beide Syncthing-Instanzen einige Minuten im Heimnetz aktiv, finden Sie sich automatisch. Die IDs aller erkannten Synchronisationspartner finden sich dann im Feld Device ID (Abbildung 9) und lassen sich per Mausklick übernehmen. Auf dem Partnergerät müssen Sie den Add-Device-Request noch bestätigen. Die automatische Erkennung der Synchronisationspartner funktioniert selbst dann, wenn die IP-Adressen der Geräte im Netz wechseln. Syncthing reagiert nur, wenn es auf bekannte Partner trifft.

Abbildung 9: Syncthing erkennt Synchronisationspartner unabhängig von IP-Adressen anhand einer Gerätekennung.
Nun sollte in den Webfrontends beider zu synchronisierender Geräte ein Remote Device erscheinen, allerdings mit dem Status Unused, denn es fehlen noch die zu synchronisierenden Ordner. Klicken Sie also auf einem der Geräte auf Add Folder unten in der rechten Spalte und tragen Sie im sich öffnenden Dialog eine Bezeichnung (Folder Label) und den Dateisystempfad des zu teilenden Ordners ein.
Im Reiter Shared wählen Sie die Geräte aus, mit denen Sie das Verzeichnis teilen möchten. Nach kurzer Zeit erscheint im Webfrontend des Partnergeräts ein Hinweis, dass eine andere Syncthing-Instanz ein Verzeichnis teilen möchte. Bestätigen Sie die Anfrage und geben Sie dabei den Folder Path ein, unter dem die Daten auf dem zweiten Gerät liegen sollen. Jetzt synchronisiert Syncthing die Daten, sobald eine Netzwerkverbindung zwischen beiden Geräten besteht.
Immer im Blick
Bearbeiten Sie unterwegs mit dem Heimarbeitsplatz synchronisierte Daten, möchten Sie in der Regel auch Ihre Termine und Kontakte nicht missen. Für deren Synchronisation hat sich in der Welt der freien Software das CalDAV/CardDAV-Protokoll als Standard etabliert. Ähnlich wie Syncthing verbreiten CalDAV-Server wie Radicale [10] ohne händischen Eingriff die neuesten Daten auf alle beteiligten Geräte (Abbildung 10).

Abbildung 10: Im Konfigurations-Frontend von Radicale legen Sie die gewünschten Kalender und Adressbücher an. Deren angezeigte URLs übertragen Sie in die Dialoge zum Hinzufügen der CalDAV-Groupware-Ressourcen in KDE Kontact oder Gnome Evolution.
Für Radicale liegt ein OpenSuse-Paket in den Standard-Repositories. Das Programm kommt ohne Datenbank aus. Es genügt eine zentrale Serverinstanz, mit der sich Groupware-Programme wie KDE Kontact, Gnome Evolution oder Mozilla Thunderbird als Client verbinden. Android bringt zwar keinen CalDAV/CardDAV-Support mit, aber es gibt freie Lösungen, die Daten mit dem Android-Kalender und der Kontakte-App synchron halten [11].
Nach der Installation aktivieren Sie den Radicale-Server mittels des Befehls systemctl enable radicale --now. Benötigen Sie einen Remote-Zugriff auf das Konfigurations-Webfrontend, müssen Sie wie bei Syncthing die Konfiguration anpassen. Dazu fügen Sie die Zeile hosts = 0.0.0.0:5232 in die Konfigurationsdatei /etc/radicale/config ein. Das Frontend lässt sich dann im Heimnetz unter der URL http://<I>Server-IP<I>:5232 erreichen.
In der Konfiguration für den lokalen Zugriff ignoriert Radicale Passwörter und legt unbekannte Benutzer einfach neu an, sobald Sie sich im Login-Formular eintragen. Ein echtes Login schalten Sie in der Konfigurationsdatei /etc/radicale/config ein. Scrollen Sie dort zum Block [auth] und entfernen Sie die Kommentarzeichen (#) vor den Zeilen htpasswd_filename = /etc/radicale/users und htpasswd_encryption = md5. Ändern Sie außerdem #type = none zu type = htpasswd und starten Sie den Server mit systemctl restart radicale neu.
Erstellen Sie dann mit htpasswd /etc/radicale/users User ein Benutzerkonto. Der Kommandozeilenbefehl htpasswd kommt mit dem Paket apache2. Die Funktionen des Administrationsfrontends fallen selbsterklärend aus, wie Create new addressbook or calendar. Um Kalender und Adressbücher aus Radicale in Kontact, Evolution oder Thunderbird einzubinden, fügen Sie den Programmen eine DAV-Groupware-Ressource (Kontact und Evolution) beziehungsweise einen Kalender im Netzwerk hinzu. Benutzername und Passwort sowie die im Radicale-Frontend prominent genannte URL genügen, um den Zugriff einzurichten.
Fazit
Wer Linux nur als Desktop-Betriebssystem nutzt, verschenkt viel Potenzial: Die vorgestellten Serverdienste wie ein Webserver für ein Wiki und ein Etherpad für gemeinschaftliches Brainstorming samt Dokumentenhistorie, die das Tippen jedes einzelnen Buchstabens einfängt, laufen problemlos auf preisgünstigen SBCs oder Uraltrechnern. Selbst auf dem nicht permanent eingeschalteten Desktop installiert, erfüllen sie ihren Zweck zufriedenstellend. (uba)
Infos
- JeOS für den RasPi: https://ftp.uni-erlangen.de/opensuse/distribution/leap/15.6/appliances/openSUSE-Leap-15.6-ARM-JeOS-raspberrypi.aarch64-2025.01.29-Build15.13.raw.xz
- Wiki-Wiki-Schnellbusse: https://airports.hawaii.gov/hnl/getting-to-from/ground-transportation/intra-airport-transportation/
- Dokuwiki: https://www.dokuwiki.org
- Build-Service-Paket für Dokuwiki: https://build.opensuse.org/package/show/home%3Aecsos%3Aserver/dokuwiki
- Etherpad: https://etherpad.org
- Etherpad selbst kompilieren: https://github.com/ether/etherpad-lite#windows-macos-linux
- Syncthing: https://syncthing.net
- Syncthing Fork: https://f-droid.org/de/packages/com.github.catfriend1.syncthingandroid/
- Build-Service-Paket für Syncthing: https://software.opensuse.org/download/package?package=syncthing&project=home%3Afrispete%3ATumbleweed
- Radicale: https://radicale.org
- DAVx5: https://f-droid.org/de/packages/at.bitfire.davdroid/





