portada

Si estás pensando en montar tu propia plataforma de almacenamiento en la nube rápida, fiable y con posibilidad de escalado, usar un VPS y Nextcloud puede ser la mejor idea. Eso te permitirá pasar de proyectos algo limitados como el uso de una Raspberry Pi, NAS, etc. Será lo más parecido, en cuanto a prestaciones, a usar servicios como Dropbox, GDrive, Mega, etc., pero gestionada por ti mismo.

Además, puedes emplear varios proyectos de código abierto y software libre para poder crear la infraestructura, evitando procesos propietarios que no sabes con certeza qué es lo que están haciendo realmente. Y, si eso te parece poco, en este tutorial podrás comprobar cómo alojar todo esto en servidores en territorio europeo, pasando de las GAFAM/BATX, con lo que ello implica…

¿Necesito almacenamiento en la nube?

Prescindir de ciertos servicios de almacenamiento en la nube de terceros puede ser positivo para poder ahorrar en caras tarifas de suscripción o para tener un mayor control de tus datos por cuestiones de privacidad y seguridad. Pero, más allá de eso, este tipo de servicios es muy práctico, más aún en tiempos de pandemia y con el teletrabajo.

Algunas de las bondades de disponer de tu propio sistema de almacenamiento en la nube son:

  • Superar las barreras del almacenamiento local, pudiendo contar con un espacio extra y escalable para almacenar todos tus datos.
  • Protección de tus datos, ya que es un almacenamiento más fiable, con sistemas redundantes (RAID) para que no se pierdan. Algo que no puedes asegurar en tu almacenamiento local, ya que un problema en tu disco duro o robo te podría dejar sin ellos.
  • Posibilidad de disponer de tus datos donde necesites. No tendrás que llevar tu PC encima, podrás acceder a ellos desde cualquier lugar y dispositivo con conexión a Internet.
  • Disminución de costes de almacenamiento, al no tener que pagar hardware de gran capacidad o discos extra para copias de seguridad.
  • Facilidad de intercambio de información.
  • Almacenamiento muy flexible para almacenar lo que necesites y con posibilidades de escalar si necesitases más espacio en un momento dado.

¿Qué es Nextcloud?

nextcloud2

Nextcloud es el software que voy a emplear como ejemplo para montar tu propio servicio de alojamiento de archivos en la nube. Es un conjunto de programas de software libre, bajo licencia AGPLv3, y que tiene una funcionalidad similar a Dropbox.

Para ello, cuenta con la parte del servidor, para la gestión del alojamiento, y la parte del cliente, para instalar en local para acceder a los datos almacenados o subir nuevos. Además, el cliente está disponible para varias plataformas, como GNU/Linux, Android, macOS, iOS, y Windows.

Nextcloud permite almacenar los datos estructurados, en directorios convencionales, como lo harías en local. También permite cifrado en las transmisiones y/o para el almacenamiento, para mayor seguridad. Incluso podrás usar otras funciones extra para crear usuarios y grupos con acceso, calendarios, o integrar otras aplicaciones como ONLYOFFICE para tener tu propio “Google Docs”.

¿Qué es un VPS?

vps

Para usar Nextcloud podrías usarlo en un equipo propio que uses como servidor, pero esto tiene grandes inconvenientes:

  • Necesidad de tener siempre encendido el equipo servidor y el router, consumiendo electricidad. De lo contrario no se podría tener acceso.
  • Limitaciones del ancho de banda de tu línea. Un problema que se vuelve mayor si acceden a ella más usuarios, que estarán ocupando ancho de banda, limitando la velocidad de transferencia y lastrando la velocidad de conexión de tu oficina u hogar.
  • Tendrás que ocuparte de las reparaciones del hardware y de la ampliación en caso de que fuese necesario.
  • Necesidad de configuraciones más complejas para crear sistemas RAID para dar mayor fiabilidad, lo que implicará también comprar medios de almacenamiento en mayor cantidad.
  • Estar a expensas del suministro energético de tu zona. Si hay cortes el servicio se caerá, mientras que en los centros de datos existen SAIs para minimizar estos problemas.

