Die eigene Cloud: Nextcloud Hub Installation auf einer Synology DiskStation mit DSM 6.2 [Update Juni 2020]

Synology bietet zwar eine eigene Cloudlösung, die CloudStation, die ist aber bei weitem nicht so umfangreich und flexibel wie Nextcloud. Sei es Kalender- und Kontaktsynchronisation oder die Apps und Weboberfläche, es gibt viele Gründe für Nextcloud auf einer DiskStation. Der Artikel erklärt Schritt für Schritt, wie ihr Nextcloud auf einer DiskStation installiert.

Vorbereitung

Hinweis

Tippt Befehle für die Kommandozeile immer selbst ab, kopiert Sie nicht aus dem Beitrag. Doppelte und einfache Anführungszeichen werden im Text anders Formatiert als in der Kommandozeile. Kopiert Ihr die Zeichen übernehmt ihr die falsche Formatierung, die Zeichen werden nicht erkannt und die Befehle funktionieren nicht.
Erstellt Skripte auch immer direkt über die Kommandozeile (mit vi). Erstellt Ihr Skripte mit einem Editor auf eurem Rechner und ladet Sie auf eure DiskStation, können Steuerzeichen enthalten sein, die eine Ausführung verhindern.

  1. Bevor wir anfangen können, kontrolliert ob die Web Station läuft bzw. installiert SIe, wenn ihr das noch nicht getan habt.
    Wichtig: Nutzt ihr nginx als Webserver, müsst Ihr in der WebStation unter Allgemeine Einstellungen HTTP-Backend-Server auf Apache HTTP Server 2.4 umstellen. Nextcloud läuft unter nginx nicht ohne diesen vorher zu konfigurieren. Bisher ist aber keine funktionierende Konfiguration für Synology in der Community vorhanden. Ihr könnt für Nextcloud einen vhost einrichten, der den Apache nutzt, dann könne ihr den Rest eurer DS wieder auf nginx umstellen.
  2. Installiert folgende Pakete im Paket Zentrum:
  3. Öffnet MariaDB 10 und setzt den Haken bei „TCP/IP-Verbindung aktivieren“.
  4. Erstellt einen neuen gemeinsamen Ordner als Speicherort für die Daten. Nextcloud speichert die Daten standardmäßig im data-Ordner unter /web/Nextcloud. Nextcloud empfiehlt aus Sicherheitsgründen den Speicherort außerhalb des /web Ordners anzulegen. Das erleichtert auch ein späteres Upgraden von Nextcloud. Auf den gemeinsamen Ordner sollte niemand sonst Zugriff haben und auch als Administrator solltet ihr dort nur Änderungen vornehmen wenn Sie eure Nextcloud-Installation betreffen. Diese Rechte-Änderungen solltet ihr dann aber über PuTTY als root machen, da sich sonst die Ownership ändert und Nextcloud nicht mehr auf den Ordner zugreifen kann. Erstellt den gemeinsamen Ordner über DSM > Systemsteuerung > Gemeinsame Ordner, erstellt ihr den Ordner über PuTTY erkennt DSM diesen nicht und ihr könnt ih nz.B. nciht über Hyper Backup sichern.
  5. Damit PHP auch auf den gemeinsamen Ordner zugreifen kann, muss der Pfad in open_basedir eingetragen werden. Öffnet die WebStation und geht in die PHP Einstellungen. Fügt dort den Pfad am Ende des open_basedir Feldes ein. Der : trennt die einzelnen Pfade.
  6. Aktiviert den SSH Service unter Systemsteuerung > Terminal & SNMP im Control Panel.
  7. Öffnet PuTTY und verbindet euch auf die DS. Loggt euch als Administrator ein. Um die Befehle als root auszuführen gebt sudo –i ein und drückt Enter. Gebt erneut euer Administratorpasswort ein. Gebt folgende 2 Befehle ein:
    Shell12chown http:http /volume1/nextcloudDatachmod -R 777 /volume1/nextcloudData
    Ansonsten kann Nextcloud nicht auf den Ordner zugreifen. Habt ihr die Option aktiviert, damit der Ordner für unbefugte Benutzer ausgeblendet wird, solltet Ihr den Ordner in der File Station nicht mehr sehen.
  8. Öffnet die Web Station und erstellt unter PHP-Einstellungen ein neues Profil.
    1. Vergebt einen Namen und eine Beschreibung.
    2. Wählt PHP 7.3 (oder höher) aus.
    3. Aktiviert „PHP-Cache aktivieren“.
    4. Aktiviert „PHP open_basedir benutzerspezifisch anpassen“ und tragt /tmp:/var/services/tmp:/var/services/web ein. Fügt jetzt noch den Pfad zum gemeinsamen Ordner ein, den ihr vorhin angelegt habt (vergesst den : nicht). Das ganze könnte dann so aussehen: /tmp:/var/services/tmp:/var/services/web:/volume1/NextcloudData
    5. Aktiviert folgende Erweiterungen: bz2, curl, ftp, gd, iconv, intl, mysqli, openssl, pdo_mysql, posix, ssh2, zip
  9. Verwendet am besten einen virtuellen Host, das verhindert einige Probleme und Ihr könnt Nextcloud besser konfigurieren.
  10. Als nächstes müsst ihr das Webserver-Timeout erhöhen, der Installationsvorgang kann einige Zeit dauern, vorallem auf schwächeren DiskStations. Das kann zu einem Timeout führen, prinzipiell läuft die Installation im Hintergrund zwar fertig und danach müsste die Seite einfach neu geladen werden aber das ganze ist eher unschön, zumal man nicht weiß wann die Installation fertig ist.
    1. Öffnet in PuTTY die Datei /etc/nginx/proxy/conf (als root).
    2. Fügt am Ende den Eintrag proxy_read_timeout 600; hinzu.
    3. Speichert und schließt die Datei.
    4. Testet die Konfiguration mit nginx -t. Habt Ihr ein Paket installiert, dass selbst das Timeout setzt (z.B. WordPress), schlägt der Test fehl. In der Fehlermeldung seht ihr, in welcher Datei das Timeout gesetzt wurde. Öffnet die Datei und löscht das Timeout dort raus. Ist der Wert höher als 600, passt den Wert in /etc/nginx/proxy/conf an. Führt den Test erneut durch und behebt alle Fehler.
    5. Startet den nginx mit synoservice -restart nginx neu.
    6. Legt mit PuTTy die Datei /usr/local/etc/apache24/sites-enabled/apache_nextcloud.conf an und fügt folgende Zeilen ein:
      Apache123456ProxyTimeout 600Timeout 600 <IfModule reqtimeout_module>   RequestReadTimeout body=0</IfModule>
    7. Speichert und schließt die Datei und startet den Apache neu, das geht umständlich über das Starten und Stoppen der Web Station, einem Neustart der DiskStation oder ihr erstellt in der Aufgabenplanung eine geplante Aufgabe > Dienst > Start/Stop Aufgabe für den Apache, deaktiviert die Aufgabe und führt manuell zuerste die Stop-Aufgabe aus, wartet einen Moment und dann die Start-Aufgabe.

