Nextcloud, la alternativa de software libre a Google Drive

Nextcloud, la alternativa de software libre a Google Drive

Después de una parón veraniego necesario para descansar las mentes, volvemos de nuevo a retomar el blog. Haciendo caso a la encuesta que os realizamos vamos a empezar el curso con una serie sobre alternativas a Google que completen las que ya hemos ido viendo en otros post (como Vaultwarden).

Las alternativas que os voy a plantear son todas de software libre que he encontrado tanto en nomoregoogle.com como en ethical.net, dos páginas que os animo a visitar antes de emprender cualquier proyecto de selfhosted.

nomoregoogle

En los tres post que completarán esta serie, os dejaré enlaces a otras alternativas que pueden ser de utilidad si se ajustan mejor a vuestras necesidades y que podéis probar para compararlos con los que yo os voy a enseñar a instalar y utilizar. Como siempre, os animo a que compartáis en los comentarios los resultados para que todos podamos aprender juntos.

TOC

Nextcloud Vs. OwnCloud

Las alternativas más conocidas y fiables para prescindir de Dropbox, Google Drive o cualquier otro software comercial.

OwnCloud nació allá por 2010 y ha ido creciendo de forma constante hasta hoy. Durante los primeros años de vida daba algunos problemas de sincronización y se generó bastante debate en los foros de la aplicación, lo que conllevó en 2016 a que naciera un fork llamado Nextcloud que en estos 5 años se ha convertido en el rey del selfhosted cloud.

La interfaz es prácticamente igual, tienen prácticamente las mismas funciones e integraciones con terceros por lo que ambas alternativas son igualmente válidas. Esto es como la coca-cola o la pepsy, ambas sirven para lo mismo, parecen iguales pero a mi me gusta más la coca-cola.

intro

Instalando Nextcloud sobre unRaid con Docker

Como vimos el año pasado, el OS de nuestro servidor es UnRaid. La instalación con cualquier otro OS como Ubuntu Server es prácticamente igual, la única diferencia es que nosotros usaremos la interfaz de instalación de UnRaid para levantar el micro-servicio con Docker y no tendremos que usar la línea de comandos.

El único requisito para instalar Nextcloud es disponer de una base de datos tipo SQL, por lo que lo primero que vamos a hacer es instalar la BBDD.

Como siempre, nos logeamos en nuestro servidor y vamos al apartado de Apps y buscamos MariaDB. Vamos a utilizar la platilla publicada por el usuario linuxservers que es la que tengo yo instalada:

Mariadb1

En la plantilla solo debemos añadir una contraseña para el administrador de la base de datos que podemos generar y guardar usando el generador de contraseñas de vaultwarden que ya tenemos instalado:

Mariadb2

Aceptamos y esperamos a que la MariaDB se instale.

Ahora, vamos a abrir la consola del contenedor de MariaDB:

Mariadb3

Accedemos a la base de datos con el siguiente comando:

mysql -u root -p
Mariadb4

Nos pedirá la contraseña. La copiamos del vault y la pegamos con clic derecho de ratón y le damos a enter.

Ahora ya estamos conectados a la base de datos. Creamos el usuario nextcloud con una nueva contraseña diferente a la de root y damos enter:

CREATE USER ‘nextcloud’ IDENTIFIED by ‘contraseña’;

Creamos la base de datos para nextcloud:

CREATE DATABASE nextcloud;

Y le damos todos los permisos de escritura y lectura al usuario nextcloud usando la contraseña del usuario:

GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’ IDENTIFIED BY ‘contraseña’;

Ya tenemos todo listo, guardamos eso si, la contraseña del usuario nextcloud ya que la necesitaremos durante la instalación de la la aplicación.

Cerramos la consola y volvemos a la pestaña APPs de UnRaid y buscamos nextcloud. De nuevo, instalamos la plantilla de linuxservers:

Nextcloud1

Debemos revisar la ruta donde vamos a guardar todos los documentos del cloud, en este caso voy a usar la ruta /mnt/user/Media/nextcloud/ ya que /Media es un share que vive en el array de discos duros. De esta forma, tendremos todos nuestros archivos protegidos contra pérdida si falla uno de los discos duros del servidor.

También debemos revisar el puerto, ya que es posible que lo tengas ya en uso por alguna otra app. Lo comprobamos abriendo la opción de Show docker allocations …. Si tenemos algún conflicto, cambiamos el puerto a uno que esté libre.

Nextcloud2

Aceptamos y lanzamos la instalación.

Al finalizar, vamos al la web que general el contenedor:

Nextcloud3

Aceptamos el aviso de seguridad, esto se debe a que no hemos configurado todavía el SSL:

Nextcloud4

Y ahora rellenamos la configuración de la base de datos. Para hacer pruebas podemos saltarnos el paso de crear una base de datos SQL y utilizar una BBDD embebida SQLite, pero como la idea es utilizarlo en productivo, seleccionamos como base de datos el tipo MySQL y metemos los datos de la configuración que hayamos utilizado. Además, debemos crear un usuario administrador del sistema, de nuevo, podemos usar el generador de contraseñas de vaultwarden para crear una contraseña segura:

Nextcloud5

Cuando tengamos todo rellenado, aceptamos y esperamos a que finalice la instalación:

Nextcloud6

Listo, ya tenemos nuestro cloud privado funcionando.

Configurar Nextcloud para acceso externo

Lo primero que vamos a hacer es configurar nextcloud para que pueda ser llamado desde un dominio diferente a la IP por defecto. Para ello, abrimos la consola del contenedor de nextcloud y hacemos:

sudo nano \config\www\nextcloud\config\config.php 

y añadimos el dominio que vayamos a usar a la lista de dominios permitidos:

Nextcloud8

Guardamos con ctrl+o y reiniciamos nextcloud para que coja la configuración cambiada y vamos a nuestro Ngix Proxy Manager. Agregamos la entrada con el dominio que hemos usado y OJO, apuntando al puerto https:

Proxy1 Proxy2

Si lo hemos hecho todo bien, accedemos al link que acabmaos de crear https://nextloud.tudominio.com y debe saltarnos la pantalla de login sin ningún aviso de certificados:

Proxy3

Securizar nuesto Cloud y resolver cualquier problema

Ahora que tenemos el cloud accesible desde cualquier lugar del mundo, debemos asegurarnos que tenemos toda la configuración segura. Para ver si todo es correcto vamos a configuración > Vista General (dentro de administración). Aquí apareceran los posibles errores que tengamos, en nuestro caso, un error por que falta la región por defecto:

Seguridad1 Seguridad2

Volvemos a la consola, lanzamos de nuevo el comando:

sudo nano \config\www\nextcloud\config\config.php 

Y en el último bloque, tras la última línea del array añadimos la siguiente línea con el código ISO de nuestro país:

default_phone_region => ES,
Seguridad3

Guardamos de nuevo y reiniciamos Nextcloud. Ahora si volvemos a la misma página no tendremos ningún error:

Seguridad4

En caso de que tengas algún error, déjalo en los comentarios y te ayudaré a solucionarlo (es común que haya algún error de cabeceras de https etc ya que estamos accediendo a través de un proxy reverso).

Ahora es momento de activar algunos elementos de seguridad adicional. Lo primero de todo debemos activar un servidor de correo SMPT para que Nextcloud nos pueda enviar correos para recuperar la cuenta o avisarnos de cambios de contraseñas. Para esto vamos a Ajustes Básicos y rellenamos la configuración tal que así usando un buzón de correo de GMAIL (puedes usar cualquier alternativa como protonmail…):

Seguridad5

Y en la pestaña de tu información personal añades tu correo al que quieres que lleguen las notificaciones:

Seguridad6

Finalmente en la pestaña de Seguridad (bajo administración) deberíamos modificar los ajustes por defecto de longitud y complejidad de contraseñas, así como activar la verificación en dos pasos obligatoria para todos (o al menos los admins):

Seguridad7

Instalar apps y plugins de utilidad en Nextcloud

Para instalar aplicaciones o plugins en Nextcloud desplegamos la lista de acciones en el usuario y vamos a Aplicaciones.

Apps1

Las Apps más interesantes para instalar desde mi punto de vista son las siguientes:

Apps2 1. Two-Factor TOTP Provider: su función es habilitar la doble autenticación con códigos de tiempo que podemos generar en nuestro vault o aplicaciones móviles como Authy que ya hemos usado. Apps4 2. Registration: Si planteamos usar nuestro cloud con usuarios (familia, amigos etc) y queremos que ellos mismos puedan crearse la cuenta este plugin nos lo permite Apps5 3. Splash: habilitamos una imagen de aleatoria de fondo en la pantalla de login Apps6 4. Theming: si queremos cambiar el logo y/o los colores de la app Apps7 5. Draw.io: una plataforma de dibujo vectorial para hacer esquemas, planos, etc.

Crear usuarios para nuestros amigos y familiares

Para crear usuarios el primer paso es crear grupos de usuarios. Si no vamos a complicarnos mucho, simplemente podemos crear un grupo de usuarios:

Usuarios1

Nos añadimos nosotros mismos como administradores del grupo:

Usuarios2

Si queremos limitar el espacio de almacenamiento de los usuarios de este grupo que por defecto es ilimitado, abajo a la izquierda hacemos clic en configuración y lo modificamos por ejemplo escribiendo 10GB:

Usuarios3

Para crear usuarios a mano, hacemos clic en Nuevo Usuario y rellenamos sus datos:

Usuarios6

Si hemos instalado y activado el registro de usuarios por su cuenta, conviene que en la configuración > registro habilitemos lo siguiente para evitar que cualquier persona se pueda crear un usuario y utilizar nuestro Cloud:

Usuarios4

Finalmente, si queremos que todos los usuarios utilicen el doble factor debemos ir de nuevo a configuración > seguridad y habilitar lo siguiente:

Usuarios5

Uso de Nextcloud

Al igual que las alternativas comerciales, Nextcloud nos permite utilizar nuestro espacio personal directamente desde la web o a través de aplicaciones de escritorio o móvil que sincronizarán de forma automática los archivos con el servidor.

Linux

Solo debemos descargas los clientes y utilizar el enlace https://nextloud.tudominio.com al configurarlos. Añadiremos nuestra cuenta con el usuario/contraseña/TOTP y seleccionaremos las carpetas que queramos sincronizar.

Puedes leer más sobre esto en la propia página de nextcloud, pero lo veremos con más profundidad en el siguiente post ya que utilizaremos Nextcloud para hacer las copias de las fotos de nuestro móvil para crear una alternativa de Google Fotos.


EXTRA: Actualizaciones

Para actualizar nuestro servidor de Nextcloud no solo debemos actualizar el contenedor con las nuevas imágenes que vayan saliendo, sino que debemos realizar una tarea manual dentro del propio servidor.

Cuando haya actualizaciones disponibles nos llegará una notificación ya que somos administradores del sistemas. Cuando eso ocurra debemos ir a configuración > Vista General (dentro de administración) como en los pasos anteriores y en la parte inferior le damos a Abrir el actualizador:

Update1

El actualizador no es más que un proceso interno que dejará el sistema en un modo mantenimiento para que en caso de cualquier fallo, podamos volver atrás. Una vez dentro del actualizador le damos al botón de Start update:

Update2

Descargará la actualización y comprobará que no hay ningún problema de compatibilidad. Si todo va bien, nos aparecerá otro botón de Disable maintenance mode and continue in the web based updater, hacemos clic y nos llevará al último paso en el que actualizaremos el sistema:

Update3

Le damos a Iniciar actualización y esperamos a que termine:

Update4

Finalmente, tras la actualización conviene que volvamos a configuración > Vista General (dentro de administración) para comprobar que no hay errores de configuración (por cambios o nuevas funciones que no tenemos aún configuradas).


Suscríbete, que es gratis

Nota: algunos de los enlaces a productos o servicios pueden ser enlaces referidos con los que podemos obtener una comisión de venta.