시도해 보세요 - 문서 - Discord - 허브 - 기여자 가이드
Windmill은 완전한 오픈 소스(AGPLv3) 이며 Windmill Labs는 전용 인스턴스와 상용 지원 및 라이선스를 제공합니다.
특정 작업을 해결하는 Python, TypeScript, Go 또는 Bash에서 최소한의 일반 스크립트를 정의합니다. 코드는 제공된 Web IDE에서 정의하거나 자체 GitHub 저장소와 동기화할 수 있습니다(예: VS Code 확장을 통해).
여기서는 docker-compose 설정만 제공합니다. 소스에서 컴파일하거나 postgres 슈퍼유저 없이 사용하는 등의 고급 설정에 대해서는 자체 호스트 문서를 참조하세요.
Windmill은 단일 명령으로 3개의 파일(docker-compose.yml, Caddyfile 및 .env)을 사용하여 배포할 수 있습니다.
Docker가 시작되었는지 확인하고 다음을 실행하십시오.
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
http://localhost et voilà로 이동하세요 :)
기본 최고 관리자 사용자는 [email protected] /changeme입니다.
여기에서 설정 앱을 따라 다른 사용자를 생성할 수 있습니다.
자세한 내용은 자체 호스트 문서를 참조하세요.
우리는 https://github.com/windmill-labs/windmill-helm-charts에 투구 차트를 게시합니다.
각 릴리스에는 x86_64에 해당하는 바이너리가 포함되어 있습니다. 다음 bash 명령 세트를 사용하여 최신 windmill
바이너리를 다운로드할 수 있습니다.
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을 사용하면 최고 관리자 설정의 UI에서 직접 OAuth, SSO(Google Workspace SSO, Microsoft/Azure 및 Okta 포함)를 구성할 수 있습니다. 커뮤니티 에디션에는 SSO 사용자가 10명으로 제한되어 있습니다.
설명서를 참조하세요.
Windmill을 자체 호스팅하려면 개인적인 용도에 대해 걱정할 필요가 없는 AGPLv3 라이선스 조건을 존중해야 합니다. 비즈니스 용도의 경우 어떤 방식으로든 사용자에게 Windmill을 다시 노출하지 않고 AGPLv3에 익숙하다면 괜찮을 것입니다.
Windmill 부품을 제품의 기능으로 사용자에게 다시 노출시키거나 Windmill 위에 기능을 구축하려면 AGPLv3을 준수하려면 제품이 AGPLv3이거나 상업용 라이센스를 받아야 합니다. 궁금한 점이 있으면 [email protected]로 문의하세요.
또한 상용 라이선스를 통해 현재 인프라를 Windmill으로 전환하고, 엄격한 SLA를 지원하고, 10개 이상의 노드에서 200개 이상의 노드까지 클러스터의 고성능/종속성 캐시 누락을 위한 글로벌 캐시 동기화를 지원하는 전담 엔지니어를 부여합니다.
Windmill에서는 통합을 리소스 및 리소스 유형이라고 합니다. 각 리소스에는 리소스가 구현해야 하는 스키마를 정의하는 리소스 유형이 있습니다.
자체 호스팅 인스턴스에서는 WindmillHub에서 승인된 모든 리소스 유형을 가져올 수 있습니다. 설정 스크립트는 매일 자동으로 동기화하라는 메시지를 표시합니다.
환경변수 이름 | 기본 | 설명 | API 서버/작업자/모두 |
---|---|---|---|
DATABASE_URL | Postgres 데이터베이스 URL. | 모두 | |
WORKER_GROUP | 기본 | 작업자가 속해 있고 해당 구성을 가져오는 작업자 그룹입니다. | 노동자 |
방법 | 독립형 | 바이너리인 경우 모드입니다. 가능한 값: 독립형, 작업자, 서버, 에이전트 | 모두 |
METRICS_ADDR | 없음 | (ee만 해당) /metrics 경로에서 Prometheus 메트릭을 노출할 소켓 주소입니다. 포트 8001에 노출하려면 "true"로 설정하세요. | 모두 |
JSON_FMT | 거짓 | logfmt 대신 json 형식으로 로그 출력 | 모두 |
BASE_URL | http://localhost:8000 | 인스턴스에 액세스하기 위해 공개적으로 노출되는 기본 URL입니다. 인스턴스 설정이 있는 경우 해당 설정에 의해 재정의됩니다. | 섬기는 사람 |
ZOMBIE_JOB_TIMEOUT | 30 | 작업자가 작업 처리에 대한 핑을 보내지 않은 경우 작업이 좀비로 간주되는 시간 초과(모든 서버는 30초마다 좀비 작업을 확인함) | 섬기는 사람 |
RESTART_ZOMBIE_JOBS | 진실 | true인 경우 좀비 작업이 다시 시작됩니다(동일한 uuid 및 일부 로그를 사용하여 해당 위치에서). false인 경우 좀비 작업이 실패합니다. | 섬기는 사람 |
SLEEP_QUEUE | 50 | DB에서 새 작업을 마지막으로 확인하는 사이에 대기하는 시간(밀리초)입니다. 평균적으로 하나의 작업자 인스턴스에 대해 SLEEP_QUEUE ms마다 하나의 가져오기가 발생하도록 NUM_WORKERS를 곱합니다. | 노동자 |
KEEP_JOB_DIR | 거짓 | 작업이 완료된 후 작업 디렉터리를 유지합니다. 디버깅에 유용합니다. | 노동자 |
LICENSE_KEY(EE에만 해당) | 없음 | Windmill Enterprise Edition 시작 시 라이센스 키 확인 | 노동자 |
SLACK_SIGNING_SECRET | 없음 | Slack 앱의 서명 비밀입니다. Slack 문서 보기 | 섬기는 사람 |
쿠키_DOMAIN | 없음 | 쿠키의 도메인입니다. 설정되지 않은 경우 쿠키는 전체 출처를 기반으로 브라우저에 의해 설정됩니다. | 섬기는 사람 |
DENO_PATH | /usr/bin/deno | deno 바이너리의 경로입니다. | 노동자 |
PYTHON_PATH | /usr/local/bin/python3 | Python 바이너리의 경로입니다. | 노동자 |
GO_PATH | /usr/bin/go | Go 바이너리의 경로입니다. | 노동자 |
GOPRIVATE | 개인 go 모듈을 사용하기 위한 GOPRIVATE env 변수 | 노동자 | |
고프록시 | 사용할 GOPROXY 환경 변수 | 노동자 | |
NETRC | 개인 go 레지스트리를 사용하기 위한 netrc 콘텐츠 | 노동자 | |
길 | 없음 | 일반적으로 상속되는 경로 환경 변수 | 노동자 |
집 | 없음 | Go 및 Bash에 사용할 홈 디렉토리(일반적으로 상속됨) | 노동자 |
DATABASE_CONNECTIONS | 50(서버)/3(작업자) | 데이터베이스 연결 풀의 최대 연결 수 | 모두 |
SUPERADMIN_SECRET | 없음 | 호출자가 가상 슈퍼관리자 역할을 할 수 있게 해주는 토큰 [email protected] | 섬기는 사람 |
TIMEOUT_WAIT_RESULT | 20 | 'run_wait_result' 엔드포인트에서 시간이 초과되기 전에 대기할 시간(초) | 노동자 |
QUEUE_LIMIT_WAIT_RESULT | 없음 | 'run_wait_result' 엔드포인트에서 요청을 즉시 거부하기 전에 대기열에 있는 최대 작업 수입니다. 쿼리 인수에 우선 순위가 적용됩니다. 아무것도 지정하지 않으면 제한이 없습니다. | 노동자 |
DENO_AUTH_TOKENS | 없음 | 개인 모듈 사용을 허용하기 위해 작업자에게 전달할 사용자 정의 DENO_AUTH_TOKENS | 노동자 |
DISABLE_RESPONSE_LOGS | 거짓 | 응답 로그 비활성화 | 섬기는 사람 |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | 진실 | true인 경우 최고 관리자만 새 작업 영역을 만들 수 있습니다. | 섬기는 사람 |
모든 실행 옵션은 ./frontend/README_DEV.md 파일을 참조하세요.
닉스를 사용합니다.
이는 https://app.windmill.dev의 백엔드를 사용하지만 핫 코드 리로딩 기능이 있는 자체 프런트엔드를 사용합니다. 다른 인증 공급자를 사용하는 CSRF 검사로 인해 사용자 이름/비밀번호 로그인을 사용해야 합니다.
frontend/
디렉터리에서:
npm install
(또는 pnpm install
또는 yarn
)을 사용하여 종속성을 설치합니다. npm run generate-backend-client
## on mac use
npm run generate-backend-client-mac
npm run dev
로 개발 서버를 실행하세요.http://localhost/
에서 사용할 수 있습니다.모든 실행 옵션은 ./frontend/README_DEV.md 파일을 참조하세요.
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
매크로/usr/bin/deno
및 /usr/local/bin/python3
에 저장소를 둡니다.frontend/
로 이동:npm install
, npm run generate-backend-client
그런 다음 npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
위해 추가 힙 공간을 설정해야 할 수도 있습니다.npm run build
실행하지 않으면 백엔드가 frontend/build
폴더를 찾지 못하고 컴파일되지 않습니다.sudo caddy run --config Caddyfile
backend/
로 이동: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
에서 사용할 수 있습니다. 윈드밀 랩스, Inc 2023