Problem
Ich möchte eine Möglichkeit, unter anderem, meine Dateien, Kalender und ToDo-List auf allen meinen Geräten verfügbar zu haben und ggf. zu synchronisieren. Cloudlösungen bieten das auch an, jedoch zu begrenzter Kapazität, oder laufenden Abonnement-Kosten.
Lösung
Selfhosted Nextcloud-Instanz in einem Dockercontainer. Zur Härtung der Sicherheit ist der Zugang bewusst nur im lokalen Netz verfügbar. Sobald ich mein Heimnetz verlasse, verbinde ich mich via WireGuard ins Heimnetz.
Umsetzung
Installation
Das Containerpaket Nextcloud AIO wird über Docker installiert. Da ich es lokal betreiben möchte und nur nach Bedarf über VPN erreichbar sein soll, installiere ich wie in der offiziellen Dokumentation beschrieben und setze die Domäne via AdGuards DNS-Rewrite auf die lokale IP-Adresse des Apache Reverse Proxys.
Docker Compose File
name: nextcloud-aio
services:
nextcloud-aio-mastercontainer:
image: ghcr.io/nextcloud-releases/all-in-one:latest
init: true
restart: always
container_name: nextcloud-aio-mastercontainer
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "8080:8080/tcp"
env_file:
- .env
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
networks:
nextcloud-aio:
name: nextcloud-aio
driver: bridge
Synchronisation
Geräte im Heimnetz
Über die angebotene Clientsoftware lässt sich zügig eine Verbindung aufbauen. Eine Ordnersynchronisation lässt sich dann ebenfalls einrichten.
Mobile Geräte
Neben der offiziellen App muss man hier noch zusätzlich WireGuard einrichten, sodass eine Verbindung hergestellt werden kann.
Fazit
Bei Cloudanbietern lassen sich vermutlich mit weniger Reibung gewisse Dienste und Services integrieren; ich denke hier speziell an Google Calendar auf Android Mobilgeräten. Dennoch konnte es allen Anforderung sehr gut nachkommen.