Probieren Sie es aus – Dokumente – Discord – Hub – Leitfaden für Mitwirkende
Windmill ist vollständig Open-Source (AGPLv3) und Windmill Labs bietet dedizierten Instanz- und kommerziellen Support und Lizenzen.
Definieren Sie ein minimales und generisches Skript in Python, TypeScript, Go oder Bash, das eine bestimmte Aufgabe löst. Der Code kann in der bereitgestellten Web-IDE definiert oder mit Ihrem eigenen GitHub-Repo synchronisiert werden (z. B. über die VS-Code-Erweiterung):
Wir bieten hier nur die Docker-Compose-Einrichtung an. Für fortgeschrittenere Setups, wie das Kompilieren aus dem Quellcode oder die Verwendung ohne Postgres-Superuser, lesen Sie die Self-Host-Dokumentation.
Windmill kann mit drei Dateien bereitgestellt werden: (docker-compose.yml, Caddyfile und einer .env) in einem einzigen Befehl.
Stellen Sie sicher, dass Docker gestartet ist, und führen Sie Folgendes aus:
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
Gehen Sie zu http://localhost et voilà :)
Der Standard-Superadministrator-Benutzer ist: [email protected] / changeme.
Von dort aus können Sie der Setup-App folgen und weitere Benutzer erstellen.
Weitere Details finden Sie in der Self-Host-Dokumentation.
Wir veröffentlichen Helmdiagramme unter: https://github.com/windmill-labs/windmill-helm-charts.
Jede Version enthält die entsprechenden Binärdateien für x86_64. Sie können einfach die neueste windmill
Binärdatei herunterladen, indem Sie die folgenden Bash-Befehle verwenden.
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
Mit der Windmill Community Edition können Sie OAuth und SSO (einschließlich Google Workspace SSO, Microsoft/Azure und Okta) direkt über die Benutzeroberfläche in den Superadmin-Einstellungen konfigurieren. Beachten Sie, dass die Community-Edition auf maximal 10 SSO-Benutzer beschränkt ist.
Siehe Dokumentation.
Um Windmill selbst zu hosten, müssen Sie die Bedingungen der AGPLv3-Lizenz einhalten, über die Sie sich für den persönlichen Gebrauch keine Sorgen machen müssen. Für geschäftliche Zwecke sollten Sie in Ordnung sein, wenn Sie Windmill Ihren Benutzern in keiner Weise erneut zur Verfügung stellen und mit AGPLv3 vertraut sind.
Um Ihren Benutzern Windmill-Teile als Funktion Ihres Produkts erneut zur Verfügung zu stellen oder eine Funktion auf Windmill aufzubauen, muss Ihr Produkt zur Einhaltung von AGPLv3 AGPLv3 sein oder Sie müssen eine kommerzielle Lizenz erwerben. Kontaktieren Sie uns unter [email protected], wenn Sie Zweifel haben.
Darüber hinaus erhalten Sie mit einer kommerziellen Lizenz einen dedizierten Techniker für die Umstellung Ihrer aktuellen Infrastruktur auf Windmill, Unterstützung mit strengen SLAs und unsere globale Cache-Synchronisierung für leistungsstarke/abhängigkeitsfreie Cache-Fehler von Clustern von 10+ Knoten auf 200+ Knoten.
In Windmill werden Integrationen als Ressourcen und Ressourcentypen bezeichnet. Jede Ressource verfügt über einen Ressourcentyp, der das Schema definiert, das die Ressource implementieren muss.
Bei selbstgehosteten Instanzen möchten Sie möglicherweise alle genehmigten Ressourcentypen von WindmillHub importieren. Ein Setup-Skript fordert Sie auf, die Synchronisierung jeden Tag automatisch durchzuführen.
Name der Umgebungsvariablen | Standard | Beschreibung | API-Server/Worker/Alle |
---|---|---|---|
DATABASE_URL | Die Postgres-Datenbank-URL. | Alle | |
WORKER_GROUP | Standard | Die Worker-Gruppe, zu der der Worker gehört und aus der seine Konfiguration abgerufen wird | Arbeitnehmer |
MODUS | eigenständig | Der Modus der Binärdatei. Mögliche Werte: Standalone, Worker, Server, Agent | Alle |
METRICS_ADDR | Keiner | (nur ee) Die Socket-Adresse, unter der Prometheus-Metriken im /metrics-Pfad verfügbar gemacht werden. Auf „true“ setzen, um es auf Port 8001 verfügbar zu machen | Alle |
JSON_FMT | FALSCH | Geben Sie die Protokolle im JSON-Format statt im Logfmt-Format aus | Alle |
BASE_URL | http://localhost:8000 | Die Basis-URL, die öffentlich zugänglich gemacht wird, um auf Ihre Instanz zuzugreifen. Wird ggf. von den Instanzeinstellungen überschrieben. | Server |
ZOMBIE_JOB_TIMEOUT | 30 | Das Zeitlimit, nach dem ein Job als Zombie-Job betrachtet wird, wenn der Worker keine Pings zur Verarbeitung des Jobs gesendet hat (jeder Server prüft alle 30 Sekunden, ob Zombie-Jobs vorhanden sind). | Server |
RESTART_ZOMBIE_JOBS | WAHR | Bei „true“ wird ein Zombie-Job neu gestartet (direkt mit derselben UUID und einigen Protokollen), bei „false“ schlägt der Zombie-Job fehl | Server |
SLEEP_QUEUE | 50 | Die Anzahl der ms, die zwischen der letzten Prüfung auf neue Jobs in der Datenbank vergehen soll. Es wird mit NUM_WORKERS multipliziert, sodass im Durchschnitt für eine Worker-Instanz alle SLEEP_QUEUE ms ein Pull erfolgt. | Arbeitnehmer |
KEEP_JOB_DIR | FALSCH | Bewahren Sie das Auftragsverzeichnis auf, nachdem der Auftrag erledigt ist. Nützlich zum Debuggen. | Arbeitnehmer |
LICENSE_KEY (nur EE) | Keiner | Der Lizenzschlüssel wird beim Start für die Enterprise Edition von Windmill überprüft | Arbeitnehmer |
SLACK_SIGNING_SECRET | Keiner | Das Signaturgeheimnis Ihrer Slack-App. Siehe Slack-Dokumentation | Server |
COOKIE_DOMAIN | Keiner | Die Domäne des Cookies. Wenn es nicht gesetzt ist, wird das Cookie vom Browser basierend auf dem vollständigen Ursprung gesetzt | Server |
DENO_PATH | /usr/bin/deno | Der Pfad zur Deno-Binärdatei. | Arbeitnehmer |
PYTHON_PATH | /usr/local/bin/python3 | Der Pfad zur Python-Binärdatei. | Arbeitnehmer |
GO_PATH | /usr/bin/go | Der Pfad zur Go-Binärdatei. | Arbeitnehmer |
GOPRIVAT | Die GOPRIVATE-Env-Variable zur Verwendung privater Go-Module | Arbeitnehmer | |
GOPROXY | Die zu verwendende GOPROXY-Umgebungsvariable | Arbeitnehmer | |
NETRC | Der NetRC-Inhalt zur Verwendung einer privaten Go-Registrierung | Arbeitnehmer | |
WEG | Keiner | Die Pfadumgebungsvariable, normalerweise geerbt | Arbeitnehmer |
HEIM | Keiner | Das für Go und Bash zu verwendende Home-Verzeichnis, normalerweise geerbt | Arbeitnehmer |
DATABASE_CONNECTIONS | 50 (Server)/3 (Arbeiter) | Die maximale Anzahl von Verbindungen im Datenbankverbindungspool | Alle |
SUPERADMIN_SECRET | Keiner | Ein Token, mit dem der Anrufer als virtueller Superadmin [email protected] agieren kann | Server |
TIMEOUT_WAIT_RESULT | 20 | Die Anzahl der Sekunden, die vor dem Timeout auf dem Endpunkt „run_wait_result“ gewartet werden soll | Arbeitnehmer |
QUEUE_LIMIT_WAIT_RESULT | Keiner | Die Anzahl der maximalen Jobs in der Warteschlange, bevor die Anforderung im Endpunkt „run_wait_result“ sofort abgelehnt wird. Hat Vorrang vor dem Abfrageargument. Wenn keine angegeben ist, gibt es keine Begrenzung. | Arbeitnehmer |
DENO_AUTH_TOKENS | Keiner | Benutzerdefinierte DENO_AUTH_TOKENS zur Übergabe an den Worker, um die Verwendung privater Module zu ermöglichen | Arbeitnehmer |
DISABLE_RESPONSE_LOGS | FALSCH | Antwortprotokolle deaktivieren | Server |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | WAHR | Wenn „true“, können nur Superadministratoren neue Arbeitsbereiche erstellen | Server |
Alle Ausführungsoptionen finden Sie in der Datei ./frontend/README_DEV.md.
Mit Nix.
Dabei wird das Backend von https://app.windmill.dev, aber Ihr eigenes Frontend mit Hotcode-Neuladen verwendet. Beachten Sie, dass Sie sich aufgrund von CSRF-Prüfungen mit einem anderen Authentifizierungsanbieter anmelden müssen.
Im frontend/
-Verzeichnis:
npm install
(oder pnpm install
oder yarn
). npm run generate-backend-client
## on mac use
npm run generate-backend-client-mac
npm run dev
aushttp://localhost/
verfügbar sein.Alle Ausführungsoptionen finden Sie in der Datei ./frontend/README_DEV.md.
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
Makro/usr/bin/deno
und /usr/local/bin/python3
frontend/
:npm install
, npm run generate-backend-client
, dann npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
andernfalls findet das Backend den Ordner frontend/build
nicht und wird nicht kompiliert.sudo caddy run --config Caddyfile
backend/
: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
verfügbar sein. Windmill Labs, Inc 2023