Configurando o N8N localmente com Docker e Cloudflare Tunnel para conectar com API’s através do OAuth

Como configurar um servidor do n8n localmente usando o docker e expondo para web de forma segura através do Cloudflare tunnel com o intuito de conectar nas apis Oauth que exigem um servidor público e o protocolo HTTPS.

Resumido.

Entendo o problema

Entrando na onda das automações e migrando do NODE-RED para o N8N eu decidi dar uma estudada na aplicação.

Como de costume conectei via SSH ao meu ambiente de desenvolvimento e já rodei uma imagem com um docker compose. 

Tudo indo bem até que precisei conectar a uma planilha do Google Sheets. E aí veio o sofrimento: o endereço localhost sempre dava problema (mesmo setando a variável de webhook). Até que li nos comentários dos fóruns que somente seria possível se expusesse o servidor pra fora da rede. E esse é um outro problema. Um invasor poderia escalar o acesso e acabar mexendo em coisas pessoais minhas. 

Pesquisei os valores de uma VPS e estava quase fechando uma por 2 anos até que em um fórum me deram uma luz: por que você não usa o cloudflare tunnel ?

E pronto. Esse é o material que eu quero te entregar nesse artigo. 

Requisitos

Eu não vou entrar no passo a passo de como se cadastrar em cada plataforma. É muito intuitivo e sem obstáculos.

Você deve possuir cadastros nos sites:

  • Cadastro no Cloudflare
  • Cadastro no Google Cloud
  • Um servidor linux que você tenha acesso SSH
  • Um domínio público

Registrando o domínio público

Há inúmeras formas de conseguir um domínio público. Escolha um e vamos configurar. No meu caso eu tenho um .com.br e vou utilizar a própria plataforma do registro.br .

Acesse sua conta -> seu domínio e modifique o DNS apontando para os servidores da cloudflare.

Esse é o primeiro passo, pois pode levar até algumas horas para os registros sejam atualizados. Então começamos por ele !

Subindo o container N8N

Crie um arquivo com nome docker-compose.yml e coloque o código abaixo:

				
					version: "3.7"

services:
 n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: always
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.seudominio.com.br
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://n8n.seudominio.com.br/
      - GENERIC_TIMEZONE=America/Sao_Paulo
    volumes:
      - n8n_data:/home/node/.n8n
 volumes:
    n8n_data:
      external: true
				
			

Lembre-se de trocar o “seudominio”.

Conectado via ssh, vá até a pasta que você criou o arquivo e execute:

				
					sudo docker volume create n8n_data
				
			
				
					docker compose up -d
				
			

Se tudo der certo, você pode conferir o resultado dessa instância no endereço http://ipdoservidor:5678 .

Configurando o CloudFlare

Configure o Cloudflare para receber seu domínio. Neste passo vou apenas mostrar onde você deve ir e de lá é fácil seguir as instruções. 

Depois de ter configurado seu site no Cloudflare volte para o dashboard do Cloudflare, vá na opção Zero Trust -> Networks -> Tunnels.

Escolha a opção de "Create a tunnel".
Escolha a opção Cloudflared.
Dê um nome para o Tunnel.
Escolha a opção Docker, copie o comando e execute no seu SSH. Pode ser que você precise iniciar o comando com SUDO antes.

Na imagem de cima, após você executar o comando no seu servidor via SSH e o container subir, aparecerá um registro na seção de “Connectors”.

Se não aparecer, você precisa verificar o status do seu container.

Avance e você verá a tela de Route Traffic.

Nela configure o seu Domain (o site que você cadastrou anteriormente irá aparecer aqui) e a URL para bater com a do seu servidor local. Não esqueça de fornecer a porta. 

É bom você verificar se ao acessar o seu endereço local nessa porta você irá visualizar a instalação do n8n. 

E pronto!

Pronto! Agora você pode acessar o endereço https://n8n.seudominio.com.br que ele vai redirecionar e já criar um certificado. 

Para testar o callback configure assim nas Credenciais lá no Google Cloud Console:

Agora é só copiar as chaves e colocar no N8N.

Mas aí vai mais duas dicas extras pra funcionar a conexão.

  1. Ative a ferramenta que você vai conectar na parte de biblioteca do Google.

2. Cadastre o e-mail do usuário de teste que você vai utilizar no N8N.

Compartilhe:

Facebook
Twitter
LinkedIn
X
Telegram
WhatsApp
Email
Print
Threads
Reddit

Paulo Junior

Dev Raiz

Profissionalmente atuando desde 2002, mas com o primeiro acesso à internet em 95. Comecei com Cobol, passei por várias linguagens e atualmente me conforto no C#, Flutter, Angular e Python. Full stack raiz mesmo. Atuando em infra, banco, programação,arquitetura, design e o que for preciso pra fazer funcionar.

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sobre

A ideia é compartilhar uma parte da minha experiência na área de TI. É quase um dump do meu aprendizado. Fique a vontade para participar e contribuir.

Me segue aí!

Todos os direitos reservados. (Na medida do possível, né?)