VPS – Como instalar o n8n

Olá, Kangaroozinho, como vai? Se você possui um serviço de VPS e gostaria de instalar o n8n no seu servidor, neste artigo vamos te mostrar como você pode fazer isso através do seu terminal. Como envolve vários passos de linha de comando, é essencial que você siga cada passo com bastante atenção.

Como instalar o n8n na sua VPS

AlmaLinux/CentOS:

sudo dnf update -y
# Em sistemas CentOS 7 ou inferiores, o comando gerenciador é o yum

Ubuntu/Debian:

sudo apt update && sudo apt upgrade -y

Agora que sua máquina já está atualizada, vamos seguir com a instalação do n8n, para isso, precisamos primeiro instalar o Docker. Abaixo te mostramos os passos e comandos:

  1. Para começar, instale possíveis pendências, para isso, use o comando: sudo dnf install -y dnf-plugins-core
  2. Feito isso, agora adicione o repositório do Docker com o comando: sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    Adicionando repositório Docker na VPS
  3. Com o repositório adicionado, agora instale com o comando: sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    Instalando o docker
  4. Após a instalação ser finalizada, habilite o Docker com o comando: sudo systemctl enable --now docker
    Habilitando o docker
  5. Depois disso, adicione o seu usuário atual ao grupo docker, para isso, use o comando: sudo usermod -aG docker $USER
    Feito isso, recomendamos que você saia e se conecte novamente ao terminal SSH.
  6. Agora verifique se o docker foi corretamente instalado, para isso, execute o comando: docker compose version
    Comando para entender se a instalação deu certo
  7. Agora crie um diretório para o n8n e o acesse, caso não saiba como, é só usar o comando: mkdir ~/n8n && cd ~/n8n
    Comando para criar o diretório n8n e acessá-lo
    Note que esse comando também te leva para dentro desse novo diretório.
  8. Agora crie um arquivo chamado docker-compose.yml, para isso, use o comando sudo nano docker-compose.yml
  9. Copie as linhas abaixo, e cole dentro do arquivo:
version: "3.8"

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=localhost              # Se você quiser, você pode alterar para seu domínio posteriormente.
      - N8N_PORT=5678
      - N8N_PROTOCOL=http               # Se possuir SSL instalado, você pode alterar para HTTPS agora, ou depois.
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - N8N_SECURE_COOKIE=true
      # - N8N_BASIC_AUTH_ACTIVE=true    # descomente essa e as duas próximas linhas se quiser usuário/senha
      # - N8N_BASIC_AUTH_USER=admin
      # - N8N_BASIC_AUTH_PASSWORD=suasenha
    volumes:
      - n8n_data:/home/node/.n8n
    # Para usar PostgreSQL (recomendado em produção), adicione depois

volumes:
  n8n_data:
  • Para salvar o arquivo, pressione ctrl + x, depois digite y e dê enter, por fim, dê enter novamente.
    Arquivo com o conteúdo
  • Agora você deve subir o container, para isso, use o comando: docker compose up -d
    Subindo container

Pronto, ao fazer isso o n8n já deve estar corretamente instalado, porém, para acessá-lo, pode ser necessário realizar ações adicionais. Por padrão, o código do arquivo requisita o uso de SSL se a sua conexão não for local. Por isso, se você quiser fazer o uso via navegador de forma não local, você precisa instalar um tipo de conexão segura para o seu servidor.

Para isso, você pode Instalar e configurar o Caddy para a entrada do seu N8N. Se você quiser acessar o N8N sem instalar um certificado SSL, você pode editar o arquivo, na parte   - N8N_SECURE_COOKIE, altere de “true” para “false”, e feito isso, você precisa subir novamente o container.

Comandos para o ubuntu

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

sudo usermod -aG docker $USER

newgrp docker
# ou saia e entre no terminal/SSH novamente

docker compose version

mkdir ~/n8n && cd ~/n8n

nano docker-compose.yml

Conteúdo do arquivo:

version: "3.8"

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=localhost              # Se você quiser, você pode alterar para seu domínio posteriormente.
      - N8N_PORT=5678
      - N8N_PROTOCOL=http              # Se possuir SSL instalado, você pode alterar para HTTPS agora, ou depois.
      - WEBHOOK_URL=http://localhost:5678/
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - TZ=America/Sao_Paulo
      - N8N_SECURE_COOKIE=false         
      # - N8N_BASIC_AUTH_ACTIVE=true    # descomente essa e as duas próximas linhas se quiser usuário/senha
      # - N8N_BASIC_AUTH_USER=seuuser
      # - N8N_BASIC_AUTH_PASSWORD=suasenha
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

Comando para subir o container:

docker compose up -d

Liberar porta do n8n no firewall ufw:

sudo ufw allow 5678/tcp

sudo ufw reload
Encontrou sua resposta?