zoomies
Zoomies es un controlador ligero y auto-alojado para flotas de runners de GitHub Actions. Utiliza una arquitectura basada en Go y SQLite, sin Kubernetes, ofreciendo una interfaz web en tiempo real, escalado automático mediante webhooks y soporte para runners efímeros por defecto.
Ficha actualizada 22 sept 2026, 14:52 · upstream 22 sept 2026, 14:38 · release v1.3.0
Qué es zoomies
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Zoomies es un controlador de flotas de runners de GitHub Actions diseñado para ser ligero y auto-alojado. Su arquitectura se basa en un único binario Go y una base de datos SQLite, eliminando la necesidad de Kubernetes o servidores de bases de datos externos. Proporciona una interfaz web en tiempo real que permite gestionar cada runner desde un panel centralizado, con actualizaciones instantáneas del estado de las tareas sin necesidad de recargar la página.
El sistema implementa runners efímeros por defecto, creando un entorno aislado para cada trabajo y destruyéndolo tras su finalización. Esto garantiza que no haya fugas de datos entre ejecuciones de workflows. La autenticación se realiza mediante una GitHub App, eliminando la necesidad de gestionar tokens secretos estáticos manualmente. Además, soporta conexiones privadas a través de Tailcat, permitiendo conectar máquinas internas sin exponerlas públicamente ni configurar túneles complejos.
La observabilidad es robusta, integrando métricas Prometheus, logs estructurados y un visor de logs en vivo capaz de manejar grandes volúmenes de datos. El sistema incluye mecanismos de respaldo automáticos a S3 compatibles, con cifrado y verificación de integridad. La seguridad está configurada por defecto con bindings en loopback, sin acceso al socket Docker desde los jobs y ejecución como usuario no root.
- Implementación de entornos CI/CD efímeros para pruebas aisladas sin contaminación entre trabajos.
- Gestión de flotas de runners en entornos domésticos o home lab utilizando hardware propio.
- Escalado elástico de recursos CPU dinámico entre múltiples hosts sin sobrecargarlos.
- Despliegue de runners en máquinas detrás de NAT o firewalls estrictos mediante conexión outbound.
- Autenticación segura vía GitHub App con tokens JIT (Just-in-Time) y sin tokens estáticos expuestos.
- Interfaz web en tiempo real con visualización de métricas, logs estructurados y estado de la flota.
- Soporte nativo para conexión privada mediante Tailcat sin necesidad de IP pública o túneles.
- Backups automáticos a S3 compatibles con cifrado y verificación de integridad del almacén de datos.
- Arquitectura ligera basada en Go y SQLite, sin dependencias pesadas como Kubernetes.
- Seguridad por defecto: ejecución como usuario no root, sin socket Docker en jobs y bindings en loopback.
- Requiere configuración manual de variables de entorno críticas (ZOOMIES_EXTERNAL_URL, ZOOMIES_ENCRYPTION_KEY) para despliegue con Docker Compose.
- No soporta instalación un clic automática; el proceso de inicialización requiere interacción o archivo de respuestas.
- La base de datos SQLite reside en un volumen que debe ser gestionado manualmente para copias de seguridad.
- Algunas versiones de Ubuntu (22.04) solo soportan arquitectura amd64, limitando despliegues en arm64.
- El sistema depende de webhooks de GitHub; si estos fallan, el escalado automático se detiene hasta que se restablecen.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Recomendado detrás de un proxy inverso (Cloudflare o similar) para habilitar TLS y manejar webhooks correctamente. Configurar ZOOMIES_EXTERNAL_URL con HTTPS y ZOOMIES_TRUSTED_PROXIES si se usa Cloudflare. Asegurar que el grupo DOCKER_GID coincida con el propietario del socket Docker (/var/run/docker.sock). Para despliegues sin Docker, usar backend rootless o Podman. Inicializar la primera cuenta de administrador mediante la interfaz web tras la instalación.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.