Como rodar o n8n com Docker?

Como rodar o n8n com Docker?

Rodar o n8n com Docker é uma maneira eficiente de hospedar essa ferramenta de automação de fluxos de trabalho de forma autônoma. Ao invés de instalar o n8n diretamente no seu servidor privado virtual (VPS), o Docker oferece um ambiente isolado, criando um contêiner para o n8n que não interfere no seu sistema principal.

Essa abordagem facilita a atualização ou reversão de versões do n8n, permite escalar a configuração para suportar mais fluxos de trabalho e até migrar a instância do n8n para outro servidor.

Neste artigo, você vai aprender a rodar o n8n utilizando o Docker e o Docker Compose. Esse método permite definir o serviço do n8n, as variáveis de ambiente e as dependências, como o banco de dados, em um único arquivo YAML.

Continue lendo para conferir um passo a passo de como instalar, configurar, proteger e atualizar sua instância do n8n usando o Docker.

Como hospedar o n8n de forma autônoma com Docker

Para hospedar o n8n com Docker, o primeiro passo é instalar o Docker e o Docker Compose no seu VPS. Depois, você precisará criar um arquivo Docker Compose para configurar o serviço do n8n. Por fim, basta rodar o contêiner do n8n com o comando docker compose up -d.

Em seguida, você pode proteger sua configuração do n8n com SSL e um proxy reverso, ajustar as variáveis de ambiente conforme necessário e atualizar o n8n sempre que novas versões forem lançadas.

As seções a seguir explicam cada um desses passos com mais detalhes.

📚 Dica de leitura

Se você preferir instalar o n8n diretamente no seu VPS, não se preocupe:  nós temos um tutorial dedicado para te guiar pelo processo.

1. Instale o Docker e o Docker Compose

Primeiro, certifique-se de que o Docker está instalado no seu servidor. A partir do Docker v20.10.0, o Docker Compose vem incluído por padrão como um plugin, então você não precisa instalá-lo separadamente.

Se você usa a hospedagem Docker VPS da Hostinger, sorte sua: o Docker já vem pré-instalado nela, então você pode pular esta etapa completamente.

Os usuários com outros planos VPS da Hostinger também podem instalar o Docker facilmente, seja por meio de um template pré-configurado ou manualmente, pela linha de comando.

Se você optar pela instalação manual, verifique se o Docker foi instalado corretamente executando o comando Linux abaixo em seu terminal:

docker -v

Isso exibirá a versão do Docker instalada, como no exemplo abaixo:

2. Prepare o diretório de dados n8n

Em seguida, crie os diretórios para armazenar os dados e os arquivos de configuração do n8n. Execute o comando abaixo para criar o diretório principal para o n8n e navegar até ele:

mkdir ~/n8n && cd ~/n8n

Dentro do diretório recém-criado, crie um subdiretório chamado n8n_data para armazenar os dados persistentes do n8n:

mkdir n8n_data

Defina a propriedade correta para os dados persistentes, o que é importante ao executar o n8n com o Docker:

sudo chown -R 1000:1000 n8n_data

3. Crie um arquivo Docker Compose para o n8n

Após preparar os diretórios para o n8n, crie um novo arquivo Docker Compose para configurar as definições do n8n, definir as variáveis de ambiente e especificar os volumes necessários.

Você pode fazer isso usando o editor de texto nano:

sudo nano docker-compose.yml

Cole o seguinte conteúdo, substituindo yourUser yourPassword pelas credenciais de sua preferência:

services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=yourUser
      - N8N_BASIC_AUTH_PASSWORD=yourPassword
    volumes:
      - ./n8n_data:/home/node/.n8n

Quando terminar, salve as alterações e saia do nano pressionando Ctrl + X → Y → Enter.

4. Inicie o contêiner n8n

Agora, inicie o contêiner do n8n com o seguinte comando:

docker compose up -d

Você verá o processo de inicialização do contêiner. Quando estiver concluído, serão exibidas mensagens como Created Started, como na imagem abaixo:

Para verificar se o contêiner do n8n foi iniciado, abra o seguinte endereço no seu navegador, substituindo your_vps_ippelo endereço IP do seu próprio VPS:

http://your_vps_ip:5678

Os clientes de VPS da Hostinger podem encontrar o IP do seu servidor no hPanel, indo até VPS → Gerenciar → Visão geral → Detalhes do VPS.

Se você ver um aviso de erro relacionado a cookies seguros, como mostrado na imagem abaixo, não se preocupe. Sua instância do n8n está rodando normalmente. O erro ocorre porque o SSL ainda não foi configurado para conexões seguras, mas você resolverá isso na próxima etapa.

5. Proteja o n8n com SSL e um proxy reverso NGINX

Para acessar sua instância do n8n de forma segura via HTTPS, você precisará emitir um certificado SSL e configurar um proxy reverso.

Primeiro, instale o servidor web NGINX no seu VPS:

sudo apt install nginx -y

