Yunohost setzt einen Server auf und stellt unter einer Weboberfläche rund 200 Dienste bereit, die Sie mit einem Klick aktivieren.
Großzügig bieten uns Internet-Konzerne an, Daten und Inhalte für uns im Netz kostenfrei verfügbar zu halten. Wie wir aber mittlerweile wissen, bezahlen wir dafür fast immer mit unseren persönlichen Daten. Komplementär dazu finden sich in den letzten Jahren immer mehr Angebote zum Selbst-Hosten unter eigener Regie, die es ermöglichen, die Frage nach dem Verbleib der eigenen Daten jederzeit eindeutig zu beantworten.
Das breit gefächerte Angebot bietet für jede Stufe des Linux-Know-how Lösungen an. An wenig technikaffine Anwender, die sonst an der zuweilen nicht ganz trivialen Konfiguration eines Web-Servers scheitern, richten sich Distributionen wie das auf Debian basierende Yunohost [1], das bereits in LU 09/2017 [2] Thema war. Ganz ohne Linux- und Netzwerk-Kenntnisse ließ es sich damals zwar nicht aufzusetzen, doch das Entwicklerteam besserte nach.
Why you no host?
Der Name Yunohost leitet sich von der Frage “Why you no host?” ab, also “Warum hostest du nicht?” Die Distribution vereinfacht das Einrichten des Servers und den Einsatz von fast 200 webbasierten Apps. Dazu gehören Dokuwiki, Gitlab, Jitsi Meet, Mastodon, Nextcloud, Peertube, Pixelfed, Syncthing, Tidliwiki und WordPress, um nur einige zu nennen [3].
Neben diesen als stabil bezeichneten Diensten bietet das System noch einmal rund 50 weitere an, die sich noch in der Erprobungsphase befinden. Wir prüfen, wie viel Linux-Wissen es erfordert, um Yunohost aufzusetzen und zu nutzen.
Die Distribution stammt aus Frankreich und steht Framasoft nahe, einem Projekt zur Förderung und Verbreitung freier Software. Yunohost liegt derzeit in Version 4.1.6 auf Basis von Debian 10 “Buster” vor. Es läuft auf 32- und 64-Bit-PCs sowie auf ARM-Rechnern wie dem Raspberry Pi [4]. Auf Github finden Sie außerdem ein Abbild für Vagrant [5].
Zum Testen genügt auch Virtualbox. Hier stellen Sie in der Sektion das Netzwerk von NAT auf Netzwerkbrücke um, da Sie andernfalls die Weboberfläche im Browser nicht erreichen.
Niedrige Einstiegsschwelle
Auf der Download-Seite finden Sie zu jeder Hardware-Option entsprechende Voraussetzungen sowie nützliche Tipps. Yunohost lässt sich auf Rechnern ab 512 MByte RAM betreiben und verlangt mindestens 16 GByte Platz auf dem Massenspeicher. Die Installationsroutine richtet einen Webserver sowie eine Datenbank ein. Die Bedienung erfolgt anschließend über ein Webinterface, das sich auch von mobilen Geräten aus nutzen lässt.
Soll Yunohost auf einem VPS oder einem dedizierten Server laufen, so sollte dort bereits eine Server-Distribution laufen, vorzugsweise ein aktuelles Debian. Zum Anstoßen der Installation genügt dann die Zeile aus Listing 1.
Listing 1
Remote-Server-Installation
# curl https://install.yunohost.org | bash
Für einen schnellen ersten Blick darauf, wie Yunohost arbeitet, steht im Administrationshandbuch [6] unter YunoHost ausprobieren ein Demo-Modus bereit (Abbildung 1).

Abbildung 1: Der Demo-Modus von Yunohost stellt das Frontend mit einigen aktivierten Diensten zum Ausprobieren bereit.
Für alle weiteren Geräte laden Sie das entsprechende Abbild herunter und starten es von USB oder DVD. Zunächst stehen Sie vor der Frage, ob Sie grafisch installieren möchten oder den textbasierten Installer bevorzugen. Nach Auswahl der gewünschten Lokalisierung legt die zweigeteilte Installation los (Abbildung 2).

