albert@home:~$

Nube casera con Nextcloud

Una nube casera con Raspberry Pi

Dado que en mi día a día utilizo dos máquinas distintas, un MacBook Pro y un portátil HP viejito con Ubuntu Mate, decidí hacer un servidor de Nextcloud en una Raspberry Pi 3 para tener así los ficheros sincronizados.

Nextcloud es un proyecto open source para alojar contenido en un servidor que, al ser código abierto, puedes instalar en un servidor propio y no tener que pagar por los servicios. La verdad es que pienso que es más cómodo pagar Google Drive o Dropbox y olvidarse de problemas, pero me hacía ilusión tener la nube en casa.

Para poder tener un servidor Nexcloud en casa, solamente hace falta tener una Raspberry Pi con una tarjeta MicroSD y conexión a internet.

Instalación del sistema operativo

Para poner en marcha la Raspberry Pi, primero hay que instalarle un sistema operativo en la tarjeta MicroSD. Yo me decanté por RaspberryOS, desarrollado por la misma fundación que comercializa la placa, y perfectamente optimizado para ella.

Añadir un fichero vacío con nombre ssh y un fichero wpa_supplicant con la información del wifi.

Para conectarse desde otra máquina mediante ssh, podemos encontrar la IP mediante el comando ping raspberrypi.local.

Una vez instalado el SO, y tras conectarse a la Raspberry Pi mediante ssh, hay que actualizar con la orden sudo apt update e instalar los siguientes programas y dependencias:

sudo apt install -y vim tmux git nmap 
sudo apt install -y apache2 mariadb-server libapache2-mod-php
sudo apt install -y php-gd php-json php-mysql php-curl php-mbstring
sudo apt install -y php-intl php-mcrypt php-imagick php-xml php-zip

Instalación de Nextcloud

Con el comando wget descargué la versión más reciente de Nextcloud en el directorio /srv/ de la Raspberry Pi. Lo descomprimí en el mismo directorio y después creé un enlace simbólico al servidor Apache para poderlo ver desde un navegador.

$ cd /srv
$ sudo mkdir nextcloud
$ sudo wget https://download.nextcloud.com/server/releases/nextcloud-20.0.7.zip -O /srv/nextcloud.zip
$ unzip nextcloud.zip
$ sudo ln -s /srv/nextcloud /var/www/html/nextcloud
$ sudo chown -R www-data:www-data /srv/nextcloud

Seguidamente configuré la base de datos con las órdenes que siguen:

$ sudo mysql
CREATE USER 'nextcloud' IDENTIFIED BY 'password';
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@localhost IDENTIFIED BY 'password';

Ahora ya está Nextcloud funcionando, así que desde otro ordenador nos conectamos a la url raspberrypi.local/nextcloud desde un navegador. Aparecerá la interfaz de Nextcloud que nos pedirá un nombre de usuario y contraseña. Después pedirá los siguientes campos referidos a la base de datos:

  • Database User: nextcloud
  • Database Password: ‘Contraseña de la base de datos’
  • Database Name: nextcloud
  • Host: localhost

Ahora ya podemos empezar a utilizar Nextcloud dentro de la red local, conectándonos a la IP de la Raspberry Pi.

Monitorizar temperatura con RPi-Monitor

Para poder monitorizar la Raspberry Pi desde un navegador, hay una aplicación muy interesante, rpimonitor. Para poderla instalarla hay que tener antes los siguientes certificados:

sudo apt-get install apt-transport-https ca-certificates
sudo wget https://goo.gl/vewCLL -O /etc/apt/sources.list.d/rpimonitor.list
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F
sudo apt update
sudo apt install rpimonitor

Una vez está todo instalado podemos acceder desde el navegador a una interfaz muy sobria desde donde controlar la Raspberry desde la URL raspberrypi.local:8888. La primera vez que se instala rpimonitor hay que solucionar unos errores con los siguientes comandos:

$ sudo /etc/init.d/rpimonitor update
# Para automatizar el update
$ sudo /etc/init.d/rpimonitor install_auto_package_status_update

También cabe mencionar que para obtener la temperatura del procesador de la Raspberry Pi desde la línea de comandos, se puede ejecutar:

$ /opt/vc/bin/vcgencmd measure_temp