Todo esto te debería concienciar de que es mejor emplear un VPS (Virtual Private Server), es decir, un servidor privado virtual. Básicamente una “parcela” de un gran servidor físico de un centro de datos que estará exclusivamente dedicada para ti. En ella podrás hacer lo que quieras, desde usarlo para montar un servidor web, como almacenamiento en la nube con Nextcloud, hasta otras posibilidades.

Eso es posible porque cada VPS funcionará como una máquina independiente, con su propio sistema operativo, pudiéndolo gestionar por separado, sin afectar al resto, etc. De cara al usuario, será como si dispusieras de tu propio centro de datos, pero sin los costes que ello implica.

El proveedor se encargará de la administración, reparaciones del hardware, pagar tarifas energéticas, así como ofrecerte un potente equipo, escalabilidad, y un ancho de banda muy superior al de cualquier red convencional. Solo necesitarás pagar una pequeña suscripción que te da derecho al servicio y olvidarte del resto de preocupaciones.

Instalar Nextcloud paso a paso

Ahora mostraré un ejemplo paso a paso de cómo montar un almacenamiento en la nube. Para ello, usaré el servicio VPS de Clouding.io, con Ubuntu como sistema operativo, junto con el software Nextcloud que será el que emplee para instalarlo en este servidor virtual.

Los motivos de usar Clouding son varios. Por un lado, es una plataforma que aporta comodidad con su panel. Por otro lado, tiene tarifas bastante competitivas, alta disponibilidad (no se caerá cada dos por tres como otros servicios gratuitos), soporte en español 24/7, y centro de datos en Barcelona. Por tanto, los datos se quedan en España, bajo las leyes europeas.

Crear la cuenta y preparar la plataforma de Clouding

Lo primero que hay que hacer es registrarte. Una vez completado el registro, podrás acceder al panel y disfrutar de los 5€ de saldo que Clouding te regala para hacer pruebas. Lo siguiente será escoger la configuración del servidor. Esto será según tus necesidades, o el presupuesto que tengas disponible, ya que de la tarifa dependerá la capacidad de RAM, la cantidad de vCores (núcleos virtuales de CPU) y de espacio de almacenamiento en los SSD NVMe del servidor de los que necesites disponer.

0

Una vez ya tengas registro, lo siguiente será logearte en Clouding introduciendo tu usuario y contraseña:

1

Una vez dentro, lo primero que verás es el panel de control desde el que podrás gestionar tu servicio de forma muy sencilla. Para comenzar, debes pulsar en Haz click aquí para crear tu primer servidor:

2

Ahora puedes ver la pantalla de configuración de tu servidor VPS. En este caso, vamos a seleccionar Linux, puesto que queremos instalar este sistema como base de nuestro servidor. Concretamente, Ubuntu en su versión 20.04:

3a

Si haces scroll en esa misma página, también verás otras opciones de configuración referentes al hardware y la seguridad. En ese apartado tendrás que elegir la cantidad de memoria RAM que quieres usar para tu VPS, el número de núcleos de CPU, y el espacio de almacenamiento SSD que necesites.

3b

Al final de esa misma página, también podrás crear la llave SSH con el nombre que quieras para acceder a tu servidor remotamente para su gestión. Incluso tienes funciones Firewall o de copia de seguridad si las necesitas.

Una vez lo tengas todo, pulsa Enviar. Tras eso, aparece esta otra pantalla donde aparece tu VPS. Debes esperar unos instantes mientras se instala y configura. No tardará demasiado, es muy rápido:

4

Una vez culmine el proceso, el estado aparecerá como Activo. Y ya puedes usarlo.

4b

Si pinchas sobre el nombre de tu servidor, te llevará a otra pantalla con información sobre él:

5

