YunoHost bietet eine große Anzahl von Diensten auf einer bewährten Debian-Server-Plattform, die Sie selbst hosten können.
Der Erfolg von Linux basiert nicht zuletzt auf einer Kultur des Selbstmachens mit einfachen Mitteln. YunoHost [1] passt perfekt in dieses Ökosystem. Es reiht sich ein in Projekte wie Freedom Box [2], Sandstorm [3], Ubos [4] oder das kürzlich eingestellte ArkOS [5]. Alle davon versetzen den Anwender in die Lage, einen Server unter eigener Kontrolle zu betreiben und darauf möglichst unkompliziert verschiedene Webdienste sicher zu installieren.
YunoHost basiert auf Debian und steht für die Architekturen i386, amd64, PowerPC und ARM in Version 2.5 zum Herunterladen bereit. Eine Demo-Seite [6] bietet die Möglichkeit, Benutzerschnittstelle und Backend für die Administration vorab zu testen. Das System bringt alle benötigten Programme für einen Server vorkonfiguriert mit. Darauf sind bereits einige Dienste installiert, andere stehen als Apps zur Installation per Mausklick bereit.
Gleich nach dem Setup des Betriebssystems bietet dieses als Grundlage für die zu installierenden Dienste Nginx [7] als Webserver, MariaDB als Datenbank, den Mail Transfer Agent Postfix [8] und den IMAP-Server Dovecot [9] samt Spamfilter Rspamd [10]. Der XMPP-Server Metronome IM [11], OpenLDAP [12], Dnsmasq [13] und das transparente Authentifizierungssystem SSOwat [14] für Single-Sign-On sind ebenso vorinstalliert wie Let’s Encrypt [15] zum Erstellen von SSL-Zertifikaten.
Gut ausgestattet
Das Angebot offizieller Apps für verschiedenste Webdienste beläuft sich derzeit auf 21 Pakete [16], die Sie mit nur einem Klick installieren. Darunter befinden sich neben bekannten Diensten wie WordPress, Nextcloud, Roundcube oder Dokuwiki auch weniger bekannte wie die Pocket-Alternative Wallabag [17], der CalDAV- und CardDAV-Server Baikal [18], der Webmailer Rainloop [19] sowie der verschlüsselte Paste-Service ZeroBin [20].
Die Liste der von der Community entwickelten und betreuten inoffiziellen Apps [21] fällt wesentlich länger aus: Sie umfasst rund 100 Programme wie etwa einen eigenen Sync-Server für Firefox [22], den Git-Service Gogs [23], den CI-Server Jenkins [24], Mattermost [25] als Alternative zu Slack, die Foto-Galerie Piwigo [26] und viele andere mehr.
Damit ist aber immer noch nicht Schluss: Es gibt noch die Abteilung Apps in Progress, deren Apps Sie zwar testen dürfen, aber ohne Garantie, dass sie bereits zuverlässig laufen oder die Installation überhaupt gelingt.
Welche Plattform?
Auf welcher Plattform YunoHost sich sinnvoll einsetzen lässt, richtet sich nach den Diensten, die Sie bereitstellen möchten. Der Raspberry Pi 3, auf dem die Software im Test lief, hat – bedingt durch die Bauart – seine Grenzen. Von daher stellt sich die Frage, ob Dienste wie WordPress, Nextcloud oder Dokuwiki darauf dauerhaft gut aufgehoben sind. Die Software läuft aber selbst auf den früheren Ausgaben des kleinen Rechners. Hier hängt die Auswahl jedoch noch mehr von den künftigen Aufgaben ab.
Vieles hängt individuell davon ab, wie viele Daten Sie lagern und wie viele Sie hin und her bewegen. Beim Durchsatz zeigen sich recht schnell die Grenzen des RasPi, ebenso bei der Bandbreite seines Ethernet-Anschlusses [27]. Für einen Test der gewünschten Ausstattung an Diensten eignet sich der kleine Rechner in jedem Fall. Ansonsten besteht die Möglichkeit, die Software auf einem lokalen Rechner oder einem V-Server bei einem professionellen Hoster zu installieren. Läuft auf dem betreffenden Rechner bereits Debian, integrieren Sie das Programm per Skript ins System [28].
Eine virtuelle Maschine, bereitgestellt von Virtualbox, Vmware oder KVM, eignet sich ebenfalls als Basis für einen Test. Im Gegensatz zum herkömmlichen Einsatz der Network Address Translation (NAT) kommt hier, da Sie später per Interface zugreifen, der Brückenmodus zum Einsatz. Ein Image für Vagrant [29] steht ebenfalls bereit.
Installation auf dem RasPi
Für die Installation laden Sie zunächst das Image für die ARM-Plattform herunter und schieben es auf eine SD-Karte vorzugsweise der Class 10 mit mindestens 8 GByte Kapazität. Achten Sie dabei penibel darauf, das richtige Device auszuwählen, da Sie sonst die Daten auf einer im Rechner verbauten Partition verlieren. Zum Schreiben der Daten eignet sich der Befehl Dd ebenso wie grafische Werkzeuge wie Etcher unter Linux oder Rufus unter Windows. Die entsprechende ARM-Version für den RasPi basiert auf Raspbian 8 “Jessie”.
Nach dem Kopieren des Images auf die SD-Karte stecken Sie diese in den vorgesehenen Einschub des RasPi und verbinden den Mini-Rechner mit einem Ethernet-Kabel, dem Netzteil und wahlweise Display und Tastatur. Rund 90 Sekunden dauert der Bootvorgang, dann ermitteln Sie die IP-Adresse des RasPi.
Haben Sie ein Display angeschlossen, zeigt der Rechner die IP-Adresse bereits an. Ohne angeschlossenes Display hilft der Befehl hostname -i auf der Konsole des Rechners. Alternativ erfahren Sie die Adresse über die Weboberfläche des Routers. Unter Windows eignet sich das Programm Advanced IP Scanner [30] dazu, im lokalen Netz angemeldete IP-Adressen aufzuzeigen. Ähnliches erledigen Sie unter Linux mit Bordmitteln (Listing 1).
Listing 1
$ sudo arp-scan --localnet | grep Raspberry
Installation auf dem PC
Für eine Installation unter Virtualbox beziehungsweise auf einem 32- oder 64-Bit-PC laden Sie von der Projekt-Website oder der Heft-DVD dieser Ausgabe das passende ISO-Image herunter und richten es wie gewohnt ein. Für die Plattenpartionierung belassen Sie es bei den vorgeschlagenen Werten. Nach der in wenigen Minuten abgeschlossenen Installation der Software inklusive Aktualisierung startet das System automatisch neu in eine Konsole. Sie melden sich nun als root mit dem Passwort yunohost an und stoßen die Postinstallation mit dem Aufruf yunohost tools postinstall an. Die Routine erfagt die Hauptdomain sowie das künftige administrative Passwort und konfiguriert dann alle Dienste entsprechend. Ab hier fahren Sie wie im Haupttext beschrieben fort.
Nun gilt es noch, die Installation abzuschließen. Ohne Display fahren Sie per SSH fort oder rufen in einem Browser die Adresse http://RasPi-IP auf, um grafisch fortzufahren. 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 (Abbildung 1).

