Nextcloud auf einem VPS installieren

Nextcloud ist vor allem als selbstgehostete Cloud bekannt. Allerdings bietet diese Open-Source Produktivitätsplattform deutlich mehr als nur das Speichern von Daten. Nextcloud bietet durch kostenlos zur Verfügung stehende Apps z.B. einen eigenen Messenger, verschiedenste Integrationen, kollaborative Office-Anwendungen uvm! Über die Nextcloud können Projekte koordiniert werden, Kalender verwaltet werden oder Videokonferenzen erstellt werden. In dieser Anleitung zeigen wir Euch, wie Ihr Nextcloud kostenlos auf Eurem eigenen Server installieren könnt. Diese Anleitung beschränkt sich hierbei nicht nur auf unsere eigenen Kunden, sondern kann auch auf Servern von anderen Anbietern befolgt werden. 

Inhaltsverzeichnis

Voraussetzungen

Um Nextcloud auf Eurem Server zu betreiben braucht Ihr einen Linux Server mit root-Zugriff. In diesem Artikel werden wir die Installation von Nextcloud auf einem Linux-System mit Debian 11 als Betriebssystem durchführen. Hierfür verwenden wir unseren VPS M SSD für 8,99 € / Monat

Als Webserver, welcher gleichzeitig auch als Reverse Proxy fungiert nutzen wir in dieser Anleitung Apache2. 

Zudem müsst Ihr über eine Domain verfügen, die bereits mit Eurem Server verbunden ist. 

Bevor wir mit der eigentlichen Installation beginnen, überprüft ob Euer Server auf dem neusten Stand ist und führt ggf. ein Update durch. Loggt Euch hierzu als root auf eurem Server ein und updatet Euren Server mit diesem Befehl: 

apt update && apt upgrade -y 

Benötigte Programme installieren

Damit die Nextcloud überhaupt läuft werden einige Programme, u.a. Apache2, eine Datenbanksoftware und PHP benötigt. Die Installation von PHP 8.0 wird genauer im nächsten Kapitel erklärt. Zunächst installieren wir aber die anderen benötigten Programme mit diesem Befehl: 

apt install apache2 unzip wget curl mariadb-client mariadb-server nano 

PHP 8.0 Installation

Wie im vorherigen Kapitel erwähnt, benötigen wir zudem PHP 8.0 (oder neuer). Dies ist auch die PHP-Version, die von Nextcloud empfohlen wird. 

Repository hinzufügen

Das PHP 8.0 Repository ist in Debian 11 nicht enthalten, weshalb wir dieses zunächst hinzufügen müssen. Gebt hierfür die folgenden Befehle nacheinander ein: 

  1. apt-get install ca-certificates apt-transport-https software-properties-common -y 
  1. echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list 
  1. apt install gnupg gnupg2 gnupg1 -y 
  1. wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add - 
  1. apt update && apt upgrade -y 

Die benötigten Paketquellen sollten nun installiert und ins Betriebssystem eingelesen sein. Wir können jetzt mit der eigentlichen Installation von PHP 8.0 fortfahren. 

PHP 8.0 und Module installieren

Die Installation von PHP ist mit einem einzigen Befehl erledigt. Gebt hierfür diesen Befehl ein: 

apt install php8.0 -y 

Damit die Nextcloud richtig funktioniert brauchen wir noch weitere Module, die Ihr mit diesem Befehl installieren könnt: 

apt install libapache2-mod-php8.0 php8.0-{zip,xml,mbstring,gd,curl,imagick,intl,bcmath,gmp,cli,mysql,apcu,redis} 

Php.ini anpassen

Nachdem wir PHP und die benötigten Module installiert haben, müssen wir die Konfigurationsdatei von PHP, nämlich die php.ini, anpassen. Hierfür nutzen wir den Texteditor nano. Öffnet die php.ini mit diesem Befehl: 

nano /etc/php/8.0/apache2/php.ini 

Folgenden Parameter müssen abgeändert werden:  

  • memory_limit = 1024M 
  • upload_max_filesize = 16G 
  • post_max_size = 16G 
  • date.timezone = Europe/Berlin 

Tipp: Damit Ihr nicht durch die ganze Datei scrollen müsst, um die jeweiligen Einträge zu finden, könnt Ihr mit der Tastenkombination [STRG+W] ein Suchfeld öffnen. Tragt hier den Namen des Parameters ein (z.B. memory_limit) und bestätigt Eure Eingabe mit [Enter]. Der Cursor springt nun in die richtige Zeile und Ihr könnt die Zeile anpassen. 

Nachdem Ihr alle Einträge abgeändert/angepasst habt, speichert Ihr die Änderung mit [STRG+O] und schließt den Editor mit [STRG+X].

Datenbank anlegen

