¿Por qué Komodo en lugar de Portainer o Dockge?
Portainer y Dockge son interfaces de un solo servidor: leen el socket Docker local y muestran lo que se ejecuta en esa máquina. En cuanto tiene dos servidores o más, necesita dos pestañas, recordar qué servicio corre en qué máquina y replicar cada cambio manualmente. Komodo supera este límite con su arquitectura Core/Periphery: el Core es un servidor central que dirige agentes Periphery ligeros en cada máquina. Despliega, reinicia o actualiza cualquier stack desde una única interfaz, con un historial completo de quién hizo qué y cuándo.
Lo que Komodo aporta más allá de la gestión de contenedores
- GitOps nativo — vincule un repositorio Git, defina un Procedure de despliegue y dispárelo automáticamente en cada
git pushmediante webhook HMAC. - Procedures reutilizables — encadene pull de imagen, migración de base de datos, reinicio de stack y notificación de Slack en un único workflow versionable.
- Docker Swarm — gestione servicios Swarm, réplicas y actualizaciones progresivas desde la misma interfaz que sus stacks Compose.
- Alertas nativas de Slack/Discord — configure canales de alerta para fallos de despliegue, contenedores detenidos y recursos críticos.
- RBAC multiusuario — conceda accesos granulares por rol (viewer, builder, deployer) sin compartir la cuenta de administrador.
- API REST completa — automatice despliegues desde su pipeline CI/CD (GitHub Actions, Woodpecker, Forgejo) sin pasar por la interfaz web.
La arquitectura Core/Periphery en la práctica
El Core es el cerebro: almacena la configuración en FerretDB (una capa compatible con MongoDB), expone la interfaz web en el puerto 9120 y recibe los webhooks. Los agentes Periphery son los brazos: cada uno se ejecuta en un servidor objetivo, expone el socket Docker de la máquina al Core a través de un canal cifrado y ejecuta los comandos que el Core le envía. El par de claves asimétricas generado en la inicialización garantiza que solo su Core puede comandar sus agentes — no hay secretos adicionales que gestionar.
Desplegar Komodo en su VPS ServOrbit
Contrate el VPS
Un VPS de 1 vCPU / 1 GB RAM con Ubuntu 24.04 LTS es suficiente para el plano de control de Komodo (Core + FerretDB). El Core Rust consume menos de 256 MB en reposo. Si planea ejecutar otros servicios en el mismo VPS, se recomienda 2 GB RAM.
Despliegue desde el marketplace de ServOrbit
En su área de cliente de ServOrbit, vaya a Marketplace → Despliegue de Aplicaciones y DevOps → Komodo y haga clic en Desplegar. Proporcione un nombre de dominio o subdominio — requerido para
KOMODO_HOST. El playbook genera automáticamente los secretos JWT, el par de claves Core/Periphery y la contraseña de administrador, luego inicia los servicios.Inicie sesión y verifique el agente local
Abra
https://su-dominio.com:9120e inicie sesión conadminy la contraseña mostrada en su área de cliente. En el menú Servers debería ver un servidor llamado 'Local' ya registrado — este es el agente Periphery en el VPS de alojamiento que se conectó automáticamente al arranque. Cambie su contraseña desde la configuración de la cuenta en esta primera sesión.Conecte un servidor remoto mediante Periphery
En cada VPS adicional a gestionar, instale el agente Periphery:
docker run -d --restart=unless-stopped --network host -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/moghtech/komodo-periphery:latest. Luego en Komodo, vaya a Servers → Add Server, introduzca la IP del agente y el puerto 8120. Su flota de servidores aparece inmediatamente en el panel.Cree su primer stack desde el marketplace
En Komodo, vaya a Stacks → New Stack. Elija el servidor objetivo en el desplegable (Local o cualquier agente añadido), pegue su YAML de Docker Compose o apunte a una ruta de repositorio Git, y haga clic en Deploy. Komodo escribe el archivo en el servidor remoto, ejecuta
docker compose up -dy transmite los logs en tiempo real.Configure alertas de Slack o correo electrónico
En Komodo, vaya a Alerters → New Alerter. Elija el tipo (Slack, Discord, correo electrónico) y pegue la URL del webhook o la dirección de destino. Luego asocie el alerter a sus recursos (Stacks, Builds, Servers) a través de la sección Alerts de cada recurso. Recibirá una notificación inmediata ante un fallo de despliegue o un contenedor detenido.
Configure un pipeline GitOps
En su repositorio de GitHub, añada un webhook apuntando a
https://su-dominio.com/api/webhook/komodocon el secreto HMAC definido en Komodo. Cree un Procedure llamado 'Deploy App': pull de imagen, reinicio de stack, notificación. Vincule el webhook al Procedure. Cadagit pushdispara ahora el pipeline — la firma HMAC es verificada por Komodo antes de la ejecución.Integre su CI/CD mediante la API REST
Komodo expone una API REST completa en
/api. Desde GitHub Actions, dispare un despliegue con una llamadaPOST /api/execute/procedure/<nombre>y el token API de su cuenta de servicio. Esta integración le permite encadenar pruebas, construcción de imagen y despliegue en un único workflow CI sin acceso directo a la máquina.
GitOps con webhooks: desplegar en cada push
El ciclo GitOps de Komodo se apoya en tres componentes: un repositorio Git, un webhook HTTP y un Procedure. En GitHub, cree un webhook en Settings → Webhooks, apunte a https://su-dominio.com/api/webhook/komodo, elija el tipo de contenido application/json y defina un secreto. En Komodo, en la sección Webhooks de un Stack o Procedure, pegue ese mismo secreto — Komodo calcula el HMAC SHA-256 de cada payload entrante y rechaza las solicitudes cuya firma no coincida.
Un Procedure de despliegue típico encadena tres acciones: PullImage (descarga la última imagen), DeployStack (recrea los contenedores), luego SendAlert (notifica su canal de Slack). Si algún paso falla, Komodo detiene el Procedure y envía el error completo a su alerter — nunca termina con un despliegue parcialmente aplicado en silencio.
Un detalle importante: Komodo valida la rama del push contra la rama configurada en el Stack antes de disparar. Un push a una rama de feature no disparará un despliegue de producción, aunque el webhook apunte a la misma URL. Configure un Stack por entorno (staging en dev, producción en main) y obtendrá un pipeline de promoción completamente automatizado.
Crear un Procedure en Komodo: pull, migración, reinicio
Crear el Procedure
En Komodo, vaya a Procedures → New Procedure. Asígnele un nombre (
deploy-app) y seleccione el servidor objetivo. Un Procedure es una lista ordenada de pasos — cada paso tiene un tipo (PullImage, DeployStack, RunCommand, SendAlert) y parámetros.Añadir el paso PullImage
Haga clic en Add Step → PullImage. Introduzca el nombre de la imagen (p. ej.
ghcr.io/myorg/myapp:latest) y el servidor donde descargarla. Si su imagen está en un registry privado, añada las credenciales en Settings → Registries antes de este paso — Komodo las inyecta automáticamente durante el pull.Añadir un comando de migración
Haga clic en Add Step → RunCommand. En el campo Command, introduzca el comando de migración a ejecutar en el contenedor. Active la opción 'Stop on error': si la migración falla, el Procedure se detiene antes de reiniciar el servicio, evitando dejar una aplicación con un esquema inconsistente.
Añadir el reinicio del stack
Haga clic en Add Step → DeployStack y seleccione el Stack objetivo. Komodo ejecuta
docker compose up -d --pull never(la imagen ya fue descargada en el paso anterior) y recrea los contenedores modificados. Las variables de entorno definidas en el Stack se pasan automáticamente.Añadir una notificación de finalización
Haga clic en Add Step → SendAlert y seleccione su Alerter de Slack o Discord. Puede incluir variables de contexto en el mensaje (
{{ procedure.name }},{{ server.name }}) para identificar de un vistazo qué Procedure en qué servidor acaba de ejecutarse.
Komodo frente a Portainer y Dockge
Desplace la tabla
| Funcionalidad | Komodo | Portainer CE | Dockge |
|---|---|---|---|
| Multi-servidor nativo | ✅ Core/Periphery ilimitados | ⚠️ Edge agents (versión de pago) | ❌ Un solo host |
| GitOps / webhooks | ✅ Nativo, HMAC validado | ❌ No nativo | ❌ No nativo |
| Procedures / automatización | ✅ Motor integrado | ⚠️ Limitado CE | ❌ No |
| API REST | ✅ Completa | ✅ Completa | ❌ No |
| Alertas nativas | ✅ Slack, Discord, correo | ⚠️ Parcial CE | ❌ No |
| Log de auditoría | ✅ Todas las acciones | ⚠️ Parcial CE | ❌ No |
| Licencia / precio | GPL-3.0, gratuito | Zlib (CE gratuito) / Business de pago | MIT, gratuito |
Resolución de problemas: errores comunes y soluciones
Agente Periphery inaccesible. El error más común al añadir un nuevo servidor. Primero verifique que el firewall del servidor remoto permite conexiones entrantes en el puerto 8120 desde la IP de su Core. Luego compruebe que la variable KOMODO_HOST del agente Periphery coincide con la IP o dominio que el Core usa para alcanzarlo.
Error al descargar la imagen. Komodo devuelve este error cuando el registry privado no es accesible o faltan credenciales. Añada sus credenciales en Settings → Registries (Docker Hub, GHCR, registry privado) antes de disparar un pull. Si la imagen es pública y el error persiste, verifique que el servidor objetivo tiene acceso a Internet en el puerto 443.
Webhook no disparado. Dos causas principales: el secreto HMAC configurado en Komodo no coincide con el introducido en GitHub, o la URL de su Core no es accesible desde los servidores de GitHub. Revise la pestaña 'Recent Deliveries' en GitHub para ver el código HTTP devuelto — un 401 indica un secreto incorrecto, un timeout indica un problema de red. Verifique también que la rama del push coincide con la configurada en su Stack o Procedure.
Inicio lento la primera vez (FerretDB). FerretDB realiza una inicialización interna de su base de datos en el primer arranque, lo que puede tardar entre 30 y 60 segundos antes de que la interfaz de Komodo responda. Si ve un error de conexión inmediatamente después del despliegue, espere un minuto y recargue la página antes de diagnosticar un problema de instalación.
Komodo + Dockge: lo mejor de los dos mundos
Komodo y Dockge no se excluyen mutuamente. Dockge es perfecto para la edición interactiva de archivos Compose en una sola máquina (interfaz YAML con resaltado de sintaxis). Komodo gestiona la coordinación multi-servidor, los despliegues desde Git y los workflows. Despliegue Dockge a través de Komodo en sus máquinas de desarrollo, y use Komodo para orquestar los despliegues de producción.