Tutoriais de VPS
Configurar fluxos de automação n8n em uma VPS (2026): alternativa auto-hospedada ao Zapier
O n8n é uma ferramenta de automação de fluxos de trabalho de código aberto que você pode instalar na sua própria VPS para substituir o Zapier. Este artigo mostra passo a passo como implantar o n8n em uma VPS com Docker Compose, configurar HTTPS, executar seu primeiro fluxo de automação e conectar o DeepSeek AI para automação inteligente.

Sinceramente, a primeira vez que usei o Zapier achei muito prático: passar dados entre algumas plataformas sem escrever código. Mas, com o tempo, percebi que algo não batia — o plano gratuito dá apenas 100 tarefas por mês, e um pouco mais de automação já esgota isso. Atualizar para o plano pago? Só o Starter custa $29.99/mês, e o plano de equipe é ainda mais caro.
Depois descobri o n8n, uma ferramenta de automação de fluxos de trabalho de código aberto. Funcionalmente é parecido com o Zapier e o Make, mas a diferença central é: você pode instalá-lo na sua própria VPS e executar quantas tarefas quiser, sem limite de execuções.
Este artigo mostra passo a passo como implantar o n8n em uma VPS e executar seu primeiro fluxo de automação do zero.
Primeiro, algumas vantagens centrais do n8n:
Sem limite de execuções. O plano gratuito do Zapier dá 100 tarefas/mês, o plano Starter 750 tarefas/mês, e quando acabam você precisa esperar ou pagar mais. O n8n roda no seu próprio servidor, então você executa quanto quiser. Criei uma automação que sincroniza pedidos do Shopify para o Google Sheets toda madrugada: dezenas de milhares de registros por mês, com custo adicional zero.
Os dados ficam nas suas mãos. Os dados do Zapier passam pelos servidores deles, e algumas empresas com exigências de conformidade de dados não se arriscam a usá-lo. Com o n8n, todos os dados ficam na sua VPS e não passam por terceiros.
Mais de 400 integrações. O n8n suporta mais de 400 serviços, incluindo os mais usados Slack, Google Sheets, GitHub, Notion, PostgreSQL e Redis. Também suporta Webhooks, então serviços sem integração nativa também podem se conectar via API.
Fácil de conectar modelos de IA. O n8n tem nós integrados de OpenAI, Anthropic e DeepSeek, então você pode chamar grandes modelos diretamente dentro dos seus fluxos de automação.
É claro que também há desvantagens:
- Você precisa manter tudo sozinho. Você mesmo gerencia o servidor e resolve os problemas, diferente do Zapier, que funciona pronto para uso.
- Não há uma loja de aplicativos pronta. O Zapier tem modelos prontos compartilhados por usuários; os fluxos do n8n você precisa montar sozinho.
- A barreira de entrada é um pouco maior. É preciso ter conhecimentos básicos de Linux e Docker.
No geral, se você é um usuário intensivo de automação (milhares ou dezenas de milhares de tarefas por mês), ou tem exigências de privacidade de dados, auto-hospedar o n8n é uma escolha muito mais vantajosa do que o Zapier.
O n8n em si não é pesado; depende principalmente do tipo de fluxo de trabalho que você quer executar:
| Caso de uso | Configuração recomendada | Custo mensal estimado |
|---|---|---|
| Uso leve (alguns fluxos simples) | 1 núcleo / 1GB de RAM | $5-10/mês |
| Uso médio (com Webhooks + tarefas agendadas) | 2 núcleos / 2GB de RAM | $10-20/mês |
| Uso intenso (muitos Webhooks + integração de IA) | 2 núcleos / 4GB de RAM | $15-30/mês |
Minha recomendação é ir direto para 2 núcleos e 2GB. O n8n em si ocupa apenas algumas centenas de MB de RAM, mas o PostgreSQL e o Redis também precisam de memória, e se você for executar fluxos relacionados a IA (chamando DeepSeek ou OpenAI), os requisitos de memória serão maiores.
Quanto ao sistema, recomendo Ubuntu 22.04 ou 24.04 para maior tranquilidade.
Conecte-se à sua VPS via SSH:
ssh root@你的VPS_IP
Se o sistema ainda não tiver o Docker instalado, execute estas linhas:
# 更新系统
apt update && apt upgrade -y
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# 验证安装
docker --version
docker compose version
Crie um diretório de projeto:
mkdir -p /opt/n8n && cd /opt/n8n
Crie um arquivo docker-compose.yml:
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: 改成你自己的密码
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
N8N_HOST: your-domain.com
N8N_PORT: 5678
N8N_PROTOCOL: https
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: 改成你自己的密码
N8N_ENCRYPTION_KEY: 用下面命令生成的密钥
WEBHOOK_URL: https://your-domain.com
GENERIC_TIMEZONE: Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
Alguns pontos a observar:
N8N_ENCRYPTION_KEYé essencial. Se você perdê-lo, as credenciais armazenadas no banco de dados não poderão ser descriptografadas. Gere-o com este comando:
# 生成 32 位随机密钥
openssl rand -hex 32
Coloque a string gerada na posição de N8N_ENCRYPTION_KEY acima.
-
A porta está vinculada a
127.0.0.1:5678:5678, o que significa que o n8n escuta apenas localmente e não fica exposto diretamente à internet. Mais adiante usaremos um proxy reverso Nginx com HTTPS. -
Preencha seu domínio em
N8N_HOSTeWEBHOOK_URL, senão os Webhooks não serão acionados.
Inicie:
cd /opt/n8n
docker compose up -d
Espere algumas dezenas de segundos e confira os logs:
docker compose logs -f n8n
Se aparecer n8n ready on 0.0.0.0:5678, URL: https://your-domain.com, significa que iniciou com sucesso.
O Caddy solicita e renova certificados SSL automaticamente, o que é bem menos trabalhoso do que o Nginx.
# 安装 Caddy
apt install caddy
Crie /etc/caddy/Caddyfile:
your-domain.com {
reverse_proxy 127.0.0.1:5678
}
Reinicie:
systemctl restart caddy
Pronto. O Caddy solicitará automaticamente um certificado Let's Encrypt para você, sem necessidade de intervenção manual.
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_buffering off;
proxy_request_buffering off;
}
}
Lembre-se de solicitar um certificado SSL (com o certbot).
Acesse https://your-domain.com no navegador; na primeira vez ele pedirá para criar uma conta de administrador:
- Senha
- Nome
Após o login, recomendo alterar algumas configurações primeiro (avatar no canto superior direito → Settings):
- User Management: se várias pessoas usarem, ative o gerenciamento de usuários
- API: gere um API Token, usado mais adiante para chamar a interface de anúncios
- External Secrets: se quiser usar ferramentas de gerenciamento de segredos como o Vault
Vamos fazer o exemplo mais simples: após receber uma requisição Webhook, gravar os dados no Google Sheets.
- Clique no botão + no canto superior direito para criar um novo fluxo de trabalho
- Arraste um nó Webhook para a tela
- Escolha o método POST
- Escreva qualquer caminho, por exemplo
webhook-test - Clique em "Listen for test event" para obter a URL do Webhook
- Arraste um nó Google Sheets
- Primeiro conecte sua conta do Google (requer autorização OAuth)
- Selecione a planilha e a aba
- Escolha Append Row como operação
- Conecte os dois nós
- Clique em Execute Workflow para testar
Para testar, envie uma requisição POST com curl:
curl -X POST https://your-domain.com/webhook/webhook-test \
-H "Content-Type: application/json" \
-d '{"name": "测试订单", "amount": 99.99}'
Se a configuração estiver correta, os dados serão gravados automaticamente no Google Sheets.
Atenção ao ambiente de produção: depois que os testes passarem, lembre-se de habilitar a Production URL e a Production Version do fluxo de trabalho. Os Webhooks têm dois modos; o modo de desenvolvimento e o modo de produção são separados.
O n8n suporta oficialmente o nó DeepSeek desde a versão 1.40. Se você quiser que seus fluxos tenham recursos de IA, como responder e-mails automaticamente, resumir artigos ou classificar tickets, pode chamar a API do DeepSeek diretamente nos seus fluxos.
Primeiro obtenha uma API Key do DeepSeek (registre-se em platform.deepseek.com, recarregue alguns dólares; as chamadas de API são bem baratas).
Depois, no n8n:
- Adicione um nó DeepSeek
- Preencha sua API Key
- Escolha o modelo (DeepSeek Chat ou DeepSeek Reasoner)
- Escreva suas instruções no Prompt
Por exemplo: um fluxo que responde tickets automaticamente
Webhook(接收工单) → DeepSeek(生成回复) → Email(发送回复)
Toda vez que alguém envia um formulário, o Webhook passa o conteúdo do ticket para o DeepSeek, a IA gera uma resposta e então um e-mail é enviado automaticamente ao cliente. Sem intervenção humana em todo o processo.
Executar um fluxo assim em uma VPS não tem limite de chamadas de API (você paga apenas as tarifas de API do DeepSeek, alguns centavos por dez mil tokens), o que é muito mais vantajoso do que os recursos de IA do Zapier.
O n8n é atualizado com muita frequência, basicamente lançando várias versões por mês. Atualizar é simples:
cd /opt/n8n
docker compose pull n8n
docker compose up -d n8n
Os dados do n8n ficam no PostgreSQL, e as definições dos fluxos de trabalho ficam no volume n8n_data. Recomendo fazer backups regularmente:
# 备份 PostgreSQL
docker exec n8n-postgres-1 pg_dump -U n8n n8n > /backup/n8n-db-$(date +%Y%m%d).sql
# 备份 n8n 配置文件
tar czf /backup/n8n-config-$(date +%Y%m%d).tar.gz /opt/n8n/
Meu hábito é escrever uma tarefa cron que faz um backup toda madrugada.
O n8n já vem com um endpoint de verificação de integridade: https://your-domain.com/healthz; se retornar 200, está tudo certo. Você pode usar o UptimeRobot ou simplesmente escrever um script cron para monitorar.
Os Webhooks não recebem requisições
Verifique alguns pontos: se a configuração do proxy reverso Nginx/Caddy está correta, se a variável de ambiente WEBHOOK_URL está definida e se o firewall libera as portas 80/443. Além disso, o endereço do Webhook do n8n precisa ter o prefixo /webhook/.
Perdeu a N8N_ENCRYPTION_KEY
Aí é uma tragédia. Todas as senhas e API Keys armazenadas nos fluxos não poderão ser descriptografadas. Você precisa fazer backup dessa chave, em um gerenciador de senhas ou em um local seguro.
O PostgreSQL não conecta
Verifique a configuração do PostgreSQL em docker-compose.yml, especialmente se a senha e o nome do banco de dados estão corretos. Além disso, observe que o PostgreSQL leva tempo para iniciar; o contêiner do n8n tem depends_on + healthcheck, mas às vezes a inicialização do primeiro start do PostgreSQL é lenta, e pode ser necessário reiniciar manualmente o contêiner do n8n.
Memória insuficiente
Rodar n8n + PostgreSQL + Redis juntos com 1GB de RAM é realmente apertado. Se a memória da sua VPS não for suficiente, você pode desligar alguns serviços que não usa ou simplesmente atualizar para uma configuração de 2GB. No dia a dia, também pode usar docker stats para ver o uso de recursos.
Implantar o n8n em uma VPS é, na verdade, só rodar um Docker Compose. Mas o que você ganha em troca é:
- Execuções de automação ilimitadas, sem mais ficar contando as cotas do Zapier para sobreviver
- Dados totalmente nas suas mãos, sem preocupação com vazamentos de plataformas de terceiros
- Possibilidade de conectar modelos de IA como o DeepSeek, montando seus próprios fluxos de automação com IA
- Um custo de auto-hospedagem de algumas centenas de dólares por mês, muito mais barato do que o plano de equipe do Zapier
Se você é um usuário intensivo de automação ou está procurando uma alternativa de código aberto ao Zapier, vale a pena experimentar o n8n. E rodar o n8n em uma VPS não exige configurações muito altas; uma máquina barata de $5-10/mês já basta, então você pode começar com custo praticamente zero.
Se tiver alguma dúvida, deixe um comentário.