Zum Hauptinhalt springen

Dedicated Server: Installation von Nextcloud

Diese Anleitung wurde mit den folgenden Produkten erstellt:

(Details können je nach Produkten verschiedener Anbieter variieren, aber die Hauptkonzepte bleiben gleich)

Einführung

Nextcloud ist eine Open-Source-Cloud-Lösung und ein Fork von Owncloud, gegründet 2016 vom ehemaligen Owncloud-Gründer Frank Kalitschek.

Um optimale Performance, Stabilität und Funktionalität zu gewährleisten, empfehlen wir folgendes Setup für das Hosting eines Nextcloud-Servers. Der Nextcloud-Server ist nicht kompatibel mit Windows und MacOS. Zumindest nicht ohne weitere Virtualisierung oder ähnliche Workarounds.

Vorbereitung

Die folgenden Anforderungen werden von den Entwicklern empfohlen und basieren auf unseren eigenen Erfahrungen. Probleme können auftreten, wenn diese Voraussetzungen nicht erfüllt werden.

Hardware

KomponentenMinimumEmpfohlen
CPU2x 1 GHz4x 2+ GHz
RAM512 MB4+ GB
Speicher10 GB50+ GB
Bandbreite100 Mbit/s (Up & Down)500 Mbit/s (Up & Down) Empfohlen, wenn mehrere Nutzer die Cloud verwenden sollen

Software

PlattformOptionen
BetriebssystemUbuntu (14.04, 16.04, 18.04), Debian (8,9,10), CentOS 6.5/7
DatenbankMySQL oder MariaDB 5.5+ (empfohlen), SQLite (nur für Tests und Minimal-Instanzen empfohlen)
WebserverApache 2.4 mit mod_php oder php-fpm (empfohlen)
PHP5.6, 7.0 (empfohlen), 7.1 (empfohlen), 7.2

Vorbereitung

Um die Cloud auf einem Linux-Server zu installieren, muss eine Verbindung über einen SSH-Client hergestellt werden. Falls du nicht sicher bist, wie SSH funktioniert, hier eine Anleitung dazu: Erstzugang (SSH)

Sobald die Verbindung steht, kannst du die notwendigen Pakete installieren, die für die eigentliche Nextcloud-Installation benötigt werden. Dazu gehört die Installation eines Webservers sowie PHP.


Apache (Webserver)

🗄️ Debian 8/9/10:

sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2

PHP (Hypertext Preprocessor)

🗄️ Debian 8:

# Schritt 1: PHP 7.3 PPA Repository hinzufügen
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list

# Schritt 2: PHP 7.3 installieren
sudo apt -y install php7.3

# Schritt 3: PHP 7.3 Erweiterungen installieren
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 9:

# Schritt 1: PHP 7.3 PPA Repository hinzufügen
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list

# Schritt 2: PHP 7.3 installieren
sudo apt -y install php7.3

# Schritt 3: PHP 7.3 Erweiterungen installieren
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 10:

# Schritt 1: PHP 7.3 installieren
sudo apt -y install php php-common

# Schritt 2: PHP 7.3 Erweiterungen installieren
sudo apt -y install php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

PHP-Version zur Funktionsprüfung anzeigen

php -v

Der nächste Schritt ist die Auswahl eines Datenbanktyps, um die relevanten Informationen zu speichern. Es gibt mehrere Optionen:


Wenn du dich für diese Datenbank entschieden hast, folge diesen Schritten:

Paketinstallation:

sudo apt-get install mariadb-server php-mysql

Während der Installation wirst du aufgefordert, ein Root-Passwort zu setzen. Falls keine Passwortabfrage erscheint, ist das Standardpasswort leer. Das ist nicht sicher und sollte daher sofort geändert werden!

Als nächstes verbindest du dich mit dem Datenbankserver und erstellst die benötigte Datenbank:

mysql -u root -p
CREATE DATABASE nextcloud;

Danach muss ein Benutzer erstellt werden, der Zugriff auf die Nextcloud-Datenbank erhält.

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT_HIER';
Info

Überspringe diesen Schritt nicht, indem du den Root-User nutzt. Das ist unsicher und gefährdet deine Daten!

Zum Schluss werden dem neuen Benutzer die Rechte zugewiesen:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;

Wenn du fertig bist, kannst du mit Ctrl-D die Datenbank verlassen und mit den nächsten Schritten weitermachen.

Installation

Jetzt kann die eigentliche Installation von Nextcloud gestartet werden. Die Software muss heruntergeladen und entpackt werden:

cd /var/www/
wget https://download.nextcloud.com/server/releases/latest.zip
apt-get install unzip
unzip latest.zip
chown -R www-data:www-data nextcloud
rm latest.zip

Sobald dieser Schritt abgeschlossen ist, kannst du das Installationsskript starten. Der Zugriff erfolgt über den Browser über folgende URL:

Das Installationsskript erscheint, in dem ein Root-User angelegt und die Datenbankinformationen definiert werden:

Sicherheit und Schutz

Setup-Warnungen

Datenverzeichnis

Es wird dringend empfohlen, das Datenverzeichnis außerhalb des Webroot-Verzeichnisses (also außerhalb von /var/www) zu platzieren. Am einfachsten geht das bei einer Neuinstallation. Das Verzeichnis kann während der Einrichtung definiert werden. Das Verzeichnis muss aber vorher angelegt und die entsprechenden Rechte gesetzt werden. Die Daten könnten z.B. in einem Verzeichnis namens Cloud im Home-Verzeichnis gespeichert werden.

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

HTTPS via SSL-Zertifikat (Let's Encrypt)

Eine gute Cloud-Lösung sollte nur über eine SSL-Verbindung erreichbar sein. Ohne SSL-Verschlüsselung werden Daten und Informationen im Klartext übertragen. Solche Infos können leicht und schnell abgefangen und ohne Verschlüsselung gelesen werden.

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/nextcloud"
ServerName domain.tld

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any

</Directory>

SSLCertificateFile /etc/letsencrypt/live/domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
</VirtualHost>
</IfModule>

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; preload"
</IfModule>

Außerdem sollte sämtlicher HTTP-Traffic per permanenter Weiterleitung mit Statuscode 301 auf HTTPS umgeleitet werden. Das lässt sich mit Apache über eine Konfiguration wie die folgende Apache VirtualHosts-Konfiguration erreichen:

<VirtualHost *:80>
ServerName domain.tld
Redirect permanent / https://domain.tld/
</VirtualHost>

Nextcloud verwalten

Der Zugriff auf Nextcloud ist sowohl über den Browser als auch über Smartphone und PC mit der App möglich. Die Downloadquellen findest du hier: https://nextcloud.com/install/#install-clients

Unter den Einstellungen kannst du auch nach der Einrichtung noch einige Optionen anpassen und wichtige Infos wie Logs, Aktivitäten einsehen. Dazu gehören zusätzliche Sicherheitsoptionen (Zwei-Faktor-Authentifizierung, Verschlüsselung, ...), Design-Einstellungen (Logo, Farbe, Slogan, Header), Zugriffsrechte und vieles mehr.

Apps

Außerdem gibt es die Möglichkeit, neben den Standard-Apps weitere Apps zu installieren. Diese findest du im Menüpunkt Apps.

Mit solchen Apps kannst du Nextcloud noch individueller an deine Wünsche anpassen.