Nextcloud legt Daten wie z.B. Benutzerinformationen usw. in einer Datenbank ab. Diese müssen wir allerdings zunächst erstellen. Hierfür kommt MariaDB zum Einsatz, was auf MySQL basiert. 

Loggt euch zunächst über die Konsole in die Datenbanksoftware mit diesem Befehl ein: 

mysql -u root -p 

Ihr werden nun aufgefordert, euer Root-Passwort einzugeben. 

Mit dem folgenden Befehl erstellt Ihr eine Datenbank: 

create database nextcoud; 

Erstellt nun einen Datenbank Benutzer mit diesem Befehl: 

create user ‘nextcloud‘@‘localhost‘ identified by ‘PASSWORT’; 

WICHTIG: Ersetzt das ‘PASSWORT’ bitte durch ein sicheres Passwort. Das Apostroph vor und hinter dem Passwort muss allerdings stehen bleiben! 

Gewähre dem Datenbankbenutzer nun Zugriff auf die Nextcloud Datenbank mit diesem Befehl: 

grant all privileges on nextcloud.* to ‘nextcloud’@’localhost’; 

Aktualisiere nun die Datenbank: 

flush privileges; 

Nun hast Du sowohl eine Datenbank, als auch einen dazugehörigen Benutzer erstellt und kannst die Datenbank mit diesem Befehl verlassen: 

exit; 

Nextcloud Dateien herunterladen

Nun ist es an der Zeit die eigentlichen Nextcloud Dateien herunterzuladen. Führt hierfür den folgenden Befehl aus: 

cd /tmp && wget https://download.nextcloud.com/server/releases/latest.zip 

Mit diesem Befehl entpackt Ihr das heruntergeladene Zip-Archiv: 

unzip latest.zip 

Das Zip-Archiv wird nun nicht mehr benötigt und kann mit diesem Befehl gelöscht werden: 

rm latest.zip 

Nun müssen wir den entpackten Nextcloud Ordner an die richtige Stelle verschieben. Das geht mit diesem Befehl: 

mv nextcloud /var/www 

Apache2 konfigurieren

Wie in Kapitel 1 bereits beschrieben nutzen wir in unserer Anleitung Apache2 sowohl als Webserver, als auch als Reverse-Proxy. 

Der Webserver wurde bereits in Kapitel 2 heruntergeladen. In diesem Kapitel beschäftigen wir uns somit nur mit der Konfiguration. 

Benötigte Module aktivieren

In der Standardkonfiguration von Apache2 sind einige wichtige Module, die für Nextcloud dringend benötigt werden, noch nicht aktiviert. Dies tun wir jetzt mit diesem Befehl: 

a2enmod rewrite headers env dir mime 

Reverse-Proxy konfigurieren

Damit Apache2 erkennt, dass wir Nextcloud installiert haben, müssen wir einen Reverse-Proxy erstellen. Um diesen zu erstellen nutzen wir erneut den Text-Editor nano. Erstellt hierfür zunächst eine Konfigurationsdatei mit dem folgenden Befehl: 

nano /etc/apache2/sites-available/nextcloud.conf 

In diese Datei fügt Ihr den folgenden Teil ein: 

<VirtualHost *:80> 

     ServerAdmin <EureEmail> 

     DocumentRoot /var/www/nextcloud/ 

     ServerName <EureDomain> 

     Alias /nextcloud "/var/www/nextcloud/" 

  

     <Directory /var/www/nextcloud/> 

        Options +FollowSymlinks 

        AllowOverride All 

        Require all granted 

          <IfModule mod_dav.c> 

            Dav off 

          </IfModule> 

        SetEnv HOME /var/www/nextcloud 

        SetEnv HTTP_HOME /var/www/nextcloud 

     </Directory> 

  

     ErrorLog ${APACHE_LOG_DIR}/error.log 

     CustomLog ${APACHE_LOG_DIR}/access.log combined 

  

</VirtualHost> 

