Nextcloud: como Dropbox o Drive, pero manteniendo tus datos en tu propio servidor

/índice:

¿NextcloudPi?

NextcloudPi es una instancia de Nextcloud, la plataforma de código abierto para almacenar/compartir archivos, que viene preparada para funcionar en una Raspberry Pi y ser fácil de configurar y mantener. Su autor es nachoparker, que ha desarrollado y mantenido NextcloudPi desde 2017. Hace poco rebautizó el proyecto como NextCloudPlus.

Pasos

Tal y como se explica en la web, se puede descargar NextcloudPi directamente (y además soporta varios sistemas), pero estos son los pasos que seguí yo para instalarlo manualmente:

Instalar NextcloudPi

  1. Descargar Raspbian Stretch Lite

  2. Grabar la imagen en la tarjeta SD sudo dd bs=4M if=2018-04-18-raspbian-stretch-lite.img of=/dev/mmcblk0 conv=fsync status=progress

  3. En la partición /boot de la tarjeta SD, crear un archivo vacío llamado ‘ssh

  4. Antes de encender la RasPi y conectarla al router por cable Ethernet, sudo nmap -sP 192.168.1.* Después repetir el comando, y ver qué nueva IP ha aparecido

  5. Conectarse a la RasPi por ssh ssh pi@192.168.1.XX (IP de la RasPi), con contraseña ‘raspberry’

  6. Instalar NextcloudPi mediante el script ‘install.sh
    wget https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh
    sudo bash install.sh
    

    [cuesta unos 20 minutos]

  7. Configurar las herramientas que incluye NCP con sudo ncp-config

(Configuration Reference)

¡Importante usar dnsmasq si nuestro router no soporta NAT loopback! A mí me dio bastantes problemas..

Configurar acceso desde Internet

Aprovechando que Github Education regala el registro de un dominio .me durante un año por ser estudiante, lo usé para acceder a mi nube con una URL fácil de recordar:

  1. Desde el panel de configuración del router (http://192.168.1.1/), port-forwarding de los puertos 80 y 443 desde la IP de la RasPi.

  2. En Namecheap, activar Dynamic DNS, registro ‘A+DynDNS nextcloud 127.0.0.1 1min’ y copiar contraseña para usar en ddclient

  3. Configurar DNS Dinámico con ddclient (comprobar con traceroute nextcloud.jartigag.me):

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf
use=web, web=dynamicdns.park-your-domain.com/getip
protocol=namecheap
server=dynamicdns.park-your-domain.com
login=jartigag.me
password=c0ntr4s3ñ4d3N4m3ch34p
nextcloud
daemon=3600

La configuración con otros registradores de dominios (gra -tu -i -tos o de pago) es similar.

Si una vez propagados los cambios se puede acceder desde fuera de la LAN pero no a través de nuestro router doméstico, probablemente sea problema del NAT loopback. Para solucionarlo, tenemos que activar dnsmasq y ponernos como servidor DNS la propia Raspberry:

# /etc/resolv.conf nameserver
192.168.1.XX # (IP de la RasPi)
nameserver 8.8.8.8 # (Servidor DNS secundario)