Abbildung 1: Der erste Blick in das Backend zeigt alle Kategorien auf, darunter den Bereich, in dem Sie die Dienste auf dem Host konfigurieren.
Möchten Sie anderen Anwendern von außen Zugriff auf Dienste gewähren, sollten Sie dazu eine eigene Domain nutzen. Dazu erstellen Sie mit dem Befehl yunohost domain cert-install ein SSL-Zertifikat mit Let’s Encrypt und installieren es, sodass es künftig die Verbindung per HTTPS absichert. Das setzt aber voraus, dass der Domain-Registrar zuvor den A-Record anpasst, damit dieser auf die IP-Adresse der Domain verweist. Danach dauert es in der Regel 24 Stunden oder länger, bis der Wechsel propagiert ist.
In der Oberfläche geht es zunächst ans Einrichten einer Domain, unter der Sie den Server erreichen (Abbildung 2). Die geführte Konfiguration im Browser erweist sich für die meisten Anwender als einfacher als das Arbeiten per SSH in einem Terminal. Als Erstes stellt sich die Frage, ob Sie bereits über eine Domain verfügen, die Sie verwenden möchten. Das Beispiel geht davon aus, dass keine Domain vorliegt, sodass die zweite Möglichkeit die richtige Wahl darstellt.

Abbildung 2: Wollen Sie Anwendern den Zugriff auf die Dienste auf dem Host erlauben, konfigurieren Sie eine Domain für den entsprechenden Rechner.
Möchten Sie jedoch eine selbst definierte lokale Domain verwenden, wie etwa yunohost.local, so tragen Sie diese zusammen mit der IP-Adresse in der Form IP Domain in die Datei /etc/hosts ein. Unter Windows findet sich unter %SystemRoot%\system32\drivers\etc\ die entsprechende Datei.
Wissen über DNS
Um die Dienste über den Hostrechner hinaus bereitzustellen, passen Sie die DNS-Einstellungen des Routers an. Ein Blick in die durchweg englische Dokumentation [31] hilft dabei. Einsteiger sollten allerdings besser dem Beispiel folgen und für den Anfang eine der beiden Domains von YunoHost verwenden. Es sei noch kurz erwähnt, dass mehrere Domains möglich sind und dass Sie eigene Domains und Subdomains mit YunoHost-Domains mischen dürfen.
Im Beispiel ohne eigene Domain tragen Sie die gewünschte Subdomain in die angebotene Maske ein und wählen eine der beiden angebotenen Domains. Bedenken Sie beim Vergeben der Namen, dass alle, die sich in den Server einloggen, dazu diese Standarddomain nutzen.
Im Beispiel kommt der Name ft als Subdomain zum Einsatz. Damit lautet die Standarddomain ft.nohost.me. Ein erster Versuch mit yunohost als Subdomain scheiterte, da das System nicht in der Lage war, die Konfiguration abzuschließen – allerdings ohne erkennbaren Grund.
Zeit für eine Tasse Tee
Nach dem Erstellen eines Passworts zur Administration des Servers richten Sie das Netzwerk ein, was unter Umständen einige Minuten dauert. Danach finden Sie sich in der Oberfläche zum Administrieren wieder.
Zunächst gilt es, wie üblich das System auf den aktuellen Stand zu bringen. Unter der Kategorie System aktualisieren spielen Sie neue Pakete sowohl vom Debian-Server als auch von YunoHost ein (Abbildung 3). Aktualisieren Sie das System in regelmäßigen Abständen, denn nur ein aktuelles Server-System bietet ausreichend Sicherheit.

