À propos du projet
itsUP est une pile d'infrastructure domestique basée sur Python qui automatise la gestion des services Docker avec un accent sur les déploiements sans interruption et la sécurité.
Il gère une pile réseau complète incluant la résolution DNS, le proxy inverse Traefik et les charges de travail des conteneurs, le tout orchestré à partir d'une structure de répertoires par projet. Chaque projet de service possède son propre docker-compose.yml et son fichier de configuration, ce qui garde l'infrastructure as code organisée et versionnable.
Principales capacités :
- Déploiements sans interruption : Utilise docker rollout pour mettre à l'échelle les conteneurs, attendre les vérifications d'état, puis remplacer les anciennes instances. La détection intelligente des changements ignore les déploiements lorsque rien n'a changé.
- Proxy géré : Génère une configuration Traefik avec SO_REUSEPORT pour des mises à jour transparentes. Prend en charge la terminaison TLS, le passthrough TLS, le transfert TCP/UDP et la liaison de ports hôtes.
- Container Security Monitor : Détecte les conteneurs compromis en corrélant les requêtes DNS avec les connexions IP directes. S'intègre à OpenSnitch pour un blocage iptables optionnel.
- DNS Honeypot : Achemine tout le trafic DNS des conteneurs via dnsmasq avec journalisation pour la détection des menaces.
- Sauvegardes automatisées : Sauvegardes S3 nocturnes avec restaurations planifiées.
- Renseignement sur les menaces : Rapports quotidiens via l'intégration de l'API AbuseIPDB.
- Serveur OpenVPN : Prise en charge VPN intégrée avec accès SSH.
La CLI itsup est l'interface principale, avec des commandes pour init, apply, validate, ainsi que la gestion dns/proxy/svc/monitor. Les timers systemd gèrent le démarrage au boot, l'apply nocturne, les sauvegardes et les contrôles d'état sous Linux. Sur macOS, les agents launchd fournissent une automatisation similaire.
Les prérequis incluent Docker avec le plugin rollout, uv pour la gestion des dépendances Python, la redirection de ports pour 80/443 et un domaine DNS wildcard. La configuration utilise SOPS/age pour le chiffrement des secrets, avec des dépôts git séparés pour les projets et les secrets.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.