Wichtig: Ersetzt in der zweiten Zeile <EureEmail> bitte durch eine gültige E-Mail Adresse, über die Ihr auch erreichbar seid. (Die beiden Zeichen, also „<“ und „>“ müssen entfernt werden. 

In der vierten Zeile müsst Ihr <EureDomain> durch eure Domain bzw. Subdomain ersetzen, also z.B. „cloud.test.de“. (Auch hier müssen die beiden Zeichen, also „<“ und „>“ entfernt werden.) 

Speichert das Dokument nun mit [STRG+O] ab und verlasst den Editor mit [STRG+X]

Mit diesem Befehl aktiviert Ihr die eben erstellte Konfigurationsdatei: 

a2ensite nextcloud.conf 

Damit alle Änderungen wirksam werden müsst Ihr den Webserver neustarten. Das könnt Ihr mit diesem Befehl tun: 

systemctl restart apache2 

Datenablage erstellen (Optional)

Standardmäßig werden Eure Daten im Verzeichnis der Installation abgelegt. Ich lagere diese Daten aus Übersichtsgründen gerne aus. Dieser Schritt ist allerdings optional. Erstellt hierfür einen Ordner, in dem Ihr Eure in die Nextcloud hochgeladenen Daten speichern wollt, mit diesem Befehl: 

mkdir /home/data 

Wie an dem Befehl zu erkennen ist, werden alle hochgeladenen Daten nun in /home/data gespeichert. Ihr könnt den Befehl auch anpassen, indem Ihr einen anderen Speicherort wählt. 

Zugriffsrechte vergeben/anpassen

Damit der Webserver auf die Nextcloud Dateien zugreifen kann und Daten überhaupt hochgeladen werden können ist es notwendig, die Rechte hierfür anzupassen. 

Dies geht mit den folgenden Befehlen: 

chown -R www-data:www-data /var/www/nextcloud 

chmod -R 755 /var/www/nextcloud

Falls Ihr, wie in Kapitel 7 beschrieben, einen separaten Dateiablageort erstellt habt, müsst ihr für diesen Ordner auch die Rechte mit diesem Befehl anpassen: 

chown -R www-data:www-data /home/data 

Falls Ihr einen anderen Ort als /home/data ausgewählt habt, passt den Pfad an. 

Solltet Ihr den Standardablageort gewählt haben, ist der dritte Befehl nicht notwendig. 

SSL-Zertifikat mit Certbot installieren

Um Datenübertragungen oder den Login sicherer zu machen, ist es empfehlenswert ein SSL-Zertifikat zu installieren. Hierfür nutzen wir den Certbot, welcher euch kostenlose Let’s-Encrypt Zertifikate erstellt, welche jeweils 90 Tage gültig sind.  

Weitere Informationen über den Certbot, z.B. wie das automatische Verlängern von Zertifikaten funktioniert, findet ihr auf der offiziellen Seite vom Certbot

Beginnen wir nun mit der Installation des Certbots und den benötigten Programmen. Dies geht mit dem folgenden Befehl: 

apt install certbot python3-certbot-apache -y 

Nachdem Ihr den Certbot installiert habt, könnt Ihr ihn mit diesem Befehl starten: 

certbot --apache 

Wenn Ihr den Certbot zum ersten Mal startet, müsst Ihr zunächst den Lizenzbedingungen zustimmen. Dieser Prozess ist aber sehr intuitiv. 

Nachdem Ihr den Lizenzbedingungen zugestimmt habt, seht Ihr eine Liste mit Euren aktiven Websites bzw. deren (Sub)Domains. Gebt hier die Nummer der Seite ein, für die Ihr ein Zertifikat installieren wollt und wählt (falls gefragt) Redirect im nächsten Schritt aus. (Option 2) 

Nun sollte Euer Zertifikat installiert sein. 

Einrichtung im Browser abschließen

Alle benötigten Programme sind nun installiert und alle Einstellungen abgeschlossen. Ihr könnt die Konsole nun schließen, da die Einrichtung jetzt im Browser abgeschlossen werden kann. 

Hierzu gebt ihr eure gewählte Domain (ggf. Subdomain) in die URL-Leiste eures Browsers ein. Es erscheinen nun einige Felder: 

Wie auf dem Screenshot zu sehen, müsst ihr hier nur die 4 Schritte befolgen: 

Schritt 1: Erstellt einen Admin-Account. 

Schritt 2 (optional): Abweichenden Speicherort festlegen. Ändert diesen Eintrag nur, wenn ihr Kapitel 7 dieses Artikels befolgt habt. 

Schritt 3: Tragt die Zugangsdaten zu eurer Datenbank ein (Kapitel 4)

In unserem Beispiel also: 

Für Database user: nextcloud

Als Database password: PASSWORT 

Database name: nextcloud 

Da wir die Datenbank auf demselben Server wie auch die Nextcloud installiert haben, könnt ihr localhost im Letzen Feld stehen lassen. 

Schritt 4: Klickt abschließend auf Install. 

Nachdem ihr auf Install geklickt habt, erscheint zudem folgendes Menü: 

Hier könnt ihr auswählen, ob die von Nextcloud empfohlenen und hier aufgelisteten Erweiterungen mit installiert werden sollen. Falls ja, klickt auf Install recommended apps

Falls nein, klickt auf Cancel

Wenn alles funktioniert hat, sollte folgendes Bild euch in eurer fertig installierten Nextcloud begrüßen: 

Glückwunsch! Die Installation eurer eigenen Nextcloud ist nun abgeschlossen. 

Tags: