Nextcloud 23 (Nextcloud Hub II) Installationsskript
von Carsten Rieger|Aktualisiert
Mit diesem Nextcloud 23 Installationsskript für Ubuntu 20.04 focal fossa oder Debian 11 bullseye installieren Sie auch als „Newbie“ Ihre eigene Nextcloud!
Die Mindestvoraussetzungen für diese Skripte sind minimal:
* Ein Server mit einem frischen Debian 11.x+ x86-64 oder einem frischen Ubuntu 20.04.x+ x86-64 Betriebssystem
* ein Benutzer mit sudo-Berechtigungen
* ca. 20 Minuten Zeit
Installiert wird dabei Nextcloud 23 auf Basis des Webservers nginx, des Datenbankservers MariaDB, PHP 8.x (php-fpm), Let’s Encrypt – acme.sh, Redis, ufw und Fail2ban.
Hinweis: Proxmox-User sollten eine eigene VM und keinen LXC-Container verwenden. Viele Benutzer berichten von Problemen, die aus den Besonderheiten der LXC-Container resultieren.
Die Installationsmedien für den zugrundeliegenden Linux-Server erhalten Sie hier:
Ubuntu 20.04.x LTS: Server-Installation - SSH wird vorausgesetzt (s. Bild zuvor)
Debian 11.x: Net ISO Installation - Standardsystemwerkzeuge u. SSH werden vorausgesetzt
Nur für Debian Server:
su - apt install -y sudo usermod -aG sudo <IhrAktuellerBenutzer> exit exit
Ab hier geht es wieder für beide Server-Betriebssysteme (Ubuntu und Debian) weiter:
Wechseln Sie mittels sudo zu Ihrem privilegierten Benutzer:
sudo -s
Aktualisieren Sie Ihren Server:
apt update && apt upgrade -y
Laden Sie das Installationsskript nach /nextcloud-Installation herunter:
mkdir -p /nextcloud-installation cd /nextcloud-installation && apt install -y bzip2 wget
Debian mit Nextcloud 23:
*** Auch auf github unter: debian-install.sh ***
wget https://it-services.c-rieger.de/s/TgrELJyJLYt6trk/download -O install.zip
Ubuntu mit Nextcloud 23:
*** auch auf github unter: ubuntu-install.sh ***
wget https://it-services.c-rieger.de/s/r76FgAWcLN7HsM7/download -O install.zip
und entpacken dort das Skript:
apt install -y unzip && unzip install.zip
Markieren Sie das Skript als „ausführbar“
chmod +x install.sh
und führen es dann zur Installation aus:
./install.sh
zur Bildergalerie der Serverinstallationzur Bildergalerie der Nextcloud-Installation
Das Logfile finden Sie unter /nextcloud-installation/install.log. Sie werden im Lauf der Installation nach folgenden Daten gefragt:
MariaDB: - Enter current password for root (enter for none): |ENTER| - Switch to unix_socket authentication [Y/n]: <Y> + |ENTER| - Change the root password? [Y/n]: <Y> + |ENTER| - New password: <Ihr MariaDB-Root Passwort> + |ENTER| - Re-enter new password: <Ihr MariaDB-Root Passwort> + |ENTER| - Remove anonymous users? [Y/n]: <Y> + |ENTER| - Disallow root login remotely? [Y/n]: <Y> + |ENTER| - Remove test database and access to it? [Y/n]: <Y> + |ENTER| - Reload privilege tables now? [Y/n]: <Y> + |ENTER|
Nextcloud: - Enter your Nextcloud Administrator: <Name des Nextcloud Administrator> + |ENTER| - Enter your Nextcloud Administrator password: <Passwort des Nextcloud Administrator> + |ENTER| - Enter your absolute Nextcloud datapath (/your/path): </absoluter Pfad/zum/Datenverzeichnis> + |ENTER|
SSH: - Command may disrupt existing ssh connections. Proceed with operation (y|n)? <Y> + |ENTER|
bevor die Installation beendet und Ihnen eine Zusammenfassung dargestellt wird:
Optional: Einrichtung von SSL über Let’s Encrypt
Bitte stellen Sie zuerst sicher, dass Ihr Server sowohl über Port 80/TCP als auch über Port 443/TCP von außen erreichbar ist.
Für die Let’s Encrypt – Zertifikatserstellung wechseln Sie in die Shell des technischen Benutzers acmeuser
su - acmeuser
und requestieren (beantragen) dann die SSL-Zertifikate. Ersetzen Sie dabei ihre.domain.de mit Ihrer „echten“ Domain :
acme.sh --issue -d ihre.domain.de --server letsencrypt --keylength 4096 -w /var/www/letsencrypt --key-file /etc/letsencrypt/rsa-certs/privkey.pem --ca-file /etc/letsencrypt/rsa-certs/chain.pem --cert-file /etc/letsencrypt/rsa-certs/cert.pem --fullchain-file /etc/letsencrypt/rsa-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
acme.sh --issue -d ihre.domain.de --server letsencrypt --keylength ec-384 -w /var/www/letsencrypt --key-file /etc/letsencrypt/ecc-certs/privkey.pem --ca-file /etc/letsencrypt/ecc-certs/chain.pem --cert-file /etc/letsencrypt/ecc-certs/cert.pem --fullchain-file /etc/letsencrypt/ecc-certs/fullchain.pem --reloadcmd "sudo /bin/systemctl reload nginx.service"
Verlassen Sie die Shell des neuen Benutzers
exit
und und fügen die neue Domain in Ihrer Nextcloud hinzu. Ersetzen Sie ihre.domain.de mit Ihrer „echten“ Domain:
sudo -u www-data php /var/www/nextcloud/occ config:system:set trusted_domains 1 --value=ihre.domain.de
Setzen Sie Ihre Domain als overwrite.cli.url. Ersetzen Sie dabei ihre.domain.de mit Ihrer Domain:
sudo -u www-data php /var/www/nextcloud/occ config:system:set overwrite.cli.url --value=https://ihre.domain.de
Legen Sie sich dann ein Skript an, dass zukünftig die Berechtigungen überprüft und korrigiert (permissions.sh):
nano /root/permissions.sh
Kopieren Sie alle Zeilen in die Datei permissions.sh.
Passen Sie ggf. das Datenverzeichnis im Skript an, sofern Sie nicht das exemplarische /daten-Verzeichnis während der Skriptinstallation verwendet haben.
#!/bin/bash find /var/www/ -type f -print0 | xargs -0 chmod 0640 find /var/www/ -type d -print0 | xargs -0 chmod 0750 chmod -R 775 /var/www/letsencrypt /etc/letsencrypt chown -R www-data:www-data /var/www /etc/letsencrypt chown -R www-data:www-data /daten chmod 0644 /var/www/nextcloud/.htaccess chmod 0644 /var/www/nextcloud/.user.ini exit 0
Markieren Sie das Skript als ausführbar und führen es dann direkt aus:
chmod +x /root/permissions.sh && /root/permissions.sh
Entfernen Sie Ihre bisher verwendeten Self-Signed-Zertifikate aus nginx und aktivieren Sie die neuen, vollwertigen und bereits gültigen SSL Zertifikate von Let’s Encrypt:
sed -i '/ssl-cert-snakeoil/d' /etc/nginx/conf.d/nextcloud.conf sed -i s/#\ssl/\ssl/g /etc/nginx/conf.d/nextcloud.conf service nginx restart
Über einen automatisch angelegten Cronjob
crontab -l -u acmeuser
werden Ihre SSL-Zertifikate fortan regelmäßig und vollautomatisch erneuert. Bitte nehmen Sie sich etwas Zeit und überprüfen den Sicherheitsstatus Ihres Servers. Ziel sollte mind. folgendes „A+“-Ergebnis:
Glückwunsch, das war es schon! Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!