167 lines
7.2 KiB
Markdown
167 lines
7.2 KiB
Markdown
---
|
|
title: AutoKitteh
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, development, automation, workflows, serverless, durable, integration, python]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Development, https://github.com/autokitteh/autokitteh]
|
|
---
|
|
|
|
# 💻 AutoKitteh
|
|
|
|
> **La plateforme d'automatisation durable (durable workflows)** : créez des workflows long-running, tolérants aux pannes, et connectez 50+ services SaaS — l'alternative sérieuse à Zapier, n8n et Temporal pour les automatisations *fiables*.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [autokitteh.com](https://autokitteh.com/) |
|
|
| **GitHub** | [autokitteh/autokitteh](https://github.com/autokitteh/autokitteh) |
|
|
| **License** | Apache-2.0 |
|
|
| **Langage** | Go (serveur) + Python (workflows) |
|
|
| **Étoiles GitHub** | 1,1k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-development\|Development]], Automation / Durable Workflows |
|
|
|
|
## 📝 Description
|
|
|
|
**AutoKitteh** est une **plateforme d'automatisation "durable"** open source, créée par la société israélienne **AutoKitteh Ltd**. Le concept central : des **workflows qui survivent aux crashes, redémarrages, et peuvent s'exécuter pendant des jours, semaines, voire mois** — sans perdre l'état d'avancement. C'est l'équivalent open source de **Temporal** (moteur de workflows durables), avec une couche d'intégration SaaS comparable à **Zapier** ou **n8n**.
|
|
|
|
⚠️ **Pour les nouveaux venus, distinguer d'[[app-n8n]]** : n8n est un **constructeur visuel de workflows** (node-based, drag & drop), simple à prendre en main, idéal pour des automatisations courtes. AutoKitteh mise sur la **durabilité** et la **programmabilité** : on écrit les workflows en **Python** (ou en YAML DSL), et chaque étape est **persistée**. Si le serveur crash au milieu d'un workflow de 30 jours, il reprend exactement où il s'est arrêté, sans état perdu.
|
|
|
|
**Intégrations natives** : Slack, GitHub, GitLab, Jira, Notion, Google Workspace, Salesforce, HubSpot, Zendesk, AWS, GCP, HTTP/JSON, SSH, SMTP, IMAP, et 30+ autres. Chaque intégration supporte les **triggers** (webhook, polling, schedule) et les **actions**.
|
|
|
|
**Public cible** : **équipes DevOps, plateforme, DevTools, SRE** qui construisent des automatisations *fiables* : provisioning, incident response, ETL long-running, intégrations B2B, etc.
|
|
|
|
### Fonctionnalités principales
|
|
|
|
- ✅ **Workflows durables** : state persistant, reprise après crash, time-to-live long
|
|
- ✅ **Langage Python** : logique custom dans les steps (pas de DSL propriétaire)
|
|
- ✅ **50+ intégrations natives** : SaaS, cloud, protocols
|
|
- ✅ **Triggers multiples** : webhook, polling, schedule (cron), event
|
|
- ✅ **Scheduling** : cron-style ou event-driven
|
|
- ✅ **Versioning des workflows** : Git, code review, rollback
|
|
- ✅ **Observabilité** : logs structurés, traces, timeline d'exécution
|
|
- ✅ **API REST** : déclenchement, status, cancel
|
|
- ✅ **Self-hosted** : pas de dépendance externe, données 100% chez vous
|
|
- ✅ **Mutual TLS** : connexions sortantes chiffrées
|
|
- ✅ **Retry policies** : backoff exponentiel, max attempts
|
|
- ✅ **Webhooks entrants** : AutoKitteh expose des endpoints pour être appelé
|
|
|
|
## 🚀 Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
autokitteh:
|
|
image: autokitteh/autokitteh:latest
|
|
container_name: autokitteh
|
|
restart: unless-stopped
|
|
ports:
|
|
- "9980:9980" # Web UI
|
|
- "9990:9990" # API
|
|
environment:
|
|
AK_DB_URL: "postgresql://ak:password@db:5432/autokitteh"
|
|
AK_AUTH_SECRET: "changez-moi-en-production-50-chars-random"
|
|
AK_PUBLIC_URL: "https://autokitteh.example.com"
|
|
volumes:
|
|
- ak_data:/data
|
|
depends_on:
|
|
- db
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.ak.rule=Host(`autokitteh.example.com`)"
|
|
- "traefik.http.routers.ak.entrypoints=websecure"
|
|
- "traefik.http.routers.ak.tls.certresolver=letsencrypt"
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: ak-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ak
|
|
POSTGRES_PASSWORD: changez-moi
|
|
POSTGRES_DB: autokitteh
|
|
volumes:
|
|
- ak_db:/var/lib/postgresql/data
|
|
|
|
volumes:
|
|
ak_data:
|
|
ak_db:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
```bash
|
|
git clone https://github.com/autokitteh/autokitteh.git
|
|
cd autokitteh
|
|
docker compose -f docker/docker-compose.yaml up -d
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **Créer un compte admin** : première connexion sur `https://autokitteh.example.com`
|
|
2. **Nouveau projet** : pointer vers un repo Git contenant un fichier `autokitteh.yaml`
|
|
3. **Définir un workflow** : YAML DSL + steps Python
|
|
4. **Configurer les connexions** : Settings > Connections > ajouter OAuth/API key par service
|
|
5. **Triggers** : webhook entrant, cron, ou event
|
|
6. **Variables d'env** : secrets par projet, jamais commit
|
|
7. **Surveillance** : dashboard > Workflows > run history, logs, traces
|
|
|
|
### Exemple de workflow (Python)
|
|
|
|
```python
|
|
from autokitteh.slack import slack_client
|
|
|
|
def on_new_github_issue(event):
|
|
# événement GitHub → notification Slack avec contexte
|
|
issue = event.data.issue
|
|
slack_client.chat_postMessage(
|
|
channel="#dev-alerts",
|
|
text=f"🐛 Nouveau ticket : {issue.title}\n{issue.html_url}"
|
|
)
|
|
return {"status": "notified"}
|
|
```
|
|
|
|
## 🔗 Alternatives
|
|
|
|
- **Temporal** — Moteur de workflows durables bas niveau, plus complexe, SDK Go/JS/Python
|
|
- **n8n** — Constructeur visuel de workflows, plus simple, moins durable
|
|
- **Zapier** — SaaS leader, propriétaire, cher, pas durable
|
|
- **Make (Integromat)** — Concurrent Zapier, propriétaire
|
|
- **Apache Airflow** — Orchestration de pipelines data, orienté batch
|
|
- **Prefect** — Workflows Python durables, plus orienté data engineering
|
|
- **Activepieces** — Open source Zapier-like, plus accessible
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- **🔐 AK_AUTH_SECRET robuste** : `openssl rand -hex 64`
|
|
- **🛡️ HTTPS obligatoire via [[app-traefik]]** : AutoKitteh déclenche des actions sensibles (écriture en BDD, envoi de mails, création de tickets)
|
|
- **🔒 Secrets par projet** : utiliser les variables d'environnement, jamais en clair dans le code
|
|
- **🛡️ Connexions OAuth** : scopes minimaux, rotation régulière des tokens
|
|
- **🛡️ Webhooks entrants** : valider la signature, secret partagé
|
|
- **🛡️ Audit log** : conserver l'historique des exécutions (qui, quand, quoi)
|
|
- **🛡️ Sandboxing Python** : AutoKitteh exécute du code user-controlled → vérifier l'isolation
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://autokitteh.com/)
|
|
- [Documentation](https://docs.autokitteh.com/)
|
|
- [GitHub autokitteh/autokitteh](https://github.com/autokitteh/autokitteh)
|
|
- [Exemples de workflows](https://github.com/autokitteh/autokitteh/tree/main/examples)
|
|
- [Blog technique](https://autokitteh.com/blog/)
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-development]] — Catégorie Development
|
|
- [[app-n8n]] — Constructeur visuel de workflows (plus simple, moins durable)
|
|
- [[app-temporal]] — Moteur de workflows durables (bas niveau)
|
|
- [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|
|
- [[recettes-docker-compose]] — Templates Docker
|