Rodar o n8n de graça no seu computador com Docker
Instale o n8n no Windows ou no Mac com Docker Compose, sem cartão e sem servidor. Veja onde ficam os seus dados e por que os webhooks param quando o notebook dorme.
Dá para rodar o n8n de graça no seu computador?
Sim. Você pode rodar o n8n de graça no seu computador, no Windows ou no Mac, sem cartão de crédito e sem servidor. Você só precisa do Docker Desktop e de um arquivo do Docker Compose com vinte linhas. Depois disso, o editor abre em http://localhost:5678 e você já pode montar fluxos.
É preciso saber de um limite logo no começo. A instalação local serve muito bem para construir e testar fluxos. Ela não serve para fluxos que precisam rodar sozinhos, porque os webhooks e os agendamentos param quando o notebook dorme. A seção sobre webhooks, mais abaixo, explica o motivo e diz quando vale a pena pagar por um servidor.
Os passos deste guia foram conferidos contra o n8n 2.41.7. Essa é a versão stable indicada na documentação oficial em 5 de outubro de 2026. A edição que você vai instalar é a Community Edition. Se ainda não está claro o que ela inclui e o que fica só no plano pago, leia a comparação entre o n8n Community gratuito e o Enterprise. Para entender o que a licença deixa você fazer com o n8n (uso interno ou para clientes), veja a Sustainable Use License do n8n explicada.
Por que não usar npx n8n
Muitos tutoriais em português ainda ensinam o atalho npx n8n: um comando no terminal e o n8n abre. Esse atalho vai deixar de funcionar. A página de breaking changes da versão 3.0, na documentação do n8n, diz que o n8n self-hosted vai exigir Docker. Ela também diz que a 3.0 não suporta mais instalações feitas com npm ou npx n8n. A mesma página diz que, para instalação local, o Docker Compose deve ser o caminho mais fácil.
Em 5 de outubro de 2026, a 3.0 está marcada para outubro de 2026 e ainda não saiu. Quem começar hoje pelo npx vai precisar migrar em pouco tempo. Por isso, este guia começa direto no Docker Compose.
O que você precisa antes de começar
- O Docker Desktop, baixado do site oficial da Docker. Existe versão para Windows e para Mac. A imagem do n8n tem builds para
amd64earm64, então ela funciona em Macs com chip Intel e com chip Apple. - No Windows, o WSL 2 (Windows Subsystem for Linux, o subsistema Linux do Windows). O Docker Desktop usa o WSL 2 para rodar os containers, e o instalador oferece a opção de ativá-lo.
- Um terminal. No Mac, use o Terminal. No Windows, use o PowerShell.
- Um editor de texto simples, como o VS Code ou o Bloco de Notas.
Abra o Docker Desktop e espere ele terminar de iniciar. Depois confira se o terminal enxerga o Docker:
docker --version
docker compose versionSe algum desses comandos der erro, o Docker Desktop não está rodando ou ainda não terminou de iniciar. Abra o aplicativo, espere ele ficar pronto e tente de novo. O segundo comando usa docker compose com espaço, que é o Compose v2. O antigo docker-compose com hífen é outro programa, e este guia não usa ele.
Crie a pasta e o arquivo do Docker Compose
Crie uma pasta só para o n8n e entre nela:
mkdir n8n-local
cd n8n-localDentro dessa pasta, crie um arquivo chamado compose.yaml com o conteúdo abaixo. No Bloco de Notas, escolha "Todos os arquivos" ao salvar. Se não fizer isso, o Windows coloca .txt no fim do nome.
services:
n8n:
image: n8nio/n8n:2.41.7
container_name: n8n
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- GENERIC_TIMEZONE=America/Sao_Paulo
- TZ=America/Sao_Paulo
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RUNNERS_ENABLED=true
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
name: n8n_dataAs variáveis de ambiente são as mesmas do comando docker run da documentação oficial. Cada linha tem um motivo.
image: n8nio/n8n:2.41.7 fixa a versão. Com a tag latest, qualquer docker compose pull pode trazer uma versão nova sem você decidir. Quando a 3.0 sair, latest vai apontar para ela, e a 3.0 muda alguns comportamentos de propósito. Com a tag fixa, você atualiza no dia que escolher, depois de ler as notas da versão.
127.0.0.1:5678:5678 deixa a porta acessível só no seu computador. Sem o 127.0.0.1, o Docker abre a porta em todas as interfaces de rede. Isso quer dizer que qualquer aparelho na mesma rede Wi-Fi, no café ou no coworking, consegue chegar até a tela de login do seu n8n.
GENERIC_TIMEZONE e TZ definem o fuso horário. GENERIC_TIMEZONE é o fuso que o n8n usa nos nós de agendamento. TZ é o fuso do sistema dentro do container. Sem essas linhas, o n8n usa America/New_York, então um fluxo marcado para as 9h dispara em outro horário no Brasil. Em Portugal, use Europe/Lisbon. O guia sobre fuso horário e agendamentos no n8n mostra como conferir isso dentro do editor.
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true faz o n8n exigir permissões restritas no arquivo de configuração. Esse arquivo guarda a chave que criptografa as suas credenciais.
N8N_RUNNERS_ENABLED=true liga os task runners. Eles executam o código dos nós Code num processo separado do n8n.
restart: unless-stopped faz o container voltar sozinho quando o Docker Desktop inicia de novo. A exceção é quando você mesmo parou o container.
O bloco volumes é a parte mais importante. Ele tem uma seção própria logo abaixo. A linha name: n8n_data fixa o nome do volume. Sem ela, o Compose coloca o nome da pasta na frente e cria um volume chamado n8n-local_n8n_data.
Suba o n8n e abra o editor
docker compose up -d
docker compose ps
docker compose logs -f n8ndocker compose up -d baixa a imagem na primeira vez e inicia o container em segundo plano. docker compose ps lista os serviços, e o n8n precisa aparecer em execução. Se ele ficar reiniciando sem parar, o motivo está nos logs. O terceiro comando mostra os logs ao vivo. Aperte Ctrl+C para sair dos logs. Isso fecha só a visualização e não para o container.
Abra http://localhost:5678 no navegador. Na primeira vez, o n8n pede para você criar a conta de dono (owner). Essa conta é local: o e-mail e a senha ficam guardados no volume, no seu computador.
Onde ficam os seus dados e como não perder nada
Tudo o que importa no n8n fica em /home/node/.n8n, dentro do container. Ali fica o banco SQLite, com os fluxos, o histórico de execuções, as credenciais e os usuários. Ali também fica o arquivo config, com a chave de criptografia. O volume n8n_data está montado exatamente nesse caminho. Você pode apagar e recriar o container a qualquer momento. O volume, não.
No Mac e no Windows, o Docker Desktop roda uma pequena máquina virtual Linux, e os volumes ficam dentro dela. Por isso você não vai encontrar uma pasta n8n_data em Documentos. Para ver o volume, use a aba Volumes do Docker Desktop ou estes comandos:
docker volume ls
docker volume inspect n8n_dataO caminho que o inspect mostra fica dentro da máquina virtual. Ele não fica no disco que você vê normalmente.
Por causa da chave de criptografia, você precisa guardar o volume inteiro, e não só o banco. As credenciais (tokens do Google, chaves de API) ficam no banco, criptografadas com essa chave. Se você restaurar o banco sem a chave, o n8n não consegue ler as credenciais. Aí você precisa cadastrar todas de novo.
Para copiar o volume para um arquivo .tgz na pasta atual:
docker compose stop n8n
docker run --rm -v n8n_data:/dados -v "$(pwd):/backup" alpine tar czf /backup/n8n-backup.tgz -C /dados .
docker compose start n8nO n8n é parado antes da cópia porque o SQLite pode estar no meio de uma escrita. Uma cópia feita nesse momento pode sair inconsistente. O comando funciona no Terminal do Mac e no PowerShell. Para restaurar a cópia num volume vazio, no mesmo computador ou em outro:
docker run --rm -v n8n_data:/dados -v "$(pwd):/backup" alpine tar xzf /backup/n8n-backup.tgz -C /dadosCuidado com duas ações que apagam o volume. docker compose down -v remove o container e também os volumes declarados no arquivo. A opção de limpar ou apagar os dados, nas configurações de solução de problemas do Docker Desktop, apaga todos os volumes. Quando quiser só parar e remover o container, use docker compose down sem o -v.
Como atualizar o n8n local sem perder fluxos
- Faça a cópia do volume com os comandos da seção anterior.
- Leia as notas da versão nova na página de releases do n8n.
- Troque a tag no
compose.yaml, por exemplo de2.41.7para a nova versãostable. - Rode
docker compose pulle depoisdocker compose up -d.
docker compose pull
docker compose up -dO up -d recria o container com a imagem nova. O volume continua o mesmo, porque ele é separado do container. Quando uma versão nova inicia pela primeira vez, o n8n faz migrações no banco. Por isso, voltar para a tag antiga usando o mesmo banco nem sempre funciona. A cópia do passo 1 é o seu caminho de volta.
Sobre a 3.0, a documentação diz que, na primeira inicialização, ela renomeia ~/.n8n/binaryData para ~/.n8n/storage. Este compose.yaml monta a pasta .n8n inteira, então essa troca acontece dentro do volume e o arquivo não precisa mudar. Quem montou só a subpasta binaryData num volume separado precisa ajustar essa montagem.
Webhooks e agendamentos: o limite do n8n no computador
A documentação do n8n diz que, para usar webhooks em nós de gatilho de serviços externos, como o GitHub, o n8n "has to be reachable from the web". Ou seja: ele precisa estar acessível pela internet. O seu n8n local não está. A URL do webhook começa com http://localhost:5678, e localhost quer dizer "esta máquina" para quem usa o endereço. Quando o GitHub ou um gateway de pagamento chama localhost, ele chama o próprio servidor, e não o seu notebook. Além disso, o roteador da sua casa faz NAT (network address translation, tradução de endereços de rede). Por isso, o seu computador nem tem um endereço público para receber a chamada.
A mesma página oferece um túnel com o cloudflared, que leva as requisições da internet até o n8n local. Sobre esse túnel, ela também avisa: "Use this for local development and testing. It isn't safe to use it in production." Ou seja, o túnel serve para testar a integração. Um fluxo de verdade não deve depender dele.
Mesmo assim, você consegue testar um webhook localmente, sem túnel. Coloque um nó Webhook no fluxo, mude o método HTTP para GET e defina o caminho como meu-teste. Depois clique para escutar um evento de teste e abra este endereço no navegador:
http://localhost:5678/webhook-test/meu-testeO nó recebe a chamada e mostra os dados no editor. Isso prova que o fluxo funciona. Mas não prova que um serviço de fora consegue chegar até ele.
Os agendamentos têm o mesmo limite, por outro motivo. O nó Schedule Trigger só dispara enquanto o container está rodando. Quando o notebook dorme, a máquina virtual do Docker Desktop para junto, e nada roda. Quando o computador acorda, o n8n não executa os horários que perdeu. Você mesmo pode conferir isso. Crie um fluxo ativo que roda a cada minuto, feche a tampa do notebook por dez minutos e depois olhe a lista de execuções. A falta de execuções nesse intervalo fica visível.
É nesse ponto que uma VPS sempre ligada passa a valer o que custa. Ela fica ligada de madrugada e tem um IP público, então pode receber webhooks com HTTPS e um domínio seu. O guia para instalar o n8n numa VPS com Docker e HTTPS usa o mesmo Docker Compose deste guia, então o que você aprendeu aqui continua valendo. Se você nunca usou o Compose num servidor, o básico do Docker Compose numa VPS explica o que muda fora do Docker Desktop. E se o n8n no servidor começar a cair sem aviso, o guia sobre por que o n8n fica offline e como resolver mostra as causas mais comuns.
O caminho que costuma funcionar melhor é este. Monte e teste os fluxos de graça no seu computador. Quando um fluxo precisar receber chamadas de fora ou rodar de madrugada, leve o volume para a VPS com os comandos de cópia e restauração acima. A chave de criptografia vai junto, então as credenciais continuam funcionando lá.
O que fazer quando algo dá errado
O Docker não sobe o container porque a porta 5678 está em uso. Outro programa já usa essa porta no seu computador. Muitas vezes é um n8n antigo, iniciado com npx n8n, que continua aberto em outra janela do terminal. Feche esse processo. Ou então troque a porta da esquerda no compose.yaml para "127.0.0.1:5679:5678" e abra http://localhost:5679.
O editor abriu vazio e pede uma conta nova. Quase sempre, o nome do volume mudou. Se você tirou a linha name: n8n_data ou mudou a pasta de lugar, o Compose criou um volume novo e vazio, com o nome da pasta na frente. Os dados antigos continuam no volume antigo. Rode docker volume ls, encontre o volume com os seus dados e aponte o compose.yaml para ele.
Um fluxo agendado dispara na hora errada. O fuso não está definido, ou está definido em só uma das duas variáveis. Confira GENERIC_TIMEZONE e TZ. Depois rode docker compose up -d de novo para recriar o container com os valores novos.
No Windows, o Docker Desktop não inicia. O Docker Desktop precisa do WSL 2 e da virtualização ligada no computador. Se a virtualização estiver desligada na BIOS (o firmware da placa-mãe), o próprio Docker Desktop mostra um aviso sobre isso ao iniciar. Ligue a opção de virtualização na BIOS e reinicie o computador.
FAQ
O n8n é mesmo de graça para rodar no meu computador?
Sim. A Community Edition do n8n não cobra nada para rodar no seu próprio computador, e o Docker Desktop é gratuito para uso pessoal. Você não precisa de cartão nem de conta no n8n Cloud. Você só começa a pagar quando precisa de um servidor sempre ligado para webhooks e agendamentos, ou de recursos que só existem nos planos pagos.
Ainda posso instalar o n8n com npx n8n?
Nas versões 2.x, o comando ainda funciona. A página de breaking changes da 3.0, prevista para outubro de 2026, diz que a 3.0 não suporta mais instalações com npm ou npx n8n. Ela também diz que o n8n self-hosted vai exigir Docker. Se você está começando agora, use o Docker Compose para não precisar migrar daqui a pouco.
Por que o meu webhook local não recebe nada de serviços externos?
Porque a URL do webhook aponta para localhost, e um serviço externo que chama localhost está chamando a si mesmo. O roteador da sua casa também bloqueia conexões que chegam de fora. A documentação do n8n diz que, para gatilhos de serviços externos, o n8n precisa estar acessível pela internet. O túnel com cloudflared resolve isso para testes, mas a própria documentação diz que ele não é seguro para produção. Para uso real, rode o n8n numa VPS com HTTPS.
Os meus fluxos agendados rodam com o notebook fechado?
Não. O Schedule Trigger só dispara enquanto o container está rodando, e o container para quando o computador dorme. Quando o computador acorda, os horários perdidos não são executados. Para agendamentos que precisam rodar sempre, use um servidor ligado o tempo todo.
Como levo os meus fluxos do computador para uma VPS?
Pare o n8n e copie o volume n8n_data inteiro para um arquivo .tgz, usando um container alpine e o comando tar. No servidor, restaure esse arquivo num volume vazio e suba o n8n com a mesma tag de versão. Copie o volume inteiro, e não só os fluxos, porque a chave de criptografia das credenciais fica no arquivo config, dentro dele.