Pular para o conteúdo principal

Instalação com Docker

O n8n recomenda o uso do Docker na maioria dos cenários de hospedagem própria. Ele oferece um ambiente limpo e isolado, evitando problemas de incompatibilidade com o sistema operacional e a cadeia de ferramentas, além de simplificar o gerenciamento de banco de dados e variáveis de ambiente.

Você também pode usar o Docker Compose para executar o n8n no Docker. Arquivos de configuração do Docker Compose para diversas arquiteturas estão disponíveis no repositório n8n-hosting.

Conhecimentos prévios para hospedagem própria

A hospedagem própria do n8n exige conhecimentos técnicos, incluindo:

  • Configuração e gerenciamento de servidores e contêineres
  • Gerenciamento e escalabilidade de recursos da aplicação
  • Reforço de segurança do servidor e da aplicação
  • Gerenciamento de configurações do n8n

O n8n recomenda a hospedagem própria apenas para usuários experientes. Erros de operação podem resultar em perda de dados, problemas de segurança ou interrupção do serviço. Se você não tiver experiência com administração de servidores, recomendamos utilizar o n8n Cloud.

Você também pode seguir nosso guia em vídeo:

Pré-requisitos

Antes de começar, instale o Docker:

  • Docker Desktop está disponível para Mac, Windows e Linux. O Docker Desktop inclui o Docker Engine e o Docker Compose.
  • O Docker Engine e o Docker Compose também podem ser instalados como pacotes independentes no Linux. Essa opção é ideal para servidores Linux sem interface gráfica ou quando você prefere não usar a interface do Docker Desktop.

Versões estáveis e beta

O n8n lança uma nova versão secundária quase toda semana. A versão stable é adequada para ambientes de produção, enquanto a versão beta corresponde à versão mais recente e pode não ser totalmente estável. Caso encontre problemas, use o fórum da comunidade para relatar.

  • Versão stable atual: 2.10.2
  • Versão beta atual: 2.11.1

Iniciando o n8n

Execute o seguinte comando no terminal, substituindo o marcador <YOUR_TIMEZONE> pelo seu fuso horário:

docker volume create n8n_data

docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="`<YOUR_TIMEZONE>`" \
-e TZ="`<YOUR_TIMEZONE>`" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

Esse comando cria um volume para armazenar dados persistentes, baixa a imagem necessária do n8n e inicia o contêiner com as seguintes configurações:

  • Mapeia e expõe a porta 5678 do contêiner para o host.
  • Define o fuso horário do contêiner:
    • A variável de ambiente TZ define o fuso horário do sistema, controlando o comportamento de comandos como date.
    • A variável GENERIC_TIMEZONE define o fuso horário correto para nós orientados a agendamento, como o nó Schedule Trigger.
  • Aplica permissões seguras aos arquivos de configuração do n8n.
  • Habilita os runners (executores), que são a forma recomendada de executar tarefas no n8n.
  • Monta o volume n8n_data no diretório /home/node/.n8n, garantindo a persistência dos dados mesmo após reinicializações do contêiner.

Após a inicialização, abra seu navegador e acesse http://localhost:5678 para usar o n8n.

Usando PostgreSQL

Por padrão, o n8n usa SQLite para armazenar credenciais, histórico de execuções e fluxos de trabalho. No entanto, o n8n também oferece suporte ao PostgreSQL, que pode ser configurado por meio de variáveis de ambiente, conforme descrito abaixo.

Persistência do diretório .n8n ainda é recomendada

Ao usar PostgreSQL, o n8n não precisa mais armazenar o banco de dados SQLite no diretório .n8n. No entanto, esse diretório ainda contém dados importantes, como chaves de criptografia, logs da instância e ativos relacionados ao controle de versão do código-fonte. Embora seja possível contornar algumas dessas dependências (por exemplo, definindo a variável de ambiente N8N_ENCRYPTION_KEY), é altamente recomendável continuar montando um volume persistente para esse diretório, a fim de evitar problemas futuros.

Para usar o n8n com PostgreSQL, execute o seguinte comando, substituindo os marcadores entre colchetes angulares (como <nome do banco>) pelos valores reais:

docker volume create n8n_data

docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="`<YOUR_TIMEZONE>`" \
-e TZ="`<YOUR_TIMEZONE>`" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_DATABASE=<nome do banco> \
-e DB_POSTGRESDB_HOST=<endereço do host> \
-e DB_POSTGRESDB_PORT=<número da porta> \
-e DB_POSTGRESDB_USER=<nome de usuário> \
-e DB_POSTGRESDB_SCHEMA=<nome do esquema> \
-e DB_POSTGRESDB_PASSWORD=<senha> \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n

Você pode encontrar um arquivo completo do docker-compose para PostgreSQL no repositório n8n-hosting.

Atualização

Para atualizar o n8n, no Docker Desktop, navegue até a aba Images (Imagens) e selecione Pull (Puxar) no menu de contexto para baixar a imagem mais recente do n8n:

Docker Desktop

Você também pode usar a linha de comando para puxar a versão mais recente ou uma versão específica:

# Puxar a versão mais recente (stable)
docker pull docker.n8n.io/n8nio/n8n

# Puxar uma versão específica
docker pull docker.n8n.io/n8nio/n8n:1.81.0

# Puxar a versão next (instável)
docker pull docker.n8n.io/n8nio/n8n:next

Após puxar a imagem atualizada, pare seu contêiner do n8n e reinicie-o. Você também pode fazer isso via linha de comando. Nos comandos abaixo, substitua <ID_DO_CONTÊINER> pelo ID obtido no primeiro comando:

# Encontrar o ID do seu contêiner
docker ps -a

# Parar o contêiner com <ID_DO_CONTÊINER>
docker stop <ID_DO_CONTÊINER>

# Remover o contêiner com <ID_DO_CONTÊINER>
docker rm <ID_DO_CONTÊINER>

# Iniciar o contêiner
docker run --name=<nome_do_contêiner> [opções] -d docker.n8n.io/n8nio/n8n

Atualização com Docker Compose

Se você estiver executando o n8n com um arquivo Docker Compose, siga estas etapas para atualizá-lo:

# Acesse o diretório que contém o arquivo docker-compose
cd <seu_diretório>

# Puxe a versão mais recente
docker compose pull

# Pare e remova a versão antiga
docker compose down

# Inicie os contêineres
docker compose up -d

Usando o n8n com túnel

Perigo
Use apenas para desenvolvimento e testes locais. Não é adequado para ambientes de produção.

Ferramenta de desenvolvimento

A funcionalidade de túnel é uma ferramenta conveniente para desenvolvimento local, mas sua implementação interna pode mudar entre versões do n8n.

Para que nós de gatilho de serviços externos (como o GitHub) possam usar webhooks, o n8n precisa ser acessível pela internet. O n8n oferece um serviço de túnel baseado no cloudflared, que redireciona requisições da internet para sua instância local do n8n. Essa funcionalidade requer o Docker.

Existem duas formas de usar o túnel, dependendo de como você executa o n8n:

Pilha completa (Full stack)

Nessa abordagem, o n8n e o cloudflared são executados juntos em um contêiner. A URL do túnel é exibida durante a inicialização, e tudo é conectado automaticamente:

pnpm stack --tunnel

Apenas serviços (Services only)

Se você preferir executar o n8n localmente com pnpm dev ou pnpm start, pode iniciar o cloudflared como um serviço independente:

# Terminal 1: iniciar o serviço de túnel cloudflared
pnpm --filter n8n-containers services --services cloudflared

# Terminal 2: iniciar o n8n localmente
pnpm dev

O comando services realiza as seguintes ações:

  1. Inicia o cloudflared apontando para host.docker.internal:5678 (seu n8n local).
  2. Obtém a URL pública do túnel a partir do endpoint de métricas do cloudflared.
  3. Cria um arquivo .env em packages/cli/bin/.env contendo as variáveis WEBHOOK_URL e N8N_PROXY_HOPS=1.
  4. Os comandos pnpm dev e pnpm start carregam automaticamente esse arquivo .env por meio do dotenv.

Para limpar os recursos após o uso:

pnpm --filter n8n-containers services:clean

Próximos passos

  • Consulte o arquivo README das imagens Docker para obter mais informações sobre configuração com Docker.
  • Aprenda como configurar e escalar o n8n.
  • Explore o uso do n8n: experimente o guia de início rápido.