Die In­stal­la­ti­on 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 ver­schie­de­ne Si­cher­heits­me­cha­nis­men.

Nextcloud für Debian

Nextcloud ist eine emp­feh­lens­wer­te und vor allem freie Cloud-Computing-Lösung, die dir privat wie ge­schäft­lich viele Mög­lich­kei­ten bietet. Zu den großen Plus­punk­ten der Software gehören die starken Si­cher­heits­fea­tures für den Da­ten­schutz – etwa SSL/TLS-Ver­schlüs­se­lung, Zwei-Faktor-Au­then­ti­fi­zie­rung und DSGVO-Kon­for­mi­tät. Zudem hast du die Wahl zwischen lokalen privaten Servern oder externem Hosting. Wie viele Al­ter­na­ti­ven zu Nextcloud un­ter­stützt dieser Fork von OwnCloud alle gängigen Be­triebs­sys­te­me und lässt sich einfach mit zahl­rei­chen Diensten ver­knüp­fen.

Im Folgenden erklären wir dir Schritt für Schritt, wie du Nextcloud unter Debian 12 ein­rich­test. Dafür in­stal­lierst du einen Apache2-Webserver, einen MariaDB-Server und PHP 8.2. Zur Ab­si­che­rung zeigen wir dir, wie du eine Un­com­pli­ca­ted Firewall (UFW) sowie die not­wen­di­gen SSL/TLS-Zer­ti­fi­ka­te kon­fi­gu­rierst.

Welche Vor­aus­set­zun­gen müssen erfüllt sein?

Für die In­stal­la­ti­on von Nextcloud unter Debian 12 sind nur wenige Vor­be­rei­tun­gen nötig. Du brauchst einen Server, auf dem Debian 12 bereits läuft. Wir empfehlen min­des­tens 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 ein­ge­rich­tet hast, die auf die IP-Adresse deines Servers verweist.

Apache2-Webserver in­stal­lie­ren

Zuerst in­stal­lierst du den Apache2-Webserver. Ak­tua­li­sie­re dafür den Debian-Pa­ke­t­in­dex, um die neueste Version zu erhalten. Nutze dafür den Befehl apt update:

sudo apt update
bash

An­schlie­ßend startest du die In­stal­la­ti­on des aktuellen Apache2-Pakets mit diesem Befehl:

sudo apt install apache2
bash

Bestätige den Vorgang mit der Taste [y] und drücke [Enter], um die In­stal­la­ti­on zu starten.

Prüfe nach Abschluss den Status des Dienstes mit folgendem systemctl-Kommando:

sudo systemctl is-enabled apache2
sudo systemctl status apache2
bash

Beim ersten Befehl sollte stehen, dass der Dienst beim Sys­tem­start au­to­ma­tisch mit­ge­la­den wird. Der Status „active“ verrät dir, dass Apache2 bereit für den Einsatz ist.

Firewall ein­rich­ten

Mit einer passenden Firewall schützt du dein System und deine Daten. Wir empfehlen die Un­com­pli­ca­ted Firewall (UFW), die du als Standard nutzen kannst. Dafür solltest du die Ports für OpenSSH, HTTP sowie HTTPS freigeben. In­stal­lie­re zuerst das UFW-Paket:

sudo apt install ufw
bash

Bestätige erneut mit [y] und schließe mit [Enter] ab. Aktiviere danach OpenSSH und UFW mit diesen Befehlen:

sudo ufw allow OpenSSH
sudo ufw enable
bash

Um 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 er­reich­bar ist:

sudo ufw allow "WWW Full"
bash

Lade die UFW danach neu:

sudo ufw reload
bash

Um die aktiven Regeln zu prüfen, rufe den Status ab. Hier sollte nun „WWW Full“ als aktiv gelistet sein.

sudo ufw status
bash

PHP 8.2 ak­ti­vie­ren

Für beste Per­for­mance und volle Kom­pa­ti­bi­li­tät empfiehlt Nextcloud PHP 8.2. Da dies in Debian 12 stan­dard­mä­ßig enthalten ist, musst du nur die Pakete in­stal­lie­ren. 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-dev
bash

Bestätige mit [y] und [Enter]. Prüfe danach die PHP-Version und aktiviere die nötigen Er­wei­te­run­gen:

php --version
php -m
bash

Öffne jetzt mit dem Nano-Editor die PHP-Kon­fi­gu­ra­ti­ons­da­tei:

