ich habe seit einigen Jahren erfolgreich Nextcloud auf einen Debian Rootserver am laufen. Da der Speicherplatz aber langsam knapp und der Server vergleichsweise teuer ist ziehe ich gerade zu einem anderen Hoster um. Da Speicherplatz auf Servern aber gernerell vergleichsweise teuer ist und ich meine Daten lieber zuhause habe nun mein eigentliches Problem:
Mein Plan ist, dass Nextcloud auf meinem neuen Rootserver läuft, meine Daten aber auf einem RaspberryPi mit angeschlossenem USB RAID 1 liegen. Der steht zuhause.
Ich weiß, dass ich die External Storage App zum Einbinden des lokalen Servers benutzen kann. Mein Plan war aber eigentlich, dass ich die externen Daten einfach direkt per sshfs auf Betriebssystemebene mounte. Das ganze läuft dann noch durch einen Wireguard-Tunnel. Die Idee dahinter ist, dass ich so flexibler entscheiden kann, wie ich das ganze einbinden. Das ich bei dem Vorhaben auf die Zugriffsrechte achten muss und, dass der Server erst nach dem Einbinden des Verzeichnisses startet usw. ist mir klar, das bekomme ich hin.
Ob mein Vorhaben performance-technisch Sinn macht weiß ich noch nicht so recht.
Meine eigentliche Frage bezieht sich aber auf das Einbinden der Daten.
Bringt es etwas das ganze dauerhaft auf Betriebssystemebene zu mounten, in Bezug auf bspw. Geschwindigkeit, aber auch was Zugriffsrechte etc. angeht.
Was passiert, wenn der gemountete Ordner zwischenzeitlich nicht verfügbar ist (Raspberry hängt, Freundin zieht den Stecker, etc.) und wieder verfügbar wird? Wie geht Nextcloud damit um?
Ich freue mich auf die Antworten und bedanke mich im Vorraus für eure Mühe mir etwas Licht ins Dunkle zu bringen.
Einen Webserver auf einem “echten” Server will ich so oder so betreiben. Wenn Nextcloud da drauf mit läuft habe ich nur einen Webserver zu warten. Außerdem erhoffe ich mir davon einen Performancevorteil im Vergleich dazu, dass ich alles auf meinem Raspberry laufen lasse.
Von unterwegs greife ich weniger auf meine Dateien zu, sondern nutze Nextcloud mehr um auf Kalender und Kontakte zuzugreifen. Dazu möchte ich, dass der Server zuverlässig erreichbar ist. Deswegen auch meine Frage was passiert, wenn das Datenverzeichnis mal nicht verfügbar ist. Kalender und Kontakte sollten nach meinem Verständnis trotzdem erreichbar sein, oder?
Wenn du nur auf Kalender und Kontakte zugreifen willst, macht es imho noch weniger Sinn es so zu machen. Um den Kalender und die Kontakte auf dem Handy zu nutzen, brauchst du nicht dauernd Zugriff auf den Server. Neue Termin und Kalendereinträge werden dann einfach erst gesyncht, wenn du wieder zuhause bist.
Performancetechnisch macht es imho noch weniger Sinn. Das Bottleneck wird hier ja trotzdem der Raspi bleiben. Und sshfs über Wireguard performt ganz sicher nicht besser auf dem Raspi als HTTPS via NGINX oder Apache
Ich würde Nextcloud ganz normal zuhause auf dem Raspi installieren. Wenn du keine Portfreigaben machen willst kannst du von unterwegs Wireguard nutzen um ab und zu auf Dateien zuzugreifen.
Das Problem bei deiner Lösung ist, dass die Performance IMMER schlecht sein wird, selbst wenn du von Zuhause auf deine Dateine zugreifst. Weil die Verbindung ja immer über den externen Web-Server und zurück via sshfs in dein lokales LAN geht. Mit meiner Lösung hast du nur von extern “schlechtere” Performance. Wobei Wireguard recht effizient läuft, wenn nicht noch sshfs als Performancebremse im Spiel ist.
Ok, das stimmt schon. Ist wahrscheinlich wirklich klüger es einfach komplett auf dem Raspi laufen zu lassen. Dann ist der größte Bottleneck wahrscheinlich meine Uploadgeschwindigkeit (beim Fernzugriff). Daher war meine Überlegung auch, dass die Einbußen bei SFTP über Wireguard wahrscheinlich, aufgrund des relativ geringen Uploads (40 Mbit/s), zu vernachlässigen seien.
Trotzdem nur rein zum Verständnis:
Was wäre die bessere Alternative zu SFTP? NFS? Samba?
s. Punkt 2 meines Eröffnungspost: Was macht Nextcloud, wenn der Datenordner zwischendurch “weg” ist und plötzlich wieder auftaucht?
Wie wird das ganze geroutet, wenn ich Nextcloud auf dem Raspberry laufen habe und per DynDNS von zu Hause aus darauf zugreife? Oder sollte ich dann lieber direkt die interne Adresse ansprechen?
Zu 1. Von extern sollte man nur SSH oder WebDav (HTTPS) nutzen. SAMBA und NFS sollte man aus sicherheitstechnischen Gründen nicht über das Internet zugänglich machen. Wenn du SSH oder HTTPS nutzt brauchst du dann auch kein VPN, weil SSH oder HTTPS ja schon verschlüsselt ist. Imho macht es aber, wie schon gesagt, keinen Sinn einen Speicher, der bei dir zuhause steht in eine externe Nextcloud einzubinden, wenn du hauptsächlich von Zuhause auf die Dateien zugreifen willst.
zu 2: Ich bin nicht 100% sicher. Ich denke aber der Zugriff auf den Kalender und die Kontakte müsste funktionieren. Kalender und Kontakte sind unabhängige Apps.
zu 3: Wenn du es dauerhaft via DynDNS von extern zugänglich machst, musst du die DynDNS-Adresse ansprechen. Im Router sollte dann NAT-Loopback/Hairpinning aktiv sein. Wenn du nur Zuhause im LAN und von extern via VPN zugreifst, kannst du die lokale Adresse/IP ansprechen. DynDNS brauchst du dann eigentlich nur für das VPN.
Daher ja auch mein Gedanke das ganze durch einen VPN-Tunnel laufen zu lassen. Dass SSH von Haus aus verschlüsselt ist, ist mir klar. Ich hatte nur die Idee die SSH Ports nicht öffentlich lauschen und sprechen zu lassen (auf meinem alten Server habe ich ständig Benachrichtigungen über gescheiterte SSH-Verbindungsversuche bekommen, trotz Portänderung). Daher dachte ich eine weitere Ebene an Sicherheit ist ja nicht verkehrt. SMB und NFS könnte man ja ebenso durch das VPN schicken. Aber gut, ist ja nun hinfällig
Meine Angst wäre eher, dass Nextcloud dann anfängt wild Daten zu löschen oder so. In der Einrichtung und Wartung von Linuxsystemen bin ich glaube ich mittlerweile ganz gut, nur das theoretische wissen WIE etwas funktioniert fehlt mir hier und da noch. Ich kann machen DASS es funktioniert
Der Datenverkehr geht also nicht durch irgendeinen Server des ISP oder ähnliches, wenn ich von zuhause auf die DynDNS-Adresse der Cloud zugreife, ich hoffe das habe ich jetzt richtig verstanden. NAT-Loopback unterstützt die Fritz!Box glaube ich nicht, zumindest kann ich keine Einstellungen diesbezüglich vornehmen. Wenn ich aber die entsprechenden Ports weiterleiten lasse funktioniert es (zumindest bei SSH), in der Vergangenheit konnte ich so auch auf einen Raspi-Webserver zugreifen.
Vielen lieben Dank für die ganzen Antworten und Ideen zu meinen Überlegungen. Dann werde ich mich mal an die Arbeit machen
Wenn du SSH mit Key-Auth nutzt, ist ein erfolgreicher BruteForce-Angriff nahezu ausgeschlossen. Plus kann man einen SSH Zugang noch weiter absichern… Stichwort: Fail2ban. Ein VPN ist nicht per se sicherer, hat aber je nach Konfiguration andere Vorteile und Usecases. Das und ob SSH über VPN Sinn macht wäre aber eine eigene Diskussion für einen anderen Tag Ich würde aber wie gesagt sowieso alles auf dem Pi laufen lassen und dann allenfalls für den Zugriff von aussen ein VPN nutzen.
Wenn die Nextcloud keinen Zugriff auf den externen Speicher ( via External Storage App) hat, werden diese Datein einfach nicht angezeigt. Wenn das komplette Datenverzeichnis der Nextcloud auf einem externen Share liegt, funktioniert natürlich nicht mehr viel, wenn dieser nicht erreichbar ist. Gelöscht werden sollte imho aber auch dann nichts.
Hier ein Link der verständlich erklärt wie NAT-Loopack funktioniert: NAT-Loopback oder "wie DynDNS fürs interne Netzwerk fit gemacht werden kann" | datamate Wenn es aber mit der SSH-Verbindung bisher funktioniert hat, wird es auch mit anderen Protokollen/Ports wie HTTPS oder einem VPN funktionieren. Offenbar macht die Fritzbox NAT-Loopback "out of the box ".
Vielen lieben Dank für die ganzen Antworten und Ideen zu meinen Überlegungen. Dann werde ich mich mal an die Arbeit machen
Gern geschehen. Und ich wünsche dir viel Erfolg mit deinem Projekt.