Gestionando nuestro almacenamiento en la nube con nextcloud y rclone
En este artículo os cuento mis entretenimientos en las últimas semanas, jugando con nextcloud y ampliando su espacio de almacenamiento usando la aplicación rclone
. Con estas herramientas podemos automatizar fácilmente nuestras copias de seguridad en la nube. Veamos cada una de estas aplicaciones:
Nextcloud
Nextcloud es una aplicación web escrita en PHP cuyo objetivo es crear un servidor de alojamiento de archivos en cualquier servidor personal. Tiene la misma funcionalidad de otros servicios de almacenamiento en la nube, como Dropbox, pero la gran diferencia es que Nextcloud es de código abierto, por lo que podemos instalarlo y adaptarlos a nuestras necesidades.
Para poder instalar la aplicación Nextcloud necesitamos instalar un servidor LAMP, que podemos hacer de forma sencilla en Debian Buster de la siguiente forma:
-
Instalamos Apache2 como servidor web:
apt install apache2
-
Instalamos el servidor de base de datos:
apt install mariadb-server
A continuación accedemos al servidor y creamos la base de datos y el usuario con el que nos vamos a conectar a la base de datos:
$ mysql -u root -p > CREATE DATABASE nextcloud; > CREATE USER 'usernextcloud'@'localhost' IDENTIFIED BY 'passnextcloud'; > GRANT ALL PRIVILEGES ON nextcloud.* to 'usernextcloud'@'localhost'; > FLUSH PRIVILEGES; > quit
-
Instalamos la versión de php, así como la libería para que php pueda conectarse a la base de datos (por dependencia se instala el módulos de apache2
libapache2-mod-php7.3
que permite que el servidor web ejecute código php):apt install php7.3 php7.3-mysql
-
A continuación nos bajamos la aplicación Nextcloud de la página oficial de descargas (en el momento de escribir este manual hemos descargado la versión 17.0.1), lo descomprimimos y copiamos todos los ficheros y directorios en el
DocumentRoot
, en nuestro caso como vamos a usar el virtualhostdefault
será el directorio/var/www/html/
.# cd /tmp /tmp# wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip /tmp# unzip nextcloud-17.0.1.zip /tmp# cd nextcloud /tmp/nextcloud# cp -r * /var/www/html /tmp/nextcloud# cd /var/www/html /var/www/html# chown -R www-data: .
-
Accedemos a nuestro servidor desde un cliente, para ello en cliente vamos a configurar la resolución estática, en el fichero
/etc/hosts
añadimos la siguiente línea (la ip de nuestro servidor es 192.168.100.36):192.168.100.36 www.example.org
y comenzamos con la configuración de la aplicación:
Siguiendo la documentación necesitamos instalar algunas librerías más de php:
apt install php-zip php-xml php-gd php-curl php-mbstring
Ya tenemos instalada nuestra aplicación Nextcloud:
Almacenamiento externo
La aplicación “Almacenamiento externo” en nextcloud nos permite añadir a nuestro almacenamiento un directorio donde el contenido está en otro servicio. Para poder usar esta opción tenemos que activarlo en la configuración de aplicaciones, para ello elegimos las opciones Aplicaciones y activamos External storage support:
A continuación podemos configurar el “almacenamiento externo” accediendo a Configuración y eligiendo Almacenamiento Externo:
Vemos que podemos añadir almacenamiento de diferentes fuentes:
A continuación añadiremos directorios locales a nuestro almacenamiento, pero antes de ello veamos el siguiente punto.
Montar directorios locales con rclone
En el artículo anterior habíamos visto la herramientarclone
, que nos permitía gestionar el almacenamiento de distintos servicios de almacenamiento en la nube. rclone
lo tenemos configurado en la misma máquina donde hemos instalado nextcloud y recordamos que habíamos configurado dos servicios de almacenamiento y con el usuario sin privilegios (suponemos que el usuario se llama vagrant
) podemos ver los servicios que tenemos configurados:
$ rclone listremotes
dropbox:
mega1:
Una de las posibilidades que nos ofrece rclone
es poder montar en un directorio de la máquina cualquier servicio que tengamos configurado, para ello vamos a usar fuse
que nos permite montar un sistema de fichero con un usuario sin privilegios, por lo que lo primero es instalarlo como superusuario:
# apt install fuse
Además tenemos que cambiar una configuración para que puedan acceder al directorio montado otros usuarios (en nuestro caso es necesario porque posteriormente accederá el usuario www-data
de apache2), para ello descomentamos en el fichero /etc/fuse.conf
la siguiente línea:
user_allow_other
A continuación el usuario sin privilegios ya puede montar en un directorio sus ficheros de dropbox:
$ mkdir ficheros_dropbox
$ rclone mount -v dropbox:/ ficheros_dropbox --daemon --allow-other
$ ls ficheros_dropbox/
Comenzar.pdf Photos prueba Public
La opción --daemon
permite crear un proceso demonio responsable de mantener el directorio montado, y la opción --allow-other
permite que otros usuarios accedan al directorio. Tenemos muchas más opciones de configuración que podemos ver en la documentación de rclone mount.
Si necesitaremos desmontar el directorio:
$ fusermount -u /home/vagrant/ficheros_dropbox
Integración de nextrcloud con rclone
Ahora que ya tenemos montado los ficheros de nuestro dropbox en un directorio es hora de configura el Almacenamiento externo de nextcloud para montarlo en nuestro servidor, para ello configuramos un nuevo almacenamiento externo:
Y efectivamente comprobamos que tenemos acceso a los ficheros de dropbox desde nuestro nextcloud:
Conclusiones
Con las utilidades que hemos estudiados podemos de una forma fácil centralizar todos nuestros servicios de almacenamiento en nuestro servidor nextcloud, de esta menera por ejemplo sería muy sencillo hacer un backup de nuestros datos en distintos servicios además de hacer crecer el almacenamiento disponible de nuestra “nube” personal.
Leave a Comment
Your email address will not be published. Required fields are marked *