Blog personal donde guardo mis notas sobre tecnología

Nube privada con Nextcloud en Raspberry Pi

Carlos M.

Si no te fías de que tus datos estén alojados en servidores de terceros, y quieres tener tu propia nube privada tipo gdrive o dropbox, Nextcloud es tu solución.

Con Nextcloud podemos almacenar, sincronizar y compartir archivos, disponer de notas, calendarios, lista de tareas y sincronizarlos entre diferentes dispositivos, lector de feeds y muchas mas aplicaciones, que podemos ir instalando a nuestro Nextcloud

La instalación la vamos a realizar con MariaDB como base de datos, lighttpd como servidor web y php5 sobre una rpi con Raspbian como sistema operativo.

Esta guía esta basada en el articulo https://miraspberrypi.wordpress.com/2016/07/28/nextcloud-en-raspbian/ todo el merito le corresponde a él, lo pongo en mi blog a modo de chuleta y para que en un futuro no se pierda en la maraña de internet.

Instalación de MariaDB #

Antes de comenzar con la instalación, nos conectamos mediante ssh a la rpi y actualizamos el sistema:

$ sudo apt-get update && sudo apt-get upgrade -y

Instalamos MariaDB

$ sudo apt-get install mariadb-server

Durante la instalación nos pedirá una contraseña para el usuario root para poder administrar las bases de datos de MariaDB.

Ejecutamos el script para securizar la instalación:

sudo mysql_secure_installation

Introducimos la contraseña de root y respondemos a las preguntas como en la captura de imagen:

Accedemos con el usuario root a la consola de MariaDB, nos pedirá la contraseña que pusimos durante la instalación de MariaDB :

mysql -u root -p

Creamos un usuario nuevo en MariaDB, cambiando “miusuario” y “micontraseña” por los que correspondan en cada caso

CREATE USER 'miusuario'@'localhost' IDENTIFIED BY 'micontraseña';

Creamos una base de datos nueva llamada nextcloud

CREATE DATABASE IF NOT EXISTS nextcloud;

Damos todos los privilegios de la base de datos nextcloud al nuevo usuario que hemos creado anteriormente.

GRANT ALL PRIVILEGES ON nextcloud.* TO 'miusuario'@'localhost' IDENTIFIED BY 'micontraseña';

Salimos de la consola de MariaDB

quit

Con esto ya tendremos lista la base de datos.

Instalación de Lighttpd y PHP #

$ apt-get install lighttpd php5-cgi php5-curl php5-gd php5-mysql

Modificamos PHP:

$ sudo sed --in-place -e 's/^upload_max_filesize.*/upload_max_filesize = 20M/' -e 's/^max_file_uploads.*/max_file_uploads = 50/' -e 's/^post_max_size.*/post_max_size = 20M/' /etc/php5/cgi/php.ini

Editamos el fichero /etc/lighttpd/lighttpd.conf:

server.document-root        = "/var/www/nextcloud"

Y añadimos al final:

$HTTP["url"] =~ "^/nextcloud/data/" {
 url.access-deny = ("")
}

$HTTP["url"] =~ "^/nextcloud($|/)" {
 dir-listing.activate = "disable"
}

Habilitamos fastcgi:

$ sudo lighty-enable-mod fastcgi-php fastcgi

Ya tenemos configurado el servidor web lighttpd

Instalación de Nextcloud #

Nos descargamos desde https://nextcloud.com/install/#instructions-server la ultima versión de Nextcloud.

Copiamos el fichero descargado en var/www y lo descomprimimos

sudo cp nextcloud-12.0.0.zip /var/www/
cd /var/www/
sudo unzip nextcloud-12.0.0.zip
sudo rm nextcloud-12.0.0.zip

lighttpd se ejecuta por defecto con el usuario www-data por lo que deberemos cambiar de propietario a /var/www/nextcloud

$ sudo chown -R www-data /var/www

Accedemos a nuestro servidor desde el navegador web http://miraspberrypi.com/nextcloud y rellenamos:

1. Crearemos un usuario administrador para Nextcloud
2. Usuario,contrseña y nombre de la base de datos (nextcloud) que creamos desde la consola de MariaDB

Ya tenemos lista nuestra nube privada.

Para finalizar, debemos añadir las direcciones IP y dominios que van a tener acceso a nexcloud.

Editamos el fichero de configuración.

sudo nano /var/www/nextcloud/config/config.php

Y añadinnos las Ip’s y dominios:

array (
   0 => 'tu.dominio-org',
   1 => '192.168.1.3',
   2 => '10.8.0.1',
 ),