Nextcloud con Docker

Este tutorial va a ser sencillo, ya que vamos a utilizar parte de los conocimientos de otros post. Pero antes de ir al grano...

¿Qué es Nextcloud?

Cuando algún amigo me pregunta yo le digo, es como Dropbox pero en tu casa y con los GB que tengas en tu servidor.
¿Cuanto te cuesta tener 50, 100 o 1024GB en un almacenamiento en la nube? Un dinero y lo peor de todo es que es recurrente, si dejas de pagar, dejas de tenerlo. Ah! y no solo eso, la empresa que te aloja esa información tiene acceso a ella, como posibles documentos clave, fotos de tu novia o hijos, ... Mucha información con la que entrenar posibles modelos de IA que está tan de moda o al alcance de posibles Hackers que puedan revender tu información.
Tu información debe ser tuya y no de terceros que no conoces.

Vale quiero Nextcloud ¿cómo lo instalo en mi servidor?

Muy sencillo, vamos a nuestro dashboard Homarr, pinchamos en nuestro Portainer.
Icono Portainer dentro de un dashboard de Homar
Creamos un nuevo stack y en él pegamos lo siguiente:
version: '3'

volumes:
  db:

services:
  db:
    #image: mariadb:10.5
    image: mariadb:latest
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql    
    environment:
      - MYSQL_ROOT_PASSWORD=$$miP4ssw0rdFuerte #Cambia esto
      - MYSQL_PASSWORD=//mi0tr0passw0rdFuerte #Cambia esto
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      #- MARIADB_AUTO_UPGRADE="1"

  nextcloud:
    image: nextcloud
    ports:
      - 8084:80

    links:
      - db
    volumes:
      - ./nextcloud:/var/www/html ##Cambia 'nextcloud' a tu almacenamiento donde quieras tener los archivos
    restart: always
    environment:
      - PHP_MEMORY_LIMIT=1024M
      - NEXTCLOUD_MEMORY_LIMIT=1024M
      - MYSQL_PASSWORD=//mi0tr0passw0rdFuerte
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
Una vez copiado y sustituidas las líneas necesarias le damos a Deploy stack. Entramos via web e seguimos los pasos que pide de manera muy intuitiva. Con esto también crearemos nuestro usuario.
Muy importante a tener en cuenta, es el archivo ./nextcloud/config/config.php donde podrás configurar cosas tan importantes como un acceso por HTTPS previamente configurado en NGINX Proxy Manager.
Para añadir el domino por https a nuestro Nextcloud cambiar y añadir esto en config.php
'trusted_domains' =>
array (
0 => '192.168.0.x:8080',
1 => 'midominiohttps.creadoconNPM.duckdns.org',
),
-------
'overwrite.cli.url' => 'https://midominiohttps.creadoconNPM.duckdns.org'
'overwriteprotocol' => 'https'
Y con esto ya puedes instalarte el cliente tanto en Mac, Windows, Linux, Android, Ios...

Un problema que tuve y su solución

En mi Nexcloud uso varios usuarios para separar cosas personales de profesionales y de personas con las que vivo y usamos el servidor. En un PC con windows la última versión del cliente no funciona bien cuando usas varios usuarios y los sincronizas. Experimenté esto con tres PCs con W10 diferentes. La solución... Bajar de versión de cliente.
La versión que utilizo para evitar este problema es la 3.7.4, bastante lejos de la actual pero es la que me funciona.