diff --git a/README.md b/README.md index 46e5d2df19..b706563f00 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ Open-source and self-hostable alternative to Airplane, Pipedream, Superblocks an **Roadmap**: +**[Self-host instruction](#how-to-self-host)** + You can show your support for the project by starring this repo. --- @@ -126,8 +128,8 @@ and much more! ## Sandboxing and workload isolation -Windmill uses nsjail on top of the deno sandboxing. It is pretty secure. Do not -take our word for it, take +Windmill uses nsjail on top of the deno sandboxing. It is production +multi-tenant grade secure. Do not take our word for it, take [fly.io's one](https://fly.io/blog/sandboxing-and-workload-isolation/) ## Performance @@ -139,9 +141,15 @@ workers, we are ## Architecture

- + +## Big-picture Architecture + +## Technical Architecture + + +

## How to self-host @@ -162,6 +170,23 @@ Detailed instructions for more complex deployments will come soon. For simpler docker based ones, the docker-compose.yml file contains all the necessary informations. +### Commercial license + +To self-host Windmill, you must respect the terms of the AGPLv3 license which +you do not need to worry about for personal uses. For business uses, you should +be fine if you do not re-expose it in any way Windmill to your users and are +comfortable with AGPLv3. + +To re-expose any Windmill parts to your users as a feature of your product, or +to build a feature on top of Windmill, to comply with AGPLv3 your product must +be AGPLv3 or you must get a commercial license. Contact us at + if you have any doubts. + +In addition, a commercial license grants you a dedicated engineer to transition +your current infrastructure to Windmill, support with tight SLA, audit logs +export features, SSO, unlimited users creation, advanced permissioning features +such as groups and the ability to create more than one workspace. + ### OAuth for self-hosting To get the same oauth integrations as Windmill Cloud, mount `oauth.json` with @@ -180,6 +205,30 @@ and mount it at `/src/usr/app/oauth.json`. You will also want to import all the approved resource types from [WindmillHub](https://hub.windmill.dev). +## Run a local dev setup + +### only Frontend + +1. Install [caddy](https://caddyserver.com) +2. Go to `frontend/`: + 1. `npm run install`, then `npm run dev` + 2. In another shell `sudo caddy run --config CaddyfileRemote` +3. Et voilĂ , windmill should be available at `http://localhost/` + +### Backend + Frontend + +1. Install [nsjail](https://github.com/google/nsjail) and have it accessible in + your PATH +2. Install deno and python3, have the bins at `/usr/bin/deno` and + `/usr/local/bin/python3` +3. Install [caddy](https://caddyserver.com) +4. Install the [lld linker](https://lld.llvm.org/) +5. Go to `backend/`: `cargo run` +6. Go to `frontend/`: + 1. `npm run install`, then `npm run dev` + 2. In another shell `sudo caddy run --config CaddyfileRemote` +7. Et voilĂ , windmill should be available at `http://localhost/` + ## Contributors