Ce dépôt contient l'ensemble des configurations d'Infrastructure as Code (IaC) et de Configuration as Code (CaC) pour le déploiement et la gestion d'une plateforme d'IA personnelle, souveraine et entièrement automatisée.
Ce projet est documenté publiquement. Suivez l'aventure sur LinkedIn via le hashtag #HemersonAIBuild.
⚡ Quick Start: git clone → terraform apply → ansible-playbook → 🚀
- 🎯 Vision & Objectifs
- 🛠️ Stack Technologique
- 🏛️ Architecture Finale
- 🚀 Guide de Déploiement Complet
- 📈 Statut du Projet
- 🔬 Les Grands Défis Techniques & Leçons Apprises
- 🔧 Dépannage Rapide
- 📚 Ressources et Documentation
- 🤝 Contribution et Développement
- 📞 Contact
L'objectif est de créer une plateforme d'IA souveraine, modulaire et résiliente, capable de :
- Héberger et servir des modèles de langage (LLM) open-source sur une ferme de GPUs dédiée.
- Fournir des agents conversationnels spécialisés (RAG) capables de raisonner sur des documents privés.
- Offrir des capacités multimodales comme la génération d'images et la synthèse vocale.
- Garantir un accès sécurisé et performant via une architecture réseau avancée.
- Automatiser entièrement le provisionnement, la configuration et le déploiement via les meilleures pratiques DevOps et MLOps.
- Virtualisation : Proxmox VE 8.4.1
- Conteneurisation : Docker & Docker Compose au sein de conteneurs LXC
- Infrastructure as Code (IaC) : Terraform (
Provider: bpg/proxmox v0.78) - Gestion de Configuration (CaC) : Ansible (structure en rôles modulaires)
- CI/CD : GitHub Actions (pipeline automatisé de validation et déploiement)
- Monitoring & Observabilité : Prometheus, Grafana, Node Exporter, DCGM Exporter
- Moteurs d'Inférence : Ollama, ComfyUI, Whisper Large V3, F5-TTS
- Proxy & Routage : LiteLLM (API unifiée)
- Applications Web : OpenWebUI, AnythingLLM, Chainlit, Streamlit
- Modèles IA : Mistral Small, Pixtral-12B, modèles personnalisés via Modelfiles
- Réseau & Sécurité : Nginx (Reverse Proxy), WireGuard (VPN), Cloudflare
Cliquez sur le schéma pour voir le code PlantUML source : diagramme-principal.puml
Le pipeline automatise la validation, les tests et le déploiement depuis GitHub vers l'infrastructure Proxmox. Source PlantUML
L'architecture est conçue autour d'un principe de sécurité par la profondeur, avec une séparation claire entre l'exposition publique et l'infrastructure de traitement locale.
- Accès Externe : Les utilisateurs accèdent aux services via un nom de domaine sécurisé par Cloudflare. Les requêtes sont dirigées vers un Reverse Proxy Nginx hébergé sur un VPS distant (Hetzner).
- Connexion Sécurisée : Le Reverse Proxy communique avec le réseau local non pas via des ports ouverts, mais via un tunnel VPN WireGuard permanent et chiffré.
- Point d'Entrée et d'Administration : Toutes les opérations d'administration et d'automatisation (Ansible, Terraform) sont initiées depuis un Bastion (machine de rebond) sécurisé.
- Infrastructure Locale : Un cluster Proxmox héberge des conteneurs LXC dédiés pour chaque service. Pour les charges de travail IA, un passthrough GPU direct est configuré en modifiant les permissions cgroup et en mappant les devices NVIDIA de l'hôte vers le conteneur.
- Serveur Principal : Proxmox VE sur hardware dédié
- GPUs : 4x NVIDIA RTX 4090 (24GB VRAM chacune)
- CPU : Configuration multi-core pour la parallélisation
- RAM : 128GB+ pour les charges de travail IA intensives
- Stockage : SSD NVMe pour performances, HDD pour persistance
Flotte de Conteneurs Déployée :
| LXC / Hostname | IP | Rôle | Services Docker | GPU Assigné |
|---|---|---|---|---|
ollamartx40900 |
192.168.1.211 | Worker LLM Principal | Ollama + Mistral Small | RTX 4090 #0 |
hybridworker30901 |
192.168.1.212 | Worker Hybride | Ollama + OpenWebUI + Whisper | RTX 4090 #1 |
hybridworker30903 |
192.168.1.214 | Worker Hybride | Ollama + AnythingLLM + TTS | RTX 4090 #3 |
comfyuirtx40902 |
192.168.1.213 | Worker Génération d'Images | ComfyUI | RTX 4090 #2 |
playground01 |
192.168.1.210 | Playground/Tests | Chainlit, Streamlit | Aucun |
litellmproxy01 |
192.168.1.216 | Proxy API / Routeur | LiteLLM | Aucun |
monitoring01 |
192.168.1.217 | Observabilité | Prometheus, Grafana | Aucun |
inferencebrain01 |
192.168.1.225 | Cerveau (Inférence) | llama.cpp (Qwen3.5-27B Q8) | Aucun (CPU) |
Flotte Mini-PCs (bare-metal, Ubuntu 24.04) :
| Hostname | IP | Rôle | Statut |
|---|---|---|---|
hpmini01 |
192.168.1.201 | Gros — disponible | Hardened |
hpmini02 |
192.168.1.202 | Agents Profil A (DevOps, Trading) | Hardened |
hpmini03 |
192.168.1.203 | Agents Profil B (CRM, Personnel, Contenu) | Hardened |
hpmini04 |
192.168.1.204 | Gros — disponible | Hardened |
hpmini05 |
192.168.1.205 | App Editos v2.1.0 | Hardened |
hpmini06 |
192.168.1.206 | Petit — disponible | Hardened |
hpmini07 |
192.168.1.207 | Petit — disponible | Hardened |
hpmini08 |
192.168.1.208 | Petit — disponible | Hardened |
Hetzner VPS (reverse proxy) :
| Hostname | IP Publique | IP WireGuard | Rôle |
|---|---|---|---|
| Hetzner VPS | 94.130.78.137 | 192.168.27.77 | Nginx reverse proxy (editeur.openwebchat.org) |
⚠️ Important: Cette solution nécessite des ressources matérielles conséquentes. Vérifiez la compatibilité avant le déploiement.
| Composant | Minimum | Recommandé | Critique |
|---|---|---|---|
| Proxmox VE | 7.4+ | 8.4+ | ✅ |
| RAM | 64GB | 128GB+ | ✅ |
| GPU | RTX 3080 | RTX 4090 | ✅ |
| Stockage | 500GB SSD | 1TB+ NVMe | ✅ |
| Réseau | 1Gbps | 10Gbps | |
| CPU Cores | 16 | 32+ | ✅ |
- Serveur Proxmox VE 8.x avec accès root
- 4x GPU NVIDIA (RTX 4090 recommandées, minimum RTX 3080)
- 128GB+ RAM pour les charges de travail IA
- 1TB+ SSD NVMe pour performances + stockage persistant
- Réseau gigabit avec IPs statiques disponibles
- OS : Ubuntu 22.04+ ou Debian 12+
- Accès SSH configuré vers Proxmox
- Outils : Git, Terraform, Ansible, curl
# Installation des outils sur le bastion
sudo apt update && sudo apt install -y git curl wget gnupg
# Installation de Terraform
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
# Installation d'Ansible
sudo apt install -y ansible
# Configuration SSH (générer une clé si nécessaire)
ssh-keygen -t rsa -b 4096 -C "bastion@hemersonaibuild"
ssh-copy-id root@<IP_PROXMOX># Cloner le repository
git clone https://github.com/khemerson/HemersonAIBuild.git
cd HemersonAIBuild
# Copier et configurer les variables Terraform
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
nano terraform/terraform.tfvarsContenu du fichier terraform.tfvars :
# Tokens d'API Proxmox (à créer dans Proxmox : Datacenter > Permissions > API Tokens)
proxmox_api_token = "root@pam!terraform=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# Configuration réseau (ajustez selon votre infrastructure)
proxmox_host = "192.168.1.222"
network_gateway = "192.168.1.1"
network_cidr = "24"
# Template LXC (vérifiez la disponibilité dans Proxmox)
lxc_template = "local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst"# Éditer l'inventaire avec vos IPs
nano ansible/inventory.iniVérifiez que les IPs correspondent à votre réseau :
[ollama_servers]
ollamartx40900 ansible_host=192.168.1.211 ansible_user=root
[hybrid_workers]
hybridworker30901 ansible_host=192.168.1.212 ansible_user=root
hybridworker30903 ansible_host=192.168.1.214 ansible_user=root
[comfyui_servers]
comfyuirtx40902 ansible_host=192.168.1.213 ansible_user=root# Initialisation et validation Terraform
cd terraform
terraform init
terraform validate
terraform plan
# Création des conteneurs LXC
terraform apply -auto-approve
# Retour à la racine
cd ..# Préparation des conteneurs avec passthrough GPU
ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=211 lxc_hostname=ollamartx40900 lxc_gpu_id=0"
ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=212 lxc_hostname=hybridworker30901 lxc_gpu_id=1"
ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=213 lxc_hostname=comfyuirtx40902 lxc_gpu_id=2"
ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=214 lxc_hostname=hybridworker30903 lxc_gpu_id=3"
# Attendre le redémarrage des conteneurs (30-60 secondes)
sleep 60# Déploiement complet de la stack
ansible-playbook ansible/playbooks/deploy_hybrid_workers.yml
ansible-playbook ansible/playbooks/deploy_ollama_servers.yml
ansible-playbook ansible/playbooks/deploy_comfyui_servers.yml
# Déploiement du monitoring (optionnel)
ansible-playbook ansible/playbooks/deploy_monitoring.yml# Vérifier le statut des conteneurs
pct list
# Tester les services déployés
curl http://192.168.1.211:11434/api/tags # Ollama principal
curl http://192.168.1.212:11434/api/tags # Hybrid worker 1
curl http://192.168.1.214:11434/api/tags # Hybrid worker 2
curl http://192.168.1.213:8188/ # ComfyUI
# Vérifier les GPUs dans les conteneurs
pct exec 211 -- nvidia-smi
pct exec 212 -- nvidia-smi
pct exec 213 -- nvidia-smi
pct exec 214 -- nvidia-smiLes services seront accessibles via les IPs configurées :
- OpenWebUI : http://192.168.1.212:3000
- AnythingLLM : http://192.168.1.214:3001
- ComfyUI : http://192.168.1.213:8188
- Grafana : http://192.168.1.217:3000 (admin/admin)
# Se connecter au conteneur Ollama principal
pct exec 211 -- docker exec ollama ollama pull mistral:7b-instruct
# Créer des modèles personnalisés (exemples dans les Modelfiles)
pct exec 212 -- docker exec ollama ollama create pixtral-custom -f /opt/ollama_stack/Modelfile_pixtralConteneurs qui ne démarrent pas :
# Vérifier les logs Proxmox
pct config <lxc_id>
journalctl -u pve-container@<lxc_id>GPU non détecté :
# Vérifier le passthrough sur l'hôte Proxmox
ls -la /dev/nvidia*
lxc config show <lxc_id>Services Docker non démarrés :
# Se connecter au conteneur et vérifier
pct enter <lxc_id>
systemctl status docker
docker ps -aUne fois déployé, surveillez votre infrastructure via :
- Grafana pour les métriques système et GPU
- Logs Docker pour les services applicatifs
- Proxmox Web UI pour l'état des conteneurs
Ce dépôt est conçu pour être reproductible. Voici les étapes de base pour démarrer l'automatisation depuis le bastion.
- Un hôte "Bastion" avec Ansible, Terraform et Git installés.
- Accès SSH par clé configuré depuis le Bastion vers les serveurs Proxmox (
root@<ip_proxmox>). - Un token d'API Proxmox valide avec les permissions nécessaires.
-
Cloner le repository sur le bastion :
git clone https://github.com/khemerson/HemersonAIBuild.git cd HemersonAIBuild -
Configuration des secrets :
# Créer le fichier terraform.tfvars (non versionné) cp terraform/terraform.tfvars.example terraform/terraform.tfvars # Éditer avec vos tokens Proxmox nano terraform/terraform.tfvars
-
Provisioning Infrastructure (Terraform) :
cd terraform terraform init terraform validate terraform plan terraform apply -auto-approve -
Préparation des Conteneurs (Ansible) :
# Retour à la racine du projet cd .. # Préparation GPU passthrough pour tous les workers ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=211" ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=212" ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=213" ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=214"
-
Déploiement des Applications (Ansible) :
# Stack complète en une commande ansible-playbook ansible/playbooks/deploy_hybrid_workers.yml # Ou déploiement sélectif par service ansible-playbook ansible/playbooks/deploy_ollama_servers.yml ansible-playbook ansible/playbooks/deploy_comfyui_servers.yml ansible-playbook ansible/playbooks/deploy_monitoring.yml
# Vérifier que tous les conteneurs sont actifs
pct list
# Tester les APIs
curl http://192.168.1.211:11434/api/tags # Ollama
curl http://192.168.1.213:8188/ # ComfyUI
curl http://192.168.1.217:9090/ # Prometheus-
Provisioning de l'Infrastructure avec Terraform : Cette étape crée la "coquille" du conteneur LXC sur un nœud Proxmox avec son IP statique et son stockage de base.
# Depuis le dossier terraform/ terraform apply -auto-approve -
Préparation du Conteneur avec Ansible : Ce playbook cible l'hôte Proxmox pour appliquer la configuration matérielle avancée au conteneur (passthrough GPU, permissions AppArmor) et le redémarre pour que les changements prennent effet.
# Depuis la racine du projet ~/HemersonAIBuild , oubliez pas de mettre le bon lxc_id dans le playbook # Exemple pour lancer un playbook, ansible-playbook ansible/playbooks/prepare_lxc.yml -e "lxc_id=212 lxc_hostname=hybridworker30901 lxc_group=hybrid_workers lxc_gpu_id=1"
-
Déploiement de la Stack Applicative avec Ansible : Ce playbook principal cible le conteneur LXC lui-même pour installer tous les logiciels (drivers NVIDIA, Docker, NVIDIA Toolkit) et déployer la stack applicative (Ollama, OpenWebUI) via Docker Compose.
# Depuis la racine du projet ~/HemersonAIBuild # Pour tous les hybrid workers ansible-playbook ansible/playbooks/deploy_hybrid_workers.yml # Pour un worker spécifique ansible-playbook ansible/playbooks/deploy_hybrid_workers.yml --limit hybridworker30901 # Pour le worker principal Ollama ansible-playbook ansible/playbooks/deploy_ollama_servers.yml # Pour ComfyUI ansible-playbook ansible/playbooks/deploy_comfyui_servers.yml
-
Configurer les services avec Ansible :
cd ../ansible # Exemple pour lancer un playbook ansible-playbook -i inventory.ini playbooks/configure-ollama.yml
🚀 PROJET FONCTIONNEL - La plateforme est maintenant opérationnelle avec tous les services déployés automatiquement.
Dernière mise à jour : Mars 2026
- ✅ Infrastructure : Proxmox + 7 conteneurs LXC automatisés (Terraform)
- ✅ GPU Computing : 4x RTX 4090 avec passthrough direct et isolation
- ✅ Stack LLM : Ollama + modèles personnalisés (Mistral, Pixtral, Magistral)
- ✅ Interfaces Web : OpenWebUI, AnythingLLM, ComfyUI, Chainlit
- ✅ Capacités Multimodales : Whisper (STT), F5-TTS (TTS), vision (Pixtral)
- ✅ API Gateway : LiteLLM pour unification des endpoints
- ✅ Monitoring : Prometheus + Grafana + métriques GPU (DCGM)
- ✅ Sécurité : VPN WireGuard + Reverse Proxy + Cloudflare
- ✅ Stockage : Persistance LVM pour configurations et modèles
- OpenWebUI : Interface conversationnelle moderne
- AnythingLLM : RAG et gestion documentaire
- ComfyUI : Génération d'images par IA
- Grafana : Dashboards de monitoring
- Prometheus : Collecte de métriques système et GPU
- Mistral Small 24B : Modèle principal pour conversations générales (ollamartx40900)
- Pixtral-12B : Analyse d'images et vision multimodale (hybridworker30901)
- Magistral-24B : Analyses approfondies et RAG (hybridworker30903)
- Whisper Large V3 : Transcription audio en temps réel
- F5-TTS : Synthèse vocale de haute qualité
- Stable Diffusion : Génération d'images via ComfyUI
- Mistral Small 24B : ~15-25 tokens/sec sur RTX 4090
- Pixtral-12B : Support multimodal (texte + images)
- Magistral-24B : Optimisé pour RAG et analyses longues
- ComfyUI : Images 1024x1024 en ~3-5 secondes
- Whisper Large V3 : Transcription temps réel (<200ms latence)
- F5-TTS : Synthèse vocale naturelle en temps réel
- Métriques GPU : Utilisation VRAM, température, consommation
- Métriques Système : CPU, RAM, stockage, réseau
- Métriques Applications : Latence API, débit, erreurs
| Service | Uptime Target | RTO | RPO |
|---|---|---|---|
| Ollama API | 99.5% | < 5min | < 1h |
| OpenWebUI | 99.0% | < 10min | N/A |
| ComfyUI | 95.0% | < 15min | N/A |
| Monitoring | 99.9% | < 2min | < 5min |
# Tests de charge typiques
# LLM Inference: ~20 tokens/sec (RTX 4090)
# Image Generation: ~3-5 sec (1024x1024)
# Transcription Audio: <200ms latency
# API Response Time: <100ms (95th percentile)- MTTR (Mean Time To Recovery): < 15 minutes
- MTBF (Mean Time Between Failures): > 168 heures
- Change Success Rate: > 95%
- Deployment Frequency: À la demande
Ce projet a été un parcours d'apprentissage intensif, marqué par la résolution de plusieurs problèmes complexes :
-
Permissions Proxmox : Le débogage a révélé la nécessité d'un token d'API lié au realm root@pam avec des ACLs explicites pour les opérations privilégiées, une subtilité non évidente de l'API.
-
Incompatibilité de Provider Terraform : La migration du provider telmate/proxmox (qui était la source de blocages) vers bpg/proxmox a été une décision stratégique clé, nécessitant une réécriture complète du code IaC.
-
Conflits de Sécurité Imbriqués : Le conflit de "double confinement" entre la sécurité AppArmor des LXC et celle de Docker a été résolu en configurant les conteneurs avec un profil unconfined, une étape cruciale pour faire fonctionner Docker dans un LXC.
-
Débogage Applicatif : Face à l'instabilité de l'image Docker officielle de LiteLLM, la décision de construire une image personnalisée a permis d'obtenir un contrôle total et de résoudre les problèmes de configuration.
-
Performance GPU : Le diagnostic de l'inférence sur CPU malgré un modèle chargé en VRAM a mené à la compréhension du "KV Cache" et à la mise en place de Modelfile personnalisés pour forcer le GPU-offloading.
-
Configuration de l'Observabilité : La mise en place de Prometheus a nécessité de maîtriser des concepts avancés comme la découverte de service par fichiers (file_sd_configs) et le "relabeling" pour obtenir un monitoring lisible et professionnel.
Jalons Atteints :
- Mise en place de l'infrastructure physique et de la virtualisation (Proxmox).
- Déploiement et sécurisation du Reverse Proxy et du tunnel VPN WireGuard.
- Automatisation de la création de conteneurs LXC via Terraform (bpg/proxmox v0.78).
- Automatisation de la configuration du passthrough GPU et des permissions AppArmor via Ansible.
- Automatisation du déploiement d'une stack IA complète (NVIDIA Drivers, Docker, NVIDIA Toolkit, Ollama, OpenWebUI) via Ansible.
- Automatisation complète du provisioning de la flotte de conteneurs (Terraform).
- Automatisation complète de la configuration des conteneurs (Ansible).
- Déploiement et isolation fonctionnels sur 4 GPUs RTX 4090.
- Déploiement réussi de toute la stack applicative de base (Ollama, ComfyUI, OpenWebUI, AnythingLLM, LiteLLM).
- Mise en place d'une stack de monitoring (Prometheus, Grafana) avec collecte des métriques système et GPU.
- Mise en place d'un pool de stockage (LVM) persistant pour la sauvegarde des configurations des conteneurs dockers.
- Résolution des problèmes de variables Ansible (structure host_vars vs group_vars clarifiée).
- Configuration fonctionnelle des Modelfiles personnalisés pour optimisation GPU.
- Déploiement des capacités multimodales (Whisper, TTS, vision par Pixtral).
- Intégration du HemersonAIPlayground avec Chainlit et Streamlit.
Prochaines Étapes :
- Pipeline CI/CD : Diagramme et architecture GitHub Actions finalisés.
- API Gateway : Finaliser l'intégration LiteLLM pour un point d'accès API unifié.
- CI/CD Implémentation : Mise en place effective des workflows GitHub Actions.
- Sécurité Renforcée : Remplacer le profil AppArmor unconfined par un profil sur-mesure.
- Haute Disponibilité : Explorer la réplication des services critiques sur le cluster Proxmox.
- Gestion des Modèles : Automatiser le téléchargement et la mise à jour des modèles IA.
- Interface Unified : Dashboard central pour gérer toute la stack depuis une interface web.
- Backup & Recovery : Stratégie de sauvegarde automatisée pour les configurations et données.
Variables Ansible non définies :
# Vérifier que les fichiers host_vars existent (pas group_vars pour les hôtes individuels)
ls -la ansible/host_vars/
# Les variables communes vont dans group_vars/hybrid_workers.yml
# Les variables spécifiques vont dans host_vars/hostname.ymlModèles Ollama introuvables :
# Lister les modèles disponibles
docker exec ollama ollama list
# Rechercher des modèles (utiliser des noms standards comme mistral:7b)
docker exec ollama ollama search mistral
# Vérifier si le modèle base existe avant de créer un modèle personnalisé
docker exec ollama ollama pull mistral:7b-instructConteneurs non accessibles :
# Vérifier le statut des conteneurs LXC
pct list
# Vérifier les services Docker dans un conteneur
docker ps -a
# Tester la connectivité réseau
ping 192.168.1.211 # Test vers ollamartx40900
curl http://192.168.1.211:11434/api/tags # Test API OllamaErreurs de passthrough GPU :
# Vérifier que les GPUs sont visibles dans le conteneur
nvidia-smi
# Vérifier les permissions sur les devices
ls -la /dev/nvidia*
# Redémarrer le conteneur après modification AppArmor
pct restart <lxc_id># Logs Terraform avec diagnostic détaillé
terraform plan -detailed-exitcode
# Logs Ansible avec verbosité maximale
ansible-playbook -vvv ansible/playbooks/deploy_hybrid_workers.yml
# Logs Docker d'un service spécifique
docker logs ollama --tail 50
# Logs système du conteneur LXC
pct exec <lxc_id> -- journalctl -f# Tester tous les endpoints depuis le playground
curl http://192.168.1.211:11434/api/tags # Ollama principal
curl http://192.168.1.212:11434/api/tags # Hybrid worker 1
curl http://192.168.1.214:11434/api/tags # Hybrid worker 2
curl http://192.168.1.213:8188/ # ComfyUI
curl http://192.168.1.212:8000/health # Whisper (si déployé)
curl http://192.168.1.214:8001/health # TTS (si déployé)- Documentation Terraform Provider : bpg/proxmox
- Documentation Ansible : Rôles et Playbooks
- Documentation Ollama : API Reference
- Documentation Proxmox : Container Management
# Services Web (accès via VPN/Reverse Proxy)
https://playground.votredomaine.com # HemersonAIPlayground
https://webui.votredomaine.com # OpenWebUI
https://anything.votredomaine.com # AnythingLLM
https://comfy.votredomaine.com # ComfyUI
https://grafana.votredomaine.com # Monitoring
# APIs Internes (réseau local uniquement)
http://192.168.1.216:4000/v1 # LiteLLM Proxy API
http://192.168.1.211:11434/api # Ollama Principal- ✅ Isolation Réseau : Conteneurs LXC avec interfaces dédiées
- ✅ Chiffrement : Tunnel VPN WireGuard bout-en-bout
- ✅ Authentification : Clés SSH + tokens API Proxmox
⚠️ AppArmor : Profilunconfined(à durcir pour la production)
- ✅ Reverse Proxy : Nginx avec SSL/TLS terminaison
- ✅ Secrets Management : Variables d'environnement +
.tfvars - ✅ API Security : Endpoints internes non exposés
- ✅ Container Security : Docker rootless où applicable
# Rotation des tokens API (mensuelle)
# Mise à jour des certificats SSL (automatique via Cloudflare)
# Audit des logs système (hebdomadaire)
# Backup des configurations (quotidien)- Profils AppArmor personnalisés
- Firewall iptables/nftables configuré
- Monitoring de sécurité (fail2ban)
- Chiffrement des volumes de données
- Rotation automatique des secrets
- Audit trail des accès admin
HemersonAIBuild/
├── terraform/ # Infrastructure as Code
│ ├── main.tf # Définition des conteneurs LXC
│ └── terraform.tfvars # Variables (secrets non versionnés)
├── ansible/ # Configuration as Code
│ ├── inventory.ini # Inventaire des serveurs
│ ├── group_vars/ # Variables par groupe
│ ├── host_vars/ # Variables par hôte
│ ├── roles/ # Rôles réutilisables
│ └── playbooks/ # Playbooks de déploiement
├── architecture/ # Documentation et diagrammes
│ ├── diagramme-cicd.puml # Source PlantUML CI/CD
│ ├── diagramme-principal.puml # Source PlantUML Architecture
│ ├── pipeline-cicd.png # Image CI/CD rendue (65 KB)
│ └── architecture-principale.png # Image Architecture rendue (128 KB)
└── docs/ # Documentation détaillée
📁 Architecture mise à jour :
- Images statiques PNG : Fiabilité d'affichage garantie
- Sources PlantUML : Maintenance et évolution des diagrammes
- Versioning complet : Images et sources versionnées ensemble
- Terraform : Utilisez
terraform planavant chaqueapply - Ansible : Testez les playbooks avec
--checket--diff - Git : Branches feature pour les modifications importantes
- Secrets : Jamais de credentials dans le code (utilisez
.tfvarset.env)
- Fork le repository
- Créez une branche feature (
git checkout -b feature/nouvelle-fonctionnalite) - Testez vos modifications en local
- Committez avec des messages descriptifs
- Ouvrez une Pull Request avec description détaillée
gantt
title HemersonAIBuild - Roadmap 2025
dateFormat YYYY-MM-DD
section Infrastructure
GPU Optimization :done, gpu, 2025-01-01, 2025-07-31
HA Deployment :active, ha, 2025-08-01, 2025-10-31
Security Hardening :sec, 2025-09-01, 2025-11-30
section CI/CD
Pipeline Design :done, cicd1, 2025-06-01, 2025-07-31
Implementation :cicd2, 2025-08-01, 2025-09-30
section Features
API Gateway :api, 2025-08-15, 2025-09-30
Unified Dashboard :dash, 2025-09-01, 2025-11-30
Backup Strategy :backup, 2025-10-01, 2025-12-31
MIT License - Open Source avec Attribution Obligatoire
Permissions:
✅ Utilisation commerciale
✅ Modification
✅ Distribution
✅ Usage privé
Conditions:
📋 Inclusion de la licence
📋 Inclusion du copyright
Limitations:
❌ Aucune garantie
❌ Aucune responsabilité
Copyright (c) 2025 Hemerson Koffi - HemersonAIBuild
Pour toute question, suggestion ou discussion autour de ce projet, n'hésitez pas à me contacter sur LinkedIn.

