tva
← Insights

Autoalojar Windmill em 2026: workers, PostgreSQL, isolamento e atualizações seguras

Um artigo de acompanhamento atualizado e orientado à produção, que transforma a documentação dos fornecedores em controlos operacionais, decisões de migração e critérios de lançamento verificáveis.

O que mudou em 2026

Voltamos a este tema porque os limites operacionais mudaram. Os princípios duradouros continuam válidos, mas as versões atuais tornam alguns atalhos anteriores incompletos ou arriscados. Este artigo parte da documentação oficial disponível em 14 de julho de 2026, distingue factos de escolhas locais e trata cada alteração de configuração como uma intervenção controlada em produção.

Fontes primárias atuais

Como utilizar esta atualização

Começamos pelas fontes primárias, registamos as versões efetivamente instaladas e definimos o resultado observável antes de alterar qualquer parâmetro. A menor intervenção reversível é testada num ambiente representativo. Um comando concluído com êxito não é um critério de aceitação: o estado do serviço, a integridade dos dados, a latência, os limites de segurança e o tempo de reversão são. A sequência de diagnóstico ainda útil do artigo anterior é mantida como base operacional; os exemplos dependentes de versão devem ser confirmados na documentação atual.

Antes do lançamento, guardamos o diff de configuração, uma cópia ou snapshot cuja restauração já tenha sido testada e os comandos necessários para reverter a intervenção. Uma pessoa observa a primeira janela de produção e outra autoriza a escalada se os indicadores acordados evoluírem na direção errada. Os alertas devem descrever o risco visível para o utilizador, e não apenas o componente que os emitiu. Durante o período de verificação, comparamos taxas de erro, profundidade das filas, saturação de recursos, latência de processamento e integridade dos dados com a baseline. Avaliamos médias e valores extremos, pois uma média estável pode ocultar falhas que afetam uma parcela pequena mas importante do trabalho. A alteração só é encerrada depois de concluídos os jobs adiados, retries, tarefas agendadas e exportações downstream. Toda ação manual de recuperação é documentada; se não constar do runbook, este ainda não está completo.

Base operacional

Plataformas de automação de fluxos de trabalho são essenciais para equipes modernas de desenvolvimento, mas soluções em nuvem como o Windmill Cloud podem se tornar caras conforme o uso cresce. Vamos mostrar como configurar sua própria instância Windmill no Ubuntu com Docker Compose e integração Traefik, superando problemas críticos de autenticação PostgreSQL que podem inviabilizar sua instalação.

O Que Você Vai Construir

Ao final deste tutorial, você terá:

  • Instalação Windmill totalmente funcional com HTTPS
  • Certificados SSL automáticos via Let's Encrypt através do Traefik
  • Banco de dados PostgreSQL pronto para produção com autenticação adequada
  • Configuração de worker otimizada para recursos
  • Integrado com infraestrutura Docker existente
  • Configuração pronta para produção para automação profissional de fluxos de trabalho

Custo mensal: €4,51 (servidor CX11) + custos de domínio -- mesma infraestrutura que pode lidar com múltiplas ferramentas de automação

Pré-requisitos

  • Servidor Ubuntu 24.04 LTS com Docker e Docker Compose instalados
  • Configuração existente de proxy reverso Traefik (veja nosso guia de configuração n8n para configuração do Traefik)
  • Nome de domínio apontando para o IP do seu servidor
  • Mínimo de 4GB de RAM e 2 vCPUs recomendados
  • Acesso SSH e conhecimento básico de linha de comando

Entendendo o Windmill

Windmill é um motor de fluxos de trabalho de código aberto que oferece:

  • Editor visual de fluxos de trabalho com suporte a TypeScript/Python/Go
  • Agendamento de tarefas e gestão de execução
  • Capacidades de integração via API
  • Recursos de colaboração em equipe
  • Auto-hospedável sem limites de uso

Diferentemente da abordagem baseada em nós do n8n, o Windmill foca em fluxos de trabalho orientados a código com um poderoso ambiente de desenvolvimento.

Passo 1: Preparação do Servidor e Estrutura de Diretórios

Primeiro, vamos preparar nosso ambiente de servidor. Usaremos uma convenção de nomenclatura baseada em alimentos para instâncias Windmill para evitar conflitos:

Convenção de Nomenclatura: Use nomes simples de alimentos para múltiplas instâncias Windmill:

  • Primeira instância: pizza
  • Instâncias adicionais: pasta, salad, soup, burger, etc.
  • Isso evita conflitos e facilita a gestão

Passo 2: Configuração do Ambiente

Crie um arquivo de ambiente seguro com credenciais adequadas:

Crítico: Substitua windmill.yourdomain.com pelo seu domínio real!

Passo 3: Configuração do Docker Compose

Crie a configuração principal do Docker Compose:

Importante: Atualize o domínio nas labels do Traefik para corresponder à sua configuração!

Passo 4: O Problema de Senha do PostgreSQL (Questão Crítica)

Aqui é onde a maioria das instalações Windmill falha, e foi necessária considerável resolução de problemas para identificar a causa raiz:

O Problema: Caracteres Especiais em Senhas

Ao usar openssl rand -base64 32 para gerar senhas, frequentemente surgem caracteres especiais como =, @, #, %, etc. Esses caracteres causam falhas de autenticação PostgreSQL em ambientes Docker, mesmo quando devidamente escapados.

Exemplo de senha problemática:

A Solução: Senhas Apenas em Hexadecimal

Use senhas apenas em hexadecimal que não contêm caracteres especiais:

Problemas Adicionais de Configuração PostgreSQL

  • Configuração de Usuário: Use postgres como usuário padrão, não usuários personalizados como windmill_user
  • Persistência de Volume: O PostgreSQL ignora variáveis de ambiente POSTGRES_PASSWORD quando volumes de dados existentes contêm credenciais diferentes
  • Formato da URL: Inclua ?sslmode=disable na URL do banco de dados para ambientes Docker

Passo 5: Instalação e Inicialização

Agora vamos instalar o Windmill com nossa configuração corrigida:

Você deve ver uma saída como:

Passo 6: Resolução de Problemas Comuns

Problema 1: Falhas de Autenticação PostgreSQL

Sintomas:

Solução:

Problema 2: Contêiner Não Inicia

Sintomas:

  • Contêiner encerra imediatamente
  • Erros de alocação de recursos

Solução:

Problema 3: Problemas de Certificado SSL

Sintomas:

  • HTTPS não funciona
  • Erros de certificado

Solução:

Passo 7: Acesso e Configuração Inicial

Após a instalação ser concluída:

  • Acesse o Windmill: https://windmill.yourdomain.com
  • Credenciais padrão:

E-mail: [email protected]

  • Senha: changeme

Altere a senha do administrador

  • Configure a URL base
  • Configure contas de usuário

Passo 8: Otimização de Recursos

Alocação de Memória (para servidor de 8GB)

Nossa configuração aloca recursos de forma eficiente:

  • Servidor Windmill: ~800MB
  • Worker Windmill: 2GB (limitado)
  • PostgreSQL: ~500MB
  • Reserva do Sistema: ~4,7GB

Alocação de CPU (para servidor de 4 vCPU)

  • Worker: 1 vCPU (limitado)
  • Outros serviços: 3 vCPUs (compartilhados)

Regra de escala: 1 worker por vCPU com 1-2GB de RAM cada

Passo 9: Preparação para Produção

Criar Script de Backup

Configurar Monitoramento

Configurar Atualizações Automatizadas

Passo 10: Configuração Avançada

Integração com SMTP Existente

Se você tem um servidor de e-mail (como do nosso tutorial de configuração n8n), integre-o:

Múltiplas Instâncias Windmill

Para equipes que necessitam de ambientes isolados:

Considerações de Segurança

Isolamento de Rede

  • PostgreSQL acessível apenas dentro da rede Docker
  • Nenhuma porta de banco de dados externa exposta
  • Terminação HTTPS no nível do Traefik

Limites de Recursos

  • Contêineres worker têm limites de CPU e memória
  • Previne ataques de esgotamento de recursos
  • Configurável com base na capacidade do servidor

Segurança SSL

  • Certificados automáticos Let's Encrypt
  • Redirecionamentos HTTP para HTTPS
  • Configuração TLS moderna

Monitoramento e Manutenção

Verificações Semanais de Saúde

Manutenção Mensal

Detalhamento de Custos e Comparação

Custos Mensais

Configuração auto-hospedada:

  • Hetzner CX21 (4GB RAM): €8,46/mês
  • Custos de domínio: ~€1/mês
  • Total: ~€9,50/mês