En la zona de abajo podrás encontrar un apartado llamado Cómo acceder al servidor. Allí verás el nombre asignado a tu host, tu IP pública, llave SSH creada para descargar y que no te tenga que pedir contraseña para el control remoto, el nombre de usuario (root), y tu contraseña:

6

Esos datos son clave para que puedas proseguir con los siguientes pasos, ya que tendrás que acceder desde tu distro al servidor por SSH para la administración. Para ello, puedes usar la IP del servidor, el usuario root y la contraseña que te dan…

Desde el lado del servidor

Una vez ya tienes configurado tu VPS, ya tiene el sistema operativo base y puedes acceder a él remotamente para la administración. Es decir, ahora es cuando comienza el proceso para montar el servicio de almacenamiento en la nube con Nextcloud.

Los pasos que vas a seguir son exactamente los mismos que harías para instalar el servicio en tu sistema local, solo que lo estarás haciendo dentro del VPS. Para comenzar, abre el terminal y conéctate en el VPS por SSH:

ssh root@direccion-ip-servidor>

7

Te pedirá la contraseña si no has usado el par de claves, y una vez introducida accederás como root a tu servidor. Verás que el prompt ya no hace referencia a tu usuario local, sino que eres superusuario en el VPS:

8

Ahora que ya tienes acceso, lo primero que deberías hacer es comenzar a instalar todos los paquetes necesarios para componer el servidor web (LAMP = Linux + Apache + MySQL/MariaDB + PHP) que servirá como base para construir la nube con Nextcloud. Para ello, deberías comenzar a actualizar e instalar los paquetes necesarios:

apt-get update -y
apt-get upgrade -y
apt-get install apache2 php mariadb-server -y

Una vez instalados los paquetes necesarios para el servidor web, lo siguiente es activar e iniciar el servidor Apache:

systemctl enable apache2
systemctl start apache2

También sería recomendable instalar el paquete APCu para caché de PHP y Redis para la bbdd. Para poder instalar estos proyectos es tan sencillo como ejecutar las siguientes órdenes:

apt-get install php-apcu php-redis redis-server
systemctl enable redis-server

Lo siguiente es instalar algunos paquetes auxiliares que necesitará PHP para estar completo y trabajar con NextCloud:

apt-get install php-zip php-dompdf php-xml php-mbstring php-curl unzip php-gd php-mysql php-intl php-bcmath php-gmp php-imagick -y

9n

El siguiente paso es activar los módulos para el servidor web y reiniciar para que surta efecto:

a2enmod rewrite headers env dir mime
systemctl restart apache2

Lo siguiente que habría que hacer es realizar las configuraciones del servidor web y activar el certificado SSL. Para ello, puedes copiar el fichero de configuración por defecto y renombrarlo con otro nombre en la misma ruta:

<VirtualHost *:80>
 
ServerName tunombrededominio.es
ServerAdmin usuario@localhost>
DocumentRoot /var/www/html/vhost/tunombrededominio.es/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/vhost/tunombrededominio.es/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
#AuthConfig
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/html/vhost/tunombrededominio.es/logs/error.log
LogLevel warn
CustomLog /var/www/html/vhost/tunombrededominio.es/logs/access.log combined
<IfModule mod_headers.c>
Header always set Strict-Transport-Security «max-age=15768000; includeSubDomains; preload»
</IfModule>
</VirtualHost>

10n  

Una vez has terminado, recuerda guardar la configuración pulsando Ctrl+O y Ctrl+X para salir.

También deberías crear los subdirectorios necesarios y que deben coincidir con los path o rutas especificadas en el fichero anterior. Por ejemplo:

mkdir -p /var/www/html/vhost/tunombrededominio.es/{www,logs}

No olvides habilitar el espacio web creado con dicha configuración y reiniciar Apache para que surta efecto la configuración:

cd /etc/apache2/sites-available/
a2ensite nextcloud.conf
systemctl restart apache2