Em seguida, pare o serviço do NGINX temporariamente:

sudo systemctl stop nginx

Agora, instale o Certbot para obter seu certificado SSL:

sudo apt install certbot -y

Obtenha uma versão standalone do Certbot para o certificado SSL. Substitua yourdomain.tld pelo seu domínio real, caso você o tenha apontado para o seu VPS. Caso contrário, emita um certificado SSL para o seu hostname:

sudo certbot certonly --standalone -d yourdomain.tld

Será solicitado que você insira um endereço de e-mail válido, aceite os termos de serviço e, opcionalmente, se inscreva para receber e-mails promocionais.

Após a emissão do certificado, inicie o NGINX novamente:

sudo systemctl start nginx

Depois disso, crie um arquivo de configuração para configurar o proxy reverso com o NGINX:

sudo nano /etc/nginx/sites-available/n8n

Dentro do arquivo, cole os detalhes de configuração abaixo. Substitua yourdomain.tld pelo seu próprio domínio ou hostname.

server {
    listen 443 ssl;
    server_name yourdomain.tld;
    ssl_certificate /etc/letsencrypt/live/yourdomain.tld/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.tld/privkey.pem;
    location / {
        proxy_pass http://localhost:5678;
        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;
    }
}
server {
    listen 80;
    server_name yourdomain.tld;
    return 301 https://$host$request_uri;
}

Após salvar o arquivo e sair do editor, execute este comando para habilitar a configuração:

sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n

Teste a configuração do NGINX para verificar se há erros:

sudo nginx -t

Recarregue o serviço NGINX para aplicar as alterações:

sudo systemctl reload nginx

6. Acesse sua instância n8n

Agora, acesse sua instância do n8n utilizando o domínio ou nome de host que você configurou anteriormente. Você verá a página de registro da conta de proprietário do n8n, onde poderá se inscrever com as credenciais de sua escolha.

Depois disso, abra o painel do n8n para começar a criar fluxos de automação. Se você não quiser começar do zero, é possível encontrar templates do n8n com soluções prontas para usar.

7. Modifique as variáveis de ambiente do n8n

Ao gerenciar sua instância do n8n, pode ser necessário modificar as variáveis de ambiente para configurar conexões de banco de dados, habilitar autenticação, integrar serviços de terceiros ou melhorar a segurança.

Para fazer isso, volte ao terminal e edite o seu arquivo Docker Compose:

sudo nano docker-compose.yml

Na seção de variáveis de ambiente, adicione ou modifique as configurações para o contêiner do n8n. Aqui estão algumas das variáveis mais usadas:

  • N8N_ENCRYPTION_KEY – criptografa credenciais no banco de dados para maior segurança.
- N8N_ENCRYPTION_KEY=suaStringAleatóriaForte
  • N8N_HOSTN8N_PORTN8N_PROTOCOL – garante que o n8n gere URLs corretas, especialmente atrás de um proxy reverso ou ao usar SSL.
- N8N_HOST=yourdomain.tld

- N8N_PORT=5678

- N8N_PROTOCOL=https
  • WEBHOOK_URL – define a URL pública para webhooks, o que é importante se você usar HTTPS ou um domínio personalizado.
- WEBHOOK_URL=https://yourdomain.tld
  • DB_TYPEDB_POSTGRESDB – permite usar o PostgreSQL em vez do SQLite padrão para obter melhor desempenho e escalabilidade.
- DB_TYPE=postgresdb

- DB_POSTGRESDB_HOST=your_postgres_host

- DB_POSTGRESDB_PORT=5432

- DB_POSTGRESDB_DATABASE=your_database_name

- DB_POSTGRESDB_USER=your_db_user

- DB_POSTGRESDB_PASSWORD=your_db_password
  • TZ – define o fuso horário para o n8n.
- TZ=UTC

Após fazer as alterações necessárias, salve o arquivo.

Em seguida, execute o comando Docker abaixo para parar o contêiner do n8n:

docker compose down

Inicie o contêiner novamente com as variáveis de ambiente atualizadas:

docker compose up -d

💡 Dica

Se você deseja apenas reiniciar seu contêiner Docker n8n sem modificar o arquivo Compose, use o comando docker compose restart.

8. Atualize o n8n para a versão mais recente

É importante atualizar o n8n periodicamente para a versão mais recente, a fim de minimizar riscos de segurança e aproveitar novas funcionalidades e melhorias.

Para atualizar, primeiro faça o download da versão mais recente da imagem do n8n no Docker Hub:

docker pull n8nio/n8n

Em seguida, reinicie o contêiner do n8n com a imagem atualizada:

docker compose up -d

Quais são as melhores práticas para gerenciar o n8n com o Docker?

