Tegenwoordig maak ik uitgebreid gebruik van docker containers om op een gemakkelijk manier applicaties te installeren die ge-isoleerd draaien en makkelijk te backuppen zijn als je de ‘docker-compose.yml’ file slim configureert.
Deze keer gaat heb ik een docker container gebruikt voor Nextcloud waarvoor ik de informatie van deze site heb gebruikt.
Met Nextcloud is het mogelijk om in eigen beheer cloudopslag te draaien. Alle onderdelen, inclusief de enterprise functionaliteit, worden als open source aangeboden en het verdienmodel is gelijk aan wat Red Hat doet, namelijk het leveren van betaalde ondersteuning aan grote klanten.
Configureren
Ik maak dus gebruik van een ‘docker-compose.yml’ file in een docker omgeving. Hiervoor heb ik een eigen sub-directory aangemaakt in mijn ‘/home/henri/docker’ directory en hierin de volgende inhoud gezet (pas aan naar jouw behoeften):
volumes: nextcloud: db: services: db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - /home/henri/docker/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=geheim - MYSQL_PASSWORD=geheim - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud restart: always ports: - 8714:80 links: - db volumes: - /home/henri/docker/nextcloud/html:/var/www/html environment: - MYSQL_PASSWORD=geheim - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db - NEXTCLOUD_ADMIN_USER=gebruiker - NEXTCLOUD_ADMIN_PASSWORD=geheim
Hierna start je de docker container op, door in de directory waar je de ‘docker-compose.yml’ file hebt staan, het volgende commando uit te voeren:
docker compose up -d
Ik heb in mijn ‘docker-compose.yml’ file ingesteld dat de web-interface op poort 8714 draait. Hier ging ik vervolgens met mijn browser naar toe en kreeg de melding dat mijn domein niet vertrouwd werd. Dit heb ik opgelost door een aanpassing te maken in de configuratie file:
‘\home\henri\docker\nextcloud\html\config\config.php’
Voor de ’trusted_domains’ setting heb ik hier mijn lokaal netwerk path toegevoegd en de domein-naam van mijn reverse-proxy:
'trusted_domains' => array ( 0 => 'localhost', 1 => '192.168.1.*', 2 => 'mydomain.net', ),
Hierna start je de docker container opnieuw op en kun je gebruik maken van Nextcloud.
Updaten
Om Nextcloud te updaten heb ik een simpel ‘update.sh’ shell script gemaakt met de volgende inhoud:
docker compose pull docker compose up -d
Maak deze uitvoerbaar met het commando:
chmod +x update.sh
Vervolgens kun je updaten door het script als volgt aan te roepen:
./update.sh
Reverse Proxy
Aangezien ik Nextcloud ook gemakkelijk van buiten mijn netwerk willen kunnen gebruiken zonder port-forward in mijn router (die vaak toch geblokt worden door bedrijfsomgevingen) heb ik een reversed proxy setting gemaakt in mijn Apache2 configuratie. Edit hiervoor de file ‘/etc/apache2/site-available/default.conf’ en voeg hier de volgende configuratie toe (pas aan naar jouw instellingen):
######################################################################################## # # mydomain.net (Nextcloud) # ######################################################################################## <VirtualHost *:80> ServerAdmin nextcloud@mydomain.net ServerName mydomain.net ProxyPreserveHost On ProxyRequests Off ProxyPass / http://192.168.1.25:8714 ProxyPassReverse / http://192.168.1.25:8714 RewriteEngine on RewriteRule /(.*) http://192.168.1.25:8714/$1 [P,L] RewriteRule ^/\.well-known/carddav http://192.168.1.25:8714/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/caldav http://192.168.1.25:8714/remote.php/dav/ [R=301,L] ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log WithHost </VirtualHost>
Na deze aanpassing moet je de Apache2 server opnieuw starten met het commando:
service apache2 restart
Gebruik
Met Nextcloud is meer mogelijk dan je zou denken als je deze via een web-browser benadert:
Raadpleeg het internet voor meer informatie over het gebruik van Nextcloud. Zie bijvoorbeeld ook de volgende bronnen voor een snelle start:
Desktop en Smartphone clients
Er zijn diverse clients voor verschillende operating systems beschikbaar op de volgende lokatie. Op deze manier kun je handig automatisch al je files op al je systemen automatisch synchroniseren.
Tevens zijn er ook nog Apps voor je Smarthone (IOS en Android).