Sobre el proyecto
itsUP es una pila de infraestructura doméstica basada en Python que automatiza la gestión de servicios Docker, con un enfoque en implementaciones sin tiempo de inactividad y seguridad.
Gestiona una pila de redes completa que incluye resolución DNS, proxy inverso Traefik y cargas de trabajo de contenedores, todo orquestado desde una estructura de directorios basada en proyectos. Cada proyecto de servicio cuenta con su propio archivo docker-compose.yml y archivo de configuración, manteniendo la infraestructura como código organizada y versionable.
Capacidades clave:
- **Implementaciones sin tiempo de inactividad**: Utiliza el comando docker rollout para escalar contenedores, esperar a las comprobaciones de estado y luego reemplazar las instancias antiguas. La detección inteligente de cambios omite las implementaciones cuando no se ha modificado nada.
- **Proxy gestionado**: Genera configuración de Traefik con SO_REUSEPORT para actualizaciones sin interrupciones. Admite terminación TLS, paso a través de TLS, reenvío TCP/UDP y vinculación de puertos de host.
- **Monitor de seguridad de contenedores**: Detecta contenedores comprometidos correlacionando consultas DNS con conexiones IP directas. Se integra con OpenSnitch para el bloqueo opcional con iptables.
- **Honeypot DNS**: Enruta todo el tráfico DNS de los contenedores a través de dnsmasq con registro para la detección de amenazas.
- **Copias de seguridad automatizadas**: Copias de seguridad nocturnas en S3 con restauraciones programadas.
- **Inteligencia de amenazas**: Informes diarios mediante integración con la API de AbuseIPDB.
- **Servidor OpenVPN**: Soporte VPN integrado con acceso SSH.
La CLI itsup es la interfaz principal, con comandos para la inicialización, aplicación, validación y gestión de DNS, proxy, servicios y monitorización. Los temporizadores de systemd gestionan el arranque al encender el sistema, la aplicación nocturna, las copias de seguridad y las comprobaciones de estado en Linux. En macOS, los agentes de launchd proporcionan una automatización similar.
Los requisitos previos incluyen Docker con el plugin rollout, uv para la gestión de dependencias de Python, reenvío de puertos para 80/443 y un dominio DNS comodín. La configuración utiliza SOPS/age para el cifrado de secretos, con repositorios git separados para proyectos y secretos.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.