Nextcloud mit nur einem Skript installieren

Nextcloud 18 und PHP 7.4
mit nur einem Skript installieren

* JETZT MIT ONLYOFFICE *


Mit nur einem Skript installieren Sie auch als „Newbie“ Ihre eigene Nextcloud!
Die Mindestvoraussetzungen für diese Skripte sind minimal
Debian 10.x AMD64, Ubuntu 18.04.x AMD64
ein Benutzer mit sudo-Berechtigungen

Aktualisierungshistorie: hier

Die Installationsmedien für den zugrundeliegenden Linux-Server erhalten Sie hier:

Ubuntu: Server-Installation - SSH wird vorausgesetzt (s. Bild zuvor)
sudo -s
Debian: Net ISO Installation - Standardsystemwerkzeuge und SSH werden vorausgesetzt (s. Bild zuvor)
su -

Wechseln Sie mittels sudo zu Ihrem privilegierten Benutzer:

sudo -s

Laden Sie das Installationsskript nach /usr/local/src herunter:

cd /usr/local/src && apt install wget -y
Debian:
wget https://it-services.c-rieger.de/index.php/s/ttcoBsAKrzcsjnW/download -O install.zip
Ubuntu:
wget https://it-services.c-rieger.de/index.php/s/78tGw5TQin5HHko/download -O install.zip

und entpacken dort das Skript:

apt install unzip -y && unzip install.zip

Markieren Sie das Skript als „ausführbar“

chmod +x install.sh

und führen es dann zur Installation aus:

./install.sh

(1) Sie werden nach
– einem Nextcloud-Administratornamen (Your Nextcloud Administrator),
– dem dazugehörigen Passwort (Your Nextcloud Administrator password) und
– dem Datenpfad (Your Nextcloud datapath)
gefragt, bevor die Installation beendet und

(2) 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 das Zertifikatshandling erstellen wir dann einen dedizierten Benutzer und fügen diesen der www-data Gruppe hinzu:

adduser acmeuser
usermod -a -G www-data acmeuser

Wechseln Sie in die Shell des neuen Benutzers um die Zertifikatssoftware zu installieren und verlassen diese Shell danach wieder:

su - acmeuser
curl https://get.acme.sh | sh
exit

Legen Sie drei Verzeichnisse mit den entsprechenden Berechtigungen an, um die neuen Zertifikate darin speichern zu können:

mkdir -p /var/www/letsencrypt/.well-known/acme-challenge /etc/letsencrypt/rsa-certs /etc/letsencrypt/ecc-certs
chmod -R 775 /var/www/letsencrypt /etc/letsencrypt && chown -R www-data:www-data /var/www/ /etc/letsencrypt

Wechseln Sie erneut in die Shell des neuen Benutzers

su - acmeuser

und requestieren (beantragen) die SSL-Zertifikate. Ersetzen Sie dabei your.dedyn.io mit Ihrer Domain :

acme.sh --issue -d your.dedyn.io --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
acme.sh --issue -d your.dedyn.io --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

Verlassen Sie die Shell des neuen Benutzers

exit

und legen 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:

#!/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 /var/nc_data
chmod 0644 /var/www/nextcloud/.htaccess
chmod 0644 /var/www/nextcloud/.user.ini
exit 0

Hinweis:
Bitte passen Sie ggf. das Datenverzeichnis im Skript an, sofern Sie nicht /var/nc_data verwendet haben.

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/ssl.conf
sed -i s/\#\ssl/\ssl/g /etc/nginx/ssl.conf
service nginx restart

Um die SSL-Zertifikatserneuerung vollständig zu automaisieren können Sie wie hier beschrieben vorgehen.

Glückwunsch, das war es schon! Über eine Spende würden sich meine Frau, meine Zwillinge und ich sehr freuen!

© Carsten Rieger IT-Services

Carsten Rieger

Carsten Rieger ist ein angestellter Senior IT-Systemengineer und zudem auch als Kleinunternehmer (Freelancer) aktiv. Er arbeitet seit mehr als 15 Jahren im Linux- und Microsoftumfeld, ist ein Open Source Enthusiast und hoch motiviert, Linux Installationen und Troubleshooting durchzuführen. Dabei arbeitet er vorrangig mit Debian und Ubuntu Linux, Nginx und Apache Webservern, MariaDB/MySQL/PostgreSQL, PHP, Cloud Infrastrukturen (bspw. Nextcloud) und auch vielen anderen Open Source Projekten (bspw. Roundcube). Zudem engagiert er sich ehrenamtlich für die Dr. Michael & Angela Jacobi Stiftung - und das schon seit mehr als 7 Jahren.