Nextcloud auf Debian 12 einrichten
Die Installation von Nextcloud unter Debian erledigst du in wenigen Schritten. Dabei setzt du nicht nur die Cloud-Lösung auf, sondern schützt diese auch direkt durch verschiedene Sicherheitsmechanismen.
Nextcloud für Debian
Nextcloud ist eine empfehlenswerte und vor allem freie Cloud-Computing-Lösung, die dir privat wie geschäftlich viele Möglichkeiten bietet. Zu den großen Pluspunkten der Software gehören die starken Sicherheitsfeatures für den Datenschutz – etwa SSL/TLS-Verschlüsselung, Zwei-Faktor-Authentifizierung und DSGVO-Konformität. Zudem hast du die Wahl zwischen lokalen privaten Servern oder externem Hosting. Wie viele Alternativen zu Nextcloud unterstützt dieser Fork von OwnCloud alle gängigen Betriebssysteme und lässt sich einfach mit zahlreichen Diensten verknüpfen.
Im Folgenden erklären wir dir Schritt für Schritt, wie du Nextcloud unter Debian 12 einrichtest. Dafür installierst du einen Apache2-Webserver, einen MariaDB-Server und PHP 8.2. Zur Absicherung zeigen wir dir, wie du eine Uncomplicated Firewall (UFW) sowie die notwendigen SSL/TLS-Zertifikate konfigurierst.
Welche Voraussetzungen müssen erfüllt sein?
Für die Installation von Nextcloud unter Debian 12 sind nur wenige Vorbereitungen nötig. Du brauchst einen Server, auf dem Debian 12 bereits läuft. Wir empfehlen mindestens 4 GB RAM und zwei CPUs. Zudem ist es wichtig, dass du über einen Non-Root-User-Zugang mit Admin-Rechten verfügst und eine Domain eingerichtet hast, die auf die IP-Adresse deines Servers verweist.
Apache2-Webserver installieren
Zuerst installierst du den Apache2-Webserver. Aktualisiere dafür den Debian-Paketindex, um die neueste Version zu erhalten. Nutze dafür den Befehl apt update:
sudo apt updatebashAnschließend startest du die Installation des aktuellen Apache2-Pakets mit diesem Befehl:
sudo apt install apache2bashBestätige den Vorgang mit der Taste [y] und drücke [Enter], um die Installation zu starten.
Prüfe nach Abschluss den Status des Dienstes mit folgendem systemctl-Kommando:
sudo systemctl is-enabled apache2
sudo systemctl status apache2bashBeim ersten Befehl sollte stehen, dass der Dienst beim Systemstart automatisch mitgeladen wird. Der Status „active“ verrät dir, dass Apache2 bereit für den Einsatz ist.
Firewall einrichten
Mit einer passenden Firewall schützt du dein System und deine Daten. Wir empfehlen die Uncomplicated Firewall (UFW), die du als Standard nutzen kannst. Dafür solltest du die Ports für OpenSSH, HTTP sowie HTTPS freigeben. Installiere zuerst das UFW-Paket:
sudo apt install ufwbashBestätige erneut mit [y] und schließe mit [Enter] ab. Aktiviere danach OpenSSH und UFW mit diesen Befehlen:
sudo ufw allow OpenSSH
sudo ufw enablebashUm UFW zu starten, bestätige mit [y]. Es erscheint die Meldung „Firewall is active and enabled on system startup“. Füge nun die HTTP- und HTTPS-Ports hinzu, damit der Webserver erreichbar ist:
sudo ufw allow "WWW Full"bashLade die UFW danach neu:
sudo ufw reloadbashUm die aktiven Regeln zu prüfen, rufe den Status ab. Hier sollte nun „WWW Full“ als aktiv gelistet sein.
sudo ufw statusbashPHP 8.2 aktivieren
Für beste Performance und volle Kompatibilität empfiehlt Nextcloud PHP 8.2. Da dies in Debian 12 standardmäßig enthalten ist, musst du nur die Pakete installieren. Nutze dafür diesen Befehl:
sudo apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-devbashBestätige mit [y] und [Enter]. Prüfe danach die PHP-Version und aktiviere die nötigen Erweiterungen:
php --version
php -mbashÖffne jetzt mit dem Nano-Editor die PHP-Konfigurationsdatei:
sudo nano /etc/php/8.2/apache2/php.inibashPasse die Konfiguration nun an deine Bedürfnisse an. Je nach geplanter Nutzung von Nextcloud können andere Werte sinnvoll sein. Ändere die Einstellungen entsprechend deiner Vorstellungen.
Stelle im ersten Schritt deine Zeitzone ein:
data.timezone = Europe/AmsterdambashPasse die Parameter für memory_limit, upload_max_filesize, post-max_size und max_execution_time an:
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300bashAktiviere file_uploads und allow_url_fopen, indem du beide Werte auf „On“ setzt:
file_uploads = On
allow_url_fopen = OnbashDeaktiviere display_errors und output_buffering (Wert auf „Off“):
display_errors = Off
output_buffering = OffbashAktiviere den PHP OPCache mit diesem Kommando:
zend_extension=opcachebashFüge im Abschnitt opcache die von Nextcloud empfohlenen Einstellungen ein:
opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1bashSpeichere die Datei und verlasse den Editor. Starte den Apache2-Dienst neu:
sudo systemctl restart apache2bashMariaDB-Server aufsetzen
Nextcloud nutzt einen MariaDB-Server als Datenbank. Installiere und prüfe diesen so:
sudo apt install mariadb-serverbashBestätige mit [y] und [Enter]. Nach der Installation gibst du folgendes ein:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbbashLäuft der Server glatt, sicherst du das System ab. Erstelle ein Root-Passwort, entferne anonyme User und lösche die Test-Datenbank mit diesem Befehl:
sudo mariadb-secure-installationbashBestätige die einzelnen Schritte jeweils mit [y] oder lehne mit [n] ab.
Datenbank und Nutzer erstellen
Erstelle nun eine neue Datenbank samt zugehörigem User. Melde dich am MariaDB-Server an und gib dein Root-Passwort ein:
sudo mariadb -u root -pbashNutze diese Befehle, um die Datenbank, den User und das Passwort anzulegen:
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'IhrPasswort';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;bashErsetze 'IhrPasswort' durch ein eigenes, sicheres Passwort. Prüfe abschließend, ob „nextclouduser“ Zugriff auf „nextcloud_db“ hat:
SHOW GRANTS FOR nextclouduser@localhost;bashAktuelle Quellcodes downloaden
Lade jetzt die aktuellen Nextcloud-Quellcodes für Debian 12 herunter. Nutze zuerst diesen Befehl:
sudo apt install curl unzip -ybashWechsle in das Verzeichnis /var/www und starte den Download:
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zipbashEntpacke das Archiv und passe die Besitzrechte für das Verzeichnis unter www-data an:
unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloudbashApache2-Host konfigurieren
Konfiguriere nun einen virtuellen Apache2-Host mit diesem Nano-Befehl:
sudo nano /etc/apache2/sites-available/nextcloud.confbashPasse den Domainnamen sowie die Parameter ErrorLog und CustomLog an. Ersetze den Platzhalter „beispiel“ durch deine Domain.
<VirtualHost *:80>
ServerName nextcloud.beispiel.io
DocumentRoot /var/www/nextcloud/
# log files
ErrorLog /var/log/apache2/files.beispiel.io-error.log
CustomLog /var/log/apache2/files.beispiel.io-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
</Directory>
</VirtualHost>bashSpeichere und schließe den Editor. Aktiviere die neue Konfiguration und prüfe sie:
sudo a2ensite nextcloud.conf
sudo apachectl configtestbashErhältst du die Meldung „Syntax OK“, starte Apache2 neu, um die Änderungen zu übernehmen:
sudo systemctl restart apache2bashAbsicherung mit SSL/TLS
Bisher läuft deine Nextcloud noch über das ungeschützte HTTP-Protokoll. Für maximale Sorgenfreiheit solltest du HTTPS aktivieren. Nutze dafür diesen Befehl:
sudo apt install certbot python3-certbot-apachebashErstelle nun ein SSL-Zertifikat. Ersetze dabei „beispiel“ wieder durch deine echte Domain:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@beispiel.io -d nextcloud.beispiel.iobashAbschluss der Nextcloud-Installation unter Debian 12
Jetzt schließt du die Einrichtung ab. Rufe deine Nextcloud-Domain im Webbrowser auf. Lege einen Benutzernamen und ein Passwort für das Admin-Konto fest. Gib anschließend die Datenbank-Details (Name, User, Passwort) ein und klicke auf „Install“. Du kannst danach direkt kompatible Apps laden oder diesen Punkt überspringen. Danach landest du auf deinem Dashboard und kannst Nextcloud für deine Daten nutzen.