Manuales

Crear nuestra «nube» personal en Raspberry Pi con Nextcloud

Manuales Frikimático - Raspberry Pi con Nextcloud

Bueno frikimáticos, seguimos con los manuales para poner la Raspi a punto, y que mejor que crear una nube personal en nuestras amada Raspberry Pi con Nextcloud. Si ya has realizado los manuales Registrar un dominio gratis con FreenomConfigurar los DNS de nuestro dominio con Cloudflare, ahora nos toca ponernos manos a la obra con la Raspi, así que debemos en resumidas cuentas realizar los siguientes apartados: 

  • Instalar el sistema operativo Raspbian actualizado.
  • Preparar (formatear) el disco que almacenará los datos de Nextcloud, vamos, el que queramos destinar para nuestra «nube» personal.
  • Configurar el disco destinado a Nextcloud para que durante el arranque de nuestra Raspi se monte automáticamente.
  • Preparar nuestra Raspi para que tenga una IP interna fija (en nuestra red).
  • Crear la base de datos destinada a Nextcloud, así que para ello instalaremos MariaDB.
  • Necesitaremos un servidor web, por lo que he optado por usar ligthttp (yo estoy contento con su rendimiento, pero si queréis instalar otro servidor web podéis optar por  nginx o apache).
  • Lo siguiente será instalar PHP.
  • Descargar la última versión de Nextcloud para su próxima instalación.
  • Darle los permisos necesarios a la instalación de Nextcloud.
  • Ubicar los datos y proporcionar los permisos para el «contenido» de Nextcloud.
  • Ahora procederemos a la instalación de Nextcloud en nuestra Raspi.
  • Configuración de NextCloud.
  • Configurar una IP Externa Fija de forma totalmente gratuita.
  • Preparar los puertos en nuestro router, necesitaremos los puertos 80 y 443.
  • Mejorar la configuración de la memoria Swap en nuestro servidor y el funcionamiento de éste configurando PHP.
  • Habilitaremos PHP-FPM (FastCGI Process Manager), usado para webs con alto tráfico.
  • Indicaremos que «dominios de confianza» deseamos para acceder a Nextcloud.
  • Mejoraremos la configuración de la base de datos creada en MariaDB. 
  • Mejorar la seguridad de nuestra «nube» personal con Nextcloud añadiendo doble factor de autenticación a los usuarios de «NextCloud» (por lo menos, hacerlo seguro con el usuario administrador).
  • Y ahora sólo queda disfrutar de nuestra «nube», que podremos añadir en cualquiera de nuestros dispositivos mediante WebDAV o usando las app de Nextcloud.
Como he visto que son demasiados apartados para ponerlos todos en un mismo post, voy a realizar algunos en post independientes y podéis acceder a ellos directamente desde su enlace interno. Empecemos!!

Instalar Raspbian

La mejor forma y más sencilla de instalar el sistema operativo Raspbian en una Raspberry Pi, es descargando la imagen desde la web oficial y copiarla a la tarjeta gracias a la aplicación Etcher. Para verlo de forma más detallado puedes hacerlo viendo el post Instalar Raspbian con Etcher.

Preparar disco de datos para NextCloud

Para crear nuestra nube personal gracias a Nextcloud, necesitamos, como es lógico, un disco para el almacenamiento de los datos, y mejor que sea de una gran capacidad (te recomiendo que lo hagas con el tamaño de disco que creas necesitar, y no que para ver como funciona lo hagas con un disco más pequeño para posteriormente añadirle otro con más espacio, ya que, si bien se puede hacer, seguro nos va a dar más de un dolor de cabeza).
Una vez sepamos que disco vamos a utilizar para este fin, tenemos que formatearlo en ext4, que es sistema de ficheros que usa linux principalmente. Para realizar este paso, arrancamos nuestra Raspi con el Raspbian que hemos instalado previamente, y abrimos una terminal.
Ahora introducimos el siguiente comando:

