$ vim configurando-n8n-com-nginx-em-servidor.md
Configurando o N8N com NGINX em um servidor
Configurando o N8N com NGINX em um servidor
Começamos uma série no canal sobre N8N. Já mostrei como instalar local com Docker. Muita gente pediu a instalação em servidor com NGINX. Abaixo estão todos os comandos. Tem vídeo no YouTube com o mesmo passo a passo.
OBS: Todos os comandos abaixo foram executados no Ubuntu 24.04.
Instalando o Docker
Instale o Docker pela documentação oficial.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Clone e ajustes do repositório
No servidor, clone o repositório com as configurações.
git clone https://github.com/mateusrovedaa/n8n-postgres-redis-workers.git
Entre na pasta criada
cd n8n-postgres-redis-workers
Crie uma cópia do arquivo .env.example e ajuste protocolo, host, key e senha.
cp .env.example .env
vim .env
# n8n config
N8N_PROTOCOL=https
N8N_HOST=[host]
N8N_ENCRYPTION_KEY=[string aleatória sem símbolos]
N8N_RUNNERS_ENABLED=true
NODE_ENV=production
# Optional timezone to set which gets used by Cron-Node by default
# If not set New York time will be used
GENERIC_TIMEZONE=Europe/London
# Postgres config
POSTGRES_USER=postgres
POSTGRES_PASSWORD=[senha]
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=n8n
POSTGRES_NON_ROOT_PASSWORD=[senha]
Suba os serviços.
docker compose up -d
Instalação e configuração do NGINX
Instale o NGINX e configure para servir o N8N.
sudo apt install nginx-light
Copie o arquivo de configuração do NGINX-http.
sudo cp webserver-example/nginx-http.conf.example /etc/nginx/sites-avaliable/[host]
Ajuste o host no arquivo.
sudo vim /etc/nginx/sites-available/[host]
Altere a linha server_name [host];
Crie o link para o sites-enabled.
sudo ln -s /etc/nginx/sites-available/[host] /etc/nginx/sites-enabled/[host]
Recarregue o NGINX.
sudo bash -c "nginx -t && systemctl nginx reload"
Apontamento de DNS
Na sua zona de DNS crie um registro A com o host definido, apontando para o IP do servidor.

Geração de certificado com o Certbot
Instale o certbot pela documentação oficial.
sudo snap install --classic certbot
Crie o link para o certbot.
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Gere o certificado.
sudo certbot --nginx
Digite Enter, depois Y e Enter e escolha o domínio listado (em geral basta pressionar 1)

Recarregue o NGINX.
sudo bash -c "nginx -t && systemctl nginx reload"
Renovação automática do certificado
Adicione ao crontab a linha abaixo para renovar quando disponível.
sudo crontab -e
0 4 1 * * /usr/bin/certbot renew --post-hook "systemctl reload nginx"
Extra: Firewall
Para mais segurança, configure um firewall.
sudo apt install ufw
sudo ufw allow https
sudo ufw allow http
sudo ufw allow ssh
sudo ufw default deny incoming
sudo ufw enable
Pronto
Acesse a URL que definiu para o N8N. Ele já deve estar no ar.
// see you later