Abbildung 2: Nach dem Abschluss des ersten Teils der Installation wechseln Sie vom Terminal in den Browser, um die Installation abzuschließen.
Zweigeteilte Installation
Nach Abschluss des ersten Teils der Installation blendet Yunohost im Terminal wichtige Informationen ein. Den zweiten Teil erledigen Sie entweder im Terminal oder bereits im Webbrowser, von wo aus Sie das Interface unter https://yunohost.local beziehungsweise deren IP-Adresse des Servers erreichen.
Da Yunohost standardmäßig ein selbst erstelltes Zertifikat verwendet, erscheint im Browser der Hinweis, die Verbindung sei nicht sicher. Das dürfen Sie im privaten Umfeld ignorieren und eine Ausnahme erlauben, um in die Oberfläche zu gelangen.
Bevor Sie fortfahren, sollten Sie in der Dokumentation den Abschnitt 5 Install YunoHost lesen, denn in der sogenannten Post-Installation geht es um DNS und Port-Forwarding. Die DNS-Einstellungen erstellt der Server automatisch, sofern Sie eine Yunohost-Domain verwenden; bei einer eigenen müssen Sie das bei Ihrem Registrar vornehmen.
Der nächste Schritt, egal, ob im Terminal oder Browser, dreht sich um die zu verwendende Domain. Falls Sie bereits über eine solche verfügen, geben Sie diese hier an. Im Test gehen wir vom häufiger vorkommenden Fall aus, dass keine existiert. In der Maske vergeben Sie dann lediglich einen Namen für die zu erstellende Domain. Der Server kümmert sich um das Einrichten des dynamischen DNS-Diensts, um die Erreichbarkeit der Yunohost-Instanz auch über die teilweise täglichen IP-Adresswechsel Ihres Providers hinaus zu gewährleisten.
Dieser Vorgang dauert auf einem leistungsschwächeren RasPi einige Minuten. Bei unserem Test auf einem älteren Thinkpad war die Domain in weniger als einer Minute geschaltet, nach dem Anmelden wechselten wir weiter in die Administrationsoberfläche (Abbildung 3).

Abbildung 3: Die einfach gehaltene Administrationsoberfläche bietet alles, was Sie zum Steuern von Yunohost benötigen.
Gleich der erste Eintrag erlaubt das Erstellen eines oder mehrerer User. Dabei lehnt Yunohost hier vorbildlich zu einfache oder zu kurze Passwörter ab. Sie sollten allerdings noch nicht zu einem unprivilegierten User wechseln, da das Einrichten der Applikationen nur als Administrator funktioniert (Abbildung 4).

Abbildung 4: Über den ersten Menüpunkt der Oberfläche legen Sie alle User an, die Zugriff auf die Dienste von Yunohost haben sollen, und weisen Ihnen eventuell eine abweichende Domain zu.
Aktualisierung
In der Rubrik System aktualisieren tun Sie anschließend genau das. Die Server-Distribution aktualisiert dabei neben dem zugrundeliegenden Debian-System auch automatisch die zur Verfügung stehenden Dienste.
In der Rubrik Dienste sehen Sie, dass Yunohost von Haus aus eine Menge Services mitbringt. Dazu zählen die Mailserver-Suite Dovecot, Mail Transfer Agent Postfix, Fail2Ban (Abbildung 5) zur Abwehr von Brute-Force-Angriffen, die Datenbank-Software MySQL, der Webserver Nginx mitsamt PHP, der Datenbank-Cache Redis-Server sowie die Yunohost-Firewall (Abbildung 6).

Abbildung 5: Fail2Ban wehrt Brute-Force-Angriffe ab, indem es bei mehrmals fehlgeschlagenen Anmeldeversuchen Sperren verhängt, wobei sich Art und Dauer festlegen lassen.

Abbildung 6: Die Yunohost-Firewall müssen Sie anfangs mehrmals neu starten, etwa nach dem Einrichten einer Port-Weiterleitung. Zum Testen lässt sie sich auch ganz deaktivieren.
Die Entwickler empfehlen, als Nächstes über die gleichnamige Rubrik eine Initiale Diagnose zu starten. Nach dem Öffnen zeigt der blaue Button die etwas irritierende Aufschrift Initiale Diagnose läuft. Das entspricht aber erst nach einem Klick darauf der Wahrheit. Die noch experimentelle Funktion läuft zudem zweimal täglich automatisch und schickt beim Auftreten von Fehlern eine E-Mail an den Administrator.
Via Shell stoßen Sie die Analyse mit dem Befehl yunohost diagnosis run an. Das System bietet über die Kommandozeile wesentlich mehr Befehle, Optionen und Parameter als über das Webinterface, wie der Aufruf yunohost -h zeigt. Die gesamte Konfiguration des Servers findet sich unter /home/yunohost.conf/. Der Zugriff per SSH gelingt standardmäßig nur als Root. Um das zu ändern, führen Sie den Befehl aus Listing 2 aus.
Listing 2
SSH freischalten
# yunohost user ssh allow <I>Benutzername<I>
Diagnose
Das Ergebnis der Diagnose lässt nicht lange auf sich warten (Abbildung 7). Es zeigt in unserem Fall erwartungsgemäß im Bereich Offene Ports, dass sich einige notwendige Ports von außen nicht erreichen lassen. Ein Klick auf Details erläutert jeweils, wozu der jeweilige erreichbar sein muss.

