Redespliega tus stacks de Komodo desde CI.
Komodo CD es un pequeño panel autoalojado sobre Komodo: el estado de cada stack, Pull o Redeploy con un clic y un curl listo para pegar, para que tu pipeline haga lo mismo después de cada push.
curl -fsSL https://raw.githubusercontent.com/Nonetss/Komodo-CD/main/scripts/bootstrap.sh | bashQué incluye
Cada stack, en su página.
La lista de stacks se queda a la izquierda, con búsqueda y filtros por activos, parados o con problemas. Abre uno para ver sus servicios e imágenes, cuál tiene una imagen nueva, el commit desplegado frente al último, las tres acciones y el curl que lanza cada una desde CI. Marca varios para lanzar la misma acción en todos.
Pull, Redeploy o los dos.
Elige un stack y una acción. Pull actualiza las imágenes sin reiniciar, Redeploy baja y vuelve a levantar todo el stack, Pull + Redeploy hace las dos cosas. Debajo del formulario, la misma acción como un curl listo para un workflow de GitHub o Gitea Actions.
Cada deploy deja rastro.
Las acciones lanzadas desde el panel y desde CI acaban en el mismo historial, con quién las lanzó (un usuario o el nombre de la API key), el resultado y el propio mensaje de error de Komodo cuando algo falla.
Sabe qué lleva cada imagen.
Cada imagen que usa un stack se escanea con Trivy la primera vez que aparece, después de cada deploy y cuando lo pidas. La página de Seguridad las ordena por gravedad, dice qué vulnerabilidades tienen arreglo y qué stacks usan cada imagen, y copia el informe de una imagen en Markdown. Las imágenes privadas que no puede descargar se marcan como sin acceso.
Un Komodo, un par de claves.
Pega la URL de tu instancia de Komodo y una key y un secret de su Settings → API Keys. Se quedan en el backend: la API muestra la conexión por nombre y URL, nunca con sus credenciales.
Claro u oscuro, inglés o español.
Los dos temas y los dos idiomas vienen de serie y se recuerdan por navegador. En el móvil la navegación superior pasa a ser una barra inferior, así que un redeploy está a un par de toques.
Y el resto
- El estado de un vistazo
- El resumen reúne las cifras clave: los stacks por estado, lo que pide atención o tiene algo nuevo que desplegar, las vulnerabilidades de las imágenes y los despliegues de los últimos 30 días con su porcentaje de éxito.
- Avisos de actualización
- Un stack se marca cuando una de sus imágenes tiene actualización o el commit desplegado va por detrás del último, y un solo Pull + Redeploy desde la página de Stacks pone al día los que selecciones.
- API keys
- Claves personales enviadas como x-api-key, que solo se muestran al crearlas. Cada pipeline puede tener la suya y revocarse por separado.
- Referencia OpenAPI
- Cada endpoint está documentado en una referencia interactiva en /scalar, con la especificación en /doc.
- Avisos de fallo
- Notificaciones opcionales de ntfy, en ntfy.sh o en tu propio servidor, cada vez que falla un deploy, desde CI o a mano.
- Cuatro contenedores, sin servidor de base de datos
- Backend, frontend y gateway en ghcr.io, con la etiqueta latest y la de cada versión, más el servidor oficial de Trivy para los escaneos. SQLite en un único volumen: sin servidor de base de datos.
Cómo está montado
Cuatro contenedores levantados con Docker Compose. El gateway lleva Caddy, el único puerto publicado, que manda la API al backend y cada página a Astro SSR en el contenedor del frontend. El backend es el dueño de un fichero SQLite, habla con tu instancia de Komodo y manda las imágenes que hay que escanear a un servidor de Trivy, y Komodo hace el despliegue real en tus servidores.
Recorrido de las peticiones
- → HTTPS
- :80Gateway→ /*
- :4321Frontend · React→ /api/auth
- :3000Better Auth
- GitHub · Gitea→ POST /api/v0/deploy
- :80Gateway→ /api
- :3000Hono · oRPCSQLite · db_data→ HTTPS
- Core API→ PullStack · DeployStack
- Komodo Periphery
Enrutado del gateway
| Petición | Va a |
|---|---|
| /rpc/* /api/* | backend:3000 |
| /doc /scalar | backend:3000 |
| cualquier otra ruta | frontend:4321 |
- El secret de Komodo no sale del backend.
- La key y el secret se guardan en la base de datos del backend y solo se usan para llamar a Komodo. Al listar la conexión se devuelven su nombre y su URL, nunca las credenciales.
- Una sola puerta para personas y pipelines.
- Los mismos endpoints aceptan la cookie de sesión del navegador o la cabecera x-api-key desde CI. Las dos acaban en el historial, una key con su propio nombre.
- Komodo sigue siendo la fuente de verdad.
- Los stacks se leen de Komodo en cada petición y las acciones llaman a su PullStack y DeployStack. Komodo CD solo guarda usuarios, API keys, la conexión, los ajustes de ntfy y el historial.
En marcha con un solo comando.
En un host Linux con Docker, curl y openssl, desde un directorio vacío:
curl -fsSL https://raw.githubusercontent.com/Nonetss/Komodo-CD/main/scripts/bootstrap.sh | bash¿Prefieres montarlo a mano? Desplegar con Docker Compose
Qué hace el script
- Pregunta el puerto del host, la URL pública y el nombre, email y contraseña del primer administrador.
- Genera BETTER_AUTH_SECRET con openssl y escribe .env con modo 600. Nunca sobrescribe un .env existente.
- Descarga compose.yml en el directorio actual.
- Opcionalmente descarga las imágenes de ghcr.io y arranca el stack. El backend migra la base de datos y crea el administrador al arrancar.