Nextcloud ist eine wundervolle Lösung um einen Open-Source Selfhosting Cloudspeicher zu installieren. Es bietet viele Plugins und es kann auch über WebDav angebunden werden. Jedoch kann die Installation etwas schwieriger sein.
Ich habe das Docker Image verwendet, da ich eh bereits für meinen externen Server den Docker Host installiert habe. Sinnvoll ist natürlich einen Reverse Proxy mit Nextcloud zu verwenden, was in dieser Anleitung auch passieren wird. Folgt dazu auch der Anleitung zum Nginx Proxy Manager.
Installation
Wir halten uns hier zu teilen an die offizielle Anleitung von Nextcloud.
Zuallererst werden wir einen Ordner mit mkdir nextcloud
im Homeverzeichnis erstellen und anschließend mit cd nextcloud
öffnen.
Dort erstellt man nun mit nano docker-compose.yml
die entsprechende Docker-Compose File:
version: "2.1"
services:
nextcloud_db:
image: mariadb:10.9.5
container_name: nextcloud_db
hostname: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
- MYSQL_ROOT_PASSWORD={ROOTPASSWORD}
- MYSQL_PASSWORD={MYSQLPASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
volumes:
- ./db:/var/lib/mysql
restart: unless-stopped
nextcloud_redis:
image: redis:7.2.0-alpine
container_name: nextcloud_redis
hostname: nextcloud-redis
volumes:
- ./redis:/usr/local/etc/redis
restart: unless-stopped
nextcloud:
image: nextcloud:latest
container_name: nextcloud
hostname: nextcloud
links:
- nextcloud_db
- nextcloud_redis
environment:
- TZ=Europe/Berlin
- MYSQL_PASSWORD={MYSQLPASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
- PHP_UPLOAD_LIMIT=10G
- REDIS_HOST=nextcloud-redis
- REDIS_HOST_PORT=6379
volumes:
- ./data:/var/www/html
restart: unless-stopped
networks:
default:
external: true
name: npmnet
Achtet darauf, dass die Platzhalter {MYSQLPASSWORD} und {ROOTPASSWORD} mit entsprechenden Passwörtern gefüllt werden. Im Endeffekt wird ein MySQL Container mit einer Datenbank erstellt, sowie ein Redis Container für schnelleren Zugriff auf den Nextcloud Server erstellt. Sobald diese beiden Container erstellt wurden, greift der Links-Block und der Nextcloud Container wird gestartet.
PHP_UPLOAD_LIMIT=10G
ist hier das Uploadlimit – no Shit Sherlock 😛 – und limitiert auf 10 GB. Das kann man erhöhen, sollte dennoch im gewissen Rahmen bleiben. 10 GB ist schon sehr viel. Aber wenn man Backup-Images auf die Nextcloud Instanz hochladen will, können 10 GB natürlich ein Witz sein.
Mit [STRG]+[O] wird gespeichert und mit [STRG]+[X] wird der Editor beendet.
Nun erstellen wir mit mkdir data redis db
noch die Verzeichnisse für die persistenten Dateien der Container.
Mit sudo docker-compose up -d
wird nun die Compose File ausgeführt und nacheinander die Container gestartet.
Reverse Proxy konfigurieren
Damit wir Nextcloud auch erreichen, muss der Nginx Proxy Manager eingestellt werden. Dazu geht man auf das Admininterface und erstellt einen neuen Proxy Host, füllt die entsprechenden Daten aus – siehe Bild – und voilà, wir haben Zugriff. SSL nicht vergessen!
Doch halt anschließend gehen wir nun in den Advanced Tab und tragen folgende Konfiguration ein:
proxy_connect_timeout 1h;
proxy_send_timeout 1h;
proxy_read_timeout 1h;
send_timeout 1h;
client_max_body_size 0;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 1800;
fastcgi_read_timeout 1800;
Was macht das? Ich hatte Probleme mit Timeouts und dass Dateien nicht hochgeladen werden konnten, weil sie zu groß waren. Daher ist es sinnvoll die Timeouts von 1h zu erhöhen, wenn man auch eine höhere Uploadgrenze von mehr als 10 GB eingetragen hat. Der Link zum Forenbeitrag, der mir für die Lösung auf die Sprünge geholfen hat: https://help.nextcloud.com/t/error-when-assembling-chunks-status-code-504-on-big-file-upload/99912/5
Damit CardDAV und CalDAV ordentlich funktionieren, müssen im Custom Locations Reiter /.well-known/carddav und /.well-known/caldav auf nextcloud/remote.php/dav umgeleitet werden. Dazu einfach auf “Add Location” und die entsprechenden Eintragungen tätigen.
Speicher nicht vergessen!
Nextcloud konfigurieren
Wenn man mit allem fertig ist, kann man den Webbrowser auf den ausgesuchten FQDN führen und die Nextcloud Installation beenden. Zuallererst wird man um ein Admin-Konto gebeten. Die Anmeldedaten werden eingegeben. Sucht euch ein sicheres Passwort aus. Später sollte man auch darüber nachdenken MFA TOTP zu aktivieren.
Mit einem anschließenden Klick auf “Installieren” dauert es einen Moment bis die Installation durchgeführt wurde. Im Endeffekt werden jetzt Konfigurationsdateien und die Struktur im data-Ordner eingerichtet. Außerdem werden die Datenbanken eingerichtet.
Wenn so weit fertig, könnt ihr abschließend bereits Empfohlene Apps installieren lassen. Hier entscheidet ihr selbst, ob ihr das wollt oder nicht.
Anschließend wird man auf das Dashboard weitergeleitet. Mit einem Klick auf das Benutzerprofil-Symbol und Administrationseinstellungen können wir den Server nun vollständig konfigurieren.
Als erstes sollte der E-Mail-Server unter Grundeinstellungen konfiguriert werden. Dafür einen entsprechenden SMTP Dienst eintragen. Schaut dazu in die jeweilige Hilfe für SMTP eures Mailproviders. Mit “E-Mail senden” kann dann geprüft werden, ob die Einstellungen korrekt sind. Ein “Speichern” ist nicht notwendig, da Nextcloud die Konfigurationsänderungen automatisch speichert.
Im Endeffekt ist Nextcloud nun verwendbar. Unter Sicherheit kann die allgemeine Sicherheit auf dem Server eingestellt und unter Design das Aussehen dem jeweiligen Gusto angepasst werden. Klickt euch einfach mal durch die Einstellungsmöglichkeiten, da gibt es prinzipiell nicht gut oder schlecht, sondern nur die Antwort: “Was ihr benötigt, wird entsprechend konfiguriert.”
Sinnvoll ist unter Übersicht zu prüfen, ob irgendwo noch was klemmt. Nextcloud analysiert sich selbst sehr gut und gibt entsprechende Warnhinweise, wenn eine Aktion erforderlich ist und das meistens mit entsprechendem Link zur Hilfeseite. Wirklich sehr intuitiv und einfach zu handhaben.
Anwendungen in Nextcloud installieren
Unter dem Benutzerprofil-Symbol gibt es dann noch die Möglichkeit Apps zu installieren. Hier sollte darauf geachtet werden, wie die Kompatibilität mit der installierten Nextcloud Version aussieht. Es gibt aber eigentlich nur wenige veraltete Apps, welche aus historischen Gründen noch angeboten werden.
Explizit hervorzuheben ist hier das Default Encryption Module, welches definitiv aktiviert werden sollte.
Wenn ihr nun zurück in die Sicherheitseinstellungen geht, kann man dort die Serverseitige Verschlüsselung der Daten aktivieren. Somit werden alle Daten in den Benutzerverzeichnissen von Nextcloud automatisch verschlüsselt. Das ist eine Funktion die standardmäßig aktiviert werden muss, um seine Daten auch ordentlich zu sichern. Der Nachteil wie auch der Vorteil ist natürlich, dass man nicht mehr direkt über das Filesystem die Dateien auslesen kann.
Aktualisierung von Nextcloud
Es gibt natürlich immer wieder Aktualisierungen von Nextcloud. Um diese durchzuführen, tut man dies nicht über das Webinterface sondern mit der Docker-Compose Datei, welche wir angelegt haben. Dazu gehen wir in dem Homeverzeichnis wieder mit cd nextcloud
in das Nextcloud-Verzeichnis und führen dort nun sudo docker-compose pull
aus. Damit werden die aktuellsten Docker Images heruntergeladen. Ist dies geschehen, führt man, wie bereits bei der erstmaligen Einrichtung sudo docker-compose up -d
aus und die Container werden geprüft und neu erstellt.
Um die Images zu entfernt, kann man mit sudo docker image ls -a
alle vorhandenen Docker-Images anzeigen lassen. Normalerweise sind die Images, welche als Tag (none) zu stehen haben, die Veralteten. Mit sudo docker image remove [IMAGE ID]
kann man dann das entsprechende Image entfernen.
Hinweise
Unter https://scan.nextcloud.com/ könnt ihr eure öffentlich erreichbare Nextcloud Instanz scannen lassen und erfahrt, ob ihr sicherheitstechnische Änderungen durchführen solltet.
Und WebDAV unter Windows ist verwendbar, aber nicht ratsam. Die Uploadgröße ist nicht sonderlich hoch, kann aber händisch in der Registry angepasst werden (https://docs.nextcloud.com/server/19/benutzerhandbuch/files/access_webdav.html#id5) und der Webclient Dienst muss ebenfalls auf automatisches Starten gestellt werden (https://heinz-otto.blogspot.com/2018/01/webdav-unter-windows.html), damit man WebDAV dann auch ordentlich beim Start des Rechners einbinden kann. Ich würde nach kurzem umständlichen hin und her eher nicht dazu raten und im Zweifel eher die Nextcloud Desktop Anwendung installieren.
Viel Spaß mit Nextcloud!
Pingback: Collabora Online Development Edition für Nextcloud installieren | LierschIT