Experimente - Documentos - Discord - Hub - Guia do Colaborador
Windmill é totalmente de código aberto (AGPLv3) e Windmill Labs oferece instância dedicada, suporte comercial e licenças.
Defina um script mínimo e genérico em Python, TypeScript, Go ou Bash que resolva uma tarefa específica. O código pode ser definido no Web IDE fornecido ou sincronizado com seu próprio repositório GitHub (por exemplo, por meio da extensão VS Code):
Fornecemos apenas a configuração do docker-compose aqui. Para configurações mais avançadas, como compilar a partir do código-fonte ou usar sem um superusuário postgres, consulte a documentação do Self-Host.
O Windmill pode ser implantado usando 3 arquivos: (docker-compose.yml, Caddyfile e .env) em um único comando.
Certifique-se de que o Docker esteja iniciado e execute:
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
Vá para http://localhost e voilà :)
O usuário superadministrador padrão é: [email protected]/changeme.
A partir daí, você pode seguir o aplicativo de configuração e criar outros usuários.
Mais detalhes na documentação do Self-Host.
Publicamos gráficos de leme em: https://github.com/windmill-labs/windmill-helm-charts.
Cada versão inclui os binários correspondentes para x86_64. Você pode simplesmente baixar o binário windmill
mais recente usando o seguinte conjunto de comandos bash.
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 permite configurar o OAuth, SSO (incluindo Google Workspace SSO, Microsoft/Azure e Okta) diretamente da IU nas configurações de superadministrador. Observe que há um limite de 10 usuários SSO na edição da comunidade.
Consulte a documentação.
Para auto-hospedar o Windmill, você deve respeitar os termos da licença AGPLv3 com a qual não precisa se preocupar para uso pessoal. Para uso comercial, você não terá problema se não expor novamente o Windmill de forma alguma aos seus usuários e se sentir confortável com o AGPLv3.
Para expor novamente quaisquer peças do Windmill aos seus usuários como um recurso do seu produto, ou para construir um recurso sobre o Windmill, para estar em conformidade com o AGPLv3, seu produto deve ser AGPLv3 ou você deve obter uma licença comercial. Contate-nos em [email protected] se tiver alguma dúvida.
Além disso, uma licença comercial concede a você um engenheiro dedicado para fazer a transição de sua infraestrutura atual para Windmill, suporte com SLA rígido e nossa sincronização de cache global para perda de cache de cluster de alto desempenho/sem dependência de mais de 10 nós para mais de 200 nós.
No Windmill, as integrações são chamadas de recursos e tipos de recursos. Cada recurso possui um tipo de recurso que define o esquema que o recurso precisa implementar.
Em instâncias auto-hospedadas, talvez você queira importar todos os tipos de recursos aprovados do WindmillHub. Um script de configuração solicitará que você sincronize automaticamente todos os dias.
Nome da variável de ambiente | Padrão | Descrição | Servidor API/Trabalhador/Todos |
---|---|---|---|
BANCO DE DADOS_URL | O URL do banco de dados Postgres. | Todos | |
GRUPO_TRABALHADOR | padrão | O grupo de trabalhadores ao qual o trabalhador pertence e de onde obtém sua configuração | Trabalhador |
MODO | autônomo | O modo é o binário. Valores possíveis: autônomo, trabalhador, servidor, agente | Todos |
METRICS_ADDR | Nenhum | (somente ee) O endereço do soquete no qual expor as métricas do Prometheus no caminho /metrics. Defina como "true" para expô-lo na porta 8001 | Todos |
JSON_FMT | falso | Produza os logs no formato json em vez de logfmt | Todos |
BASE_URL | http://localhost:8000 | O URL base exposto publicamente para acessar sua instância. É substituído pelas configurações da instância, se houver. | Servidor |
ZOMBIE_JOB_TIMEOUT | 30 | O tempo limite após o qual um trabalho é considerado zumbi se o trabalhador não enviou pings sobre o processamento do trabalho (cada servidor verifica se há trabalhos zumbis a cada 30 segundos) | Servidor |
RESTART_ZOMBIE_JOBS | verdadeiro | Se for verdadeiro, então um trabalho zumbi será reiniciado (no local com o mesmo uuid e alguns logs); se for falso, o trabalho zumbi falhará | Servidor |
SLEEP_QUEUE | 50 | O número de ms para dormir entre a última verificação de novos trabalhos no banco de dados. É multiplicado por NUM_WORKERS de modo que, em média, para uma instância de trabalhador, haja um pull a cada SLEEP_QUEUE ms. | Trabalhador |
KEEP_JOB_DIR | falso | Mantenha o diretório do trabalho após a conclusão do trabalho. Útil para depuração. | Trabalhador |
LICENSE_KEY (somente EE) | Nenhum | Chave de licença verificada na inicialização para a Enterprise Edition do Windmill | Trabalhador |
SLACK_SIGNING_SECRET | Nenhum | O segredo de assinatura do seu aplicativo Slack. Consulte a documentação do Slack | Servidor |
COOKIE_DOMAIN | Nenhum | O domínio do cookie. Se não for definido, o cookie será definido pelo navegador com base na origem completa | Servidor |
DENO_PATH | /usr/bin/deno | O caminho para o binário deno. | Trabalhador |
PYTHON_PATH | /usr/local/bin/python3 | O caminho para o binário python. | Trabalhador |
GO_PATH | /usr/bin/go | O caminho para o binário go. | Trabalhador |
GOPRIVADO | A variável env GOPRIVATE para usar módulos go privados | Trabalhador | |
GOPROXY | A variável de ambiente GOPROXY a ser usada | Trabalhador | |
NETRC | O conteúdo netrc para usar um registro go privado | Trabalhador | |
CAMINHO | Nenhum | A variável de ambiente path, geralmente herdada | Trabalhador |
LAR | Nenhum | O diretório inicial a ser usado para Go e Bash, geralmente herdado | Trabalhador |
DATABASE_CONNECTIONS | 50 (Servidor)/3 (Trabalhador) | O número máximo de conexões no pool de conexões do banco de dados | Todos |
SUPERADMIN_SECRET | Nenhum | Um token que permitiria ao chamador atuar como um superadministrador virtual [email protected] | Servidor |
TIMEOUT_WAIT_RESULT | 20 | O número de segundos de espera antes do tempo limite no endpoint 'run_wait_result' | Trabalhador |
QUEUE_LIMIT_WAIT_RESULT | Nenhum | O número máximo de trabalhos na fila antes de rejeitar imediatamente a solicitação no endpoint 'run_wait_result'. Tem precedência no argumento da consulta. Se nenhum for especificado, não há limite. | Trabalhador |
DENO_AUTH_TOKENS | Nenhum | DENO_AUTH_TOKENS personalizado para passar ao trabalhador para permitir o uso de módulos privados | Trabalhador |
DISABLE_RESPONSE_LOGS | falso | Desabilitar logs de resposta | Servidor |
CREATE_WORKSPACE_REQUIRE_SUPERADMIN | verdadeiro | Se for verdade, apenas superadministradores poderão criar novos espaços de trabalho | Servidor |
Consulte o arquivo ./frontend/README_DEV.md para todas as opções em execução.
Usando Nix.
Isso usará o back-end de https://app.windmill.dev, mas seu próprio front-end com recarregamento de código ativo. Observe que você precisará usar um login de nome de usuário/senha devido às verificações de CSRF usando um provedor de autenticação diferente.
No diretório 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/
Consulte o arquivo ./frontend/README_DEV.md para todas as opções em execução.
cargo install sqlx-cli
env DATABASE_URL=<YOUR_DATABASE_URL> sqlx migrate run
query!
macro/usr/bin/deno
e /usr/local/bin/python3
frontend/
:npm install
, npm run generate-backend-client
e depois npm run dev
export NODE_OPTIONS="--max-old-space-size=4096"
npm run build
caso contrário, o backend não encontrará a pasta frontend/build
e não irá compilar.sudo caddy run --config Caddyfile
backend/
: env DATABASE_URL=<DATABASE_URL_TO_YOUR_WINDMILL_DB> RUST_LOG=info cargo run
http://localhost/
Windmill Labs, Inc 2023