Aqui estão algumas práticas recomendadas para gerenciar o n8n com o Docker, incluindo algumas já demonstradas neste tutorial:

  • Monte volumes do Docker. Monte um diretório host, como ./n8n_data:/home/node/.n8n, para manter fluxos de trabalho, credenciais e dados de execução fora do contêiner. Isso garante que seus dados sobrevivam a atualizações, reinicializações ou recriação do contêiner.
  • Configure variáveis de ambiente. No arquivo docker-compose.yml, defina chaves de API, segredos de webhooks, credenciais de banco de dados e outros dados sensíveis como variáveis de ambiente. Isso mantém os segredos fora dos fluxos de trabalho e do código-fonte, melhorando a segurança e simplificando a rotação de chaves.
  • Proteja o acesso. Sempre habilite a autenticação básica (N8N_BASIC_AUTH_ACTIVE=true) e use nomes de usuário e senhas fortes. Para comunicação segura, coloque o n8n atrás de um proxy reverso, como o NGINX com SSL, para que todos os dados, incluindo credenciais, sejam criptografados e não enviados em texto simples.
  • Faça backups regulares. Faça backups periódicos da pasta host mapeada para /home/node/.n8n, não do caminho interno do contêiner. Para um contêiner em execução, use o comando abaixo:
docker cp n8n:/home/node/.n8n /path/to/backup/folder
  • Defina limites de recursos. No seu arquivo docker-compose.yml, defina limites de CPU e memória para evitar que o n8n use excessivamente os recursos do seu VPS. Por exemplo:
deploy:
  resources:
    limits:
      cpus: '1'
      memory: 1G
  • Monitore logs e desempenho. Execute o comando docker compose logs n8n para revisar logs e solucionar problemas. Para um monitoramento contínuo, considere fazer integração a um sistema como o LGTM stack para receber alertas caso o n8n pare de funcionar ou apresente falhas.

Por que a Hostinger é a melhor opção para hospedar seu setup do n8n com Docker?

O Docker facilita a hospedagem autônoma do n8n, fornecendo um ambiente portátil e consistente em todos os sistemas. Mas para mantê-lo funcionando de forma confiável 24 horas por dia, 7 dias por semana, você não pode depender do seu computador pessoal – você precisa de um VPS.

Um VPS funciona de forma contínua, permitindo que seus fluxos de trabalho permaneçam ativos mesmo quando o seu computador está desligado ou desconectado. Ele também possibilita acessar e gerenciar o n8n com segurança de qualquer lugar, não apenas da sua rede local.

O Docker VPS da Hostinger é uma excelente escolha para hospedar aplicativos containerizados como o n8n. O Docker e todos os componentes necessários vêm pré-instalados, o que permite que você implante o n8n rapidamente, sem configurações extras.

Oferecemos vários data centers em diferentes regiões, para que você possa escolher um servidor mais próximo e garantir baixa latência. Além disso, com a garantia de 99,9% de tempo de atividade da Hostinger, seus fluxos de automação permanecem online de forma confiável o tempo todo.

A partir de R$ 27.99 /mês, nossos planos Docker VPS incluem até 8 núcleos vCPU, 32 GB de RAM e 400 GB de armazenamento NVMe. Você pode começar com um plano pequeno e fazer upgrade para um plano maior com apenas alguns cliques à medida que suas necessidades de automação aumentam.

A segurança é uma prioridade, com backups automáticos, proteção avançada contra DDoS e um scanner de malware para manter seus dados seguros, bloquear ataques e prevenir interrupções na sua configuração do n8n.

Depois de hospedar o n8n com Docker: próximos passos

Hospedar o n8n com Docker oferece total controle, flexibilidade e escalabilidade para a automação de fluxos de trabalho. Isso permite rodar uma poderosa ferramenta de automação sob seus próprios termos – de forma segura, confiável e com espaço para crescimento.

À medida que você continua construindo e gerenciando sua configuração do n8n, veja o que você pode fazer a seguir:

  • Explore ideias de automação. Descubra o que você pode automatizar com o n8n para se inspirar e agilizar tarefas repetitivas.
  • Dimensionar seu setup do n8n. Implemente uma stack Docker para escalar o n8n em vários servidores e gerenciar serviços em um cluster swarm.
  • Proteja seu servidor. Siga as práticas recomendadas de segurança para VPS — como alterar a porta SSH, desativar o login root e configurar um firewall — para proteger sua instância n8n.
  • Use o n8n com MCP. Exponha seus fluxos de trabalho a agentes de IA e habilite a automação sensível ao contexto integrando o n8n ao protocolo de contexto de modelo (MCP).

Se ainda tiver alguma dúvida sobre como rodar e gerenciar o n8n com Docker, fique à vontade para deixar um comentário abaixo.

Author
O autor

Bruno Santana

Jornalista formado pela Universidade Federal da Bahia e Especialista em Marketing de Conteúdo na Hostinger, onde atuo na criação e otimização de artigos úteis, envolventes e criativos em áreas como desenvolvimento web e, marketing. Além disso, sou colaborador eventual do site MacMagazine e da editoria de cultura do Jornal A Tarde, fascinado por arte, culinária e tecnologia.