Comparação com Windmill Cloud:

  • Plano Team: $30/mês por usuário
  • Economia: $250+ anualmente para equipes pequenas

Benefícios de Desempenho

Vantagens do auto-hospedamento:

  • Execuções de fluxos de trabalho ilimitadas
  • Sem limites de taxa externos
  • Controle total dos dados
  • Integrações personalizadas
  • Flexibilidade de escala de recursos

Referência de Resolução de Problemas

Diagnóstico Rápido

Padrões Comuns de Erro

  • "password authentication failed" → Use senhas hexadecimais, limpe volumes
  • "connection refused" → Verifique configuração de rede
  • "certificate errors" → Verifique DNS e configuração do Traefik
  • "out of memory" → Ajuste limites de recursos do worker

Escalando Sua Infraestrutura Windmill

Escalabilidade Horizontal

Para ambientes de alto volume:

Escalabilidade Vertical

Faça upgrade dos recursos do servidor:

  • CX31 (8GB RAM): €16,07/mês para cargas de trabalho pesadas
  • CX41 (16GB RAM): €29,75/mês para uso empresarial

Integração com Infraestrutura Existente

Trabalhando com n8n

Se você já está executando n8n (dos nossos tutoriais anteriores):

  • Windmill lida com fluxos de trabalho orientados a código
  • n8n lida com automações visuais e simples
  • Ambos compartilham o mesmo proxy Traefik
  • Bancos de dados separados previnem conflitos

Serviços Compartilhados

Aproveite a infraestrutura existente:

  • Traefik: Gerencia SSL para todos os serviços
  • Servidor de E-mail: SMTP compartilhado para notificações
  • Monitoramento: Logging e métricas unificados
  • Backups: Estratégia centralizada de backup

Conclusão

O auto-hospedamento do Windmill fornece automação de fluxos de trabalho de nível empresarial a uma fração dos custos de hospedagem em nuvem. A chave para o sucesso é entender os requisitos de autenticação do PostgreSQL e usar senhas apenas em hexadecimal para evitar problemas com caracteres especiais que podem inviabilizar instalações.

Principais Benefícios Desta Configuração

  • Econômico: Economize centenas anualmente comparado a soluções em nuvem
  • Pronto para produção: Lida com cargas de trabalho empresariais de forma confiável
  • Seguro: HTTPS, redes isoladas e limites de recursos
  • Escalável: Fácil adicionar workers e recursos conforme necessário
  • Privado: Seu código e dados nunca saem da sua infraestrutura

Esta configuração foi testada em ambientes de produção e fornece a confiabilidade necessária para automação de fluxos de trabalho críticos para os negócios. Os passos de resolução de problemas abordam questões reais encontradas durante a implantação, particularmente os problemas de autenticação PostgreSQL que afetam muitas instalações auto-hospedadas.

Para requisitos complexos de fluxos de trabalho ou implantações empresariais, considere consultoria profissional para otimizar seu caso de uso específico e garantir alocação otimizada de recursos.

Próximos Passos

  • Explore técnicas de resolução de problemas de webhook aplicáveis ao Windmill
  • Revise otimização de payload para lidar com grandes conjuntos de dados
  • Considere integração com instalações n8n existentes

Sobre a tva

A tva assegura a gestão abrangente de infraestrutura de sistemas de banco de dados, ambientes em nuvem e cadeias de suprimentos globais. Nossa abordagem metódica combina protocolos rigorosos de segurança com otimização de desempenho, enquanto os serviços de consultoria estratégica permitem a coordenação precisa de capacidades digitais e ativos físicos -- mantendo os mais altos padrões de excelência operacional e conformidade em todos os engajamentos.

Visite tva.sg para mais informações sobre nossos serviços e tutoriais adicionais de automação.

Da configuração à decisão operacional

A questão prática não é saber se uma plataforma pode ser configurada. A equipa precisa de atribuir responsabilidades, detetar desvios, recuperar sem improvisação e demonstrar o efeito pretendido. Por isso associamos cada mudança a um responsável, uma baseline, um caminho de rollback e uma janela de verificação. Desta forma, uma correção pontual torna-se uma capacidade operacional fiável. O mesmo registo oferece ao responsável seguinte um ponto de partida fiável e transforma a otimização posterior numa decisão medida, em vez de outra ronda de suposições.

Insights relacionados

Artigos relacionados