Abbildung 3: Es empfiehlt sich, in regelmäßigen Abständen das System zu aktualisieren, um Sicherheitslücken in den installierten Paketen zu beheben.
Bei allen Aktionen sehen Sie am oberen rechten Bildschirmrand eine Statusanzeige, die die jeweils gerade laufenden Aktionen ausgibt. Eine Liste der laufenden Aktionen klappt aus, sobald Sie den Mauszeiger darüber bewegen.
Als Nächstes sollten Sie zumindest einen Benutzer anlegen, um sich in den Bereich für Benutzer einzuloggen. Danach geht es an die Installation von Applikationen. Für diesen Test fiel die Wahl zunächst auf Baikal, Wallabag und Nextcloud aus dem offiziellen Angebot. Die Installation und grundlegende Konfiguration war jeweils mit einem Klick erledigt (Abbildung 4).

Abbildung 4: Für den Test fiel die Wahl unter anderem auf Wallabag, wobei das Paket aus dem offiziellen Repository des Unternehmens stammte.
Anschließend testen Sie die installierten Applikationen nach einem Klick auf Benutzeroberfläche. Dazu melden Sie sich als der vorher angelegte Benutzer an und erhalten damit Zugriff auf die Dienste (Abbildung 5). Die erste Konfiguration der von uns installierten Apps erwies sich als durchweg gut. So waren etwa bei Nextcloud bereits die nötigen Informationen für LDAP eingetragen.
Apps satt
Die verwendete Methode für die Installation gilt nur für die offiziellen Apps des Unternehmens. Für die weit größere Zahl der sogenannten Custom-Apps, die aus der Community stammen und die diese betreut, gibt es am Ende der offiziellen Apps-Liste den Unterpunkt Benutzerdefinierte App installieren.
Hier tragen Sie die Github-URL der jeweiligen Applikation ein. Diese finden Sie, indem Sie die Informationen zur entsprechenden App öffnen. Wir installierten exemplarisch die Foto-Galerie Piwigo, deren Installations-URL https://github.com/YunoHost-Apps/piwigo_ynh lautet (Abbildung 6).

Abbildung 6: Wer mit den Paketen aus dem offiziellen Repository nicht alle Bedürfnisse abdeckt, greift auf die Software aus der Community zurück.
Die Oberfläche hat aber noch mehr zu bieten: In der Kategorie Domänen besteht die Möglichkeit, zusätzliche Domains zu definieren, den Standard zu ändern und Zertifikate hinzuzufügen. Im Test legten wir als zweite Domain eine Subdomain einer eigenen Domain an, was problemlos funktionierte, nachdem der DNS auf die IP-Adresse in /etc/hosts (oder alternativ im Router) festgelegt war.
Werkzeuge
Die Kategorie Dienste erlaubt es, Systemdienste zu starten und zu stoppen. Hinter dem Reiter Werkzeuge finden Sie die Einstellungen für die Firewall sowie Werkzeuge für die Diagnose und Meldungen des Systems. Dort ändern Sie bei Bedarf auch das Root-Passwort.
Die Kategorie Sicherung ermöglicht ein Backup des Systems, der Benutzerdaten und der Applikationen (Abbildung 7). Diese Funktion gilt zurzeit noch als experimentell, funktionierte beim Test inklusive des Zurückspielens der Daten jedoch einwandfrei (Abbildung 8).

Abbildung 7: In der Kategorie Sicherung legen Sie fest, welche Daten Sie in das Backup mit aufnehmen möchten.

