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).