Datenschutz im digitalen Alltag

Damit Privates privat bleibt

Pakete

Exkurs: Nextcloud als Snap installieren

Die Einrichtung und Pflege einer Nextcloud und eines gesamten LAMP-Stacks ist für viele Anwender eine abschreckende Herausforderung. Leichter ist dies mit einem fertigen Snap Paket, das direkt von der Nextcloud-Community bereit gestellt wird und eine komplette Nextcloud-Umgebung mitbringt.

Dieser Beitrag ist ein Exkurs der Serie Cloud in Eigenregie (siehe: Cloud in Eigenregie I: Vorbemerkungen). Dort wurde lediglich abstrakt auf die Installationsmöglichkeiten einer Cloud Bezug genommen. 

Die Snap-Variante von Nextcloud läuft auf jeder Distribution, die Snap-Pakete unterstützt. Als Zusatzmodule steht dies bereits für die meisten Distributionen bereit. Direkt in den Paketquellen hat dies neben Ubuntu auch Debian 10 "Buster". Die anderen unterstützten Distributionen dürften kaum Relevanz für Server besitzen.

Nextcloud installieren

Zuerst muss Snap für Debian erst einmal installiert werden.

# apt-get install snapd

Anschließend installiert man das Snap-Paket. Zuerst lädt die Routine dann noch die fehlende Core-Umgebung für Snap-Pakete um anschließend das Nextcloud Paket einzurichten.

# snap install nextcloud

Das Snap-Paket bringt neben der Nextcloud auch noch einen kompletten LAMP-Stack mit: Apache, MySQL PHP und Redis. Dies benötigt natürlich ein wenig Speicherplatz.


Exkurs: Ports

Wichtig ist, dass kein anderer Apache-Server auf die Standardports lauscht, da diese sich ansonsten in die Quere kommen. Das dürfte aber kaum ein Problem sein, denn wer bereits einen kompletten LAMP-Stack pflegt wird sich nicht zusätzlich noch das Snap-Paket einrichten und dadurch doppelten Ressourcenverbrauch riskieren. Wer dennoch bereits einen LAMP-Stack nutzt muss die Ports des Snap-Pakets ändern. Beispielsweise auf folgende Konfiguration:

# snap set nextcloud ports.http=81

# snap set nextcloud ports.https=444


Snap-Pakete haben nur limitierte Zugriffsrechte auf das System. Nextcloud bietet bei der Einrichtung die Möglichkeit einen spezifischen Speicherort für die Daten außerhalb der Nextcloud-Umgebung festzulegen. Das sollte man auch unbedingt machen (unabhängig ob Snap-Variante oder nicht!). Damit das Nextcloud-Snap dies allerdings darf muss noch folgender Befehl eingegeben werden:

# snap connect nextcloud:removable-media

Bevor man die Initialisierung startet legt man nun noch den Speicherpfad für die Daten fest. Dazu bearbeitet man die folgende Datei:

# nano /var/snap/nextcloud/current/nextcloud/config/autoconfig.php

In folgender zeile sollte der anvisierte Speicherpfad stehen:

'directory' => '/media/Daten/nextcloud',

Bei Problemen mit der Installation kann man Versuchen die Rechte an dem Ordner dem Apache-Nutzer zuzuweisen. Auf manchen Setups ist dies aber scheinbar nicht notwendig.

# chown www-data:www-data /media/Daten/nextcloud

Anschließend muss man noch den PHP Service neustarten:

# snap restart nextcloud.php-fpm

Abschließend ruft man die Instanz im internen Netz über die interne IP-Adresse oder den Hostname des Servers auf. Wenn alles funktioniert erscheint die übliche Initialisierungsroutine von Nextcloud. Hier legt man dann noch die Zugangsdaten für das Konto fest.

Sofern man die Nextcloud lediglich im internen Heimnetz nutzen möchte war es das bereits. Das Snap-Variante reagiert nicht so performant wie eine normale Installation, bedeutet aber deutlich weniger Wartungsaufwand und erfordert viel werniger Kenntnisse in der Server-Administration. Insbesondere was die Einrichtung eines Redis-Cache und ähnliches betrifft.

Let's Encrypt Zertifikat einrichten

Sollte eine Erreichbarkeit außerhalb des Heimnetzes erforderlich sein, muss man für eine verschlüsselte Verbindung zusätzlich ein Zertifikat anfordern und einbinden. Seit einigen Jahren nutzt man dafür eigentlich ausschließlich Let's Encrypt. Eine Erreichbarkeit via DynDNS und Port-Freigabe ist hierfür erforderlich, siehe: Externer Zugriff auf den Server).

Die Einrichtung ist dann bei der Snap-Variante sehr einfach. Folgender Befehl startet die Routine:

# nextcloud.enable-https lets-encrypt

Hier bestätigt man die Anforderungen und trägt eine Mail-Adresse und die Domain, unter der die Nextcloud-Instanz zu erreichen ist, ein. Anschließend kann man die Nextcloud-Instanz via HTTPS Verbindung aufrufen. 


Bilder:
Einleitungs- und Beitragsbild von harshahars via pixabay

"

Tags: Nextcloud, Let's Encrypt, HTTPS, Snaps

Ergänzungen zum Artikel

Weitere Informationen können den Nutzungsbedingungen entnommen werden.

Markus
Lustigerweise hab ich Nextcloud erst vorgestern neu aufgesetzt.
Hab dafür Nextcloudpi benutzt, bietet fertige Images für diverse Einplatinenrechner und Installationsscripte an.
Sowieesaussieht auch von der Nc Community.

Habe nach deiner Anleitung installiert
USB-Stick auf /srv/nextcloud gemountet (fstab)
Das Verzeichnis in /var/snap/nextcloud/current/nextcloud/config/autoconfig.php angepasst.

Beim ersten Start kommt :
Das Datenverzeichnis /snap/nextcloud/12759/htdocs/data kann nicht erstellt oder es kann darin nicht geschrieben werden.

Obwohl das Datenverzeichnis gar nicht in /snap/nextcloud/12759/htdocs/data liegt

Eine Idee ??

Gerrit
Das Datenverzeichnis muss natürlich dem Servernutzer gehören bzw. er muss dort Lese- und Schreibberechtigung haben. Das habe ich oben nicht erwähnt.

# chown www-data:www-data /pfad/zum/daten/verzeichnis

norbert
Hat leider nichts gebracht
Es kommt weiterhin
Das Datenverzeichnis /snap/nextcloud/12759/htdocs/data kann nicht erstellt oder es kann darin nicht geschrieben werden.

Ich habe Armbian auf einem Odroid C2 laufen
Das kanns aber wohl nicht der Grund sein

Gerrit
Das ist ein recht spezielles Setups, damit kenne ich mich nicht aus. Da musst du die entsprechenden Supportforen aufsuchen.
Peter
Ist zwar schon etwas her, aber vielleicht hilft das. Der Pfad " /snap/nextcloud/12759/htdocs/data" ist nur vom root einsehbar bzw die Rechte hat der root user. Ich war bis jetzt auch noch nicht in der Lage, dieses zu ändern. Vielleicht hilft es (noch nicht getestet), wenn du dich als root anmeldest (sudo su) und danach probiert die Ordner-Rechte auf einen anderen User zu übertragen. Viel Erfolg
Gerrit
Ich hatte das tatsächlich nochmal getestet. Die Lösung ist absolut simpel. Der neue Datenordner muss einfach root gehören.

Mir ist das in meinem ursprünglichen Setup nicht aufgefallen, da ich dort eh mit einer Root-Shell angemeldet war. Bei Systemen auf denen man mit Sudo arbeitet muss man das natürlich bedenken.

Lars
Habe es nach der Anleitung eingerichtet und es funktioniert soweit einwandfrei. Aber wie kann ich jetzt noch ein Let´s Encrypt Zertifikat einrichten, wenn ich die Ports auf 81 und 444 festgelegt hab? Das Automatische einrichten erwartet leider die Ports 80 und 443 welche bei mir aber leider schon anderweitig verwendung finden.
Gerrit
Ich konnte dazu nur folgendes finden:
Zitat :
Note: Let's Encrypt will expect that Nextcloud is exposed on ports 80 and 443. If you change ports and don't put Nextcloud behind a proxy such that ports 80 and 443 are sent to Nextcloud for that domain name, Let's Encrypt will be unable to verify ownership of your domain and will not grant certificates.

https://github.com/nextcloud/nextcloud-snap

Selbst habe ich so ein Setup nicht im Einsatz und kann daher dazu nichts sagen.

5000 Buchstaben übrig


  • 1

Über [Mer]Curius

Immer größere Teile unseres Lebens haben sich in den vergangenen Jahren digitalisiert. Es gibt heute unzählige Dienste und jeder Mensch hinterlässt permanent Spuren. Die Datensätze, die hier entstehen wecken viele Begehrlichkeiten. Es besteht aber auch die Möglichkeit durch gezielte Maßnahmen die eigene Datenspur zu minimieren und Daten effektiv und sicher zu schützen. Damit entgeht man zwar nicht jeder Überwachungsmaßnahme, erlangt aber zumindest teilweise die Kontrolle über die eigenen Daten zurück.

→ Mehr über [Mer]Curius