sudo fdisk -l

Con ese comando lo que vamos a conseguir es que nos muestre un listado con los dispositivos conectados, y veremos algo similar a esta imagen:

seleccion disco
Como podéis apreciar, en mi caso tengo conectadas 2 unidades, que son sda y sdb. Una de ellas es un disco de 4.6 TB (sda) y la otra de 2.7 TB (sdb). En vuestro caso, si sólo tenéis conectado un disco, sólo os aparecerá sda probablemente, pero por si acaso, fijaros bien y estar completamente seguros que ese es el disco que deseamos «preparar» para Nextcloud.

Una vez estemos seguros del disco que vamos a formatear, debemos asegurarnos que el disco esté desmontado, así que escribimos el siguiente comando:

sudo umount /dev/sda


Y para realizar el formateo de dicha unidad lo haremos con el siguiente comando:

sudo mkfs.ext4 /dev/sda

Esperamos a que termine y ya tendríamos el dispositivo seleccionado formateado en formato ext4.

Ahora lo que nos interesa es que automáticamente durante cada arranque de nuestra Raspberry esta unidad destinada a Nextcloud se monte automáticamente (ya que Linux en la gran mayoría de sus distribuciones, por motivos de seguridad no monta automáticamente las unidades).
Para ello crearemos un directorio en el que montaremos la unidad, lo llamaremos nextcloud y lo creamos en la carpeta media con el siguiente comando:

sudo mkdir /media/nextcloud

Para que se monte dicho dispositivo durante el arranque, tenemos que modificar el archivo fstab. Así que ejecutamos el siguiente comando:

sudo nano /etc/fstab

Y escribimos la siguiente línea al final del texto del archivo:

/dev/sda1 /media/nextcloud ext4 auto,user,rw,exec 0 0

Simplemente debemos guardar los cambios al salir, y listo, la siguiente vez que arranquemos la Raspberry, se montará automáticamente en la ruta /media/nextcloud la unidad de disco de /dev/sda1.

Configurar IP fija interna en nuestra Raspberry

Para configurar una IP fija para nuestra Raspberry se puede hacer de varias formas distintas, ya sea en modo gráfico desde el sistema operativo Raspbian, modificando el fichero «Interfaces» o incluso realizarlo desde nuestro router especificando la dirección IP que deseamos a cada dispositivo.
Puedes ver como hacerlo en el siguiente enlace de como Configurar IP fija interna en nuestra Raspberry y una vez tengas configurada la IP estática para nuestra Raspberry, podemos continuar con el tutorial.
 

Instalar MariaDB y crear una base de datos para Nextcloud

Puedes ver como Instalar MariaDB en Raspbian y Crear una Base de Datos, y una vez instalado, configurado y creada la base de datos para Nextcloud y su usuario con los privilegios necesarios, podemos pasar al siguiente apartado.

Instalar Lighttpd como servidor web y PHP

Para instalar este recomendado (es muy liviano) servidor web en nuestras Raspberry, lo llevaremos a cabo escribiendo este comando en una terminal de Raspbian:

sudo apt-get install lighttpd

Esperamos a que finalice la instalación, y ya estaría listo XD, muy sencillo no?

Si deseamos asegurarnos de su funcionamiento, simplemente desde otro equipo que esté en nuestra red local, escribimos la dirección IP de nuestra Raspberry, y deberíamos de ver una página similar a esta:

Lighttpd

Ahora vamos a proceder a la instalación de PHP y paquetes necesarios, que estos momentos está en la versión 7.4, y para ello escribimos el siguiente comando:

sudo apt-get install php7.4 php7.4-bz2 php7.4-cli php7.4-curl php7.4-gd php7.4-fpm php7.4-intl php7.4-json php7.4-mbstring php7.4-mcrypt php-pear php7.4-imap php-memcache php7.4-pspell php7.4-recode php7.4-tidy php7.4-xmlrpc php7.4-xsl php7.4-mysql php7.4-opcache php7.4-xml php7.4-zip php-imagick php-redis libapache2-mod-php7.4