Ahora vamos con los certificados de seguridad SSL. Para ello, puedes emplear Let’s Encrypt y Certbot, que te ayudará a automatizar la configuración y que no tengas que molestarte demasiado. Y eso pasa por instalar unos paquetes esenciales como:

apt-get install letsencrypt certbot python3-certbot-apache

Lo siguiente es crear el certificado ejecutando la siguiente orden (usa tu dominio o dirección de tu servidor correspondiente a tu caso):

certbot --authenticator standalone --installer apache -d tunombredomini.es –pre-hook “systemctl stop apache2" --post-hook "systemctl start apache2"

Lo siguiente, cuando te lo pide, es agregar una dirección de email válida para el certificado. Es importante que sea una dirección que puedas consultar, y no sea inventada.

La siguiente pregunta será preguntar el tipo de acceso para el protocolo HTTPS que deseas para tu servidor. Aparecen dos opciones, 1-Easy y 2-Secure, es recomendable elegir la segunda, es decir, presionar el número 2 e INTRO.

Con eso te debería aparecer un mensaje de creación del certificado con éxito y ya tendrás listo tu servidor web con el VirtualHost para poder disponer de un subdominio en tunombrededominio.es para el acceso a tu nube de almacenamiento particular…

Lo siguiente que hay que hacer es instalar NextCloud como tal y configurar los permisos necesarios. Para ello, comienza descargando e instalando la última versión de Nextcloud con (nuevamente, recuerda sustituir los nombres por la versión que hayas descargado en tu caso y la ruta para tu dominio particular):

cd ~
wget https://download.nextcloud.com/server/releases/latest-20.tar.bz2
tar -jxvf latest-20.tar.bz2
cp -a nextcloud/. /var/www/html/vhost/tunombrededominio.es/www/
chown -R www-data:www-data /var/www/html/vhost/tunombrededominio.es/www/
chmod -R 775 /var/www/html/vhost/tunombrededominio.es/www/

14

Lo que sigue es crear la base de datos necesaria para los usuarios de tu servicio. Para ello debes comenzar iniciando el prompt de MySQL o, en su defecto, MariaDB, como es este el caso. No obstante, para ambos será igual:

mysql -u root -p

Te pedirá una clave, por cierto. Y una vez está, tendrás el prompt para poder ejecutar las órdenes oportunas para crear la base de datos llamada nextclouddb en este caso. Puedes llamarla como prefieras. Pero recuerda sustituir tu usuario y contraseña. Sería tan sencillo como:

CREATE DATABASE nextclouddb;
CREATE USER ‘usuario’@‘localhost’ IDENTIFIED BY ‘contraseña’;
GRANT ALL PRIVILEGES ON nextclouddb . * TO ‘usuario’@‘localhost’;
FLUSH PRIVILEGES;

Y con esto ya lo tendrías…

Lo siguiente es abrir tu navegador web, el que prefieras, y allí introducir tu URL, la que hayas configurado para el acceso en los pasos anteriores, es decir el subdominio con tunombrededominio.es o con la IP del servidor si no dispones de dominio. No es necesario que sea desde el servidor VPS de Clouding, puede ser desde tu sistema operativo local. Si has creado recientemente tu nombre de dominio, es probable que aún no se encuentre disponible, por lo que tendrás que esperar un tiempo a que se propague. Generalmente no suele tardar demasiado.

Si está disponible, eso te hará entrar en la página de Nextcloud para el login.

Para acceder con los credenciales, lo primero es crear el usuario (administrador) y contraseña. Desde tu servidor remoto ejecuta (puedes sustituir el “usuario” por el nombre que deseas):

useradd -m -d /bin/nologin usuario
mkdir -p /home/usuario/cloud/
chown www-data.usuario -R /home/usuario

Recuerda sustituir usuario y las rutas por las tuyas. Preferiblemente, no uses “admin” como nombre para el administrador, ya que es menos seguro. También debes elegir una contraseña segura, de al menos 8 caracteres y que mezcle mayúsculas, minúsculas, números y símbolos, sin palabras que se encuentren en el diccionario. También debes especificar una ruta donde se van a almacenar los ficheros que se suben a la nube que, preferiblemente, esté fuera de la ruta de la web de Apache que configuraste antes.