Das waren schon eine Menge Schritte, aber die Vorbereitung ist abgeschlossen und die Installation kann beginnen.

Installation

  1. Ladet die neueste Version von Nextcloud als .zip oder .tar hier herunter.
  2. Ladet das zip-File auf eure DiskStaion hoch und extrahiere es in den /web Ordner.
    Sicherheitshinweis: Ihr könnt den Nextcloud-Ordner umbenennen. Das Verhindert, dass er von Crawlern gefunden wird, die Web-Roots nach Standardbezeichnungen durchsuchen.
  3. Ändert die Rechte des Nextcloud-Ordners. Erstellt dazu am besten ein Script (Textdatei mit .sh Endung) mit folgendem Inhalt irgendwo auf der DiskStation:
    Shell12345#!/bin/bash chown -R http:http /volume1/web/Nextcloud/ chmod -R 777 /volume1/web/Nextcloud/
  4. Um das Script als root auszuführen gebt sudo –i ein und drückt Enter. Gebt erneut euer Administratorpasswort ein. Führt das Script nun mit sh /volume1/PfadZumScript/Installationsberechtigung.sh aus. Anstelle des Scripts könnt ihr auch Zeile für Zeile in die Shell eingeben, das ist aber mühsam, außerdem müsst ihr die Rechte für ein Update wieder ändern.
    Hinweis: Die Rechte sind nur für die Installation gedacht, für einen sicheren Betrieb sollten die Rechte so strikt wie möglich gehalten werden. Lest dazu hier nach wie ihr die Rechte nach der Installation anpasst.
  5. Das Setup von Nextcloud erzeugt automatisch Datenbank inklusive Tabellen und einem eigenen Nutzer. Die aktuelle Version von MariaDB 10 von Synology hat Probleme mit der Syntax in der Installationsdatei. Damit die Installation richtig durchgeführt werden kann, müssen die problematischen Zeilen angepasst werden:
    1. Öffnet (mit PuTTY) die Datei /volumeX/Nextcloud/lib/private/Setup/MySQL.php
    2. Scrollt fast bis zum Ende und sucht folgende 2 Zeilen:
      PHP123$query = “CREATE USER ‘$name’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘$password’”; $query = “CREATE USER ‘$name’@’%’ IDENTIFIED WITH mysql_native_password BY ‘$password’”;
    3. Entfernt „WITH mysql_native_password“, das Ergebniss sieht dann so aus:
      PHP123$query = “CREATE USER ‘$name’@‘localhost’ IDENTIFIED BY ‘$password’”; $query = “CREATE USER ‘$name’@’%’ IDENTIFIED BY ‘$password’”;
    4. Speichert und schließt die Datei.
  6. Öffnet Nextcloud im Browser. Verwendet dabei unbedingt die Adresse, die ihr für den virtuellen Host angegeben habt (z.b. cloud.meinedomain.com), habt ihr keinen virtuellen Host konfiguriert verwendet die IP, den Namen der DiekStation oder eine Domain die auf die DiskStation zeigt, gefolgt vom Nextcloud-Verzeichnis (z.b. mynas.synology.me/Nextcloud) Die Adresse die Ihr hier benutzt wird während der Installation als erlaubte Domain eingetragen. Wollt ihr Nextcloud von anderen Domains aus erlauben müsst ihr diese später in der config.php eintragen. Das ist der Fall wenn ihr z.B. die Cloud später über eine eigene Domain bzw. DynDNS erreichen wollt, aber bei der Installation den lokalen Namen oder die lokale IP der DiskStation benutzt.Nextclud Hub Installation im Browser
  7. Den Fehler könnt ihr einfach ignorieren, ihr seht ihn nur, wenn eure DiskStation keine 64bit-CPU aufweist. Gebt einen Benutzernamen und ein Passwort für den Nextcloud-Admin ein (der NC-Admin hat nichts mit dem Admin der DiskStation zu tun). Unter „Speicher & Datenbank“ > Datenverzeichnis ist standardmäßig /volumeX/web/nextcloud/dataeingetragen, gebt den Pfad zum gemeinsamen Ordner an, den ihr vorhin angelegt habt.
  8. Je nachdem wie ihr das PHP-Profil konfiguriert hab, stehen euch mehrere Datenbanken zur Auswahl. MariaDB ist die von Nextcloud und der Community empfohlene Wahl. Gebt die Zugangsdaten für den User ein, den ihr in Schritt 1 angelegt habt.
  9. Im Abschnitt „Datenbank“ gebt Ihr den root-Benutzer von MariaDB und das Passwort an. Alternativ funktioniert jeder User, der das Recht hat, Datenbanken anzulegen. Der Benutzer wird nur für die Installation verwendet. Es wird ein eigener Benutzer angelegt, den Nextcloud für den Betrieb verwendet. Vergebt noch einen Namen für die Datenbank.
    ACHTUNG: Als Datenbank-Server ist localhost vorgegeben, für MariaDB 10 müsst ihr localhost durch 127.0.0.1:3307 ersetzen.Datenbankdetails
  10. Neu seit Nextcloud 18 ist die Option, empfohlene Apps zu installieren. Wollt Ihr die integrierte Collaboration-Lösung OnlyOffice nutzen, muss das die gleichnamige App installiert sein. Ihr könnt die Apps an dieser Stelle aber auslassen und OnlyOffice nachträglich installieren. Das macht Sinn, vorallem da ihr Talk und OnlyOffice nur auf DiskStations mit Intel-CPU nutzen könnt. Die Apps sind sehr groß, braucht Ihr Sie nicht, spart euch den Speicherplatz und die Zeit und Installiert z.B. Calendar und Contacts im Anschluss selbst.Empfohlene Apps
  11. Klickt den Button „Installation abschließen“ um das Setup abzuschließen.
  12. Nach einigen Augenblicken ist die Installation abgeschlossen und ihr solltet das Webinterface sehen.Willkommenstour im Webinterface

Fehler vorbeugen

Vor der Installation musste das Installtionsscript für die Datenbank angepasst werden. Nextcloud prüft aber alle Dateien die zur Nextcloud-Installation gehören auf Veränderungen und gibt eine Warnmeldung aus. Das könnte auch beim Update stören. Öffnet also nochmals die unter „Installation“ Punkt 5 angegebene Datei und macht die Änderungen rückgängig. Fügt dazu wieder die entfernten Befehlssegmente ein. Alternativ könnt ihr auch die Datei aus dem Nextcloud-Zip nehmen und rüberkopieren. Passt aber dann die Rechte wieder an.

OnlyOffice aktivieren

So viel zu „integriert“, selbst wenn ihr OnlyOffice bei der Einrichtung mitinstalliert habt, läuft noch gar nichts. Von offizieller Stelle nicht dokumentiert, muss noch eine weitere App installiert werden.

  1. Öffnet den Appstore indem ihr im Webinterface rechts, oben auf euren Account klickt und dort „Apps“ auswählt.Einige Menüs sind versteckt
  2. Wenn Ihr die empfohlenen Apps nicht installiert habt: Sucht nach die App ONLYOFFIC. Ihr findet sie im Bereicht „Büro & Text“. Ladet die App herunter und aktiviert sie.Die App ONLYOFFICE
  3. Sucht dann die App Community Document Server, ebenfalls unter „Büro & Text“. Ladet die App herunter und aktiviert sie.ACHTUNGScheinbar gibt es hier wieder Probleme mit Timeouts. ANstatt die App über das Webinterface zu installieren verbindet euch lieber mit PuTTY, wechselt in euren Nextcloud-Installationsordner und führt „sudo -u http php73 -d memory_limit=512M app:install documentserver_community“ aus. Wichtig ist das Memory-Limit anzuheben. Der Vorgang dauert dann einige Zeit, die App ist ziemlich groß.Die App Community Document Server
  4. Synology macht hier wieder mal Probleme:
    1. Ladet libstdc++6 für Debian hier herunter.
    2. Entpackt folgende Datei: data.tar\.\usr\lib\x86_64-linux-gnu\libstdc++.so.6.0.25
    3. Benennt die Datei in libstdc++.so.6 um.
      ACHTUNG: Im Archiv gibt es bereits eine Datei mit diesem Namen, dabei handelt es sich aber um einen symbolischen Link und nicht um eine Datei, das Entpacken schlägt fehl, daher der Umweg über die echte Datei und das umbenennen.
    4. Ladet die Datei auf eure DiskStation.
    5. Kopiert die Datei mit PuTTY:Shell1cp <PfadZurDatei> /volume1/web/nextcloud/apps/documentserver_community/3rdparty/onlyoffice/documentserver/server/FileConverter/bin
    6. Passt die Rechte und den Besitzer der Datei an. Der Besitzer muss http http sein. Nutzt die bei „Installation“ unter Punkt 3 angegebenen Befehle.
  5. Geht jetzt in den Adminbereich: Rechts, oben auf den Account klicken und Einstellungen. Im Navigationsbereich könnt ihr ONLYOFFICE auswählen. Kontrolliert ob die Einstellungen vorhanden sind. Unter „Serviceadresse der Dokumentenbearbeitung“ muss die URL eurer Nextcloud eingetragen sein.Ist die URL eingetragen ist OnlyOffice einsatzbereit
  6. Das war’s. Klickt ihr jetzt im Bereich „Dateien“ auf ein Dokument öffnet sich OnlyOffice und ihr könnt es im Browser bearbeiten. Erscheint nur die Auswahl für einen Download, ist OnlyOffice nicht aktiv. Erscheint „Community document server is not supported for this instance, please setup and configure an external document server“, dann müsst ihr im Log nach der genauen Fehlermeldung suchen. Dazu müsst ihr im Adminbereich auf „Protokollierung“ gehen. Steht dort „OCA\DocumentServer\Document\DocumentConversionException: sh: ./x2t: cannot execute binary file: Exec format error“ dann hat eure DiskStation eine ARM-CPU und auf der läuft OnlyOffice nicht. Derzeit gibt es aber noch viele andere Fehler.

