{"id":31725723,"url":"https://github.com/stefapi/windflow","last_synced_at":"2025-10-09T05:57:55.338Z","repository":{"id":317280188,"uuid":"1066721386","full_name":"stefapi/windflow","owner":"stefapi","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-07T23:11:24.000Z","size":909,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-08T01:12:47.920Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefapi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-29T21:41:45.000Z","updated_at":"2025-10-07T23:11:27.000Z","dependencies_parsed_at":"2025-10-08T01:08:42.337Z","dependency_job_id":null,"html_url":"https://github.com/stefapi/windflow","commit_stats":null,"previous_names":["stefapi/windflow"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stefapi/windflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefapi%2Fwindflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefapi%2Fwindflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefapi%2Fwindflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefapi%2Fwindflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefapi","download_url":"https://codeload.github.com/stefapi/windflow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefapi%2Fwindflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000740,"owners_count":26082932,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-09T05:57:54.151Z","updated_at":"2025-10-09T05:57:55.329Z","avatar_url":"https://github.com/stefapi.png","language":"Python","readme":"# WindFlow\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/FastAPI-005571?style=for-the-badge\u0026logo=fastapi\" alt=\"FastAPI\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge\u0026logo=vuedotjs\u0026logoColor=4FC08D\" alt=\"Vue.js\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\" alt=\"TypeScript\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge\u0026logo=docker\u0026logoColor=white\" alt=\"Docker\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Kubernetes-326CE5?style=for-the-badge\u0026logo=kubernetes\u0026logoColor=white\" alt=\"Kubernetes\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white\" alt=\"PostgreSQL\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white\" alt=\"Python\"\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eOutil web intelligent de déploiement de containers Docker — orchestration multi-cible, IA intégrée, expérience utilisateur exceptionnelle\u003c/em\u003e\n\u003c/p\u003e\n\n---\n\n**WindFlow** est un outil web intelligent de déploiement de containers Docker sur des machines cibles. Il combine une interface utilisateur moderne, un système d'échange de données flexible, et une intelligence artificielle pour automatiser et optimiser les déploiements.\n\n## 🎯 Vision et Objectifs\n\n### Simplicité d'Utilisation\n- **Interface web intuitive** avec workflows visuels\n- **Configuration automatique** générée par IA (LiteLLM)\n- **One-click deployment** de stacks préconfigurées\n- **CLI/TUI puissants** pour l'automatisation (Rich + Typer + Textual)\n\n### Flexibilité Maximale\n- **Support multi-cible** : containers, VMs, serveurs physiques\n- **Orchestration adaptative** : Docker, Swarm, Kubernetes\n- **Templates personnalisables** et marketplace communautaire\n- **Workflows de déploiement** configurables\n\n### Intelligence Intégrée\n- **Optimisation automatique** des ressources par IA\n- **Résolution intelligente** des conflits et dépendances\n- **Suggestions de sécurité** et bonnes pratiques\n- **Diagnostic automatique** des erreurs\n\n## ✨ Fonctionnalités Principales\n\n### 🧠 Intelligence Artificielle\n- **LiteLLM Integration** : Support multi-provider (OpenAI, Claude, Ollama, etc.)\n- **Configuration intelligente** : Génération automatique selon contraintes\n- **Optimisation des ressources** : IA pour l'allocation optimale\n- **Résolution de conflits** : Détection et correction automatique\n\n### 🔧 Orchestration Multi-Cible\n- **Docker Engine** : Containers natifs et Docker Compose\n- **Docker Swarm** : Orchestration en cluster\n- **Kubernetes + Helm** : Déploiements enterprise\n- **VM Management** : Vagrant + Libvirt pour machines virtuelles\n- **Physical Servers** : SSH + Ansible pour serveurs physiques\n\n### 🌐 Interface Utilisateur Moderne\n- **Interface Web** : Vue.js 3 + TypeScript + Element Plus + UnoCSS\n- **Workflows Visuels** : Éditeur drag-and-drop inspiré de n8n\n- **CLI Complet** : Rich + Typer pour automatisation\n- **TUI Interactif** : Textual pour interface terminal moderne\n\n### 🔐 Sécurité Enterprise\n- **SSO Integration** : Keycloak avec LDAP/AD\n- **HashiCorp Vault** : Gestion centralisée des secrets\n- **RBAC Granulaire** : Contrôle d'accès basé sur les rôles\n- **Audit Trail** : Traçabilité complète des actions\n\n### 📊 Monitoring et Observabilité\n- **Prometheus + Grafana** : Métriques et dashboards\n- **ELK Stack** : Centralisation des logs\n- **Alerting Intelligent** : Notifications multi-canal\n- **Health Checks** : Surveillance continue des services\n\n## 🧩 Architecture Modulaire\n\nWindFlow adopte une **architecture modulaire extensible** permettant de démarrer avec un système minimal et d'activer progressivement les fonctionnalités avancées selon vos besoins.\n\n### Démarrage Minimal (\u003c 5 minutes)\n\nLe **Core Minimal** inclut uniquement les services essentiels :\n- ✅ API Backend (FastAPI)\n- ✅ Base de données (PostgreSQL)\n- ✅ Cache \u0026 Message Broker (Redis)\n- ✅ Interface Web (Vue.js 3)\n- ✅ Reverse Proxy (Nginx)\n- ✅ Worker asynchrone (Celery)\n\n**Ressources** : 1.5 GB RAM, 2 CPU cores\n\n```bash\n# Installation minimale ultra-rapide\n./scripts/install.sh\n# ou\ndocker compose -f docker-compose.minimal.yml up -d\n```\n\n### Extensions Optionnelles\n\nActivez les fonctionnalités avancées uniquement quand vous en avez besoin :\n\n| Extension | Description | Commande |\n|-----------|-------------|----------|\n| **Monitoring** | Prometheus + Grafana | `./scripts/enable-extension.sh monitoring` |\n| **Logging** | ELK Stack (Elasticsearch, Logstash, Kibana) | `./scripts/enable-extension.sh logging` |\n| **Secrets** | HashiCorp Vault | `./scripts/enable-extension.sh vault` |\n| **SSO** | Keycloak (LDAP/AD) | `./scripts/enable-extension.sh sso` |\n| **IA** | LiteLLM + Ollama | `./scripts/enable-extension.sh ai` |\n| **Kubernetes** | Orchestration K8s | `./scripts/enable-extension.sh kubernetes` |\n\n### Avantages de l'Approche Modulaire\n\n- 🚀 **Démarrage ultra-rapide** : Installation fonctionnelle en quelques minutes\n- 💰 **Économie de ressources** : Seuls les services activés consomment de la RAM/CPU\n- 🎯 **Simplicité** : Commencez simple, évoluez selon vos besoins\n- 🔧 **Flexibilité** : Activez/désactivez les extensions à la demande\n- 📈 **Scalabilité** : Architecture production-ready dès le départ\n\n📚 **Documentation complète** : [Architecture Modulaire](doc/ARCHITECTURE-MODULAIRE.md)\n\n## 🚀 Installation Rapide\n\n### Prérequis\n\n- **Docker** ≥ 20.10 et docker-compose v2\n- **Python** ≥ 3.11 et Poetry ≥ 1.8 (pour développement backend)\n- **Node.js** ≥ 20 et pnpm ≥ 9 (pour développement frontend)\n\n### Installation avec Docker (Recommandée)\n\n```bash\n# Cloner le repository\ngit clone https://gitea.yourdomain.com/yourusername/windflow.git\ncd windflow\n\n# Copier les fichiers d'environnement\ncp .env.example .env\n\n# Lancer l'application\ndocker compose up --build -d\n```\n\n**Accès :**\n- **Interface Web** : http://localhost:8080\n- **API Documentation** : http://localhost:8080/api/docs\n- **CLI** : `docker exec -it windflow-cli windflow --help`\n\n### Installation pour Développement\n\n```bash\n# Backend (FastAPI)\npoetry install --with dev\npoetry run uvicorn windflow.main:app --reload --host 0.0.0.0 --port 8000\n\n# Frontend (Vue.js 3)\ncd frontend\npnpm install\npnpm dev  # http://localhost:5173\n\n# CLI/TUI\npip install -e ./cli\nwindflow --help\n```\n\n## 🎯 Exemples de Déploiement\n\nWindFlow inclut des exemples prêts à l'emploi pour déployer des applications populaires :\n\n### 📦 Applications Disponibles\n\n#### Baserow - Alternative Open Source à Airtable\nBase de données no-code avec interface moderne (PostgreSQL + Redis)\n\n```bash\n# Créer les répertoires de données\nmkdir -p data/baserow/{postgres,redis,app,media}\n\n# Lancer Baserow\ndocker compose -f examples/docker-compose.baserow.yml up -d\n\n# Accéder à l'interface\n# http://baserow.localhost\n```\n\n#### WordPress - CMS Populaire\nSystème de gestion de contenu complet (MySQL + Redis + WP-CLI)\n\n```bash\n# Créer les répertoires de données\nmkdir -p data/wordpress/{mysql,redis,html,uploads,themes,plugins}\n\n# Lancer WordPress\ndocker compose -f examples/docker-compose.wordpress.yml up -d\n\n# Accéder à l'interface\n# http://wordpress.localhost\n```\n\n### 🔧 Intégration WindFlow\n\nLes exemples sont configurés pour une intégration transparente :\n- ✅ **Réseau partagé** avec WindFlow (windflow-network)\n- ✅ **Découverte automatique** via labels Traefik\n- ✅ **Health checks** pour surveillance\n- ✅ **Labels WindFlow** pour gestion dans l'interface\n\n📚 **Documentation complète** : [examples/README.md](examples/README.md)\n\n## 📖 Documentation\n\nLa documentation complète se trouve dans le répertoire `doc/` :\n\n### Documentation Principale\n- **[Vue d'Ensemble](doc/spec/01-overview.md)** - Vision et objectifs du projet\n- **[Architecture](doc/spec/02-architecture.md)** - Principes de conception\n- **[Stack Technologique](doc/spec/03-technology-stack.md)** - Technologies utilisées\n- **[Guide de Déploiement](doc/spec/15-deployment-guide.md)** - Installation et configuration\n\n### Guides Utilisateur\n- **[Fonctionnalités Principales](doc/spec/10-core-features.md)** - Fonctionnalités détaillées\n- **[Interface CLI](doc/spec/08-cli-interface.md)** - Utilisation de la CLI/TUI\n- **[Intégration LLM](doc/spec/17-llm-integration.md)** - Intelligence artificielle\n\n### Ressources Développeur\n- **[Modèle de Données](doc/spec/04-data-model.md)** - Structure des données\n- **[API Design](doc/spec/07-api-design.md)** - Documentation des APIs\n- **[Workflows](doc/workflows/README.md)** - Processus de développement\n- **[Règles de Développement](.clinerules/README.md)** - Standards et conventions\n\n\n## 🔧 Configuration\n\n### Variables d'Environnement Principales\n\n```bash\n# Application\nAPP_NAME=WindFlow\nAPP_VERSION=1.0.0\nAPP_ENV=development\nDEBUG=true\n\n# API Backend\nAPI_HOST=0.0.0.0\nAPI_PORT=8000\nAPI_WORKERS=4\n\n# Base de données\nDATABASE_URL=postgresql+asyncpg://windflow:password@localhost:5432/windflow\nREDIS_URL=redis://localhost:6379/0\n\n# Sécurité\nSECRET_KEY=your-secret-key-here\nACCESS_TOKEN_EXPIRE_MINUTES=30\nVAULT_URL=http://localhost:8200\nVAULT_TOKEN=your-vault-token\n\n# Intelligence Artificielle\nLLM_PROVIDER=openai\nLLM_MODEL=gpt-4-turbo-preview\nOPENAI_API_KEY=your-openai-key\nOLLAMA_BASE_URL=http://localhost:11434\n\n# Monitoring\nPROMETHEUS_ENABLED=true\nLOG_LEVEL=INFO\n```\n\n### Configuration Multi-Environnements\n\n```bash\n# Développement\ncp .env.example .env\ndocker compose -f docker-compose.yml -f docker-compose.override.yml up\n\n# Staging\ncp .env.staging .env\ndocker compose -f docker-compose.yml -f docker-compose.staging.yml up\n\n# Production\ncp .env.production .env\ndocker compose -f docker-compose.yml -f docker-compose.prod.yml up\n```\n\n## 🚢 Déploiement\n\n### Déploiement Docker\n\n```bash\n# Build et push des images\nmake docker-build\ndocker tag windflow:latest registry.example.com/windflow:v1.0.0\ndocker push registry.example.com/windflow:v1.0.0\n\n# Déploiement sur serveur\ndocker compose pull\ndocker compose up -d --remove-orphans\n```\n\n### Déploiement Kubernetes\n\n```bash\n# Via Helm (recommandé)\nhelm repo add windflow https://charts.windflow.io\nhelm install windflow windflow/windflow \\\n  --namespace windflow \\\n  --create-namespace \\\n  --values values.yaml\n\n# Via manifestes\nkubectl apply -f k8s/namespace.yaml\nkubectl apply -f k8s/configmap.yaml\nkubectl apply -f k8s/secrets.yaml\nkubectl apply -f k8s/deployment.yaml\nkubectl apply -f k8s/service.yaml\nkubectl apply -f k8s/ingress.yaml\n```\n\n### Production Ready\n\nPour un déploiement en production, assurez-vous de :\n\n- **Reverse Proxy** : Nginx, Traefik ou Caddy pour TLS/HTTP2\n- **Monitoring** : Prometheus + Grafana + Alertmanager\n- **Backups** : Base de données et volumes persistants\n- **Secrets** : HashiCorp Vault en haute disponibilité\n- **Logs** : ELK Stack ou solution équivalente\n- **Scaling** : Kubernetes HPA ou Docker Swarm\n\n## 🤝 Contribution\n\nWindFlow est un projet open source qui accueille les contributions ! \n\n### Guides de Contribution\n- **[Guide de Contribution](CONTRIBUTING.md)** - Processus de contribution\n- **[Workflows de Développement](doc/workflows/development-workflow.md)** - Processus techniques\n- **[Règles de Code](.clinerules/README.md)** - Standards et conventions\n- **[Code de Conduite](CODE_OF_CONDUCT.md)** - Règles communautaires\n\n### Comment Contribuer\n1. **Fork** le repository\n2. **Créer** une branche feature (`git checkout -b feature/amazing-feature`)\n3. **Commiter** les changements (`git commit -m 'feat: add amazing feature'`)\n4. **Push** vers la branche (`git push origin feature/amazing-feature`)\n5. **Ouvrir** une Pull Request\n\n### Développement Local\n```bash\n# Setup complet\nmake setup\n\n# Tests avant commit\nmake test\nmake lint\n\n# Commit avec convention\ngit commit -m \"feat(api): add deployment optimization endpoint\"\n```\n\n## 📊 Roadmap\n\n### Version 1.0 (Q1 2025)\n- [x] Interface web moderne (Vue.js 3 + TypeScript)\n- [x] API REST complète (FastAPI + SQLAlchemy)\n- [x] CLI/TUI puissants (Rich + Typer + Textual)\n- [x] Orchestration Docker + Kubernetes\n- [ ] Intelligence artificielle (LiteLLM)\n- [ ] Monitoring intégré (Prometheus + Grafana)\n\n### Version 1.1 (Q2 2025)\n- [ ] Marketplace de templates communautaires\n- [ ] Support VM (Vagrant + Libvirt)\n- [ ] Workflows visuels avancés\n- [ ] SSO enterprise (Keycloak)\n- [ ] Audit trail complet\n\n### Version 1.2 (Q3 2025)\n- [ ] Multi-cloud provider (AWS, Azure, GCP)\n- [ ] GitOps integration (ArgoCD, Flux)\n- [ ] Plugin system extensible\n- [ ] Mobile app (React Native)\n\nVoir la **[Roadmap Complète](doc/spec/18-roadmap.md)** pour plus de détails.\n\n## 📄 Licence\n\nWindFlow est publié sous licence **MIT**. Voir [LICENSE](LICENSE) pour les détails.\n\n## 🙏 Remerciements\n\nWindFlow s'appuie sur des technologies exceptionnelles :\n\n- **[FastAPI](https://fastapi.tiangolo.com/)** - Framework web moderne pour Python\n- **[Vue.js](https://vuejs.org/)** - Framework progressif pour interfaces utilisateur\n- **[Element Plus](https://element-plus.org/)** - Bibliothèque de composants Vue 3\n- **[Rich](https://rich.readthedocs.io/)** - Bibliothèque pour interfaces CLI riches\n- **[Docker](https://www.docker.com/)** - Plateforme de conteneurisation\n- **[Kubernetes](https://kubernetes.io/)** - Orchestrateur de containers\n- **[PostgreSQL](https://www.postgresql.org/)** - Base de données relationnelle\n- **[Redis](https://redis.io/)** - Store de données en mémoire\n\nUn grand merci à toutes les communautés open source qui rendent WindFlow possible ! 🚀\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\u003cem\u003eCréé avec ❤️ par l'équipe WindFlow\u003c/em\u003e\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/yourusername/windflow\"\u003eGitHub\u003c/a\u003e •\n    \u003ca href=\"https://windflow.io\"\u003eSite Web\u003c/a\u003e •\n    \u003ca href=\"https://docs.windflow.io\"\u003eDocumentation\u003c/a\u003e •\n    \u003ca href=\"https://community.windflow.io\"\u003eCommunauté\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefapi%2Fwindflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefapi%2Fwindflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefapi%2Fwindflow/lists"}