Sobre o projeto

itsUP é uma stack de infraestrutura doméstica baseada em Python que automatiza o gerenciamento de serviços Docker com foco em implantações sem downtime e segurança. Ela gerencia uma stack de rede completa, incluindo resolução DNS, proxy reverso Traefik e cargas de trabalho de contêineres — tudo orquestrado a partir de uma estrutura de diretórios baseada em projetos. Cada projeto de serviço tem seu próprio docker-compose.yml e arquivo de configuração, mantendo a infraestrutura como código organizada e versionável. Principais capacidades: - **Implantações sem downtime**: usa docker rollout para escalar contêineres, aguardar verificações de integridade e então substituir instâncias antigas. A detecção inteligente de mudanças ignora implantações quando nada mudou. - **Proxy gerenciado**: gera configuração do Traefik com SO_REUSEPORT para atualizações contínuas. Suporta terminação TLS, passthrough TLS, encaminhamento TCP/UDP e vinculação de portas do host. - **Monitor de Segurança de Contêineres**: detecta contêineres comprometidos correlacionando consultas DNS com conexões IP diretas. Integra-se ao OpenSnitch para bloqueio opcional via iptables. - **Honeypot de DNS**: encaminha todo o tráfego DNS dos contêineres através do dnsmasq com registro para detecção de ameaças. - **Backups automatizados**: backups noturnos no S3 com restaurações agendadas. - **Inteligência de ameaças**: relatórios diários via integração com a API AbuseIPDB. - **Servidor OpenVPN**: suporte a VPN integrado com acesso SSH. A CLI itsup é a interface principal, com comandos para init, apply, validate e gerenciamento de dns/proxy/svc/monitor. Timers do systemd cuidam da inicialização no boot, apply noturno, backups e verificações de integridade no Linux. No macOS, agentes launchd fornecem automação semelhante. Os pré-requisitos incluem Docker com o plugin rollout, uv para gerenciamento de dependências Python, encaminhamento de portas para 80/443 e um domínio DNS curinga. A configuração usa SOPS/age para criptografia de segredos, com repositórios git separados para projetos e segredos.