Abbildung 7: Die Diagnose zeigt, dass sich einige benötigte Ports von außen nicht erreichen lassen. Sie müssen an Ihrem Router erst eine entsprechende Weiterleitung einrichten.
Wollen Sie beispielsweise XMPP nicht verwenden, klicken Sie bei den Ports 5222 und 5269 ganz rechts auf Ignorieren. Ports, die Sie von außen erreichen möchten, müssen Sie in Ihrem Router per Port-Weiterleitung (Port Forwarding) weiterleiten. Die Dokumentation erklärt das Vorgehen eher generisch. Zum besseren Verständnis der Grundlagen verhilft ein Youtube-Video [7] anhand einer praktischen Anleitung am Beispiel der Fritzbox.
Die meisten Router bieten zudem von Haus aus eine weitere Möglichkeit an, benötigte Ports von außen automatisch erreichbar zu machen: Universal Plug & Play (UPnP) aktivieren Sie mit einem Mausklick, es gilt aber sicherheitstechnisch als umstritten.
Egal, ob Port-Weiterleitung oder UPnP: Nach diesbezüglichen Änderungen sollten Sie den Router rebooten. Anschließend starten Sie in der Yunohost-Oberfläche unter Dienste die Firewall neu und wiederholen danach die Diagnose. Sollten Sie sich für UPnP entscheiden, aktivieren Sie es etwa in der Fritzbox unter Werkzeuge | Firewall und starten diese ebenfalls neu (Abbildung 8).

Abbildung 8: Neben der manuellen Port-Weiterleitung lassen sich im Router Ports für Yunohost auch automatisch per UPnP öffnen. Das birgt gewisse Risiken.
Im Abschnitt E-Mail der Diagnose sehen Sie vermutlich die Fehlermeldung, dass Ihre IP-Adresse oder Domain auf der schwarzen Liste einiger Organisationen zur Spam-Abwehr steht. Hierbei handelt es sich in den meisten Fällen um einen standardmäßigen Eintrag Ihres Providers in der Policy Blocklist (PBL). Sehen Sie einen oder mehrere solcher Einträge, wollen aber einen eigenen Mailserver betreiben, sollten Sie den Eintrag entfernen lassen [8].
Echtes Zertifikat
Möchten Sie Besuchern von außen Zugriff auf Dienste gewähren, sollten Sie ein echtes Zertifikat über Let’s Encrypt erstellen. In die entsprechende Maske gelangen Sie unter der Rubrik Domäne und über die Auswahl Ihrer Domain. Über den Schalter SSL-Zertifikat gelangen Sie dort zum Aufsetzen des Zertifikats.
Erscheint beim Berühren des grünen Schalters Let’s Encrypt Zertifikat installieren mit dem Mauszeiger ein Verbotszeichen, so stimmt die Konfiguration nicht. Das überprüfen Sie im Bereich Diagnose unter den Punkten DNS und Web. Meist liegt das Problem darin, dass der Router die Ports 80 und 433 nicht richtig zu Ihrem Server weiterleitet.
Dienste mit einem Klick
Nun geht es an das Aktivieren der gewünschten Dienste, die Sie unter der Rubrik Applikationen nach einem Klick auf Installieren in Rubriken unterteilt finden (Abbildung 9). Unter dem jeweiligen Namen nebst Kurzbeschreibung sehen Sie die Schalter Code, Readme und Installieren. Der erste Schalter führt zu Github oder einem anderen Code-Repository.

