¿Nextcloud en Raspberry Pi: sustituto de Google Cloud?

Compartelo con otros!

Desde que Google anunció que el plan ilimitado para subidas de fotos pasaría a ser de pago, empece a buscar una alternativa comparable, basada en elementos asequibles o incluso ya existentes en casa.
¿Es realmente Nextcloud en Pi un buen sustituto de Google Cloud (Google Drive y Google Fotos, entre otros)?

Ya tenemos un Xiaomi R1D que hace de NAS sencillo sobre SMB, y por otra parte tenemos la Raspberry Pi 4 que está al cargo de openHAB, asi que solo hacia falta el elemento que los uniera a ambos: Nextcloud.

logo de nextcloud

En el R1D tengo puesto actualmente un SSD SanDisk de 2TB, y está conectado a la red por Ethernet Gigabit, así que eso no debería generar ningún cuello de botella entre ambos.

1. ¿Tenemos la Raspberry preparada?

hay que empezar por poner a punto el entorno. Los siguientes pasos valen tanto para Raspbian como, por ejemplo, para Ubuntu:

sudo apt update
sudo apt upgrade
sudo install snapd
sudo reboot

con esto, ya tenemos el entorno listo para instalar Nextcloud:

sudo snap install nextcloud

2. Ajustamos el almacenamiento de Nextcloud

Antes de arrancar, deberiamos ajustar la carpeta en la que colocará Nextcloud nuestros archivos, para ello seguimos estos pasos:

  1. Activamos el almacenamiento externo para Snap:
    sudo snap connect nextcloud:removable-media
  2. Detenemos Nextcloud en Snap:
    sudo snap stop nextcloud
  3. Cambiamos la ubicacion del almacenamiento:
    sudo nano /var/snap/nextcloud/current/nextcloud/config/config.php
    ‘datadirectory’ => ‘/media/storage/data’
  4. Movemos el contenido al nuevo directorio:
    sudo mv /var/snap/nextcloud/common/nextcloud/data /mnt/NAS/
  5. Arrancamos Nextcloud en Snap:
    sudo snap start nextcloud

La carpeta que elijáis ya depende de vuestra decisión, si usáis un disco duro USB, tendréis que cambiar la ruta por la adecuada. En mi caso, el almacenamiento está en un SSD compartido por SAMBA, así que lo tengo definido así en /etc/fstab:

//192.168.1.10/NAS /mnt/NAS cifs defaults,x-systemd.automount,uid=root,gid=root,user=USER,pass=PASS,sec=ntlm,dom=WORKSPACE,vers=1.0,rw 0 0

Una vez termine, podremos terminar la instalación de Nextcloud simplemente poniendo la IP de las Raspberry en el navegador, donde Nextcloud pedirá crear un administrador, y terminará la instalación de las apps aconsejadas.

3. Y si asignamos una IP estática?

Es algo que podemos hacer desde la interfaz de nuestro router (si es que nos pone las cosas fáciles) o forzando a la Raspberry a usar siempre los mismos ajustes para la conexión de red. En mi caso, es el router el que se encarga de reservar siempre la misma IP a la Raspberry, pero para configurar una dirección estática, habría que cambiar las siguientes líneas del archivo /etc/dhcpcd.conf:

sudo nano /etc/dhcpcd.conf

interface eth0
static ip_address=192.168.1.20/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

4. Hacer público nuestro Nextcloud

Para tener nuestro Nextcloud disponible desde cualquier parte, hace falta redirigir el puerto 80 hacia nuestra Raspberry, cosa que depende mucho del router que tengáis.

muy necesario es tener un servicio de DDNS, como por ejemplo duckdns.org para asi acceder mas facilmente y no tener que estar peleando con IP publica, que puede cambiar segun quiera la operadora.

(aqui podeis ver como configurar la Raspberry para actualizar la IP publica en Duckdns.org)

una vez tengais configurado duckdns para redirigir a vuestra IP publica, hay que añadir tanto la direccion IP estatica de la Raspberry como el dominio que vayais a usar a la lista de «Trusted domains» de Nextcloud, para solo permitir conexiones que apunten ahi:

sudo snap run nextcloud.occ config:system:set trusted_domains 0 --value=192.168.1.20
sudo snap run nextcloud.occ config:system:set trusted_domains 1 --value=tudominio.duckdns.org

Otra pieza importante del acceso WAN a nuestro Nextcloud es poder hacerlo a traves de una conexion segura, y para ello necesitamos pedirle a Nextcloud que nos genere los certificados mediante letsencrypt:

sudo nextcloud.enable-https lets-encrypt

5. A disfrutar!

¡Quien necesita pagar la cuota a servicios como Google o Apple para que se encarguen de almacenar tus archivos, cuando por el precio de una Raspberry + SSD podemos tenerlos a salvo en casa!

Un saludo,

P.S.: si queréis añadir un gestor de imágenes muy potente a vuestra Raspberry, con el que gestionar las subidas del teléfono móvil, aquí te cuento más.

Deja un comentario