Abbildung 8: Trotz experimentellen Status klappte es im Test, die Daten aus dem Backup wieder ins System einzuspielen.
Zugriff per SSH
Vom Ergebnis überzeugen Sie sich per SSH. Die gesamte Konfiguration des Servers findet sich unter /home/yunohost.conf/, das Backup liegt unter /home/yunohost.backup. Das System bietet über die Kommandozeile wesentlich mehr Befehle, Optionen und Parameter als das Webinterface. Diese sehen Sie mit yunohost -h ein.
Die Administration per SSH gelingt in der ersten Konfiguration nur als Root, da das System die User per LDAP verwaltet. Hier helfen ein Skript sowie einige andere Kniffe weiter, um als User per SSH das System zu erreichen [32].
Auf jeden Fall empfiehlt es sich, die Sicherheit des SSH-Zugangs mit einem Schlüssel anstatt des Root-Passworts abzusichern und anschließend den Einsatz von Passwörtern für SSH generell zu untersagen. Sobald der Zugang per User funktioniert, sollten Sie zudem das Einloggen als Root in der Datei /etc/sshd.conf untersagen.
Fazit
Die Meinungen über Self-Hosting-Systeme wie YunoHost gehen auseinander: Manche meinen, solche Systeme erzeugten faule Admins, die sich mit der Administration von Servern nicht auskennen und so sich selbst und das Internet gefährden. Auf der anderen Seite versetzt erst solche Software viele Anwender in die Lage, Daten im Netz unter eigener Kontrolle zu verwalten.
Das vorliegende System erleichtert das Aufsetzen eines gut ausgestatteten Servers enorm, jedoch gehört zum verantwortungsvollen Umgang damit trotzdem einiges Wissen. Das fängt beim Absichern des SSH-Zugangs an, geht mit DNS-Einstellungen weiter und reicht bis hin zur Konfiguration eines Zertifikats mit Let’s Encrypt.
Auf einem RasPi macht sich das System dank guter technischer Implementation ausgezeichnet. Positiv überraschen durchdachte Kleinigkeiten wie ein vorkonfiguriertes Fail2Ban [33] zum Schutz gegen Einbrüche oder das Verwalten der Anwender per LDAP. Die große Auswahl an Apps deckt alle Bereiche von Webdiensten ab. In dieser Form ist das Gesamtpaket für das Homeoffice und kleine Betriebe geeignet.
Selbst vor größeren Aufgaben schreckt die mit Debian als Basis sehr solide aufgestellte Distribution nicht zurück, sollte dann aber auf einem V-Server mit eigener Domain laufen. Die aktive Arbeit an der freien Software, deren Code auf Github [34] liegt, gibt für die Zukunft eine Perspektive.
Infos
-
Download: https://build.yunohost.org
-
Freedom Box:https://en.wikipedia.org/wiki/FreedomBox
-
Sandstorm: https://sandstorm.io
-
Ubos: http://www.raspberry-pi-geek.de/Magazin/2015/03/Mit-Ubos-eine-private-Cloud-aufsetzen
-
ArkOS: http://www.raspberry-pi-geek.de/Magazin/2013/06/Mit-ArkOS-selbstbestimmt-Daten-in-der-Wolke-anbieten
-
Postfix :https://de.wikipedia.org/wiki/Postfix_(Mail_Transfer_Agent)
-
Rspamd: https://rspamd.com/
-
OpenLDAP: https://de.wikipedia.org/wiki/OpenLDAP
-
Let’s Encrypt: https://de.wikipedia.org/wiki/Let%E2%80%99s_Encrypt
-
Standard-Apps: https://yunohost.org/#/apps
-
Wallabag:https://linuxundich.de/gnu-linux/die-freie-pocket-alternative-wallabag-zum-selber-hosten/
-
Baikal: http://sabre.io/baikal/
-
Rainloop: https://www.golem.de/news/rainloop-webmail-client-mit-integration-in-owncloud-1406-107446.html
-
Community-Apps: https://yunohost.org/#/apps_in_progress_en
-
Firefox-Sync-Server: https://github.com/YunoHost-Apps/ffsync_ynh
-
Mattermost: https://github.com/YunoHost-Apps/mattermost_ynh
-
Schwachstellen: http://www.elektronikpraxis.vogel.de/messen-und-testen/articles/484985/index5.html
-
Manuelle Installation: https://yunohost.org/#/install_manually
-
Vagrantbox: https://github.com/YunoHost/Vagrantfile
-
IP-Scanner: https://www.heise.de/download/product/advanced-ip-scanner-19718
-
Dokumentation: https://yunohost.org/#/docs
-
SSH als User: https://forum.yunohost.org/t/ssh-disconnects-after-successful-login/256
-
Fail2Ban: https://de.wikipedia.org/wiki/Fail2ban
-
YunoHost auf GitHub: https://github.com/YunoHost






