El almacenamiento en la nube
Almacenar nuestros archivos en uno o varios servidores en internet no es algo reciente; muchos recordamos las buenas épocas del MegaUpload, que creció exponencialmente de manos del negocio de la piratería de contenido multimedia, sin embargo, su esencia era simple y legítima “guarda tus archivos donde no se te pierdan”. ¿Y quién no ha sufrido de pérdida de información por no tener un backup confiable?
Ciertamente la motivación principal para tener almacenamiento en la nube fue prevenir la pérdida de información por fallas en tus copias locales, como sabes, cualquier golpe o fallo eléctrico en tus unidades de almacenamiento puede causar la tan temida pérdida; incluso, algunos clics u órdenes descuidadas te pueden hacer perder tu preciada información. A pesar de esto, las características adicionales que el almacenamiento en la nube puede proveer, han cobrado mayor importancia que el simple hecho de tener un backup remoto, como lo son, la posibilidad de compartir y colaborar con archivos, acceder a un historial de versiones, y hoy en día, poder almacenar aplicaciones que corren sobre dichos servicios de almacenamiento.
El rebelde del vecindario
Con un mercado dominado por soluciones como Dropbox, Mega, Google Drive y Microsoft OneDrive, entre otros; ownCloud irrumpe como una solución que corre tanto en tu propia infraestructura, ya sea local, remota o como IaaS, así como en los mismos servidores de ownCloud con un servicio de pago que a partir de los 25 usuarios se hace más económico que otras alternativas. Sin embargo, la opción que nos trae aquí es ownCloud Community, que instalaremos en nuestra propia infraestructura basada en servidores virtuales Ubuntu Server 18.04 virtualizados con hypervisor KVM. La lista de requerimientos y de infraestructura soportada la puedes encontrar aquí.
Requisitos previos
Ya que este es esencialmente un servicio de almacenamiento, con lo primero que debes contar es con un sistema físico para tal cosa. Este sistema puede estar en una nube como IaaS (servidores virtuales por ejemplo), puede tener un NAS asociado, o simplemente un servidor local conectado a tu proveedor de internet. Las posibilidades son variadas y cada una trae sus beneficios y falencias; pero en general, será tu infraestructura actual, tu presupuesto y tus necedades lo que definirá la configuración del hardware. De lo que no podrás escapar es de la necesidad de usar discos SSD tanto para el almacenamiento como para la base de datos, ya que los discos mecánicos pueden reducir el desempeño de ownCloud sustancialmente.
Configuración para un sólo servidor
Este es la opción más popular en la comunidad, pero debes saber que si deseas autenticar usuarios mediante LDAP o ActiveDirectory, necesitarás un servidor alterno.
También necesitarás un registro A en tu administrador de dominios, apuntando a la dirección ip pública del servidor que alojará el ownCloud. Para esta instalación hemos escogido el nombre cloud.example.com
, podrás usar el subdomio que se ajuste a tus gustos o necesidades; lo menciono porque muchas guías indican que el subdomio debe ser owncloud
, pero no es necesario. De hecho, esta guía difiere un poco de la guía oficial, ya que usamos una configuración de servidor virtual de Apache un poco más estándar.
Software requerido
Deberás tener instalado en tu servidor el siguiente software:
- Apache2 con libapache2-mod-php
- Mysql Server ó MariaDB
- OpenSSL
- PHP 7.4 o mayor, con los módulos: php-imagick php-common php-curl php-gd php-imap php-intl php-json php-mbstring php-mysql php-ssh2 php-xml php-zip php-intl php-apcu php-redis
- Redis Server
- Wget
Eso será suficiente.
Nota: ownCloud también puede ser desplegado en un contenedor de Docker, las instrucciones están aquí.
Preparando la instalación en Ubuntu 18.04 Server LTS
El primer paso será tener nuestro sistema actualizado:
|
|
Ahora instalemos los paquetes necesarios:
|
|
Nota: si la instalación de redis-server falla, es posible que tu no uses IPV6, por lo que es necesario editar su configuración en ‘/etc/redis/redis.conf’, para indicarle que no use el loopback de IPV6, esto es, quitando el
::1
de la siguiente línea:bind 127.0.0.1 ::1
, quedando así:bind 127.0.0.1
. Guardas el archivo, reinicias el servicio consudo systemctl restart redis-server
y arreglas la instalación consudo apt -f install
.
Habiendo instalado los paquetes necesarios, requerirás configurar MySql, revisa el aparte de la guía sobre Matomo dónde explico cómo.
ownCloud viene con un comando que facilita las tareas de instalación y mantenimiento, por lo que es conveniente crear el script para que lo ejecute de manera global en el sistema. Vamos a crearlo:
|
|
|
|
Nota:
cloud.example.com/public_html
será el directorio dentro del servidor apache, el cual podrás nombrar como lo prefieras.
Ahora hay que darle permiso de ejecución al script.
|
|
Ahora creemos el servidor virtual dentro de Apache:
|
|
|
|
Ahora hay que activar la configuración y recargar el Apache:
|
|
Asegúrate de tener los módulos de apache necesarios cargados, si faltare alguno por ser cargado, reinicia el apache:
|
|
Es hora de crear la base de datos de MySql:
|
|
|
|
Aquí, el usuario admin
será el que hayas creado en la configuración de MySql y el 'password'
será el que le hayas asignado en dicho paso. A su vez, la contraseña que te pedirá el intérprete de mysql será la que hayas asignado para el usuario root.
Puedes ejecutar el siguiente comando para verificar que la DB se haya creado correctamente:
|
|
Descarga e Instalación
Puedes configurar los repositorios para Ubuntu de ownCloud, o puedes seguir con esta instalación manual así:
|
|
Nota: asegúrate de obtener la última versión en el sitio de descargas de ownCloud.
Ahora vamos a mover todos los archivos descargados al directorio raíz del servidor virtual creado anteriormente:
|
|
Necesitarás darle permisos al usuario www-data
para acceder a este directorio y sus archivos:
|
|
Ya está todo listo para la instalación, ejecuta el comando occ
de la siguiente forma:
|
|
Donde --database-user
será el usuario de la base de datos definido en los pasos anteriores con su respectivo password, mientras que el --admin-user
será un nuevo usuario que se creará dentro de dicha DB con su respectivo password.
Si todo sale bien, verás el siguiente mensaje:
|
|
De lo contrario, el script te informará sobre algún paquete que hiciere falta o algún error de tu configuración.
Configuración
Ahora vamos a configurar los dominios confiables, que será la URL que debiste haber configurado al principio. En caso de no tener un dominio, puedes usar directamente tu ip pública. Deberás ver la siguiente salida >:
|
|
Nota: se pueden añadir más URL y direcciones ip confiables, sólo debes cambiar el número 1 a 2 y así sucesivamente.
Ahora vamos a crear una configuración de cron que ejecute el system:cron
de ownCloud cada 15 minutos. Primero, configuremos el cron de ownCloud en modo background.
|
|
Ahora escribamos un nuevo archivo de cron para el usuario www-data
y cambiemos sus permisos:
|
|
|
|
Nota: un comando a la vez.
Sólo nos falta un par de cosas, una de ellas es configurar la caché y el bloqueo de archivos, verás las respectivas salidas de cada comando:
|
|
|
|
|
|
Seguido a esto, crearemos una configuración de rotación del log para al llegar a 10MB sea almacenado y comprimido, así se evita tener logs inmanejables.
|
|
|
|
Agreguemos un paso adicional, vamos a usar el Certbot para obtener el certificado de nuestro nuevo dominio, si no has configurado Certbot para que puedas usar certificados de Let’s Encrypt, te recomiendo esta guía:
|
|
Con esto ya puedes acceder a https://cloud.example.com, verás la pantalla de inicio de sesión y podrás iniciar con el usuario administrador recién creado.
La pantalla de bienvenida te propondrá la instalación de las aplicaciones de escritorio y móviles, con lo que tu suite quedará completa.
Además, no olvides pasar por la tienda de ownCloud, recuerda que también puedes almacenar aplicaciones; a lo mejor te antojas de algo.
Espero que te sirva esta guía, si tienes dudas no olvides dejar tus comentarios.