Kapitel 14
IN DIESEM KAPITEL
Während SAMBA und NFS typische Datei-Server des Intranets sind, stellt Nextcloud vor allem einen Datei-Server im Internet-Umfeld dar, also eine Cloud. Nextcloud ist in PHP geschrieben und läuft unter der Kontrolle eines Webservers. Seine Daten speichert Nextcloud in Dateien, aber vor allem in einer Datenbank.
Damit werden für einen Nextcloud-Server mehrere Komponenten benötigt:
Ein Repository-Paket für Nextcloud steht nicht zur Verfügung. Für den Vorgänger OwnCloud hat es mal eines gegeben, ob es das für Nextcloud geben wird, steht noch in den Sternen.
Stattdessen bieten die Hersteller von Nextcloud ein PHP-Skript an, das über den Browser gestartet werden kann. Diese Vorgehensweise hat den Charme, dass keine direkten Zugänge zum Zielrechner erforderlich sind. Selbst wenn man nur eine Web-Präsenz zur Miete hat, kann man Nextcloud installieren, sofern nur PHP und eine Datenbank mitgeliefert werden.
Will man Nextcloud auf einem eigenen Server installieren, muss man ihn so präparieren, dass die komplette Umgebung zur Verfügung steht, bevor man den Nextcloud-Setup startet. Es werden also folgende Komponenten benötigt:
Eine solche Konfiguration wird oft auch als LAMP abgekürzt.
Mit dem folgenden Installationsbefehl werden alle benötigten Pakete aus dem Repository installiert, die als Voraussetzung von Nextcloud benötigt werden. Es müssen nicht alle Pakete genannt werden. Beispielsweise scheint auf den ersten Blick das Paket apache2 zu fehlen. Tatsächlich wird es aber automatisch angefordert, da das Paket libapache2-mod-php ohne den Apache sinnlos ist und darum eine Installation des Pakets apache2 auslöst.
# apt update
# apt install php-mysql libapache2-mod-php mariadb-server \
php-mbstring php-gd php-xml php-zip php-curl php-json
Falls Sie hier ein Paket vergessen haben sollten, werden Sie bei der Initialisierung von Nextcloud darauf hingewiesen.
Im Zuge der Installation wird der Apache bereits gestartet. Allerdings haben sich zu diesem Zeitpunkt eventuell noch nicht alle anderen Pakete bekannt gemacht. Damit die Komponenten zusammenspielen, wird der Webserver Apache neu gestartet.
# systemctl restart apache2
Nextcloud legt seine Daten in der Datenbank ab. Das Paket wurde ja zuvor installiert, auch das Modul, das PHP mit der Datenbank verbindet. Bevor die Initialisierung von Nextcloud startet, muss eine leere Datenbank für Nextcloud angelegt werden. Dafür wird dann ein Benutzer benötigt, der die Datenbank verwaltet.
Wir haben mit dem obigen Befehl die Datenbank MariaDB installiert. Der SQL-Interpreter für das Anlegen der Datenbank und des Benutzers wird mit dem folgenden Aufruf gestartet.
# mysql -u root -p
Als Passwort geben Sie das Administrations-Passwort des Linuxsystems ein.
Anschließend befinden Sie sich im Kommandointerpreter der MariaDB als root. Hier muss eine Datenbank angelegt werden, die durch einen eigenen Benutzer verwaltet wird. Als Datenbankname verwende ich hier der Einfachheit halber nextcloud
und auch den Benutzer nenne ich nextcloud
. Das können Sie gern übernehmen. Lediglich mein sehr simples Passwort sollten Sie gehobeneren Wünschen anpassen.
CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'geheim';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
exit
Mit diesen Befehlen wurde eine Datenbank namens nextcloud
angelegt. Dazu kommt ein Benutzer gleichen Namens in der Umgebung localhost. localhost ist völlig ausreichend, solange sich Datenbank und Nextcloud-Server auf demselben Computer befinden. Mit dem GRANT-Befehl wird die Kontrolle der Datenbank nextcloud
an den Benutzer nextcloud
übertragen. Damit ist die Aufgabe hier erledigt. Alles weitere wird das Initialisierungs-Setup tun.
Das Setup wird durch ein PHP-Skript ausgeführt. Dieses kann von der Webseite von nextcloud.com
heruntergeladen werden. Das kann einerseits über die Eingabe der URL im Browser heruntergeladen werden. Alternativ funktioniert auch der Befehl wget
, der einen direkten HTTP-GET-Befehl an die URL sendet und das Ergebnis im aktuellen Verzeichnis speichert. Bei der folgenden Variante wechseln wir in das Datenverzeichnis des Webservers und holen die Datei mit dem Befehl wget
.
# cd /var/www/html
# wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
Damit es später keine Rechteprobleme gibt, wird der gesamte Bereich dem Benutzer www-data und dessen Gruppe zugeordnet, der auch später den Betrieb des Webservers übernimmt.
# chown -R www-data.www-data /var/www/html
Für den Start des Setup-Skripts muss nun der Firefox oder ein anderer Browser gestartet werden. In dessen Adresszeile wird der Setup-Skript aufgerufen, wie in Abbildung 14.1 zu sehen.
http://localhost/setup-nextcloud.php
Falls doch noch nicht alle Pakete da sind, die Nextcloud benötigt, erscheint zunächst eine Seite, in der Nextcloud die Vermissten benennt. Dann müssen diese nachinstalliert und der Apache neu gestartet werden. Ein erneuter Aufruf der URL wird das Setup in Abbildung 14.1 anzeigen.
Ist alles gut, klicken Sie auf NEXT. Im nächsten Schritt bietet das Setup an, unter welcher URL Nextcloud erreicht werden soll. Vorgeschlagen wird nextcloud
. Dann muss die Cloud später über http://localhost/nextcloud
aufgerufen werden, beziehungsweise dem Servername statt localhost
. Hinterlässt man nur einen Punkt, kann der Pfad nextcloud
entfallen. Das kann dann eventuell zu Konflikten mit anderen Web-Anwendungen führen.
Abbildung 14.1: Nextcloud Setup Wizard im Browser
Ist das geregelt, klicken Sie auf NEXT. Auf den ersten Blick scheint nichts zu passieren. In Wirklichkeit rödelt ein Prozess im Hintergrund. Er holt sich eine etwa 200 MB große ZIP-Datei, entpackt sie und führt die Initialisierung aus. Man merkt diese Tätigkeiten nur daran, dass der Aktualisierungs-Button des Firefox ein X darstellt. Nach einiger Zeit meldet Nextcloud den »Success«. Aber Sie sind noch nicht fertig. Nach Klicken des Next-Buttons erscheint ein weiterer Dialog, der in Abbildung 14.2 zu sehen ist.
Nun wird Benutzername und Passwort für den Nextcloud-Administrator festgelegt. Hinzu kommen die Angaben für die Datenbank, die die Daten der Nextcloud aufnehmen soll. Die Datenbank hatten Sie ja bereits zuvor eingerichtet. Wenn Sie es analog zur Beschreibung getan haben, verwenden Sie nextcloud
als Datenbankbenutzername und nextcloud
als Name der Datenbank. Ich hatte »geheim« als Passwort verwendet, hoffe aber, dass Sie einen originelleren Einfall haben.
Die Apps Calendar, Contacts, Mail, Nextcloud Office und Talk werden zur Installation vorgeschlagen, wie in Abbildung 14.3 zu sehen. Wenn Sie den Installations-Button anklicken, wird es nun wieder ein Weilchen dauern.
Nach einer kurzen Einführung erscheint der Bildschirm in Abbildung 14.4. Das Setup ist abgeschlossen. Nextcloud ist fertig zum Einsatz.
Abbildung 14.2: Datenbankanbindung der Nextcloud
Die Art der Installation macht es auch möglich, eine Nextcloud auf einer einfachen Webpräsenz zu installieren. Viele Provider stellen die paar Dinge, die Sie benötigen:
Diese Bedingungen finden Sie teilweise sogar bei preisgünstigen Webpräsenzen vor.
Wie bei der direkten Installation muss man zuerst eine Datenbank anlegen und sich den Host, den Datenbanknamen, den Datenbankadministrator und dessen Passwort merken. Der Provider stellt dazu in der Regel eine Weboberfläche zur Verfügung.
Abbildung 14.3: Nextcloud-Installation
Abbildung 14.4: Nextcloud-Installation
Anschließend lädt man die PHP-Datei setup-nextcloud.php vom Nextcloud-Server herunter und lädt sie auf die eigene Webpräsenz in ein leeres Verzeichnis hoch. Wenn man dort die PHP-Datei aufruft, führt diese die Installation in dem aktuellen Verzeichnis aus.
Anschließend werden die Datenbankeigenschaften abgefragt, die Sie sich ja gemerkt haben. Der Rest der Installation läuft so ab, wie oben beschrieben. Ein paar Details mehr finden Sie unter der folgenden URL:
Nextcloud ist abhängig von der PHP-Version und fragt diese ab. Damit kann es passieren, dass die PHP-Version aktualisiert wird und die Nextcloud plötzlich nicht mehr arbeiten will.
Da die Daten aber komplett in den Datenbanken abgelegt sind, ist das kein großes Problem. Man entfernt alles aus dem Verzeichnis, in dem Nextcloud läuft, holt sich eine neue Version und startet das PHP-Skript neu. Bei der Datenbank muss die bisherige Datenbank angegeben werden.
Um diese Abhängigkeit von PHP und Nextcloud einzufrieren, kann ein Docker-Container gebaut werden. Im Internet finden sich dazu einige Bauvorschläge. Auf diese Weise kann Nextcloud mit seiner PHP-Version alt und grau werden. Man muss selbst entscheiden, ob man diesem Ansatz folgen will. Einfacher wird die Installation meines Erachtens nicht. Falls Sie es dennoch probieren wollen, finden Sie in Kapitel 22 eine Einführung in den Umgang mit Docker.
Die Administration von Nextcloud erfolgt weitgehend im Browser. Bei der Installation haben Sie eine Administratorkennung festgelegt, die Sie sich hoffentlich gemerkt haben. Damit loggen Sie sich ein.
Als Administrator finden Sie rechts oben einen Button in Kreisform mit einem großen Anfangsbuchstaben für ein Menü. Welcher Buchstabe es ist, hängt von dem Namen ab, den Sie dem Administrator gegeben haben. Wenn Sie auf diesen Kreis klicken, klappt ein Menü aus und hier können Sie BENUTZER wählen, um Benutzer von Nextcloud einzurichten.
Sie sehen eine Liste mit den aktiven Benutzern, die zu Anfang natürlich übersichtlich ist. Auf der rechten Seite können Sie mit dem Button NEUER BENUTZER einen Benutzer anlegen, der einen Benutzername, einen Anzeigenamen, Passwort, eine E-Mail-Adresse benötigt.
Daneben können Sie auch Gruppen anlegen, indem Sie auf den Button GRUPPE HINZUFÜGEN klicken. Nun können Sie den Namen der Gruppe angeben. Anschließend können Sie die Benutzer zu den Gruppen hinzufügen, indem Sie den Bleistift in der Benutzerliste anklicken.
Ebenfalls über das Menü des Administrators können Sie die Applikationen der Nextcloud verwalten. Dazu klicken Sie auf den Punkt APPS. Daraufhin erscheint eine Liste aller installierten Apps, aber weiter unten auch einige, die Sie nachinstallieren können. Wenn Sie auf den Namen einer App klicken, erscheint auf der rechten Seite eine Beschreibung des Dienstes.
Nextcloud bietet je eine App für Kontakte und Kalender. Diese ist vor allem deshalb wertvoll, weil Sie damit die Kontakte und Kalender mehrerer Geräte synchronisieren können.
Falls Sie nicht schon bei der Erstinstallation die beiden Apps angewählt haben, können Sie über das Administratormenü die entsprechenden Apps nachinstallieren:
Anschließend kann jeder Benutzer diese Apps über das Symbol in der oberen Zeile erreichen. Für beides bringt Nextcloud eine Web-Oberfläche mit, so dass Sie Ihre Kontakte und Kalender über jeden Browser pflegen können. Die Bedienung ist nicht besonders kompliziert. Ich spare mir und Ihnen die Details. Sie schaffen das schon.
Viel spannender als die direkte Bedienung über das Web-Interface ist der Einsatz als DAV-Server für Kalender und Kontakte in Mobilgeräten und Groupware-Clients wie Thunderbird. Natürlich würden diese Aufgabe auch Google und Apple gern übernehmen, aber mit Nextcloud kann man deren krankhafte Sucht nach Daten durch einem eigenen Server therapieren.
Nextcloud synchronisiert seine Kontakte und Kalender über die Standards CalDav und CardDav. Entsprechend müssen die Clients lediglich diese Standards beherrschen, um gegen einen Nextcloud-Server synchronisieren zu können.
Thunderbird besitzt ein eigenes Adressbuch, eigentlich ist es eher ein Adressenammler mit recht eingeschränkter Bedienung. Um ein neues Adressbuch mit Verbindung zur Nextcloud hinzuzufügen, müssen Sie die Klappbox unter NEUES ADRESSBUCH ausfahren und daraus CARDDAV ADRESSBUCH HINZUFÜGEN auswählen.
Im folgenden Dialog geben Sie den Benutzernamen und die URL an, die Ihnen Nextcloud verrät, wenn Sie im Kontaktebereich in die Kontakte-Einstellungen links unten klicken und dort hinter Kontakte im Dreipunktemenü den Punkt LINK KOPIEREN auswählen. Diesen können Sie einpflegen. Tatsächlich können Sie in der Regel die folgende URL verwenden:
http://SERVER/nextcloud/remote.php/dav
Natürlich sollten Sie SERVER durch Ihren eigenen Server ersetzen. Anschließend erfragt Thunderbird Benutzername und Passwort des Nextcloud-Kontos. Im gleichen Dialog werden dann alle Kontakte angeboten, die Nextcloud zu bieten hat.
Im Kalenderbereich hat Thunderbird deutlich mehr zu bieten. Wenn Sie in den Kalender von Thunderbird wechseln, finden Sie in der linken Spalte hinter der Klappbox für KALENDER ein Pluszeichen, über das Sie neue Kalender hinzufügen können, wie in Abbildung 14.5 zu sehen ist.
Abbildung 14.5: Der Kalenderbereich von Thunderbird
http://SERVER/nextcloud/remote.php/dav
, sofern Sie SERVER durch Ihre eigene Serveradresse ersetzen.Das iPhone bietet von Haus aus eine Unterstützung von CardDAV. Insofern können die Kontakte von Nextcloud direkt im iPhone übernommen werden. Der Nextcloud-Server muss in den Einstellungen unter Kontakte eingetragen werden. Ihnen wird die Möglichkeit angeboten, ein neues Account anzulegen. Dort werden die iCloud von Apple, Google, Outlook.com
und die üblichen Verdächtigen angeboten, die so gern mit den Daten handeln würden. Aber es gibt auch den Punkt »Andere«. Dort kann ein LDAP-Account, ein CardDAV-Accout und ein macOS-Serveraccount hinzugefügt werden.
In diesem Fall benötigen Sie ein CardDAV-Account. Für dieses müssen die Pfade eingegeben werden. Diese verrät Nextcloud, wenn man in der Kalender-App unten links die EINSTELLUNGEN anklickt und dort hinter dem Adressverzeichnis die drei Punkte anklickt, hinter denen LINK KOPIEREN steht.
In der folgenden Beschreibung sind HOST und USER groß geschrieben. Das Wort HOST müssen Sie durch Ihre Serveradresse ersetzen. Statt USER müssen Sie Ihren Benutzernamen eintragen. Vermutlich werden Sie auch ein originelleres Passwort kennen.
http://HOST/nextcloud/remote.php/dav/addressbooks/users/USER/contacts
Wenn man damit fertig ist, kann man die Einstellungen verlassen und beim nächsten Betreten der Kontakte tauchen die Nextcloud-Kontakte auf.
Auch für den Kalender wird ein Link benötigt. Der Link kann aus dem Kalender gewonnen werden. Dazu muss man im Kalender auf EINSTELLUNGEN & IMPORT klicken. Wenn man ganz nach unten scrollt, gibt es dort einen Punkt IOS/MACOS CALDAV-ADRESSE KOPIEREN. Dieses klicken Sie an und können den Link mit der Tastenkombination +
in jeden Editor kopieren, um sich die URL anzuschauen.
Im iPhone gehen Sie folgende Schritte durch:
Für den Account benötigen Sie die URL, den Benutzer und sein Passwort. Als HOST setzen Sie die Domäne Ihres Servers ein und als USER Ihren Benutzernamen. Das Passwort werden Sie auch anders gestalten wollen.
http://HOST/nextcloud/remote.php/dav/principals/users/USER/
Der Kalender wird aktiv geschaltet. Beim nächsten Betreten des Kalenders werden die Termine sichtbar.
Bei Android muss man für CalDav und CardDav allerdings eine App beschaffen. Android selbst kann mit diesem Standard leider nicht umgehen. Google scheint wenig Interesse zu haben, diese Lücke zu schließen.
In diese Lücke springen diverse Apps. Nextcloud zeigt eine Synchronisation anhand von (früher DAVDroid). Die Apps CardDAV und CalDAV tragen das Protokoll im Namen. Eine kostenlose Alternative bietet OpenSync. Alle diese Lösungen müssen aus dem PlayStore installiert werden.
Als Beispiel verwenden wir hier OpenSync. Die anderen Apps arbeiten vergleichbar. Nach dem Start von OpenSync erscheint ein großes Plus zum Anlegen eines Synchronisationskontos.
http://SERVER/nextcloud/remote.php/dav
. Sie sollten allerdings SERVER durch die Adresse Ihres Servers ersetzen.Anschließend stehen für die Kontakt- und Kalender-Apps ein Konto von OpenSync zur Verfügung, die mit Nextcloud synchronisiert werden.
Nextcloud stellt ein Nextcloud-Office zur Verfügung, das zu LibreOffice kompatibel ist und entsprechend auch die Microsoft-Dokumente verarbeiten kann. Allerdings müssen Sie dieses erst aktivieren. Dazu brauchen Sie die folgenden Schritte.
Beim Klicken auf die entsprechenden Dateitypen wird nun immer das entsprechende Office-Programm geöffnet.
In den meisten Fällen werden Anwender eine Nextcloud verwenden, um ihre Dateien im Netzwerk zu speichern und mit anderen Anwendern zu teilen. Wenn Sie auf das Dateien-Symbol oben links klicken, erhalten Sie eine Übersicht über die Dateien. Zur großen Überraschung sind bereits welche vorhanden. Sie dienen zum Ausprobieren und können später gelöscht werden.
Um Ihre Dateien vom Computer in die Nextcloud zu schaffen, genügt es, diese per Drag and Drop aus Ihrem Dateimanager in den Browserbereich hinüberziehen. Sie werden dann automatisch zu Ihrer Cloud hochgeladen. Wenn Sie dabei auf einem Ordner landen, wird die Datei dort hineingesteckt.
Etwas komplizierter ist der umgekehrte Weg. Hier müssen Sie die Datei anwählen und beispielsweise über die rechte Maustaste einen Download anfordern. Die Datei landet in dem Download-Verzeichnis Ihres Browsers. Von dort müssen Sie es von Hand weiterverteilen.
Die Nextcloud kann allerdings direkt in das Dateisystem eingebunden werden, wie es auch bei SAMBA oder NFS möglich ist. Das Protokoll heißt WebDAV (Web-based Distributed Authoring and Versioning) und basiert auf HTTP.
Für die Einbindung steht ein Client zur Verfügung. Mit einem Linux-Recher mit Debian, Ubuntu oder Linux Mint können Sie das Paket nextcloud-desktop installieren.
# apt install nextcloud-desktop
Die Anwendung wird unter ZUBEHÖR unter dem Namen NEXTCLOUD DESKTOP-SYNCHRONISATIONSCLIENT im Anwendungsmenü abgelegt.
In dem Verzeichnis Nextcloud finden Sie nun alle Dateien, die Sie auch in Ihrem Nextcloud-Browserfenster sehen. Alle Aktivitäten, die Sie lokal in diesem Verzeichnis durchführen, werden unverzüglich mit Nextcloud synchronisiert, ob Sie Dateien weiterverarbeiten und verändern, ob Sie welche anlegen oder löschen.
Der Einsatz des Nextcloud-Clients setzt eine grafische Oberfläche voraus. Unter Linux ist es möglich, den Datei-Service von Nextcloud auch ohne grafische Oberfläche einzubinden, vergleichbar mit SAMBA (siehe Kapitel 12) oder NFS (siehe Kapitel 13).
Der Datei-Server von Nextcloud basiert auf WebDAV. Auf diesem Protokoll stellt Linux ein Dateisystem zur Verfügung, das über das Paket davfs2 installiert werden kann.
# apt install davfs2
Die Installation fragt per Dialog, ob auch unpriviligierte Benutzer WebDAV-Ressourcen verwenden dürfen. Normalerweise ist nur root das Einbinden von Dateisystemen erlaubt.
Bevor das Dateisystem eingehängt werden kann, benötigt man ein Verzeichnis, in das das Nextcloud-Dateisystem eingehängt werden kann. Der Befehl mount
sorgt für das Einhängen.
# mkdir /home/linux/mycloud
# cd /home/linux/mycloud
# mount -t davfs http://SERVER/nextcloud/remote.php/dav/files/USER.
Der Befehl fragt nach dem Benutzernamen für die Nextcloud-Instanz und dessen Passwort. Danach ist der Inhalt der Dateien unter dem Verzeichnis mycloud zugänglich und kann bearbeitet werden.
Der Nachteil dieses Vorgehens ist, dass alle Dateien des Verzeichnisses nun root gehören. In der Regel gehören diese Dateien ja einem Benutzer. Darum kann dem Befehl über die Option -o uid
eine User-ID mitgegeben werden. Dadurch gehören die Dateien dem angegebenen Benutzer.
# mount -i davfs -o uid=1000 \
> http://SERVER/nextcloud/remote.php/dav/files/USER \
> /home/linux/mycloud
Sollen das Einhängen automatisch erfolgen – beispielsweise über die Datei /etc/fstab, dann ist es problematisch, wenn Benutzer und Passwort eingetragen werden müssen.
Da ist es hilfreich, dass in der Datei /etc/davfs/secrets Benutzer und Passwort hinterlegt werden kann. Dazu wird eine Zeile benötigt, die die URL mit dem Benutzernamen und dem Passwort verbindet.
# /etc/davfs2/secrets
http://SERVER/nextcloud/remote.php/dav/files/USER USER geheim
Wie inzwischen schon fast gewohnt, müssen Sie hier SERVER durch Ihre Serveradresse und USER durch die Benutzerkennung ersetzen.
# chmod 600 /etc/davfs2/secrets
Das Dateisystem kann nun, da die Anmeldekennungen hinterlegt sind, auch über die Datei /etc/fstab automatisch beim Systemstart eingebunden werden.
# /etc/fstab
https://SERVER/nextcloud/remote.php/dav/files/USER
/home/linux/mycloud davfs user, uid=1000,rw,auto 0 0
Die beiden Zeilen müssen in einer Zeile in der Datei /etc/fstab stehen. Hier im Buch beschränkt der rechte Rand die Länge der Zeile. Zum Testen verwendet man den Befehl mount -a
. Sollte das klappen, kann man den Rechner neu booten.
Die Datensicherung besteht einerseits aus den statischen Dateien und der Datenbank. Bevor die Sicherung gestartet wird, sollte Nextcloud in den Wartungmodus versetzt werden, damit keine Änderungen während der Datensicherung erfolgen und diese eventuell inkonsistent machen.
# sudo -u www-data php8.1 /var/www/nextcloud/occ maintenance:mode --on
Das Verzeichnis /var/www/html/nextcloud enthält wesentliche Teile der Konfiguration. Diese sollten beispielsweise per tar
oder rsync
gesichert werden.
# tar czf SAVE.tgz /var/www/html/nextcloud
Je nachdem, welche Datenbank Sie verwenden, müssen Sie noch die Datenbank nextcloud
sichern. Im Falle von MySQL oder MariaDB verwenden Sie dazu den Befehl mysqldump
, wie in Kapitel 9 beschrieben.
$ mysqldump --single-transaction nextcloud -u nextcloud -p> sicher.sql
Zu guter Letzt muss der Wartungsmodus wieder beendet werden.
# sudo -u www-data php8.1 /var/www/nextcloud/occ maintenance:mode --off