Essayez-le - Docs - Discord - Hub - Guide du contributeur
Windmill est entièrement open source (AGPLv3) et Windmill Labs propose des instances dédiées, un support commercial et des licences.
Définissez un script minimal et générique en Python, TypeScript, Go ou Bash qui résout une tâche spécifique. Le code peut être défini dans l'IDE Web fourni ou synchronisé avec votre propre dépôt GitHub (par exemple via l'extension VS Code) :
Nous fournissons uniquement la configuration Docker-Compose ici. Pour des configurations plus avancées, comme la compilation à partir des sources ou l'utilisation sans super-utilisateur Postgres, consultez la documentation Self-Host.
Windmill peut être déployé à l'aide de 3 fichiers : (docker-compose.yml, Caddyfile et un .env) en une seule commande.
Assurez-vous que Docker est démarré et exécutez :
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml -o docker-compose.yml
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/Caddyfile -o Caddyfile
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
docker compose up -d
Allez sur http://localhost et voilà :)
L'utilisateur super-administrateur par défaut est : [email protected] / changeme.
À partir de là, vous pouvez suivre l'application de configuration et créer d'autres utilisateurs.
Plus de détails dans la documentation auto-hébergée.
Nous publions des graphiques de barre sur : https://github.com/windmill-labs/windmill-helm-charts.
Chaque version inclut les binaires correspondants pour x86_64. Vous pouvez simplement télécharger le dernier binaire windmill
en utilisant l'ensemble de commandes bash suivant.
BINARY_NAME= ' windmill-amd64 ' # or windmill-ee-amd64 for the enterprise edition
LATEST_RELEASE= $( curl -L -s -H ' Accept: application/json ' https://github.com/windmill-labs/windmill/releases/latest )
LATEST_VERSION= $( echo $LATEST_RELEASE | sed -e ' s/.*"tag_name":"([^"]*)".*/1/ ' )
ARTIFACT_URL= " https://github.com/windmill-labs/windmill/releases/download/ $LATEST_VERSION / $BINARY_NAME "
wget " $ARTIFACT_URL " -O windmill
Windmill Community Edition permet de configurer OAuth, SSO (y compris Google Workspace SSO, Microsoft/Azure et Okta) directement depuis l'interface utilisateur dans les paramètres du superadministrateur. Notez qu'il y a une limite de 10 utilisateurs SSO sur l'édition communautaire.
Voir la documentation.
Pour auto-héberger Windmill, vous devez respecter les termes de la licence AGPLv3 dont vous n'avez pas à vous soucier pour des usages personnels. Pour les utilisations professionnelles, tout devrait bien se passer si vous ne réexposez pas Windmill de quelque manière que ce soit à vos utilisateurs et si vous êtes à l'aise avec AGPLv3.
Pour réexposer des pièces de Windmill à vos utilisateurs en tant que fonctionnalité de votre produit, ou pour créer une fonctionnalité sur Windmill, pour être conforme à AGPLv3, votre produit doit être AGPLv3 ou vous devez obtenir une licence commerciale. Contactez-nous à [email protected] si vous avez des doutes.
De plus, une licence commerciale vous accorde un ingénieur dédié pour faire la transition de votre infrastructure actuelle vers Windmill, une prise en charge avec des SLA stricts et notre synchronisation de cache globale pour un manque de cache hautes performances/sans dépendance du cluster de plus de 10 nœuds à plus de 200 nœuds.
Dans Windmill, les intégrations sont appelées ressources et types de ressources. Chaque ressource possède un type de ressource qui définit le schéma que la ressource doit implémenter.
Sur les instances auto-hébergées, vous souhaiterez peut-être importer tous les types de ressources approuvés depuis WindmillHub. Un script de configuration vous invitera à le synchroniser automatiquement tous les jours.
Nom de la variable d'environnement | Défaut | Description | Serveur API/Travailleur/Tous |
---|---|---|---|
DATABASE_URL | L'URL de la base de données Postgres. | Tous | |
WORKER_GROUP | défaut | Le groupe de travail auquel appartient le travailleur et dont la configuration est extraite | Travailleur |
MODE | autonome | Le mode si le binaire. Valeurs possibles : autonome, travailleur, serveur, agent | Tous |
METRICS_ADDR | Aucun | (ee uniquement) L'adresse du socket à laquelle exposer les métriques Prometheus sur le chemin /metrics. Définir sur "true" pour l'exposer sur le port 8001 | Tous |
JSON_FMT | FAUX | Afficher les journaux au format json au lieu de logfmt | Tous |
BASE_URL | http://localhost:8000 | L'URL de base qui est exposée publiquement pour accéder à votre instance. Est remplacé par les paramètres de l'instance, le cas échéant. | Serveur |
ZOMBIE_JOB_TIMEOUT | 30 | Le délai d'attente après lequel une tâche est considérée comme zombie si le travailleur n'a pas envoyé de ping concernant le traitement de la tâche (chaque serveur vérifie les tâches zombie toutes les 30 s). | Serveur |
RESTART_ZOMBIE_JOBS | vrai | Si vrai, un travail zombie est redémarré (sur place avec le même uuid et quelques journaux), si faux, le travail zombie échoue. | Serveur |
SLEEP_QUEUE | 50 | Le nombre de ms à dormir entre la dernière vérification des nouvelles tâches dans la base de données. Il est multiplié par NUM_WORKERS de telle sorte qu'en moyenne, pour une instance de travail, il y a une extraction toutes les SLEEP_QUEUE ms. | Travailleur |
KEEP_JOB_DIR | FAUX | Conservez le répertoire de travail une fois le travail terminé. Utile pour le débogage. | Travailleur |
LICENSE_KEY (EE uniquement) | Aucun | Clé de licence vérifiée au démarrage pour l'édition Entreprise de Windmill | Travailleur |
SLACK_SIGNING_SECRET | Aucun | Le secret de signature de votre application Slack. Voir la documentation Slack | Serveur |
COOKIE_DOMAINE | Aucun | Le domaine du cookie. S'il n'est pas défini, le cookie sera défini par le navigateur en fonction de l'origine complète | Serveur |
DENO_PATH | /usr/bin/deno | Le chemin vers le binaire deno. | Travailleur |
CHEMIN_PYTHON | /usr/local/bin/python3 | Le chemin d'accès au binaire python. | Travailleur |
GO_PATH | /usr/bin/aller | Le chemin vers le binaire go. | Travailleur |
GOPRIVÉ | La variable d'environnement GOPRIVATE pour utiliser les modules go privés | Travailleur | |
GOPROXY | La variable d'environnement GOPROXY à utiliser | Travailleur | |
RÉSEAU | Le contenu netrc pour utiliser un registre go privé | Travailleur | |
CHEMIN | Aucun | La variable d'environnement path, généralement héritée | Travailleur |
MAISON | Aucun | Le répertoire personnel à utiliser pour Go et Bash , généralement hérité | Travailleur |
DATABASE_CONNEXIONS | 50 (serveur)/3 (travailleur) | Le nombre maximum de connexions dans le pool de connexions à la base de données | Tous |
SUPERADMIN_SECRET | Aucun | Un jeton qui permettrait à l'appelant d'agir en tant que superadministrateur virtuel [email protected] | Serveur |
TIMEOUT_WAIT_RESULT | 20 | Le nombre de secondes à attendre avant l'expiration du point de terminaison 'run_wait_result' | Travailleur |
QUEUE_LIMIT_WAIT_RESULT | Aucun | Le nombre maximum de tâches dans la file d'attente avant de rejeter immédiatement la demande dans le point de terminaison « run_wait_result ». A la priorité sur l'argument de requête. Si aucune n’est spécifiée, il n’y a pas de limite. | Travailleur |
DENO_AUTH_TOKENS | Aucun | DENO_AUTH_TOKENS personnalisé à transmettre au travailleur pour permettre l'utilisation de modules privés | Travailleur |
DISABLE_RESPONSE_LOGS | FAUX | Désactiver les journaux de réponses | Serveur |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | vrai | Si cela est vrai, seuls les super-administrateurs peuvent créer de nouveaux espaces de travail | Serveur |
Consultez le fichier ./frontend/README_DEV.md pour toutes les options en cours d'exécution.
Utiliser Nix.
Cela utilisera le backend de https://app.windmill.dev mais votre propre frontend avec rechargement de code à chaud. Notez que vous devrez utiliser un nom d'utilisateur/mot de passe en raison des vérifications CSRF utilisant un autre fournisseur d'authentification.
Dans le répertoire frontend/
:
npm install
(ou pnpm install
ou yarn
) npm run generate-backend-client
## on mac use
npm run generate-backend-client-mac
npm run dev
http://localhost/
Consultez le fichier ./frontend/README_DEV.md pour toutes les options en cours d'exécution.
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
macro/usr/bin/deno
et /usr/local/bin/python3
frontend/
:npm install
, npm run generate-backend-client
puis npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
sinon le backend ne trouvera pas le dossier frontend/build
et ne compilera pas.sudo caddy run --config Caddyfile
backend/
: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
Laboratoires de moulin à vent, Inc. 2023