Nextcloud ist eine Open-Source-Cloud-Lösung und ein Fork von ownCloud, gegründet 2016 vom ehemaligen ownCloud-Gründer Frank Karlitschek. Mit Nextcloud betreibst du deine eigene private Cloud für Dateien, Kalender, Kontakte, Chat und Video-Calls – vollständig unter deiner eigenen Kontrolle, statt bei einem fremden Anbieter.
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 mit Windows oder macOS kompatibel, zumindest nicht ohne zusätzliche Virtualisierung oder vergleichbare Workarounds.
Die folgenden Anforderungen basieren auf den offiziellen Systemanforderungen von Nextcloud sowie unseren eigenen Erfahrungen. Wenn du diese Voraussetzungen nicht erfüllst, kann es zu Problemen kommen.
| Komponenten | Minimum | Empfohlen |
|---|---|---|
| CPU | 1x 2 GHz | 4x 2+ GHz |
| RAM | 1 GB | 4+ GB |
| Speicher | 10 GB | 50+ GB (abhängig von der gespeicherten Datenmenge) |
| Bandbreite | 100 Mbit/s (Up & Down) | 500 Mbit/s (Up & Down), empfohlen wenn mehrere Nutzer die Cloud verwenden |
| Plattform | Optionen |
|---|---|
| Betriebssystem | Ubuntu (22.04, 24.04), Debian (12, 13) |
| Datenbank | MariaDB 10.11+ (empfohlen), PostgreSQL 14+, MySQL 8.0+, SQLite (nur für Tests und Minimal-Instanzen) |
| Webserver | Apache 2.4 mit mod_php oder php-fpm (empfohlen), alternativ Nginx mit php-fpm |
| PHP | 8.3, 8.4, 8.5 (empfohlen) |
Für die jeweils aktuellsten Anforderungen wirf einen Blick in die offizielle Nextcloud-Dokumentation – Nextcloud aktualisiert seine PHP- und Datenbank-Anforderungen regelmäßig mit neuen Major-Releases.
Für die Installation der Cloud auf einem Linux Server muss eine Verbindung über einen SSH-Client hergestellt werden. Falls du nicht sicher bist, wie SSH funktioniert, hier eine Anleitung: Erster Zugriff (SSH)
Sobald die Verbindung steht, kannst du die notwendigen Pakete installieren, die für die eigentliche Nextcloud-Installation gebraucht werden. Dazu gehört die Installation eines Webservers sowie PHP samt der von Nextcloud benötigten Erweiterungen (u. a. gd, curl, mbstring, xml, zip, intl, bcmath, gmp, apcu).
Apache (Webserver) und PHP
🗄️ Ubuntu 24.04 (liefert PHP 8.3 direkt mit):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Ubuntu 22.04 (Standard-PHP ist 8.1, zu alt für aktuelle Nextcloud-Versionen – daher PPA nötig):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 software-properties-common
sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
🗄️ Debian 13 „trixie" (liefert PHP 8.3 direkt mit):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 php php-cli php-fpm php-common php-mysql php-pgsql php-sqlite3 php-zip php-gd php-mbstring php-curl php-xml php-bcmath php-intl php-gmp php-imagick php-apcu
🗄️ Debian 12 „bookworm" (Standard-PHP ist 8.2, zu alt für aktuelle Nextcloud-Versionen – daher Drittanbieter-Repo nötig):
sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2 lsb-release apt-transport-https ca-certificates wget
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/php.list
sudo apt update
sudo apt -y install php8.3 php8.3-cli php8.3-fpm php8.3-common php8.3-mysql php8.3-pgsql php8.3-sqlite3 php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-intl php8.3-gmp php8.3-imagick php8.3-apcu
PHP-Version prüfen:
php -v
Nextcloud verlangt memory_limit = 512M oder höher. Trage diesen Wert in der passenden php.ini ein (z. B. /etc/php/8.3/apache2/php.ini bzw. /etc/php/8.3/fpm/php.ini) und starte Apache bzw. PHP-FPM danach neu.
Der nächste Schritt ist die Auswahl eines Datenbanktyps, um die Nextcloud-Daten zu speichern. Wähle eine der folgenden Optionen und folge nur den Schritten für deine Wahl.
Paketinstallation:
sudo apt-get install mariadb-server
Während der Installation wirst du aufgefordert, ein Root-Passwort zu setzen. Falls keine Passwortabfrage erscheint, ist das Standardpasswort leer. Das ist unsicher und sollte 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 bekommt:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT_HIER';
Ü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 exit die Datenbank verlassen und mit den nächsten Schritten weitermachen.
Paketinstallation:
sudo apt-get install mysql-server
Während der Installation wirst du aufgefordert, ein Root-Passwort zu setzen. Falls keine Passwortabfrage erscheint, ist das Standardpasswort leer. Das ist unsicher und sollte 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 bekommt:
CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'DEIN_PASSWORT_HIER';
Ü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 exit die Datenbank verlassen und mit den nächsten Schritten weitermachen.
Paketinstallation:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
Als nächstes verbindest du dich mit dem Datenbankserver und erstellst Datenbank sowie Benutzer:
sudo -u postgres psql
CREATE USER nc_user WITH ENCRYPTED PASSWORD 'DEIN_PASSWORT_HIER';
CREATE DATABASE nextcloud OWNER nc_user;
Überspringe diesen Schritt nicht, indem du den postgres-Superuser für Nextcloud selbst nutzt. Das ist unsicher und gefährdet deine Daten!
Wenn du fertig bist, kannst du mit \q die Datenbank verlassen. Die PostgreSQL-Verbindungsdaten trägst du entweder im Webinstaller ein oder direkt in der config.php:
<?php
$CONFIG = array(
'dbtype' => 'pgsql',
'dbname' => 'nextcloud',
'dbuser' => 'nc_user',
'dbpassword' => 'DEIN_PASSWORT_HIER',
'dbhost' => 'localhost',
'dbtableprefix' => '',
);
SQLite eignet sich ausschließlich zum Testen oder für sehr kleine Einzelnutzer-Instanzen – für den produktiven Mehrbenutzerbetrieb raten die Nextcloud-Entwickler ausdrücklich davon ab (u. a. wegen fehlender Nebenläufigkeit bei parallelen Zugriffen).
Paketinstallation:
sudo apt-get install sqlite3 php8.3-sqlite3
Nextcloud legt die SQLite-Datenbankdatei während der Installation automatisch an, eine manuelle Datenbank-Erstellung ist nicht nötig. Die Konfiguration in der config.php sieht so aus:
<?php
$CONFIG = array(
'dbtype' => 'sqlite3',
'dbname' => 'nextcloud',
'dbtableprefix' => '',
);
