Voor het verbeteren van de toegankelijkheid van de thuisgehoste opslag voor andere gebruikers heb ik besloten om nextcloud te instaleren, gezien dit niet stabiel genoeg functioneerde als een app in truenas heb ik ervoor gekozen dit in een docker container te draaien op ubuntu server via docker compose met een koppeling naar de NAS voor de redundancy via RAIDZ1 en andere tools voor schijfbeheer.
Eerst had ik natuurlijk de Ubuntu server geinstalleerd maar gezien dit een standaard process is en een menu volgen is heb ik dit hier achterwege gelaten.
Vervolgens had ik de dataset voor Nextcloud aangemaakt en de NFS Share opgezet zoals hieronder te zien
Vervolgens was het tijd voor de werkzaamheden op de Ubuntu server, eerst ging ik de koppeling met de NAS opzetten bij het opstarten van de server, Hieronder zie je hoe dit gedaan is doormiddel van screenshots.
Vervolgens voer ik de volgende command uit om alle schijven (-a) te koppelen en meteen meer info te krijgen door de -v (verbose) zodat ik meteen zeker weet of het gelukt is, omdat hij al gemount is ten tijden van deze screen staat er already mounted
Om Docker werkend te krijgen, moeten eerst de benodigde pakketten worden geïnstalleerd. Ik heb hiervoor de volgende commando's uitgevoerd om te starten met een up-to-date systeem:
Stap 1: Systeem updaten en Docker installeren sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Stap 2: Docker Compose bestand aanmaken Vervolgens heb ik met Nano het Compose-bestand aangemaakt op de volgende locatie: sudo nano ~/nextcloud-server/docker-compose.yml
Stap 3: Configuratie en Cloudflare Tunnel In dit bestand heb ik de vereiste configuratie voor Nextcloud ingevoerd. Tegelijkertijd is er een Cloudflare Tunnel opgezet om de bestanden buiten het lokale netwerk op een beveiligde manier bereikbaar te maken.
Uit eerdere tests bleek dat voor een volledige functionaliteit via Cloudflare het forceren van HTTPS noodzakelijk is dit heb ik dan ook direct ingesteld. Daarnaast is het 'hostdomain' geconfigureerd naar het specifieke subdomein waaraan de tunnel gekoppeld is. In de code hieronder heb ik met commentaar extra uitleg toegevoegd over de werking van de verschillende onderdelen.