¿QUÉ ES NEXTCLOUD?

Nextcloud, es una herramienta completa orientada a empresas y particulares, cuya función es, actuar como un servidor de almacenamiento en la nube de fotos, datos, archivos. ¡Y mucho más! Está desarrollado con el objetivo de ofrecer rentabilidad y productividad a empresas, aunque su uso es completamente útil para particulares. Por ello permite una gran personalización a través de la instalación de apps o módulos, que permite ampliar funcionalidades más completas, según las necesidades.

La Nube Privada Nextcloud es una solución IT que favorece a las empresas, no solo para la mejora de procesos de organización internos, sino para recopilar toda la información en un único lugar, gestionar proyectos y tareas, mejorar la comunicación tanto interna como externa con clientes y proveedores, así como para integraciones con correo electrónico o sistema de trabajo en línea.

El texto arriba es la presentación de nextcloud en el sitio oficial https://nextcloud.com.es/

Personalmente no es una herramienta que uso mucho (casi nada) pero conozco su potencial en un entorno colaborativo, lugar donde yo no estoy por querer hacer algo que la gente ni si quiera quiere oír hablar, o sea que puede que perdamos internet como la conocemos ahora.
Pero de todas formas voy a poner la receta aquí para referencia y ayuda en el caso haga falta en el futuro.

Pondré la situación más simple en un único contenedor con base de datos SQLite. Esta no sirve en un entorno colaborativo, pero es más que suficiente para probar nextcloud con un usuario.

Doy por descontado que vas a instalar nextcloud en el server raspberrypi4 con raspberryOS buster de 32bit, expuesto a internet con traefik 1.7, con portainer, que la carpeta de docker está en /opt/nextcloud y la ip del raspberry es 192.168.0.22
También ya has registrado tu dominio y subdominio que con un gran esfuerzo de imaginación, en este ejemplo será nextcloud.tormentasolar.win

Primero, vete a descargar las fuentes desde aquí: https://github.com/nextcloud/docker

cd /opt
git clone https://github.com/nextcloud/docker.git
cd nextcloud

luego añade un simple docker-compose.yml modificado para que funcione con traefik

version: '2'
services:
  nextcloud:
    ports:
      - '8080:80'
    image: nextcloud
    restart: always
    networks:
      - web
    labels:
      # This one is important since we default to not expose
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:nextcloud.tormentasolar.win"
      - "traefik.docker.network=web"
    volumes:
      - "/opt/nextcloud/WWW:/var/www/html"
networks:
  web:
    external: true

Claramente tu tienes que poner tu dominio en lugar del ejemplo nextcloud.tormentasolar.win

Pongo aquí un docker-compose.yml con base de datos mariadb (que no he probado, pero debería funcionar)

version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: linuxserver/mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
      - "/opt/nextcloud/WWW:/var/www/html"
    environment:
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db
    networks:
      - web
    labels:
      # This one is important since we default to not expose
      - "traefik.enable=true"
      - "traefik.frontend.rule=Host:nextcloud.tormentasolar.win"
      - "traefik.docker.network=web"
networks:
  web:
    external: true


La imagen de mariadb es de linuxserver (https://hub.docker.com/r/linuxserver/mariadb) dado que la oficial no suporta arm32.

Acuérdate de poner la contraseña de la base de datos en las tres lineas.
Con esto ya lo tienes. Lanza el docker con

docker-compose up -d

y en pocos minutos podrás entrar en tu nuevo entorno de nextcloud desde tu red interna a esta dirección: http://192.168.0.22:8080

Allí podrás configurar tu instancia de nextcloud a tu gusto y explorar sus innumerables opciones.

Usando traefik la tendrás expuesta a internet, pero probablemente desde fuera no te permitirá acceder dado que instalaste desde tu red privada (y a la inversa también, si instalas desde afuera no podrás acceder desde tu red privada).

Hay que modificar una linea de configuración.

Si has usado la configuración que te he propuesto con los mismos recorridos, habrás notado que se ha creado la carpeta /opt/nextcloud/WWW.
Se trata de un mount bind a la carpeta dentro del contenedor, así que estos ficheros no están realmente alli donde los ves, pero puedes modificarlos.

Apaga nextcloud desde portainer o desde el terminal con
docker ps -a
y
docker stop <CONTAINER ID>
y luego edita el fichero:

mcedit /opt/nextcloud/WWW/config/config.php

y en el la sección ‘trusted_domain’ añade la linea de tu dominio, con en este ejemplo:

  'trusted_domains' => 
  array (
    0 => 'nextcloud.tormentasolar.win',
    1 => '192.168.0.22',
  ),

la orden de entrada da igual. Ahora vuelve a lanzar el contenedor de nextcloud.
Y con esto podrás entrar desde internet con tu móvil usando la app descargada desde f-droid.

Espero que te sirva

Comments are closed.