Skip to content

khemerson/HemersonAIBuild

Repository files navigation

Projet HemersonAIBuild - Plateforme MLOps & IA Souveraine Automatisée

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.


Project Status Terraform Ansible Proxmox License Contributions

⚡ Quick Start: git cloneterraform applyansible-playbook → 🚀


📚 Table des Matières

🎯 Vision & Objectifs

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.

🛠️ Stack Technologique

  • 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

🏛️ Architecture Finale

Architecture de la Stack OpenWebChat.org

Cliquez sur le schéma pour voir le code PlantUML source : diagramme-principal.puml

🔄 Pipeline CI/CD

Pipeline CI/CD HemersonAIBuild

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.

🔒 Couches de Sécurité

  1. 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).
  2. 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é.
  3. 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é.
  4. 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.

🖥️ Spécifications Matérielles

  • 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)

🚀 Guide de Déploiement Complet

📋 Prérequis Système

⚠️ Important: Cette solution nécessite des ressources matérielles conséquentes. Vérifiez la compatibilité avant le déploiement.

🏗️ Requirements Matrix

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+

Infrastructure Requise

  • 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

Machine Bastion (Poste d'administration)

  • OS : Ubuntu 22.04+ ou Debian 12+
  • Accès SSH configuré vers Proxmox
  • Outils : Git, Terraform, Ansible, curl

Configuration Préalable

# 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>

🏗️ Déploiement Étape par Étape

Étape 1 : Clonage et Configuration Initiale

# 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.tfvars

Contenu 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"

Étape 2 : Configuration de l'Inventaire Ansible

# Éditer l'inventaire avec vos IPs
nano ansible/inventory.ini

Vé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

Étape 3 : Déploiement de l'Infrastructure

# 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 ..

Étape 4 : Configuration GPU et Permissions

# 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

Étape 5 : Déploiement des Applications

# 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

Étape 6 : Vérification et Tests

# 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-smi

🔧 Configuration Post-Déploiement

Accès aux Interfaces Web

Les services seront accessibles via les IPs configurées :

Chargement des Modèles IA

# 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_pixtral

⚠️ Dépannage Rapide

Problèmes Fréquents

Conteneurs 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 -a

📊 Monitoring et Maintenance

Une 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

🚀 Workflow d'Automatisation de Bout en Bout

Ce dépôt est conçu pour être reproductible. Voici les étapes de base pour démarrer l'automatisation depuis le bastion.

Prérequis

  • 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.

Déploiement de l'Infrastructure

Étapes de déploiement automatisé

  1. Cloner le repository sur le bastion :

    git clone https://github.com/khemerson/HemersonAIBuild.git
    cd HemersonAIBuild
  2. 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
  3. Provisioning Infrastructure (Terraform) :

    cd terraform
    terraform init
    terraform validate
    terraform plan
    terraform apply -auto-approve
  4. 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"
  5. 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érification du déploiement

# 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
  1. 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
  2. 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"
  3. 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
  4. Configurer les services avec Ansible :

    cd ../ansible
    # Exemple pour lancer un playbook
    ansible-playbook -i inventory.ini playbooks/configure-ollama.yml

📈 Statut du Projet

🚀 PROJET FONCTIONNEL - La plateforme est maintenant opérationnelle avec tous les services déployés automatiquement.

Dernière mise à jour : Mars 2026

Fonctionnalités Actuellement Déployées

  • 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

Services Accessibles

  • 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

Modèles IA Déployés

  • 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

📊 Performances et Capacités

Génération de Texte (LLM)

  • Mistral Small 24B : ~15-25 tokens/sec sur RTX 4090
  • Pixtral-12B : Support multimodal (texte + images)
  • Magistral-24B : Optimisé pour RAG et analyses longues

Génération Multimédia

  • 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

Monitoring et Observabilité

  • 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

📊 SLA et Performance Targets

Disponibilité des Services

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

Performance Benchmarks

# 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)

Métriques Opérationnelles

  • MTTR (Mean Time To Recovery): < 15 minutes
  • MTBF (Mean Time Between Failures): > 168 heures
  • Change Success Rate: > 95%
  • Deployment Frequency: À la demande

🔬 Les Grands Défis Techniques & Leçons Apprises

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.

🔧 Dépannage Rapide

Problèmes fréquents et solutions

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.yml

Modè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-instruct

Conteneurs 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 Ollama

Erreurs 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 utiles

# 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

Tests de connectivité rapides

# 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é)

📚 Ressources et Documentation

Liens Utiles

Endpoints de Production

# 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

🛡️ Sécurité et Conformité

🔐 Considérations de Sécurité

Niveau Infrastructure

  • 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 : Profil unconfined (à durcir pour la production)

Niveau Application

  • 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

Bonnes Pratiques Recommandées

# Rotation des tokens API (mensuelle)
# Mise à jour des certificats SSL (automatique via Cloudflare)
# Audit des logs système (hebdomadaire)
# Backup des configurations (quotidien)

📋 Checklist de Sécurité Pre-Production

  • 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

🤝 Contribution et Développement

Structure du Projet

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

Bonnes Pratiques de Développement

  • Terraform : Utilisez terraform plan avant chaque apply
  • Ansible : Testez les playbooks avec --check et --diff
  • Git : Branches feature pour les modifications importantes
  • Secrets : Jamais de credentials dans le code (utilisez .tfvars et .env)

Comment Contribuer

  1. Fork le repository
  2. Créez une branche feature (git checkout -b feature/nouvelle-fonctionnalite)
  3. Testez vos modifications en local
  4. Committez avec des messages descriptifs
  5. Ouvrez une Pull Request avec description détaillée

🗺️ Roadmap Technique

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
Loading

📜 License et Usage

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

📞 Contact

Pour toute question, suggestion ou discussion autour de ce projet, n'hésitez pas à me contacter sur LinkedIn.

About

Projet MLOps de A à Z : Automatisation d'une infrastructure IA souveraine sur Proxmox avec Packer, Terraform & Ansible pour le déploiement de LLMs

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors