Files
wiki/Catalogue-Self-Hosted/apps/app-komodo.md
T
2026-06-09 18:40:21 +02:00

166 lines
6.9 KiB
Markdown

---
title: Komodo
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, docker, container, orchestration, multi-server, deploy, monitoring-docker]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/moghtech/komodo]
---
# 🐳 Komodo
> **L'orchestrateur Docker multi-serveurs en Rust** — déployez et supervisez vos stacks sur N hôtes depuis une interface unique.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [komo.do](https://komo.do/) |
| **GitHub** | [moghtech/komodo](https://github.com/moghtech/komodo) |
| **License** | GPL-3.0 (custom-ish : core AGPL, libs permissives) |
| **Langage** | Rust (backend) + TypeScript (UI) |
| **Étoiles GitHub** | 11,3k ⭐ |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-docker\|Docker]] |
## 📝 Description
**Komodo** est une **plateforme d'orchestration et de déploiement** écrite en Rust, conçue pour gérer des **stacks docker-compose sur plusieurs serveurs** depuis une interface web unique. Là où [[app-portainer]] nécessite un *agent* par hôte, Komodo utilise un binaire **`komodod`** déployé sur chaque serveur cible, qui communique avec le serveur central via une API REST/WebSocket sécurisée.
Le résultat : un seul *dashboard* pour superviser 1, 3 ou 30 serveurs, déployer une stack sur l'un, l'autre, ou tous, et recevoir des alertes unifiées. Idéal pour les homelabs multi-machines (Raspberry Pi + NAS + serveur Proxmox…) ou les petites équipes d'ops.
-**Multi-serveurs** (illimité) depuis une seule UI
-**Stacks docker-compose** déployables par groupe de serveurs (*batch deploy*)
-**Procédures custom** (scripts shell) exécutables à distance
-**Resources monitoring** (CPU/RAM/Disk/Net par serveur)
-**Alertes** : CPU élevé, disk full, conteneurs down, MAJ dispos
-**Gestion des secrets** (variables chiffrées au repos)
-**RBAC** (utilisateurs, groupes, permissions fines)
-**Audit log** (qui a fait quoi, quand)
-**Builds Docker** à distance (depuis un repo git)
-**Webhooks** (déclenchement Git push, CI, etc.)
-**Single binary** (`komodod` en Go-like Rust), faible empreinte
**Public cible** : **homelabs avancés multi-machines** et **petites équipes DevOps** qui veulent un Portainer-like mais en mieux, ou un alternative moderne à Ansible Tower.
**Alternatives directes** : [[app-portainer]] (référence, plus mature), [[app-dockge]] (mono-serveur, plus simple), [[app-arcane]] (mono-serveur, moderne), **Ansible** / **Terraform** (IaC, plus bas niveau).
## 🚀 Installation
### Architecture
- **`komodo-core`** : API centrale + UI (1 conteneur / 1 binaire)
- **`komodo-periphery`** : agent léger à installer sur **chaque serveur distant**
### Option 1 : Docker Compose (serveur central)
```yaml
# docker-compose.yml — serveur central
version: '3.8'
services:
komodo:
image: ghcr.io/moghtech/komodo:1.18.0
container_name: komodo
restart: unless-stopped
security_opt:
- no-new-privileges:true
ports:
- "9120:9120" # web UI
- "8120:8120" # API REST
volumes:
- komodo_data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.komodo.rule=Host(`komodo.example.com`)"
- "traefik.http.routers.komodo.entrypoints=websecure"
- "traefik.http.routers.komodo.tls.certresolver=letsencrypt"
- "traefik.http.services.komodo.loadbalancer.server.port=9120"
volumes:
komodo_data:
```
### Option 2 : Agent sur chaque serveur distant
```bash
# Sur CHAQUE serveur à manager
curl -fsSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery | bash
# Édite /etc/komodo/periphery.config.toml :
# - ip = "0.0.0.0"
# - port = 8120
# - komodo_url = "https://komodo.example.com" # le serveur central
# - api_key = "..." # généré côté Komodo
sudo systemctl restart komodo-periphery
```
> Le serveur central peut aussi être lui-même un *periphery* (self-managed).
## ⚙️ Configuration Initiale
1. **Accéder à l'UI** : `https://komodo.example.com:9120` (ou via Traefik)
2. **Créer le compte admin** et générer une **API key**
3. **Ajouter un serveur** : *Servers > New* > IP, port, clé API du `komodod` distant
4. **Créer un premier déploiement** : *Stacks > New* > chemin vers le `compose.yaml`
5. **Lier la stack à un ou plusieurs serveurs** (sélection multiple possible)
6. **Configurer les alertes** : *Alerts > New* (Discord, Telegram, email, webhook…)
## 🔄 Alternatives
### Open Source
- [[app-portainer]] — Référence, mature, K8s/Swarm support
- [[app-dockge]] — Mono-serveur, plus simple
- [[app-arcane]] — Mono-serveur, UI Svelte moderne
- **Ansible AWX** — Plus générique, plus complexe
- **Coolify** — PaaS self-hosted (app store + deploy)
- **Dokku** — Mini-Heroku sur un serveur
- **CasaOS** — Plus qu'un orchestrateur
### Propriétaires
- **Portainer Business** — SSO, RBAC, support commercial
- **Rancher** (SUSE) — Enterprise K8s
- **Octopus Deploy** — CD enterprise
- **Spacelift** — IaC orchestration
- **Harness** — CI/CD + deployment
### Tableau comparatif
| Critère | Komodo | Portainer CE | Dockge | Ansible AWX | Coolify |
| :--- | :--- | :--- | :--- | :--- | :--- |
| Multi-serveur | ✅ (natif) | ✅ (agent) | ❌ | ✅ | ✅ |
| K8s | ❌ | ✅ | ❌ | ❌ | ❌ |
| RBAC | ✅ | Basique | ❌ | ✅ | ✅ |
| App store | ❌ | ✅ (templates) | ❌ | ❌ | ✅ |
| Build distant | ✅ | ❌ | ❌ | ✅ | ✅ |
| Langage | Rust | Go | TypeScript | Python | TypeScript |
| Licence | GPL-3.0 | Zlib (CE) | MIT | Apache-2.0 | Apache-2.0 |
**Verdict** : **Komodo brille en multi-serveurs** avec une UX moderne. Pour un homelab mono-machine, [[app-dockge]] ou [[app-arcane]] sont plus simples. Pour du K8s, [[app-portainer]] reste le choix sûr.
## 🔐 Sécurité
- ⚠️ **Le serveur central Komodo contrôle N agents** = **surface d'attaque multipliée**. Compromettre Komodo = compromis tous les serveurs enregistrés.
- **Auth obligatoire + 2FA** activée sur le compte admin.
- **TLS partout** : [[app-traefik]] avec Let's Encrypt pour l'UI ; `komodod` distant accessible uniquement via WireGuard/Tailscale/VPN.
- **Tokens API scoped** : ne jamais réutiliser la même clé pour tous les serveurs.
- **Secrets Komodo chiffrés** au repos avec une *passphrase* — la sauvegarder dans un coffre (Bitwarden, KeePass).
- **RBAC strict** : si plusieurs utilisateurs, limiter les permissions par groupe.
## 📚 Ressources
- [GitHub moghtech/komodo](https://github.com/moghtech/komodo)
- [Site officiel](https://komo.do/)
- [Documentation](https://komo.do/docs)
- [Démo live](https://demo.komo.do/)
## Pages Liées
- [[cat-docker]] — Catégorie Docker
- [[app-portainer]] — Référence, plus mature
- [[app-dockge]] — Alternative mono-serveur
- [[app-traefik]] — Reverse proxy
- [[recettes-docker-compose]] — Templates Compose
- [[securisation-home-lab]] — Durcir l'infra