*Si tenemos algún tipo de problema con la instalación de php y todos los paquetes necesarios juntos, podemos hacerlo de manera independiente, instalando uno a uno y así ver si alguno nos puede dar algún error o conflicto e identificarlo. Para ello deberíamos hacerlo de la siguiente manera:
sudo apt-get install php7.4
sudo apt-get install php7.4-bz2
sudo apt-get install php7.4-cli
sudo apt-get install php7.4-cli
sudo apt-get install php7.4-curl
sudo apt-get install php7.4-gd
sudo apt-get install php7.4-fpm
sudo apt-get install php7.4-intl
sudo apt-get install php7.4-json
sudo apt-get install php7.4-mbstring
sudo apt-get install php7.4-mcrypt
sudo apt-get install php-pear
sudo apt-get install php7.4-imap
sudo apt-get install php-memcache
sudo apt-get install php7.4pspell
sudo apt-get install php7.4-recode
sudo apt-get install php7.4-tidy
sudo apt-get install php7.4-xmlrpc
sudo apt-get install php7.4-xsl
sudo apt-get install php7.4-mysql
sudo apt-get install php7.4-opcache
sudo apt-get install php7.4-xml
sudo apt-get install php7.4-zip
sudo apt-get install php-imagick
sudo apt-get install php-redis
sudo apt-get install libapache2-mod-php7.4

Descargar e Instalar Nextcloud

Ahora que ya tenemos todo lo necesario para poder instalar Nextcloud en nuestras Raspberrys, tenemos que dirigirnos al directorio de nuestro servidor web (si has seguido esta guía será con lighttpd), que si no lo hemos modificado, tenemos que escribir este comando en la terminal este comando para dirigirnos a él:

cd /var/www/html

y una vez en dicha ruta, procedemos a la descarga de la última versión disponible de Nextcloud para descarga, y para eso, escribimos el siguiente comando:

sudo wget https://download.nextcloud.com/server/releases/latest.zip

Con lo que hemos conseguido descargar un archivo llamado «latest.zip«, el cual posee la última versión de Nextcloud comprimida en su interior, así que para descomprimirla, escribimos este comando:

sudo unzip latest.zip

Con esto podemos observar como ahora tenemos un nuevo directorio con nombre «nextcloud» en la ruta donde nos encontramos. Para ver el contenido de un directorio, usuarios y grupos a los que pertenecen y sus permisos, en Raspbian podemos usar el siguiente comando:

ls -lisa

Como el archivo latest.zip ya lo hemos descomprimido y no lo necesitamos, procederemos a eliminarlo, y para ello, escribimos el siguiente comando:

sudo rm latest.zip

Dar los permisos necesarios para la instalación

Para poder realizar la instalación de Nextcloud (que es mediante acceso web), tenemos que hacer que el directorio (y todo lo que contiene) «nextcloud», pertenezca al usuario y grupo www-data, y darle los permisos necesarios para su correcto funcionamiento, así que debemos introducir los siguientes comandos en el terminal:

sudo chown -R www-data:www-data /var/www/html/nextcloud

Con este comando hemos hecho que dicha ruta pertenezca al usuario y grupo www-data, y ahora para los permisos escribimos el siguiente:

sudo find /var/www/html/nextcloud/ -type d -exec chmod 750 {} \;

sudo find /var/www/html/nextcloud/ -type f -exec chmod 640 {} \;

Ubicar los datos de Nextcloud y darle permisos

Ahora tenemos que acceder al punto de montaje que definimos al comienzo de este tutorial, que si has puesto el mismo lo haremos con el comando:

cd /media/nextcloud

Ahora lo que deseamos es crear un directorio para almacenar TODOS los datos de nuestra nube personal, y debemos recordarla, ya que será necesaria para la instalación. La carpeta la llamaremos por ejemplo «data», así que escribimos el siguiente comando:

sudo mkdir -p /media/nextcloud/data

*La ruta que nos solicitará el proceso de instalación será, en este caso: /media/nextcloud/data.

Ahora, al igual que en el apartado anterior, vamos a hacer que dicha ruta y su contenido, pertenezcan a usuario y grupo www-data, y le daremos los permisos necesarios, así que escribimos los siguientes comandos:

sudo chown -R www-data:www-data /media/nextcloud/data \;

sudo find /media/nextcloud/data -type  d -exec chmod 750 {} \;

sudo find /media/nextcloud/data -type  f -exec chmod 640 {} \;

Ahora ya tenemos nuestras Raspberry preparadas para realizar el proceso de instalación de Nextcloud, pero antes, sería mejor que realicemos un reinicio, así que escribimos el siguiente comando y esperamos a que se vuelva a iniciar:

sudo reboot

Instalación de Nextcloud

Para realizar la instalación, debemos acceder vía navegador web desde otro equipo de nuestra red local, y para ello debemos saber la IP de nuestra Raspberry, y si hemos seguido el tutorial de Configurar IP fija interna en nuestra Raspberry, en nuestro caso la hemos configurado como 192.168.0.187 (vosotros la debéis sustituir por la que hayáis puesto).
Así que escribiremos en el navegador web del equipo:

http://192.168.0.187/nextcloud

Veremos en nuestro navegador una pantalla similar a la siguiente, en la que deberemos rellenar los datos de la siguiente manera:

Instalar Nextcloud

Si hemos seguido la guía para Instalar MariaDB en Raspbian y Crear una Base de Datos, habremos creado la base de datos «nextcloud» y el usuario «nextcloud_user», por lo que procederemos con esos datos.

Los primeros datos que solicita, son un usuario administrador y contraseña, así que lo rellenamos y memorizamos (mejor que memorizar, como os he dicho anteriormente, usar bitwarden o similires para gestionar todas las contraseñas, y así siempre usar contraseñas seguras y distintas).

El directorio de datos, es la ruta que hemos mencionado antes para el almacenamiento de todos los datos de Nextcloud, en nuestro caso /media/nextcloud/data.

En configurar la base de datos seleccionamos la opción de MariaDB puesto que es la base de datos que hemos preparado.

Después indicamos como dijimos el usuario de la base de datos nextcloud, en este caso «nextcloud_user», y ponemos la contraseña que configuramos para el usuario, y después el nombre de la base de datos, que como he dicho es «nextcloud«, y por último la ubicación del servidor web lighttpd, que al estar instalado en la Raspberry y en el puerto por defecto, debemos poner «localhost«.

Ahora sólo tenemos que apretar el botón de «completar la instalación» y esperar a que termine el proceso de instalación XD.

Ya tenemos Nextcloud funcionando a pleno rendimiento, ahora vamos a ver como modificando un par de aspectos, podemos mejorar su funcionamiento en gran medida, pero eso lo dejaremos para otro manual.

Si tenéis algún tipo de problema para ponerla en funcionamiento, o para cualquier fallo que os haya dado posteriormente a su puesta en funcionamiento, puedes ver en la entrada de Solución a posibles errores en tu nube personal Nextcloud, por si encuentras la solución, o dejar un comentarios para buscar una nueva solución.

¿Qué os parece frikimáticos? ¿Os resulta útil una nube personal con nuestra Raspberry o por el contrario preferís pagar por un servicio tipo OneDrive? Espero vuestros comentarios.

Friki

Todo un friki en lo que a tecnología se refiere y bueno... más bien en casi todo XD. Creador de frikimatico.es Portal de noticias friki🦹‍♂️ sobre Videojuegos🎮, Series🧟‍♂️, Cine🧙‍♀, Anime👹, Manga👨‍🎨, Tecnología🤖, Reviews💯, Manuales☠ y Ofertas🎁.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba