
🌐 También en: English · Deutsch · Français
La motivación inicial era doble: impulsar la soberanía digital y, al mismo tiempo, convertir todo el montaje en mi propio laboratorio de aprendizaje. 🚀Los primeros despliegues los aprovisioné con Ansible. Sin embargo, la automatización nunca llegó a estar completa de principio a fin; los pequeños ajustes y retoques de operación seguían haciéndose a mano. 🔧Hasta ahora, cada instancia de Nextcloud tenía su propio playbook. Funcionaba, pero con el tiempo esta arquitectura dejó ver sus debilidades estructurales, sobre todo cuando hacían falta cambios sincronizados o centralizados en ambos entornos. ⚙️
Hasta ahora, el sistema operativo base era Debian 12. 🐧
🎯 Objetivos técnicos concretos del nuevo stack
La nueva infraestructura no es un simple cambio de distribución. Es una evolución deliberada de la arquitectura.
Los objetivos concretos del nuevo montaje son:
- 🌐 Nginx con soporte para HTTP/3 y QUIC para un rendimiento moderno en la capa de transporte y una entrega web preparada para el futuro
- 🗄️ MariaDB como backend relacional para una persistencia de datos predecible y eficiente
- 🔥 Cortafuegos basado en iptables para un filtrado de paquetes determinista y un control explícito del tráfico
- 🔐 Certificados de Let’s Encrypt para una gestión del ciclo de vida TLS automatizada y gratuita
La idea es tener un stack ligero, rápido y criptográficamente sólido, con la mínima superficie de ataque innecesaria.
🔄 Estrategia de migración: de Debian a AlmaLinux
Ahora mismo estoy preparando una renovación completa de la infraestructura. Esta vez he elegido a propósito AlmaLinux, una distribución compatible con Red Hat.
En parte quería conocer mejor el ecosistema Red Hat, pero sobre todo me interesaba SELinux. 🛡️
Simplificando, SELinux añade una capa de seguridad extra sobre los permisos clásicos de Linux.
En lugar de basarse solo en el acceso por usuario/grupo, aplica un control de acceso basado en políticas: los servicios solo pueden hacer lo que se les permite de forma explícita. Aunque un proceso quede comprometido, SELinux puede impedir que interactúe con componentes del sistema que no le corresponden.
Ya voy bastante avanzado con la migración, pero en esta fase todo gira en torno a una cosa: probar, probar y volver a probar. 🧪
📄 Collabora: de la instalación manual a los contenedores
En montajes anteriores, la integración de Collabora Online siempre la instalaba a mano.
En producción, en las asociaciones, esto daba problemas una y otra vez: incompatibilidades, inestabilidad y la necesidad recurrente de quedarse en versiones antiguas. 😩
Con el tiempo, tanto esfuerzo constante llegó a frustrarme tanto que incluso me planteé pasarme a un Nextcloud alojado comercialmente. 💸
En lo puramente económico, el hosting gestionado ya no es mucho más caro que un vServer propio.
La verdadera diferencia está en el control, la flexibilidad y la libertad de arquitectura.
Además, algunos proveedores de Nextcloud alojado cuentan los usuarios de Collabora activos a la vez y cobran un extra cuando se superan ciertos umbrales, un modelo que encaja mal con una infraestructura sostenida por voluntarios. 🚫
🐳 Gran mejora: Collabora desplegado con Podman
Hoy he logrado un gran avance con Collabora.
Siguiendo los consejos de ChatGPT (sí… lo confieso 😅), he migrado el servicio de Collabora a un despliegue independiente en contenedor con Podman.
Ahora Nextcloud se conecta a este endpoint externo en lugar de alojar la app internamente.
Este enfoque se considera en general más estable, más fácil de mantener y más limpio de operar que el modelo clásico integrado en la app. 🧱
Dicho esto, el montaje aún necesita una validación a fondo.
Habrá que seguir probando, y en paralelo seguiré profundizando en el comportamiento de SELinux en entornos con contenedores. 🔍
⚙️ Estado de Ansible y próximos pasos
El código de Ansible ya funciona, pero está lejos de estar «terminado». Mi flujo de trabajo actual es iterativo a propósito:
- Cargarme el vServer de pruebas de Nextcloud 💣
- Reinstalarlo todo desde cero 🧰
- Pulir los playbooks 📜
- Y vuelta a empezar 🔁
Este ciclo de destruir y reconstruir es intencionado: es el camino más rápido hacia un estado de infraestructura reproducible y determinista.
📦 Descarga: playbook de Ansible (beta)
El estado actual del proyecto de Ansible ya es totalmente ejecutable y funciona de principio a fin en mis entornos de prueba.
Eso sí, antes de usarlo en tu propio montaje, tienes que adaptar todos los valores sensibles y específicos de tu entorno
(p. ej. nombres de host, dominios, credenciales, secretos, direcciones IP).
Puedes descargar aquí el archivo zip actual del proyecto de Ansible:
👉 Descargar el stack de Nextcloud con Ansible (beta)
Ten en cuenta que este código está actualmente en fase beta.
Los playbooks funcionan, pero el proyecto sigue en desarrollo activo y en mejora continua.
Ya estoy trabajando en ajustes y optimizaciones, y tengo previsto publicar una versión actualizada en los próximos días.
⚠️ Descargo de responsabilidad
Este proyecto se ofrece tal cual, sin garantía de ningún tipo.
El uso es enteramente bajo tu propia responsabilidad.
Te recomiendo encarecidamente probar los playbooks en un entorno que no sea de producción antes de plantearte cualquier despliegue real.
Infraestructura como código. La comunidad primero. Totalmente soberana. 🏴☠️




