Kontakt

Carsten Rieger IT Services
Am Danglfeld 8 | 83132 Pittenhart
Telefon: 08624.9009794
E-Mail: info@c-rieger.de

Nextcloud 23 (Nextcloud Hub II) Installationsskript

Achtung, der nachfolgende Artikel wurde durch den zuvor genannten Artikel ersetzt!

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. 10 – 15 Minuten Zeit

Sowohl für das aktuelle Nextcloud 23, als auch für das neue Nextcloud 24 Release sowie für das neue Betriebssystem Ubuntu 22.04 LTS haben wir ein neues Skript erstellt. Weitere Informationen finden Sie hier.

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:

Für die Installation installieren wir zuerst git und erzeugen dann einen Arbeitsordner:

sudo -s
mkdir /nextcloud-installation
cd /nextcloud-installation

Laden wir nun das Skript herunter und wählen das entsprechende Skript, abhängig vom Serverbetriebssystem aus:

apt install -y git
git clone https://codeberg.org/criegerde/nextcloud-archived.git

Wählen Sie das Skript aus und kopieren es durch nachfolgendes Statement:

cp /nextcloud-installation/nextcloud-installationsskripte/ubuntu-install.sh /nextcloud-installation/install.sh

oder

cp /nextcloud-installation/nextcloud-installationsskripte/debian-install.sh /nextcloud-installation/install.sh

Starten Sie die Installation indem Sie das Skript als ausführbar markieren und dann ausführen:

chmod +x /nextcloud-installation/install.sh
cd /nextcloud-installation
./install.sh

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: Deinstallation / Neuinstallation

Möchten Sie die vorherige Installation wiederholen oder eine Neuinstallation beginnen, so führen Sie vorab das uninstall.sh Sktipt aus:

/nextcloud-installation/uninstall.sh

Nach der Deinstallation kann die Installation erneut durchgeführt werden.

/nextcloud-installation/install.sh

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 2 --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!

Carsten Rieger IT-Services | Slogan