Nächste Schritte

Wichtig

Bevor ihr eure Cloud jetzt nutzt, solltet ihr aber noch die Konfiguration optimieren, sie absichern und einige Fehler beheben. Lest dazu diesen Artikel.

Jetzt könnt ihr Nextcloud direkt im Browser nutzen, oder ihr ladet euch den Client herunter. Der Client funktioniert ganz ähnlich wie der von Dropbox. Ihr könnt eure gesamte Cloud mit eurem Rechner synchronisieren oder aber nur einzelne Ordner. Das synchronisieren einzelner Ordner ist auch dann ganz hilfreich wenn ihr schon eine bestehende Ordnerstruktur für eure Daten (Bilder, Videos, Datein, etc.) – z.B. auf verschiedenen Laufwerken – habt und ihr diese beibehalten wollt. Der Client ermöglicht auch die Verwendung mehrerer Nextcloud-Instanzen. Die Client-App für Smartphones bietet auch die Option Bilder automatisch hochzuladen. Die Daten selbst werden nicht alle auf das Smartphone heruntergeladen, erst wenn ihr einzelne Dateien über die App abruft.

Warnungen im Adminbereich
Warnungen im Adminbereich

Im Adminbereich unter „Übersicht“ werden mit ziemlicher Wahrscheinlichkeit einige Fehler angezeigt werden. Wie ihr diese beseitigen könnt und wie man Nextcloud optimiert, könnt ihr im nächsten Artikel der Serie nachlesen. Ihr könnt hier auch noch weitere nützliche Artikel rum um das Thema Nextcloud und Synology finden