Initial vault setup
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user