Zuletzt aktualisiert am 25. April 2025 von Lars
Nextcloud ist eine freie Software, mit der eine eigene Cloud ganz ähnlich wie Google Drive, iCloud, Dropbox und Onedrive aufgebaut werden kann. Bei Einsatz eines Clients wird der Server automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern, aber auch über eine Weboberfläche, auf einen konsistenten Datenbestand zugegriffen werden.
Inhaltsverzeichnis
Die grundlegende Funktionalität ist hier erklärt: Cloud einfach erklärt | Wie funktioniert die Cloud?
Die Problematik der grossen Anbieter
Bei den grossen Anbietern gibt es jedoch ein Problem: Du weisst nicht, wo deine Daten genau sind und ob diese wirklich sicher vor Zugriff der Mitarbeiter dort sind. In der Regel sind die Daten im Ausland und unterliegen dem dortigen Recht. Mindestens ein Anbieter scannt die Daten automatisiert und manuell auf Einhaltung der Richtlinien und entscheidet in letzter Instanz, ob die Daten gespeichert werden dürfen oder nicht.
Grund genug, sich Gedanken über eine eigene Lösung zu machen. Mit Nextcloud kannst du ein System installieren, was ähnlich dem der grossen Anbieter funktioniert. Es ist zudem kostenlos. Nur für speziellen Support musst du hier zahlen.
Wo wird Nextcloud installiert?
Natürlich brauchst du auch hier wieder einen eigenen Server im Internet oder ein Webhosting. Ich habe mich für die Installation auf einem Webhosting entschieden. Damit begebe ich mich natürlich wieder in Abhängigkeit von einem Anbieter. Der sitzt in meinem Fall aber in der Schweiz und hat seine Daten auch dort.
Wo bekomme ich Nextcloud?
Nextcloud ist kostenlos und kann hier herunter geladen werden.
Nextcloud installieren
Domain oder Subdomain einrichten
Für den Zugriff benötigst du eine Domain oder Subdomain, wie zum Beispiel "cloud.meineigeneswebhosting.de" (wird in dieser Anleitung in Zukunft verwendet). Ausserdem musst du einen Zielordner definieren. Dort wird dann Nextcloud hochgeladen und installiert und später befinden sich dann dort auch deine Dateien.
Du solltest ausserdem ein Zertifikat für deine Cloud-Website verwenden, damit die Verbindung dahin verschlüsselt abläuft.
Wie das genau funktioniert, solltest du in der Anleitung deines Webhosters finden.
Nextcloud (Server) herunterladen und Daten auf den Server hochladen
Nach dem Herunterladen hast du eine ZIP-Datei. Bei meinem ersten Test habe ich diese lokal ausgepackt und mit einem FTP-Client hochgeladen.
Das ging sehr lange, daher empfehle ich dir, falls das bei deinem Webhosting geht, die ZIP-Datei auf dein Webhosting hochzuladen und dort zu entpacken.
Nextcloud installieren
Nachdem die Daten im Zielordner deiner Domain oder Subdomain sind, kannst du diese aufrufen.

Zunächst legst du das Passwort fest. Achte darauf, dass kein Bestätigungsfeld da ist. Vergewissere dich also, dass du dein Passwort korrekt notiert hast.
Statt SQLite als Datenbank kannst du auch MySQL verwenden. Wenn du MySQL zur Verfügung hast, dann erstelle auf deinem Webhosting eine solche Datenbank, klicke auf "Speicher & Datenbank" und gib die entsprechende Datenbank an.

Achte darauf, dass der Haken bei "Empfohlene Apps installieren" gesetzt ist und schliesse die Installation mit "Installation abschliessen" ab.
Es dauert eine Weile, bis die Installation durch ist, habe einfach etwas Geduld.
Sobald die Installation fertig ist, landest du direkt in deiner Nextcloud-Installation.

Das Video wird von YouTube eingebettet und erst beim Klick auf den Play-Button geladen. Es gelten die Datenschutzerklärungen von Google.
Der Umgang mit Nextcloud
Nun hast du also dein Nextcloud installiert. Wie funktioniert die Oberfläche?
Als erstes solltest du auf deinen Benutzer rechts oben klicken und dann Einstellungen wählen.

Trage hier deine E-Mail-Adresse ein und ändere das Gebietsschema.
Die E-Mail-Adresse ist vor allem wichtig, damit du im Falle eines Falles dein Passwort zurücksetzen kannst.
Zurück zur Oberfläche. Klicke auf das Nextcloud-Logo.
Du bist bei deinen Dateien. Mit Klick auf das Plus-Zeichen kannst Dateien hochladen und Ordner erstellen.

Um Dateien herunterzuladen klicke auf die drei Punkte "...". Über das Submenü kannst du Elemente "Umbenennen, Verschieben oder kopieren, Herunterladen oder Dateien löschen.

Clients installieren - Komfortabler Zugriff auf die Cloud
So richtig Spass macht der alleinige Zugang zur Cloud via Webbrowser nicht. Doch es gibt Clients, mit denen du deine lokalen Daten automatisch mit der Cloud synchronisieren kannst. Wie du diese installierst, erfährst du in diesem Video hier:
Das Video wird von YouTube eingebettet und erst beim Klick auf den Play-Button geladen. Es gelten die Datenschutzerklärungen von Google.
Gängige Probleme bei Nextcloud
Cronjob von Nextcloud wird nicht ausgeführt
Bei mir erschien eine Fehlermeldung, dass der Cronjob nicht ausgeführt wurde. Ich habe aber nur ein Shared Webhosting bei all-inkl.com. Das Aufrufen der cron.php funktioniert hier nicht.
Lösung:
Lege im Root-Verzeichnis deiner Installation die folgende Datei webcron.php an:
<?php
exec("/usr/bin/php73 cron.php 2>&1", $out, $result);
echo "Returncode: " .$result ."<br>";
echo "Ausgabe des Scripts: " ."<br>";
echo "<pre>"; print_r($out);
?>Anschliessend rufst du diese Datei im Cronjob auf, zum Beispiel so:
Credits an derremo.de, siehe "Nextcloud: Cronjob bei all-inkl.com".
Nextcloud-Befehl occ ohne SSH-Zugriff aufrufen
Beim Update-Versuch von Nextcloud kam eine Fehlermeldung, dass Indizes und Spalten in der Datenbank fehlen. Dazu soll der Befehl OCC mit bestimmten Parametern aufgerufen werden.
Bei meinem Hosting habe ich jedoch keinen Shell-Zugriff. Man kann aber die Befehle in ein PHP-Skript packen und diese direkt ausführen.
Lege dazu das folgende Skript db.php an. Vergleiche die Befehle aber mit den Befehlen, die du ausführen sollst und pass diese gegebenenfalls an.
<?php
exec("/usr/bin/php73 -d memory_limit=512M occ db:add-missing-indices");
exec("/usr/bin/php73 -d memory_limit=512M occ db:add-missing-columns");
?>Lege das Skript im Root-Verzeichnis deiner Installation ab und rufe es anschliessend via Browser auf (also zum Beispiel: larsseinecloud.de/db.php).
Überprüfe, ob die Meldung wieder verschwindet. Falls ja, lösche die Datei wieder.
Credits an protostern.de, siehe "Was ist occ bei Nextcloud?"
Nextcloud-Befehl occ mit SSH-Zugriff aufrufen
Verbinde dich per SSH mit deinem Webhosting.
Führe den entsprechenden Befehl mit PHP aus:
php occ db:add-missing-indicesNextcloud meldet "Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB"
Beim Webhoster, wo ich mein Nextcloud laufen habe, kann ich die PHP-Einstellungen nicht über das Backend editieren. Man kann aber in der .htaccess einen entsprechenden Eintrag ergänzen:
php_value memory_limit 512M
Ergänze am Besten auch noch.
php_value max_execution_time 7200
Dieser Eintrag muss eventuell nach einem Update erneut eingespielt werden, da während des Update-Prozesses meist die .htaccess-Datei der Installation angepasst wird.
Credits an protostern.de, siehe "Nextcloud bei All-Inkl hosten". Die angegebene Variante mit der "user.ini" wollte bei mir nicht.
Nextcloud meldet "Der HTTP-Header Strict-Transport-Security ist nicht auf mindestens 15552000 Sekunden eingestellt"
Dies ist eine Einstellung, die bei meinem Provider, bei dem ich Nextcloud habe, bei den Zertifikatseinstellungen hinterlegt werden muss.
Dazu die Domain oder Subdomain bearbeiten, nochmal auf "Bearbeiten" beim SSL-Schutz und die entsprechende Einstellung übernehmen.
Steht die Option im Backend deines Providers nicht zur Verfügung, kannst du diese eventuell auch über die .htaccess-Datei für deine Nextcloud-Installation setzen:
Header set Strict-Transport-Security "max-age=15552000" env=HTTPSNextcloud Update hängt bei Schritt 5
Blöderweise sind viele Fehlermeldungen beim Check, der vor einem Update läuft nur Warnungen und das Update lässt sich trotzdem starten.
Bei mir hing der Update-Prozess dann aber bei Schritt 5 und liess sich nicht erneut starten.
Abhilfe schafft hier, den Ordner /data/updater-nnnnnnnnnnn (nnnnnnnnnnn steht für eine zufällige Buchstabenreihenfolge) zu löschen.
Lege zur Sicherheit vorher ein Backup an!
Backup und Löschvorgang kann sehr lange dauern.
Credits an anamus, siehe "Stuck on update process. Step 5 is currently in process. Please reload this page la".
Nextcloud bleibt nach Update im Wartungsmodus
Öffne im Unterordner config die Datei config.php
Suche nach der Zeile
'maintenance' => true,
Ändere sie so ab, dass sie so aussieht
'maintenance' => false,
Manche Dateien haben die Integritätsprüfung nicht bestanden
Das klingt erst einmal gefährlich. Ich hatte das mal nach einem regulären Update. Von daher konnte ich Malware (eigentlich) ausschliessen.
In der Liste, die man sich anzeigen lassen kann, findet man die Dateien. Hier ein Ausschnitt.
- INVALID_HASH - .htaccess - core/js/mimetypelist.js
Diese beiden Dateien hier stimmen also nicht. Die .htaccess hatte ich wegen "Der HTTP-Header Strict-Transport-Security ist nicht auf mindestens 15552000 Sekunden eingestellt" ja selber angepasst.
Die "core/js/mimetypelist.js" habe ich aus einem frisch heruntergeladenen Installationsimage extrahiert und auf den Server geladen. Danach wurde sie nicht mehr bemängelt. Du findest die Downloads der Installationspakete hier.
Nextcloud-Update bleibt beim Backup hängen
Bei einer bestimmten Version blieb das Update, das per Web gestartet wurde, reproduzierbar beim Backup hängen.
In meinem Fall war es ein 503 Fehler, es gibt im Internet aber auch Berichte über andere Fehlermeldungen.
Hier hilft nur, das Backup von der Kommandozeile aus zu starten. Es ist also zwingend erforderlich, dass man Shell-Zugriff hat. Man startet dazu die Datei updater.phar mit der Option --no-backup.
sudo -u www-data php /path/to/nextcloud/updater/updater.phar --no-backupJe nach Server kann php auch direkt aufgerufen werden. Manchmal muss man die richtige Version starten. Ich gehe bei meinen Webhoster mit cd ins richtige Verzeichnis und rufe auf...
php82 updater.phar --no-backupWie kann ich die Sicherheit meiner Nextcloud-Installation prüfen?
Du kannst einen Check mit dem Nextcloud Security Scan durchführen. Ausserdem kannst du einen Malwares-Scan mit dem Free website security check & malware scanner von sucuri durchführen.
Beachte bitte, dass das nie abschliessende Tests sein können und bei einem positiven Ergebnis trotzdem etwas nicht in Ordnung sein könnte.
App-Passwort generieren - nötig bei 2FA
Hat man 2FA, also die Zwei Faktor Authentifizierung aktiviert und möchte zum Beispiel auf den CalDAV-Kalender zugreifen, muss man ein App-Passwort generieren. Diese Funktion findet sich unter:
Persönlich > Sicherheit > Rubrik Geräte und Sicherheit
"Server is unable to maintain the header compression context for the connection"
Versuche den Client auf die aktuelle Version upzudaten. Das hat zumindest bei mir geholfen.
Verschlüsselung
Ohne besondere Vorkehrungen sind die Dateien auf dem Webhosting unverschlüsselt abgelegt. Möchte man auf Nummer Sicher gehen, kann man die serverseitige Verschlüsselung einschalten. Zu Beachten ist dann aber, dass die Dateien dadurch um ca. 30% grösser werden.
Mehr zur Verschlüsselung unter diesem Artikel: Serverseitige Verschlüsselung in Nextcloud aktivieren – Anleitung.
Grundsätzlich muss dazu das Modul für die Verschlüsselung sowie die eigentlich Verschlüsselung aktiviert sein.
Um nachträglich alle Dateien zu verschlüsseln, verwendet man das Kommando:
occ encryption:encrypt-allDie Ausführung hat bei mir auf meinem Shared Webhosting wohl aufgrund mangelnder Ressourcen sehr lange gedauert und wurde immer wieder abgebrochen.
Auch kam es oft zu Fehlermeldungen, dass einzelne Dateien gelocked seien. Letzteres liess sich vermeiden, indem in die Datei config.php (im Subfolder config)...
'filelocking.enabled' => false,...ergänzt wurde. Das sollte man aber nicht dauerhaft lassen.
Um die Dateien wieder zu entschlüsseln, kann man dieses Kommando verwenden:
occ encryption:decrypt-allBackup Nextcloud
Du hast deine Daten auf deiner eigenen Nextcloud endlich unter Kontrolle. Doch jetzt kannst du niemand mehr anrufen, wenn etwas nicht funktioniert. Daher ist ein Backup der Daten enorm wichtig. In diesem Abschnitt findest du Informationen dazu. Er wird noch weiter ausgebaut.
Backup-Skript für den CalDAV Kalender
Der Verlust der Kalenderdaten dürfte hart sein. Ich habe daher nach einer Möglichkeit gesucht, diese regelmässig zu sichern. Als Inspiration habe ich den Thread Synology Calendar: exportieren von Kalendern als .ics über Aufgabenplaner genommen.
Es gibt im Netz auch andere Ideen. Zum Beispiel Nextcloud Backup - Kontakte und Kalender sichern und kalenderbackup. Da die Lösungen komplexer sind, habe ich mich für ein möglichst einfaches Skript entschieden, was ich auch selber anpassen konnte. Einfach auch, damit ich das in Zukunft besser verstehe und warten kann.
Herausgekommen ist dieses Skript:
# CalDAV Backup =============================================================
FOLDER="skriptfad"
LOCAL_FILE="$FOLDER/cur-cal-backup.ics" # lokale Sicherungsdatei
USER="nutzername nextcloud"
PASSWORD="password nextcloud" # falls 2FA aktiv, muss ein App-Passwort generiert werden.
URL="kalenderurl"
# sieht bei mir zum Beispiel so aus: "https://nextcloudurl/remote.php/dav/calendars/user/lars-privat-1?export" - den internen Kalendernamen sieht man, wenn man für den Kalender den internen Link kopiert und ?export anhängt
# Datei herunterladen
wget --http-user=$USER --http-password="$PASSWORD" --no-check-certificate $URL -O $LOCAL_FILE
# Datei per ftps sichern in der Form cal-backup-yyy-mm-dd.ics
DATE=$(date +%F)
REMOTE_FILE="cal-backup-${DATE}.ics"
FTP_HOST="ftp.mein.de"
FTP_USER="ftpusername"
FTP_PASS="ftppasswort"
curl -T $LOCAL_FILE --ftp-ssl -u $FTP_USER:$FTP_PASS ftp://$FTP_HOST/$REMOTE_FILEEs ginge hier sicher auch eleganter. Das ganze läuft bei mir aber auf einem Shared Webhosting und ich habe zum Beispiel nicht die Möglichkeit, ssh mit Private Key zu verwenden.
Die heruntergeladene Datei wird noch extern gesichert per FTPS, so dass ich auch bei einem Totalausfall des Providers die Möglichkeit habe, den Kalender woanders wieder hochzuziehen.
Backup-Skript für die CardDAV Kontakte
Entsprechend zum Backup des Kalenders kann man mit einem entsprechenden Skript auch die Kontakte sichern. Beides geht natürlich auch in einem Skript, ich möchte aber den Kalender täglich sichern. Die Sicherung der Kontakte reicht mir wöchentlich.
# CardDAV Backup =============================================================
FOLDER="/home/schlaget/public_html/cloud.schlageter.li/script" # Script Folder
LOCAL_FILE="$FOLDER/cur-contact-backup.vcard" # Export File
USER="myuser" # Nextcloud user
PASSWORD="mypassword" # Nextcloud password - has to be app-password if 2FA is activated
URL="mycontacturl"
# Contact name is localized, therefore kontakte and not contact in german nextcloud installation
# I.E. https://mynextcloud.ch/remote.php/dav/addressbooks/users/myusername/kontakte?export
# Download File locally
wget --http-user=$USER --http-password="$PASSWORD" --no-check-certificate $URL -O $LOCAL_FILE
DATE=$(date +%F)
REMOTE_FILE="contact-backup-${DATE}.vcard"
FTP_HOST="ftp.mein.de"
FTP_USER="ftpusername"
FTP_PASS="ftppasswort"
# Send Backup to remote using ftps
curl -T $LOCAL_FILE --ftp-ssl -u $FTP_USER:$FTP_PASS ftp://$FTP_HOST/$REMOTE_FILE
Wo gibt es eine Übersicht aller Funktionen des Kommadozeilen-Tools occ?
Eine solche findet sich unter Using the occ command.
Zeit gespart? Dann unterstütze doch it-zeugs.de
Wenn dieser Tipp dir geholfen hat, Zeit zu sparen, überlege bitte, eine kleine Spende zu hinterlassen. Dein Beitrag hilft mir, weiterhin wertvolle Inhalte zu erstellen. Du kannst unter diesem Linke spenden: Spende it-zeugs.de
Falld du nicht spenden willst oder kannst, dann wäre es toll, wenn du deinen nächsten Amazon Einkauf mit diesem Link beginnen würdest: Amazon Link. Für dich wird es nicht teurer, ich bekomme aber einen kleinen Beitrag.
Vielen herzlichen Dank ❤️

Hallo, hier schreibt Lars. Dipl-Ing. Ingenieurinformatik (FH). Seit Jahrzehnten in der IT tätig. Geprüfter (und begeisterter) Webmaster. Ebenso begeisterter Windows-, Apple-, und Office-User. Ich schreibe über alle möglichen Themen rund um IT. Mehr über mich erfährst du hier: Über mich. Danke für deinen Besuch!