Abbildung 9: Der in Rubriken unterteilte App-Katalog bietet rund 200 Dienste, die Sie auf Wunsch mit einem Klick installieren.
Der mittlere Schalter führt ebenfalls zu Github, aber zur jeweiligen Yunohost-Seite der gewählten App. Sie bekommen alle nötigen Informationen über die App, inklusive der Befehle, um sie auch per SSH zu installieren. Anschließend richten Sie die App über den rechten Schalter Installieren ein. Das dauert je nach Anwendung wenige Sekunden bis einige Minuten.
Bei einigen Apps erhalten Sie die Meldung, dass die Anwendung eine eigene Domain benötigt. Eine mögliche Lösung hierfür besteht im Hinzufügen und Verwenden einer Subdomain, die Sie dieser Anwendung zuordnen. Nach Installation aller gewünschten Apps melden Sie sich mit dem zuvor eingerichteten Benutzerkonto an und finden sich in einer neuen Oberfläche wieder. Sie zeigt die installierten Apps auf Kacheln an und erinnert im ersten Moment an das Periodensystem aus dem Chemieunterricht.
Es handelt sich dabei um einen Single-sign-on (SSO), bei dem die einmalige Eingabe des Passworts für alle installierten Apps gilt. In Ihr Profil gelangen Sie dort durch einen Klick auf Ihren Namen. Falls erforderlich, ändern Sie dort Ihr Passwort oder richten eine E-Mail-Weiterleitung an einen Mail-Provider ein.
Zum Start einer Applikation klicken Sie auf die entsprechende Kachel. Der erste Start initialisiert in der Regel die Apps, danach erfolgt eine Abfrage der notwendigen Informationen. Funktioniert alles zu Ihrer Zufriedenheit, legen Sie in der Admin-Oberfläche unter Datensicherung ein Backup an. Im Verzeichnisbaum finden Sie die Sicherung unter /home/yunohost.backup (Abbildung 10).
Dokumentation
Die ausführliche Dokumentation zu Yunohost liegt zum Teil nur in englischer Sprache vor. Sie erreichen sie über diverse Links und einen Hilfe-Button zudem überall in der Bedienoberfläche. Letzterer führt zur Anmeldung in einem Chat-Raum. Sollte es dort nicht weitergehen, steht ein aktives Forum bereit.
Alternativen
Als Alternativen zu Yunohost bieten sich unter anderem Ubos [10], Freedombox [11], Sandstorm [12] sowie das teilweise kostenpflichtige Cloudron [13] an.
Fazit
Yunohost nimmt dem angehenden Server-Betreiber viel zeitaufwendige Arbeit ab. Er muss sich nicht um die Konfiguration des Webservers, der Datenbank oder benötigter PHP-Module kümmern, sondern bekommt nach der Installation einen schlüsselfertigen Server samt einer funktionierenden Domain mit DNS-Auflösung und DynDNS.
Die Port-Weiterleitung nimmt Yunohost dem Admin allerdings nicht ab. Zwar lässt sich das im Router mit dem Aktivieren von UPnP elegant lösen, allerdings zum Preis einer potenziellen Sicherheitslücke. In solchen Fällen sollten Sie ein VPN in Erwägung ziehen. Gleiches gilt für SSH; hier müssen Sie selbst für Sicherheit sorgen und beispielsweise das Anmelden als Root untersagen, sobald sich User einloggen können. Zu SSH mit Schlüssel statt Passwort und weiteren Sicherheitsaspekten bietet die Dokumentation eine eigene Seite [9].
Mit Yunohost gelingt zwar die Emanzipation von Cloud und Konsorten; es genügt aber immer noch nicht, einfach nur auf Weiter zu klicken. Bei der Bereitstellung von Domain, DNS und Port-Weiterleitung muss der unkundige Anwender sich in die Dokumentation und eventuell weiterführende Lektüre vertiefen. Das erhöht den Zeitbedarf beim Aufsetzen von Yunohost, wenn auch nur wenig.
Im Vergleich zu unserem Test vor vier Jahren wirkt Yunohost heute erwachsener. Damals unterstützte die Distribution nur wenige Dienste offiziell, der Großteil trug die Bezeichnung Community; inzwischen hat sich das Blatt gewendet. In der Admin-Oberfläche erscheint die damals als experimentell deklarierte Datensicherung nun als stabil, zudem kam die sehr nützliche Diagnosefunktion hinzu. (tle/jlu)
Glossar
-
Vagrant
-
Freie Ruby-Anwendung zum Erstellen und Verwalten virtueller Maschinen. Sie dient als Wrapper zwischen Virtualisierern und Systemkonfigurationswerkzeugen wie Chef, Saltstack und Puppet.
Infos
-
Yunohost: https://yunohost.org/de/
-
Yunohost: Ferdinand Thommes, “Mit einfachen Mitteln”, LU 09/2017, S. 76, https://www.linux-community.de/39674
-
Yunohost-Apps: https://yunohost.org/de/apps
-
Yunohost herunterladen: https://yunohost.org/de/install/hardware:virtualbox
-
Yunohost für Vagrant: https://github.com/YunoHost/Vagrantfile
-
Yunohost-Dokumentation: https://yunohost.org/de/admindoc
-
Youtube-Port-Forwarding einrichten: https://www.youtube.com/watch?v=kQrmBfz9jlU&t=294s
-
PBL: https://check.spamhaus.org/listed/?searchterm=91.64.59.76
-
Sicherheit: https://yunohost.org/de/security
-
Ubos: https://www.raspberry-pi-geek.de/ausgaben/rpg/2015/03/mit-ubos-eine-private-cloud-aufsetzen/
-
Freedombox: https://freedombox.org/
-
Sandstorm: https://sandstorm.io/
-
Cloudron: https://www.cloudron.io/index.html