Ahora, en tu navegador web donde tenías la URL abierta, ingresa esos datos que de usuario que acabas de usar para acceder:

16

Los siguientes datos que pide corresponden a los datos que usaste cuando creaste la base de datos con MariaDB, es decir, debes introducir tu nombre de usuario creado en la bbdd (usuario), contraseña que pusiste (contraseña), nombre de la base de datos (nextclouddb), y el servidor (localhost). Una vez introducido, pulsa el botón Completar la instalación.

17

Si todo ha ido bien, podrás ver la pantalla de bienvenida de Nextcloud y la instalación habrá sido un éxito.

Lo siguiente será seguir configurando Nextcloud, ya que es una instalación funcional, pero dará algunas alertas y recomendaciones si te desplazas a Configuración > Ajustes Básicos. Todos esos errores deberían ser atendidos. Para poder solucionarlos, comenzamos configurando la memoria caché del servidor con Redis:

nano /etc/redis/redis.conf

18

Dentro debes realizar los siguientes cambios:

  • Sustituir el valor port 6379 por port 0
  • Descomentar la línea unixsocket /var/run/redis/redis.sock
  • Descomentar también unixsocketperm 700, pero cambia 700 por 770

Finalmente, no olvides guardar los cambios con Ctrl+O y salir con Ctrl+X en tu editor Nano.

Una vez realizado, lo siguiente es crear un usuario para Redis y que pertenezca al grupo de Apache y luego reinicia los servicios para que surta efecto. Es decir:

usermod -a -G redis www-data
systemctl restart apache2
systemctl restart redis-server

Una vez terminado este paso, se debe configurar Nextcloud para que pueda usar Redis. Para ello, hay que modificar el fichero de configuración de Nextcloud (recuerda cambiar tu nombre de dominio por el tuyo o tu servidor):

nano /var/www/html/vhost/tunombredominio.es/www/config/config.php
Allí tendrás que agregar lo siguiente:
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\\OC\\Memcache\\Redis’,
‘filelocking.enabled’ => ‘true’,
‘redis’ =>
array (
‘host’ => ‘/var/run/redis/redis.sock’,
‘port’ => 0,
‘timeout’ => 0.0,
),

Después, guarda los cambios como ya sabes y reinicia el servidor:

systemctl enable redis-server

Una vez estés hecho, tienes que configurar Opcache para PHP, ya que a partir de Nextcloud 12 se deben seguir estos pasos para que no de el mensaje de error que lanza. En este caso, se ha empleado una versión más reciente, por lo que será necesario hacer lo siguiente (sustituye el número de versión por el que corresponda al PHP que has instalado, en este caso es 7.4):

nano /etc/php/7.4/apache2/php.ini

En este fichero debes descomentar estas líneas (y puedes modificar los valores por defecto que necesites):

; Nextcloud Opcache settings
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

También deberías localizar el parámetro upload_max_filesize y post_max_size que podrás modificar para darle un valor algo más razonable. Por defecto son 2MB, por lo que no te dejará subir ficheros demasiado pesados ni posts demasiado extensos. Puedes especificar otro valor, como 2048M.

Después, recuerda guardar los cambios antes de salir del editor de texto. Luego necesitarás reiniciar Apache para que surta efecto:

systemctl restart apache2

El siguiente paso será configurar los enlaces amigables para que las URLs sean más cortas e intuitivas. Para ello, se debe editar el siguiente fichero (recuerda sustituir el dominio por el que te corresponda o tu servidor):

nano /var/www/html/vhost/tunombrededominio.es/www/config/config.php

En él debes agregar la línea:

‘htaccess.RewriteBase’ => ‘/’,

Y luego guardas. Y lo siguiente sería modificar el .htaccess:

nano /var/www/html/vhost/tudominio.com/www/.htaccess

Allí tienes que comentar las siguientes líneas:

#php_value mbstring.func_overload 0
#php_value default_charset 'UTF-8'
#php_value output_buffering 0
#Options -Indexes
#DirectoryIndex index.php index.html”

Acto seguido hay que actualizar el fichero .htaccess del servidor web:

sudo -u www-data php occ maintenance:update:htaccess

Nuevamente reinicia el servidor Apache:

systemctl restart apache2

Ahora, verás que tu URL se habrá acortado de tunombrededominio.es/index.php/apps/gallery a tunombrededominio.es/apps/gallery.

Aún no se ha terminado la configuración para ir solucionando los errores y avisos que lanzaba Nextcloud, el siguiente paso es activar el cifrado de los ficheros para mayor seguridad. Es algo recomendable, aunque no imprescindible. Pero recuerda que de hacerlo, por un lado se verá comprometido el rendimiento al tener que cifrar/descifrar, y por otro lado, si pierdes la clave quedarán tus datos inaccesibles.

Para poder activar el cifrado, ve a tu navegador web donde tenías la sesión de acceso de Nextcloud y dirígete al icono o imagen de tu usuario en la esquina superior derecha. En el menú desplegable pulsa Aplicaciones > Apps deshabilitadas > y activa Default Encryption Module. Ahora puedes ir a Configuración > Cifrado > Habilitar cifrado en el servidor que debes marcar para ponerlo en marcha.

Con esto se habría concluido todo el proceso desde el lado del servidor… Puedes salir de tu sesión en el navegador web y también de la sesión del servidor remoto por SSH con:

exit

Desde el lado del cliente

Evidentemente, una vez que ya tienes su servidor VPS de Clouding con Nextcloud activo, de poco te servirá si no instalas un cliente. Es decir, la otra pieza de Nextcloud con la que poder descargar o sincronizar tus datos locales para que su suban a la nube.

Este cliente está disponible para varios sistemas operativos, incluso para dispositivos móviles si necesitas usarlo en tu móvil. Pero, en este caso, dado que estamos en un blog de Ubuntu, voy a explicar cómo instalarlo en este sistema operativo.

Puedes ir al procedimiento fácil, acceder al Ubuntu Software, buscar Nextcloud client e instalar. O también puedes hacerlo desde el terminal (esta vez no es desde la sesión SSH remota, sino en local, en tu sistema):

sudo apt-get install software-properties-common gnupg2 -y
sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt-get update -y
sudo apt-get install nextcloud-client -y

Ahora, ya lo tienes instalado en tu equipo. Ve a tus apps y abre Nextcloud:

21

Una vez inicias la app, deberás insertar la URL o IP del servidor VPS que has configurado en Clouding en este caso:

22

Te solicitará el usuario y contraseña de acceso. El que creaste en los últimos pasos del lado del servidor. Y luego te pide configurar el cliente, si quieres que pregunte antes de sincronizar los datos,etc.

Una vez hecho, ya tendrás acceso a tu espacio de almacenamiento para descargar o subir lo que quieras en tu propio servicio de almacenamiento…

23

*IMPORTANTE: este tutorial es sobre la instalación y configuración básica de Nextcloud, para que pueda ser funcional, pero es importante leer la documentación de Netxcloud para seguir realizando las configuraciones de seguridad. Dentro de Nextcloud podrás ver las alertas de seguridad que deberías corregir.

Ahora que lo tenemos todo instalado y funcionando has podido comprobar a potencia y versatilidad que ofrece un hosting VPS como el de Clouding. Nextcloud es tan solo una de la gran variedad de aplicaciones y herramientas que podéis instalar y utilizar. No todo se reduce a crear webs. Hay muchas más opciones para las que puedes usar un VPS.

 

Fuente: ubunlog

¿Quién está en línea?

Hay 27309 invitados y ningún miembro en línea