n8n é um editor visual líder para iterações rápidas, que permite criar workflows de automação e ver resultados imediatamente. Perfeito para automações do dia a dia e workflows complexos com agentes de IA.
O suporte para self-hosting e o editor low-code fazem do n8n o favorito de qualquer desenvolvedor. Se você quer controle máximo, personalizações individuais e economizar custos a longo prazo, a versão self-hosted é ideal para você.
Quer hospedar o n8n por conta própria? Vamos guiá-lo passo a passo na instalação e configuração, mostrando tudo o que você precisa saber.
Embora o n8n seja leve, o consumo de recursos pode aumentar conforme o número de workflows, chamadas de API e nodes que processam muitos dados. Recomendamos o seguinte hardware para seu VPS para hospedar o n8n:
| Hardware | Mínimo | Recomendado |
|---|---|---|
| CPU | 1 núcleo vCPU | 2 núcleos vCPU |
| RAM | 2 GB | 4 GB |
| Armazenamento | 20 GB | 50 GB |
Depois que o Docker estiver rodando no seu servidor, verifique a instalação com:
docker --version
docker compose version
Crie um diretório de projeto para armazenar arquivos locais e variáveis de ambiente do n8n, e entre nele:
mkdir n8n-compose
cd n8n-compose
No diretório n8n-compose, crie um arquivo .env com nano .env e insira o seguinte código com as variáveis de ambiente do n8n:
# DOMAIN_NAME e SUBDOMAIN definem o endereço onde o n8n estará acessível
# O domínio de topo
DOMAIN_NAME=zap.cloud
# A subdomínio
SUBDOMAIN=silver-octopus-xxxxx
# O exemplo acima torna o n8n acessível em: https://silver-octopus-xxxxx.zap.cloud
# Fuso horário opcional usado por Cron e outros nodes de agendamento
GENERIC_TIMEZONE=Europe/Berlin
# E-mail para criação do certificado TLS/SSL
SSL_EMAIL=hello@zap-hosting.com
Hostname.
Digite a parte zap.cloud em DOMAIN_NAME e a primeira parte em SUBDOMAIN (ex: silver-octopus-xxxxx).
Requisito HTTPS Não use um endereço IP puro no arquivo .env. O n8n requer conexão HTTPS, e certificados SSL são emitidos apenas para domínios, não para IPs.
Se preferir hospedar o n8n em seu próprio domínio, crie uma subdomínio para o n8n adicionando um registro A no gerenciador DNS do seu domínio apontando para o IP do seu VPS.
| Nome | Tipo | Valor | TTL | Prioridade |
|---|---|---|---|---|
| n8n (subdomínio) | A | Endereço IPv4 | 1440 | 0 |
No diretório do projeto, crie uma pasta chamada local-files para compartilhar arquivos entre a instância do n8n e o sistema host:
mkdir local-files
Crie o arquivo Docker Compose compose.yaml com nano compose.yaml e insira o conteúdo abaixo:
services:
traefik:
image: "traefik"
restart: always
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
- "--certificatesresolvers.mytlschallenge.acme.email=${SSL_EMAIL}"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- traefik_data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
labels:
- traefik.enable=true
- traefik.http.routers.n8n.rule=Host(`${SUBDOMAIN}.${DOMAIN_NAME}`)
- traefik.http.routers.n8n.tls=true
- traefik.http.routers.n8n.entrypoints=web,websecure
- traefik.http.routers.n8n.tls.certresolver=mytlschallenge
- traefik.http.middlewares.n8n.headers.SSLRedirect=true
- traefik.http.middlewares.n8n.headers.STSSeconds=315360000
- traefik.http.middlewares.n8n.headers.browserXSSFilter=true
- traefik.http.middlewares.n8n.headers.contentTypeNosniff=true
- traefik.http.middlewares.n8n.headers.forceSTSHeader=true
- traefik.http.middlewares.n8n.headers.SSLHost=${DOMAIN_NAME}
- traefik.http.middlewares.n8n.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.n8n.headers.STSPreload=true
- traefik.http.routers.n8n.middlewares=n8n@docker
environment:
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- N8N_RUNNERS_ENABLED=true
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
- TZ=${GENERIC_TIMEZONE}
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
traefik_data:
Isso instalará o n8n, emitirá um certificado SSL, configurará e ativará o n8n no domínio.
Inicie o n8n com:
sudo docker compose up -d
Para parar o n8n, use:
sudo docker compose stop
Após iniciar, abra o n8n no navegador pelo URL (ou hostname, se você usou). Você precisará criar uma conta de administrador primeiro.
Lembre da senha Guarde bem sua senha para uso futuro!
Depois, aparecerá uma pequena pesquisa para você preencher algumas informações básicas.
Opcionalmente, você pode obter acesso gratuito a alguns recursos pagos inserindo seu e-mail e recebendo uma chave de licença por e-mail. Se estiver interessado, digite seu e-mail e solicite a chave.
A chave de licença chega imediatamente por e-mail. Copie e cole em Configurações > Uso & Planos > Inserir chave de ativação.
Depois disso, você pode ir direto ao dashboard e começar a usar o n8n!
Comece com uma tela em branco ou use um template pronto. Sua instalação do n8n está pronta!
