Cómo construir tu propia sincronización de archivos en la nube con Nextcloud

Servicios como Dropbox te facilitan el acceso a tus archivos en múltiples dispositivos. Sin embargo, es posible que desees tener más control sobre ellos. En 30 minutos, puedes tener tu propio servicio de sincronización en la nube en un servidor que controles a través de Nextcloud.

¿Qué es Nextcloud?

Nextcloud es un software de código abierto que te permite sincronizar archivos entre tu PC y otros dispositivos. Funciona como lo harías con Dropbox, Onedrive o Google Drive. Además, Nextcloud tiene un ecosistema de aplicaciones vibrante que te permite hacer más que solo sincronizar archivos.

Puedes usar Nextcloud para la gestión de contactos y calendario o para ejecutar un cliente de correo electrónico IMAP basado en la web. Incluso puedes configurar un programa de chat en vivo exclusivamente para ti y cualquier otra persona que pueda acceder a tu servidor.

Sin embargo, antes de entrar en detalles, hay una advertencia. Una vez que comiences a usar Nextcloud, depende de ti mantener el servidor. Esto significa que, además de administrar el software Nextcloud, debes asegurarte de que el sistema operativo del servidor subyacente se mantenga actualizado con los parches.

Los servidores de Nextcloud generalmente no presentan problemas, pero si algo sale mal, depende de ti solucionarlo.

La buena noticia es que hay muchos blogs, foros y páginas de soporte para ayudarte a solucionar problemas. Si encuentras un problema, es probable que le haya sucedido a otra persona y hay una solución por ahí.

Lo que necesitarás

Necesitarás los siguientes tres elementos para comenzar con Nextcloud:

  1. Un servidor virtual con Ubuntu 18.04
  2. La shell Bash en el escritorio de tu computadora.
  3. Un nombre de dominio

Para nuestros ejemplos, crearemos varios nombres de usuario y contraseñas, incluidos los siguientes:

  • El nombre de usuario y la contraseña root de tu servidor.
  • Un nombre de usuario y contraseña de servidor normal con privilegios administrativos.
  • Un nombre de usuario y contraseña de Nextcloud.

Para los fines de este tutorial, estamos utilizando un servidor virtual que ejecuta Ubuntu 18.04 de DigitalOcean. Sin embargo, puedes utilizar cualquier proveedor que desees, incluidos Linode o AWS.

Independientemente del servicio que elijas, la clave es ejecutar Ubuntu 18.04 (la versión actual de soporte a largo plazo en este escrito) para evitar posibles problemas.

Cada proveedor de servidor virtual es un poco diferente, pero todos apuntan a poner en funcionamiento un servidor con unos pocos clics del mouse. Para comenzar, te recomendamos que utilices un servidor de nivel básico a modo de prueba hasta que te acostumbres a Nextcloud. El droplet de $5 de Digital Ocean ofrece 1 GB de RAM, 1 núcleo de CPU, 1 TB de transferencia de datos y 25 GB de almacenamiento. Linode ofrece un VPS similar por el mismo precio.

A menos que te sientas cómodo con las claves SSH, solicita a tu proveedor los detalles de inicio de sesión root basados ​​en contraseña para comenzar. Debes asegurarte de que tu servidor se esté ejecutando y sentirte cómodo con la línea de comandos. Después puedes consultar las páginas de ayuda de tu proveedor sobre cómo agregar claves SSH para un inicio de sesión más seguro.

Windows 10

Si tu computadora ejecuta Windows 10, necesitarás instalar el Subsistema de Windows para Linux y obtener una shell Bash con utilidades de Linux para continuar. Si usas Linux o macOS, el programa Terminal es todo lo que necesitas.

La mayoría de las terminales Bash vienen con SSH instalado. Empero, si no, simplemente escribe sudo apt-get install ssh en la ventana de la terminal para instalarlo.

Cuando compres un nombre de dominio, no tiene que ser una dirección .COM. Solo tú y tus amigos y familiares cercanos lo usarán. Por ejemplo, encontramos nombres de dominio .XYZ por solo $1 al año, este funcionará bien.

Preparando tu servidor

Para preparar tu servidor para la acción, debes configurar una cuenta de usuario normal con privilegios administrativos. Es una idea terrible, terrible iniciar sesión como el todopoderoso usuario root después de la configuración inicial.

En este momento, debes tener una dirección IP y una contraseña root del proveedor de tu servidor. La dirección IP es cómo te conectas al servidor, y la contraseña te permite ingresar.

Para comenzar, escribe lo siguiente (reemplaza las X con la dirección IP de tu servidor) y luego presiona enter:

Nuestra dirección IP es 165.22.81.172, por lo que escribimos eso en nuestro comando. Si todo va según lo planeado, el servidor remoto (donde colocarás Nextcloud) te pedirá una contraseña. Escribe la contraseña que te proporcionó tu proveedor de servidor.

Luego se te pedirá que establezcas una nueva contraseña para root. Elije lo que quieras, ¡simplemente no la pierdas ni la olvides!

Ahora estás dentro de tu servidor remoto y es hora de ponerte a trabajar. Presiona Enter después de cada comando en este artículo para ejecutarlo.

Creando un nuevo usuario

Primero, escribimos lo siguiente para agregar un nuevo usuario al servidor:

Debes reemplazar “cesar” con el nombre de usuario que deseas utilizar. Una vez que ejecutes este comando, se te pedirá que proporciones una contraseña al nuevo usuario. Después de hacer eso, el resto de la información que solicita el servidor es opcional; si no quieres proporcionarla, sigue presionando Enter.

A continuación, escribimos lo siguiente para otorgar a nuestros nuevos usuarios privilegios administrativos:

Nuevamente, debes reemplazar “cesar” con el nombre de usuario que eligiste anteriormente.

Ahora, abrimos una segunda ventana de la terminal y escribimos lo siguiente para asegurarnos de que las nuevas cuentas de usuario funcionen:

Nuevamente, debes reemplazar lo anterior con tu nombre de usuario y la dirección IP de tu servidor. Escribe la contraseña que creaste para esta cuenta de usuario cuando se te solicite. Si funciona, regresa a la ventana de terminal en la que has iniciado sesión como root.

Ahora, escribimos lo siguiente para asegurarnos de que el firewall de Ubuntu funciona correctamente:

Ese último comando de estado debería devolver algo como la imagen a continuación, confirmando que el firewall no bloqueará SSH.

Todavía no verás la parte “80, 443/tcp”, pero lo veremos más adelante. Ahora, cerremos la ventana root y regresemos a la segunda ventana de terminal con el usuario normal.

Instalar Nextcloud

Antes tenías que configurar e instalar el software Nextcloud, PHP, el software del servidor web y la base de datos, todo por separado.

Es mucho más fácil usar el paquete oficial de Snap, que se encarga de todo con un solo comando. No hay que perder el tiempo con la base de datos o tener que preocuparte si Apache o Nginx están mostrando a tu sitio.

Si deseas ver exactamente qué instala el paquete Snap (spoiler: es el resto del conjunto LAMP, más Redis), puedes onsultar el repositorio Snap de Nextcloud en GitHub.

Escribimos lo siguiente:

El “sudo” al principio eleva la cuenta de usuario normal para que tenga derechos administrativos temporales. Se te pedirá tu contraseña para llevar esto a cabo. Si todo va bien, en uno o dos minutos, Nextcloud se instalará y (casi) estará listo para la acción.

A continuación, escribimos lo siguiente para crear una nueva cuenta de usuario de Nextcloud que puede iniciar sesión en nuestro sitio:

En lugar de “u_cesar”, escribe el nombre de usuario que deseas usar para iniciar sesión en Nextcloud. La parte “correctHorseBatteryStaple” es nuestra contraseña. No lo uses, es de un cómic XKCD muy conocido   y es solo un ejemplo.

Administración de dominios

Para facilitar la vida, no queremos usar una dirección IP todo el tiempo para acceder a nuestro servidor. En su lugar, utilizaremos un nombre de dominio, que, nuevamente, puedes obtener por tan solo $ 1 por año. Para nuestro ejemplo, estamos usando HowToGeekTest.xyz.

Una vez que tengas un dominio, querrás administrar la configuración de DNS desde tu registrador de dominio (donde compraste el dominio) y apuntarlos al proveedor de tu servidor. Si eliges DigitalOcean, por ejemplo, esos ajustes serían ns1.digitalocean.com, ns2.digitalocean.com y ns3.digitalocean.com.

A continuación, dirígete a tu proveedor de servidor (por ejemplo, DigitalOcean, Linode o lo que elijas) y agrega el nuevo dominio a tu cuenta. Deberás agregar un registro A que apunte a tu dirección IP. Asimismo, un registro CNAME si no desea usar “www” todo el tiempo y registros NS si no se agregaron automáticamente.

La imagen a continuación muestra un ejemplo de DigitalOcean.

Técnicamente, puede tomar hasta 24 horas antes de que tu dominio esté disponible, pero generalmente comienza a funcionar en unos minutos.

Volver a Nextcloud

Con el dominio configurado, podemos volver a finalizar Nextcloud en la terminal. Si cerraste sesión en el servidor con tu cuenta de usuario habitual (cesar@165.22.81.172 en nuestro ejemplo), debes volver a iniciar sesión.

Ahora, escribimos lo siguiente para agregar nuestro nuevo dominio a Nextcloud:

Después de “–value =,” ​​debes escribir tu dominio en lugar del nuestro (howtogeektest.xyz).

A continuación, escribimos lo siguiente para asegurarnos de que nuestro nuevo dominio se haya agregado correctamente:

La terminal debe imprimir algo como la imagen de abajo:

A continuación, escribimos lo siguiente para asegurarnos de que podemos usar los puertos que queramos al dejarlos pasar por el firewall:

El puerto 80 es utilizado por el tráfico HTTP no cifrado, mientras que el 443 es para SSL/TLS.

Hablando de eso, necesitaremos un certificado SSL/TLS gratuito de Let’s Encrypt, por lo que escribimos lo siguiente:

Una vez que el generador Let’s Encrypt comienza a ejecutarse, solicita una dirección de correo electrónico y tu nombre de dominio Nextcloud. Simplemente sigue las instrucciones y deberías tener un certificado de sitio web seguro en poco tiempo. Si Let’s Encrypt funcionó, es hora de probar su configuración.

Dirígete a tu nuevo dominio (como nuestro howtogeektest.xyz). Deberías ver una página de inicio de sesión de Nextcloud (ver más abajo) con un icono de candado en la barra de direcciones.

Resultados

Si ves la página de inicio de sesión, estás listo para comenzar. Si no, espera unas horas e intenta nuevamente. En caso que desees solucionar problemas de inmediato, puedes ver si el servidor responde a través de la dirección IP.

Para que esto funcione, tenemos que escribir lo siguiente, para agregar la dirección IP a nuestros dominios de confianza:

Ten en cuenta que usamos “Trusted_domains 2” y no “Trusted_domains 1“. Si solo repites “Trusted_domains 1”, sobrescribirá tu nombre de dominio real en la lista de dominios de confianza y no podrás usarlo.

Una vez hecho esto, escribe la dirección IP en la barra de direcciones de tu navegador, y deberías ver la página de inicio de sesión de arriba. Si no, algo salió mal con la instalación.

Como no tenemos un certificado SSL para la dirección IP, no podrás iniciar sesión de forma segura. Por esa razón, te sugerimos que elimines la IP de la lista de dominios de confianza después de confirmar que el servidor está funcionando. Para hacer esto, escribe lo siguiente:

Aumentando el rendimiento

Si tu servidor Nextcloud no funciona bien, es posible que debas aumentar el límite de memoria. Por defecto, son 128 MB. Para aumentar eso a 512 MB, debes iniciar sesión en el servidor utilizando la terminal y escribir lo siguiente:

Ahora que Nextcloud está en funcionamiento, puedes iniciar sesión y examinar las aplicaciones disponibles. También compartir archivos con otros e instalar Nextcloud en tu computadora de escritorio y dispositivos móviles para la sincronización de múltiples dispositivos.

Nextcloud ofrece herramientas de sincronización de escritorio y aplicaciones móviles para Windows, Mac, Linux, iPhone, iPad y Android.

¡Bienvenido a tu propio Dropbox personal!