sudo nano /etc/php/8.2/apache2/php.ini
bash

Passe die Kon­fi­gu­ra­ti­on nun an deine Be­dürf­nis­se an. Je nach geplanter Nutzung von Nextcloud können andere Werte sinnvoll sein. Ändere die Ein­stel­lun­gen ent­spre­chend deiner Vor­stel­lun­gen.

Stelle im ersten Schritt deine Zeitzone ein:

data.timezone = Europe/Amsterdam
bash

Passe 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 = 300
bash

Aktiviere file_uploads und allow_url_fopen, indem du beide Werte auf „On“ setzt:

file_uploads = On
allow_url_fopen = On
bash

De­ak­ti­vie­re display_errors und output_buffering (Wert auf „Off“):

display_errors = Off
output_buffering = Off
bash

Aktiviere den PHP OPCache mit diesem Kommando:

zend_extension=opcache
bash

Füge im Abschnitt opcache die von Nextcloud emp­foh­le­nen Ein­stel­lun­gen 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 = 1
bash

Speichere die Datei und verlasse den Editor. Starte den Apache2-Dienst neu:

sudo systemctl restart apache2
bash

MariaDB-Server aufsetzen

Nextcloud nutzt einen MariaDB-Server als Datenbank. In­stal­lie­re und prüfe diesen so:

sudo apt install mariadb-server
bash

Bestätige mit [y] und [Enter]. Nach der In­stal­la­ti­on gibst du folgendes ein:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
bash

Lä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-installation
bash

Bestätige die einzelnen Schritte jeweils mit [y] oder lehne mit [n] ab.

Datenbank und Nutzer erstellen

Erstelle nun eine neue Datenbank samt zu­ge­hö­ri­gem User. Melde dich am MariaDB-Server an und gib dein Root-Passwort ein:

sudo mariadb -u root -p
bash

Nutze 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;
bash

Ersetze 'IhrPasswort' durch ein eigenes, sicheres Passwort. Prüfe ab­schlie­ßend, ob „next­clou­du­ser“ Zugriff auf „nextcloud_db“ hat:

SHOW GRANTS FOR nextclouduser@localhost;
bash

Aktuelle Quell­codes down­loa­den

Lade jetzt die aktuellen Nextcloud-Quell­codes für Debian 12 herunter. Nutze zuerst diesen Befehl:

sudo apt install curl unzip -y
bash

Wechsle in das Ver­zeich­nis /var/www und starte den Download:

cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
bash

Entpacke das Archiv und passe die Be­sitz­rech­te für das Ver­zeich­nis unter www-data an:

unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud
bash

Apache2-Host kon­fi­gu­rie­ren

Kon­fi­gu­rie­re nun einen vir­tu­el­len Apache2-Host mit diesem Nano-Befehl:

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

Passe den Do­main­na­men sowie die Parameter ErrorLog und CustomLog an. Ersetze den Platz­hal­ter „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>
bash

Speichere und schließe den Editor. Aktiviere die neue Kon­fi­gu­ra­ti­on und prüfe sie:

sudo a2ensite nextcloud.conf
sudo apachectl configtest
bash

Erhältst du die Meldung „Syntax OK“, starte Apache2 neu, um die Än­de­run­gen zu über­neh­men:

sudo systemctl restart apache2
bash

Ab­si­che­rung mit SSL/TLS

Bisher läuft deine Nextcloud noch über das un­ge­schütz­te HTTP-Protokoll. Für maximale Sor­gen­frei­heit solltest du HTTPS ak­ti­vie­ren. Nutze dafür diesen Befehl:

sudo apt install certbot python3-certbot-apache
bash

Erstelle nun ein SSL-Zer­ti­fi­kat. Ersetze dabei „beispiel“ wieder durch deine echte Domain:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@beispiel.io -d nextcloud.beispiel.io
bash

Abschluss der Nextcloud-In­stal­la­ti­on unter Debian 12

Jetzt schließt du die Ein­rich­tung ab. Rufe deine Nextcloud-Domain im Web­brow­ser auf. Lege einen Be­nut­zer­na­men und ein Passwort für das Admin-Konto fest. Gib an­schlie­ßend die Datenbank-Details (Name, User, Passwort) ein und klicke auf „Install“. Du kannst danach direkt kom­pa­ti­ble Apps laden oder diesen Punkt über­sprin­gen. Danach landest du auf deinem Dashboard und kannst Nextcloud für deine Daten nutzen.

Zum Hauptmenü