Refresh readme (#7779)
* Refresh readme * Video demo product Updated asset links in README.md. * Local dev video Updated the image link for the CLI Screencast in the README.
243
README.md
@@ -1,12 +1,14 @@
|
|||||||
|
|
||||||
|
https://github.com/user-attachments/assets/aac14391-f1e4-47c3-83ab-839d347bacd8
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://www.windmill.dev/"><img src="./imgs/windmill-banner.png" alt="windmill.dev"></a>
|
<a href="https://www.windmill.dev/"><img src="./imgs/windmill-banner.png" alt="windmill.dev"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align=center>
|
<p align=center>
|
||||||
Open-source developer infrastructure for internal tools (APIs, background jobs, workflows and UIs). Self-hostable alternative to Retool, Pipedream, Superblocks and a simplified Temporal with autogenerated UIs and custom UIs to trigger workflows and scripts as internal apps.
|
Open-source developer platform for internal code: APIs, background jobs, workflows and UIs. Self-hostable alternative to Retool, Pipedream, Superblocks and a simplified Temporal with autogenerated UIs and custom UIs to trigger workflows and scripts as internal apps.
|
||||||
|
|
||||||
<p align=center>
|
<p align=center>
|
||||||
Scripts are turned into sharable UIs automatically, and can be composed together into flows or used into richer apps built with low-code. Supported script languages supported are: Python, TypeScript, Go, Bash, SQL, and GraphQL.
|
Scripts are turned into sharable UIs automatically, and can be composed together into flows or used into richer apps built with low-code. Supported languages: Python, TypeScript, Go, Bash, SQL, GraphQL, PowerShell, Rust, and more.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
@@ -36,75 +38,58 @@ Scripts are turned into sharable UIs automatically, and can be composed together
|
|||||||
|
|
||||||
# Windmill - Developer platform for APIs, background jobs, workflows and UIs
|
# Windmill - Developer platform for APIs, background jobs, workflows and UIs
|
||||||
|
|
||||||
Windmill is <b>fully open-sourced (AGPLv3)</b> and Windmill Labs offers
|
Windmill is fully open-sourced (AGPLv3) and Windmill Labs offers dedicated instances and commercial support and licenses.
|
||||||
dedicated instance and commercial support and licenses.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
https://github.com/windmill-labs/windmill/assets/122811744/0b132cd1-ee67-4505-822f-0c7ee7104252
|
https://github.com/user-attachments/assets/d80de1d9-64de-4d89-aacd-6df23fa81fc4
|
||||||
|
|
||||||
- [Windmill - Developer platform for APIs, background jobs, workflows and UIs](#windmill---developer-platform-for-apis-background-jobs-workflows-and-uis)
|
- [Windmill - Developer platform for APIs, background jobs, workflows and UIs](#windmill---developer-platform-for-apis-background-jobs-workflows-and-uis)
|
||||||
- [Main Concepts](#main-concepts)
|
- [Main Concepts](#main-concepts)
|
||||||
- [Show me some actual script code](#show-me-some-actual-script-code)
|
- [Show me some actual script code](#show-me-some-actual-script-code)
|
||||||
- [CLI](#cli)
|
- [Local Development](#local-development)
|
||||||
- [Running scripts locally](#running-scripts-locally)
|
|
||||||
- [Stack](#stack)
|
- [Stack](#stack)
|
||||||
- [Fastest Self-Hostable Workflow Engine](#fastest-self-hostable-workflow-engine)
|
- [Fastest Self-Hostable Workflow Engine](#fastest-self-hostable-workflow-engine)
|
||||||
- [Security](#security)
|
- [Security](#security)
|
||||||
- [Sandboxing](#sandboxing)
|
|
||||||
- [Secrets, credentials and sensitive values](#secrets-credentials-and-sensitive-values)
|
|
||||||
- [Performance](#performance)
|
- [Performance](#performance)
|
||||||
- [Architecture](#architecture)
|
- [Architecture](#architecture)
|
||||||
- [How to self-host](#how-to-self-host)
|
- [How to self-host](#how-to-self-host)
|
||||||
- [Docker compose](#docker-compose)
|
- [Docker compose](#docker-compose)
|
||||||
- [Kubernetes (k8s) and Helm charts](#kubernetes-k8s-and-helm-charts)
|
- [Kubernetes (Helm charts)](#kubernetes-helm-charts)
|
||||||
- [Run from binaries](#run-from-binaries)
|
- [Cloud providers](#cloud-providers)
|
||||||
- [OAuth, SSO \& SMTP](#oauth-sso--smtp)
|
- [OAuth, SSO \& SMTP](#oauth-sso--smtp)
|
||||||
- [Commercial license](#commercial-license)
|
- [License](#license)
|
||||||
- [Integrations](#integrations)
|
- [Integrations](#integrations)
|
||||||
- [Environment Variables](#environment-variables)
|
- [Environment Variables](#environment-variables)
|
||||||
- [Run a local dev setup](#run-a-local-dev-setup)
|
- [Run a local dev setup](#run-a-local-dev-setup)
|
||||||
- [only Frontend](#only-frontend)
|
- [Frontend only](#frontend-only)
|
||||||
- [Backend + Frontend](#backend--frontend)
|
- [Backend + Frontend](#backend--frontend)
|
||||||
- [Contributors](#contributors)
|
- [Contributors](#contributors)
|
||||||
- [Copyright](#copyright)
|
- [Copyright](#copyright)
|
||||||
|
|
||||||
## Main Concepts
|
## Main Concepts
|
||||||
|
|
||||||
1. Define a minimal and generic script in Python, TypeScript, Go or Bash that
|
1. Define a minimal and generic script in Python, TypeScript, Go or Bash that solves a specific task. The code can be defined in the provided Web IDE or synchronized with your own GitHub repo (e.g. through VS Code extension): [provided Web IDE](https://www.windmill.dev/docs/code_editor) or [synchronized with your own GitHub repo](https://www.windmill.dev/docs/advanced/cli/sync) (e.g. through [VS Code](https://www.windmill.dev/docs/cli_local_dev/vscode-extension) extension):
|
||||||
solves a specific task. The code can be defined in the
|
|
||||||
[provided Web IDE](https://www.windmill.dev/docs/code_editor) or
|
|
||||||
[synchronized with your own GitHub repo](https://www.windmill.dev/docs/advanced/cli/sync)
|
|
||||||
(e.g. through
|
|
||||||
[VS Code](https://www.windmill.dev/docs/cli_local_dev/vscode-extension)
|
|
||||||
extension):
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
2. Your scripts parameters are automatically parsed and
|
2. Your scripts parameters are automatically parsed and [generate a frontend](https://www.windmill.dev/docs/core_concepts/auto_generated_uis).
|
||||||
[generate a frontend](https://www.windmill.dev/docs/core_concepts/auto_generated_uis).
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
3. Make it [flow](https://www.windmill.dev/docs/flows/flow_editor)! You can
|
3. Make it [flow](https://www.windmill.dev/docs/flows/flow_editor)! You can chain your scripts or scripts made by the community shared on [WindmillHub](https://hub.windmill.dev).
|
||||||
chain your scripts or scripts made by the community shared on
|
|
||||||
[WindmillHub](https://hub.windmill.dev).
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
4. Build [complex UIs](https://www.windmill.dev/docs/apps/app_editor) on top of
|
4. Build [complex UIs](https://www.windmill.dev/docs/apps/app_editor) on top of your scripts and flows.
|
||||||
your scripts and flows.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
Scripts and flows can also be triggered by a
|
Scripts and flows can be triggered by [schedules](https://www.windmill.dev/docs/core_concepts/scheduling), [webhooks](https://www.windmill.dev/docs/core_concepts/webhooks), [HTTP routes](https://www.windmill.dev/docs/core_concepts/http_routing), [Kafka](https://www.windmill.dev/docs/core_concepts/kafka_triggers), [WebSockets](https://www.windmill.dev/docs/core_concepts/websocket_triggers), [emails](https://www.windmill.dev/docs/core_concepts/email_triggers), and more.
|
||||||
[cron schedule](https://www.windmill.dev/docs/core_concepts/scheduling) (e.g.
|
|
||||||
'_/5 _ \* \* \*') or through
|
|
||||||
[webhooks](https://www.windmill.dev/docs/core_concepts/webhooks).
|
|
||||||
|
|
||||||
You can build your entire infra on top of Windmill!
|
Build your entire infra on top of Windmill!
|
||||||
|
|
||||||
## Show me some actual script code
|
## Show me some actual script code
|
||||||
|
|
||||||
@@ -144,43 +129,31 @@ export async function main(
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## CLI
|
## Local Development
|
||||||
|
|
||||||
We have a powerful CLI to interact with the windmill platform and sync your
|
Windmill supports multiple ways to develop locally and sync with your instance:
|
||||||
scripts from local files, GitHub repos and to run scripts and flows on the
|
|
||||||
instance from local commands. See
|
|
||||||
[more details](https://www.windmill.dev/docs/advanced/cli).
|
|
||||||
|
|
||||||

|
| Tool | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| **[CLI](https://www.windmill.dev/docs/advanced/cli)** | Sync scripts from local files or GitHub, run scripts/flows from the command line |
|
||||||
|
| **[VS Code Extension](https://www.windmill.dev/docs/cli_local_dev/vscode-extension)** | Edit and test scripts & flows directly from VS Code / Cursor with full IDE support |
|
||||||
|
| **[Git Sync](https://www.windmill.dev/docs/advanced/git_sync)** | Two-way sync between Windmill and your Git repository |
|
||||||
|
| **[Claude Code](https://www.windmill.dev/docs/core_concepts/ai_generation)** | AI-assisted development with Claude for scripts, flows, and apps |
|
||||||
|
|
||||||
### Running scripts locally
|
https://github.com/user-attachments/assets/c541c326-e9ae-4602-a09a-1989aaded1e9
|
||||||
|
|
||||||
You can run your script locally easily, you simply need to pass the right
|
You can run scripts locally by passing the right environment variables for the `wmill` client library to fetch resources and variables from your instance. See [local development docs](https://www.windmill.dev/docs/advanced/local_development).
|
||||||
environment variables for the `wmill` client library to fetch resources and
|
|
||||||
variables from your instance if necessary. See more:
|
|
||||||
<https://www.windmill.dev/docs/advanced/local_development>.
|
|
||||||
|
|
||||||
To develop & test locally scripts & flows, we recommend using the Windmill VS
|
|
||||||
Code extension: <https://www.windmill.dev/docs/cli_local_dev/vscode-extension>.
|
|
||||||
|
|
||||||
## Stack
|
## Stack
|
||||||
|
|
||||||
- Postgres as the database.
|
- **Database**: Postgres (compatible with Aurora, Cloud SQL, Neon, Azure PostgreSQL)
|
||||||
- Backend in Rust with the following highly-available and horizontally scalable.
|
- **Backend**: Rust - stateless API servers and workers pulling jobs from a Postgres queue
|
||||||
Architecture:
|
- **Frontend**: Svelte 5
|
||||||
- Stateless API backend.
|
- **Sandboxing**: [nsjail](https://github.com/google/nsjail) and PID namespace isolation
|
||||||
- Workers that pull jobs from a queue in Postgres (and later, Kafka or Redis.
|
- **Runtimes**:
|
||||||
Upvote [#173](#https://github.com/windmill-labs/windmill/issues/173) if
|
- TypeScript/JavaScript: Bun (default) and Deno
|
||||||
interested).
|
- Python: python3 with uv for dependency management
|
||||||
- Frontend in Svelte.
|
- Go, Bash, PowerShell, PHP, Rust, C#, Java, Ansible
|
||||||
- Scripts executions are sandboxed using Google's
|
|
||||||
[nsjail](https://github.com/google/nsjail).
|
|
||||||
- Javascript runtime is the
|
|
||||||
[deno_core rust library](https://denolib.gitbook.io/guide/) (which itself uses
|
|
||||||
the [rusty_v8](https://github.com/denoland/rusty_v8) and hence V8 underneath).
|
|
||||||
- TypeScript runtime is Bun and deno.
|
|
||||||
- Python runtime is python3.
|
|
||||||
- Golang runtime is 1.19.1.
|
|
||||||
|
|
||||||
## Fastest Self-Hostable Workflow Engine
|
## Fastest Self-Hostable Workflow Engine
|
||||||
|
|
||||||
@@ -197,19 +170,10 @@ page.
|
|||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
### Sandboxing
|
- **Sandboxing**: [nsjail](https://github.com/google/nsjail) for filesystem/resource isolation, and PID namespace isolation (enabled by default) to prevent jobs from accessing worker process memory
|
||||||
|
- **Secrets**: One encryption key per workspace for credentials stored in Windmill's K/V store. We recommend encrypting the Postgres database as well.
|
||||||
|
|
||||||
Windmill can use [nsjail](https://github.com/google/nsjail). It is production
|
See [Security documentation](https://www.windmill.dev/docs/advanced/security_isolation) for details.
|
||||||
multi-tenant grade secure. Do not take our word for it, take
|
|
||||||
[fly.io's one](https://fly.io/blog/sandboxing-and-workload-isolation/).
|
|
||||||
|
|
||||||
### Secrets, credentials and sensitive values
|
|
||||||
|
|
||||||
There is one encryption key per workspace to encrypt the credentials and secrets
|
|
||||||
stored in Windmill's K/V store.
|
|
||||||
|
|
||||||
In addition, we strongly recommend that you encrypt the whole Postgres database.
|
|
||||||
That is what we do at <https://app.windmill.dev>.
|
|
||||||
|
|
||||||
## Performance
|
## Performance
|
||||||
|
|
||||||
@@ -229,19 +193,13 @@ back to the database is ~50ms. A typical lightweight deno job will take around
|
|||||||
|
|
||||||
## How to self-host
|
## How to self-host
|
||||||
|
|
||||||
We only provide docker-compose setup here. For more advanced setups, like
|
For detailed setup options, see [Self-Host documentation](https://www.windmill.dev/docs/advanced/self_host).
|
||||||
compiling from source or using without a postgres super user, see
|
|
||||||
[Self-Host documentation](https://www.windmill.dev/docs/advanced/self_host).
|
|
||||||
|
|
||||||
### Docker compose
|
### Docker compose
|
||||||
|
|
||||||
Windmill can be deployed using 3 files:
|
Deploy Windmill with 3 files ([docker-compose.yml](./docker-compose.yml), [Caddyfile](./Caddyfile), [.env](./.env)):
|
||||||
([docker-compose.yml](./docker-compose.yml), [Caddyfile](./Caddyfile) and a
|
|
||||||
[.env](./.env)) in a single command.
|
|
||||||
|
|
||||||
Make sure Docker is started, and run:
|
```bash
|
||||||
|
|
||||||
```
|
|
||||||
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/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/Caddyfile -o Caddyfile
|
||||||
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
|
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
|
||||||
@@ -249,86 +207,45 @@ curl https://raw.githubusercontent.com/windmill-labs/windmill/main/.env -o .env
|
|||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Go to http://localhost et voilà :)
|
Go to http://localhost - default credentials: `admin@windmill.dev` / `changeme`
|
||||||
|
|
||||||
The default super-admin user is: admin@windmill.dev / changeme.
|
**Using an external database**: Set `DATABASE_URL` in `.env` to point to your managed Postgres (AWS RDS, GCP Cloud SQL, Azure, Neon, etc.) and set db replicas to 0.
|
||||||
|
|
||||||
From there, you can follow the setup app and create other users.
|
### Kubernetes (Helm charts)
|
||||||
|
|
||||||
More details in
|
|
||||||
[Self-Host Documention](https://www.windmill.dev/docs/advanced/self_host#docker).
|
|
||||||
|
|
||||||
### Kubernetes (k8s) and Helm charts
|
|
||||||
|
|
||||||
We publish helm charts at:
|
|
||||||
<https://github.com/windmill-labs/windmill-helm-charts>.
|
|
||||||
|
|
||||||
### Run from binaries
|
|
||||||
|
|
||||||
Each release includes the corresponding binaries for x86_64. You can simply
|
|
||||||
download the latest `windmill` binary using the following set of bash commands.
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BINARY_NAME='windmill-amd64' # or windmill-ee-amd64 for the enterprise edition
|
helm repo add windmill https://windmill-labs.github.io/windmill-helm-charts/
|
||||||
LATEST_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/windmill-labs/windmill/releases/latest)
|
helm install windmill-chart windmill/windmill --namespace=windmill --create-namespace
|
||||||
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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
See [windmill-helm-charts](https://github.com/windmill-labs/windmill-helm-charts) for configuration options.
|
||||||
|
|
||||||
|
### Cloud providers
|
||||||
|
|
||||||
|
Windmill works on AWS (EKS/ECS), GCP, Azure, Ubicloud, Fly.io, Render.com, Hetzner, Digital Ocean, and others. Rule of thumb: 1 worker per 1vCPU and 1-2 GB RAM.
|
||||||
|
|
||||||
### OAuth, SSO & SMTP
|
### OAuth, SSO & SMTP
|
||||||
|
|
||||||
Windmill Community Edition allows to configure the OAuth, SSO (including Google
|
Configure OAuth and SSO (Google Workspace, Microsoft/Azure, Okta) directly from the superadmin UI. [See documentation](https://www.windmill.dev/docs/misc/setup_oauth).
|
||||||
Workspace SSO, Microsoft/Azure and Okta) directly from the UI in the superadmin
|
|
||||||
settings. Do note that there is a limit of 10 SSO users on the community
|
|
||||||
edition.
|
|
||||||
|
|
||||||
[See documentation](https://www.windmill.dev/docs/misc/setup_oauth).
|
### License
|
||||||
|
|
||||||
### Commercial license
|
The Community Edition is free to use internally. For commercial redistribution or managed services, contact <sales@windmill.dev>. See [LICENSE](./LICENSE) and [Pricing](https://www.windmill.dev/pricing) for details.
|
||||||
|
|
||||||
See the [LICENSE](https://github.com/windmill-labs/windmill/blob/main/LICENSE)
|
The "Community Edition" of Windmill available in the docker images hosted under ghcr.io/windmill-labs/windmill and the github binary releases contains the files under the AGPLv3 and Apache 2 sources but also includes proprietary and non-public code and features which are not open source and under the following terms: Windmill Labs, Inc. grants a right to use all the features of the "Community Edition" for free without restrictions other than the limits and quotas set in the software and a right to distribute the community edition as is but not to sell, resell, serve Windmill as a managed service, modify or wrap under any form without an explicit agreement.
|
||||||
file for the full license text.
|
|
||||||
|
|
||||||
The "Community Edition" of Windmill available in the docker images hosted under
|
The binary compilable from source code in this repository without the "enterprise" feature flag is open-source under the [LICENSE-AGPLv3](https://github.com/windmill-labs/windmill/blob/main/LICENSE-AGPL) License terms and conditions.
|
||||||
ghcr.io/windmill-labs/windmill and the github binary releases contains the files
|
|
||||||
under the AGPLv3 and Apache 2 sources but also includes proprietary and
|
|
||||||
non-public code and features which are not open source and under the following
|
|
||||||
terms: Windmill Labs, Inc. grants a right to use all the features of the
|
|
||||||
"Community Edition" for free without restrictions other than the limits and
|
|
||||||
quotas set in the software and a right to distribute the community edition as is
|
|
||||||
but not to sell, resell, serve Windmill as a managed service, modify or wrap
|
|
||||||
under any form without an explicit agreement.
|
|
||||||
|
|
||||||
The binary compilable from source code in this repository without the
|
To [re-expose directly any Windmill parts to your users](https://www.windmill.dev/docs/misc/white_labelling) as a feature of your product, with the exception of iframed public Windmill "apps", or to build a feature on top of "Windmill Community Edition" that you sell commercially or embed in a distributable product or binary, you must get a commercial license. Contact us at <sales@windmill.dev> if you have any questions. To do the same from the binary compiled from the source code in this repository without the "enterprise" feature flag, you must comply with the AGPLv3 license terms and conditions or get a commercial license from Windmill Labs, Inc.
|
||||||
"enterprise" feature flag is open-source under the
|
|
||||||
[LICENSE-AGPLv3](https://github.com/windmill-labs/windmill/blob/main/LICENSE-AGPL)
|
|
||||||
License terms and conditions.
|
|
||||||
|
|
||||||
To
|
To use Windmill "Community Edition" as is internally in your organization, or to use its APIs as is, you do NOT need a commercial license.
|
||||||
[re-expose directly any Windmill parts to your users](https://www.windmill.dev/docs/misc/white_labelling)
|
|
||||||
as a feature of your product, with the exception of iframed public Windmill
|
|
||||||
"apps", or to build a feature on top of "Windmill Community Edition" that you
|
|
||||||
sell commercially or embed in a distributable product or binary, you must get a
|
|
||||||
commercial license. Contact us at <sales@windmill.dev> if you have any
|
|
||||||
questions. To do the same from the binary compiled from the source code in this
|
|
||||||
repository without the "enterprise" feature flag, you must comply with the
|
|
||||||
AGPLv3 license terms and conditions or get a commercial license from Windmill
|
|
||||||
Labs, Inc.
|
|
||||||
|
|
||||||
To use Windmill "Community Edition" as is internally in your organization, or to
|
|
||||||
use its APIs as is, you do NOT need a commercial license.
|
|
||||||
|
|
||||||
### Integrations
|
### Integrations
|
||||||
|
|
||||||
In Windmill, integrations are referred to as
|
In Windmill, integrations are referred to as [resources and resource types](https://www.windmill.dev/docs/core_concepts/resources_and_types). Each Resource has a Resource Type that defines the schema that the resource
|
||||||
[resources and resource types](https://www.windmill.dev/docs/core_concepts/resources_and_types).
|
|
||||||
Each Resource has a Resource Type that defines the schema that the resource
|
|
||||||
needs to implement.
|
needs to implement.
|
||||||
|
|
||||||
On self-hosted instances, you might want to import all the approved resource
|
On self-hosted instances, you might want to import all the approved resource types from [WindmillHub](https://hub.windmill.dev). A setup script will prompt you to have it being synced automatically everyday.
|
||||||
types from [WindmillHub](https://hub.windmill.dev). A setup script will prompt
|
|
||||||
you to have it being synced automatically everyday.
|
|
||||||
|
|
||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
@@ -369,30 +286,20 @@ you to have it being synced automatically everyday.
|
|||||||
|
|
||||||
## Run a local dev setup
|
## Run a local dev setup
|
||||||
|
|
||||||
Using [Nix](./frontend/README_DEV.md#nix) (Recommended).
|
We recommend using [Nix](./frontend/README_DEV.md#nix). See [./frontend/README_DEV.md](./frontend/README_DEV.md) for all options.
|
||||||
|
|
||||||
See the [./frontend/README_DEV.md](./frontend/README_DEV.md) file for all
|
### Frontend only
|
||||||
running options.
|
|
||||||
|
|
||||||
### only Frontend
|
Uses the backend of <https://app.windmill.dev> with local frontend (hot-reload):
|
||||||
|
|
||||||
This will use the backend of <https://app.windmill.dev> but your own frontend
|
```bash
|
||||||
with hot-code reloading. Note that you will need to use a username / password
|
cd frontend
|
||||||
login due to CSRF checks using a different auth provider.
|
npm install
|
||||||
|
npm run generate-backend-client # or generate-backend-client-mac on Mac
|
||||||
In the `frontend/` directory:
|
npm run dev
|
||||||
|
|
||||||
1. install the dependencies with `npm install` (or `pnpm install` or `yarn`)
|
|
||||||
2. generate the windmill client:
|
|
||||||
|
|
||||||
```
|
|
||||||
npm run generate-backend-client
|
|
||||||
## on mac use
|
|
||||||
npm run generate-backend-client-mac
|
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Run your dev server with `npm run dev`
|
Windmill available at `http://localhost/`
|
||||||
4. Et voilà, windmill should be available at `http://localhost/`
|
|
||||||
|
|
||||||
### Backend + Frontend
|
### Backend + Frontend
|
||||||
|
|
||||||
@@ -419,7 +326,7 @@ running options.
|
|||||||
6. Go to `backend/`:
|
6. Go to `backend/`:
|
||||||
1. `env DATABASE_URL=<YOUR_DATABASE_URL> RUST_LOG=info cargo run`
|
1. `env DATABASE_URL=<YOUR_DATABASE_URL> RUST_LOG=info cargo run`
|
||||||
2. You can specify any feature flag you want to enable, for example `cargo run --features python` to enable the python executor.
|
2. You can specify any feature flag you want to enable, for example `cargo run --features python` to enable the python executor.
|
||||||
7. Et voilà, windmill should be available at `http://localhost:3000`
|
7. Windmill should be available at `http://localhost:3000`
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
|
||||||
@@ -429,4 +336,4 @@ running options.
|
|||||||
|
|
||||||
## Copyright
|
## Copyright
|
||||||
|
|
||||||
Windmill Labs, Inc 2023
|
© 2023-2026 Windmill Labs, Inc.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 859 KiB After Width: | Height: | Size: 861 KiB |
|
Before Width: | Height: | Size: 777 KiB After Width: | Height: | Size: 880 KiB |
|
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 380 KiB After Width: | Height: | Size: 430 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 302 KiB |
|
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 287 KiB |