Como Instalar

Instalar N8N mesma VPS WHAZING

CRIAR SUBDOMINIO E APONTAR PARA O IP DA SUA VPS

Exemplo: n8n.webconfiavel.com.br

CHECAR PROPAGAÇÃO DO DOMÍNIO

https://dnschecker.org/

Acesso Portainer

Acesse URL do Portainer: http://seuip:9000/

Caso seja primeira vez tem que gerar senha conforme instruções abaixo

Acesso Portainer gerar senha

"Your Portainer instance timed out for security purposes. To re-enable your Portainer instance, you will need to restart Portainer."

Executar no terminal

docker container restart portainer

Depois acesse novamente url http://seuip:9000/

Continuando

  • Vai "Home" - "Live Connect" - "Stacks" - "Add Stack"

  • Name - postgresql-n8n

  • Web editor - Coloque conteudo abaixo

version: "3.7"

services:
  postgres:
    container_name: postgresqln8n
    image: postgres:latest
    restart: always
    environment:
      - POSTGRES_PASSWORD=Admin33Admin77
    networks:
      - n8n_rede
    #ports:
    #  - 5432:5432
    volumes:
      - postgres_n8n:/var/lib/postgresql/data
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "0.5"
          memory: 1024M

volumes:
  postgres_n8n:
    external: false
    name: postgres_n8n

networks:
  n8n_rede:
    external: false
    name: n8n_rede
  • Clique em Deploy the stack - Aguarde demora um pouco

  • Vai "Home" - "Live Connect" - "Stacks" - "Add Stack"

  • Name - n8n

  • Web editor - Coloque conteudo abaixo

version: "3.7"

services:
  n8n:
    container_name: n8n
    image: n8nio/n8n
    restart: always
    networks:
      - n8n_rede
    ports:
      - 5678:5678
    volumes:
      - n8n_data:/data
    environment:
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_USER=postgres
      - DB_POSTGRESDB_PASSWORD=Admin33Admin77
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_DATABASE=postgres
      - DB_POSTGRESDB_HOST=postgres
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - NODE_ENV=production
      - N8N_RELEASE_TYPE=stable
      - WEBHOOK_URL=https://n8n.webconfiavel.com.br
      - N8N_HOST=https://n8n.webconfiavel.com.br/
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
volumes:
  n8n_data:
    external: false
    name: n8n_data

networks:
  n8n_rede:
    external: false
    name: n8n_rede

. Criar e editar o arquivo n8n com o comando abaixo e prencher com os dados do proximo item

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

. Editar os dados abaixo com a URL que será usada para acessar o minio api.

server {
  server_name n8n.webconfiavel.com.br;

  location / {
    proxy_pass http://127.0.0.1:5678;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_cache_bypass $http_upgrade;
  }

}

. Criar link simbólico para o arquivo minioapi

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

. Testar as configurações do nginx

sudo nginx -t

. Restartar o nginx

sudo service nginx restart

. Gerar certificado

sudo certbot --nginx
  • Você tera liberar rede nova no firewall no ponteiner acesse Network - vai ter rede n8n_rede copie coluna IPV4 vai ter valor parecido 172.18.0.0/16 com essa informacao coloque comando abaixo

  • Comando digitar terminal altere conforme dados acima

sudo iptables -t nat -A POSTROUTING ! -o docker0 -s 172.18.0.0/16 -j MASQUERADE
  • Criar pasta para um script executar comando inicializacao

sudo mkdir /etc/iptables
  • Criar um script executar comando inicializacao

sudo nano /etc/iptables/rules.sh
  • crie arquivo como exemplo abaixo coloque todas linhas necessarias pode ter mais de uma se tiver varios doccker como exemplo abaixo

#!/bin/bash

# Regras NAT
iptables -t nat -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
iptables -t nat -A POSTROUTING ! -o docker0 -s 172.18.0.0/16 -j MASQUERADE
iptables -t nat -A POSTROUTING ! -o docker0 -s 172.19.0.0/16 -j MASQUERADE
iptables -t nat -A POSTROUTING ! -o docker0 -s 172.20.0.0/16 -j MASQUERADE
  • tornar arquivo executavel

sudo chmod +x /etc/iptables/rules.sh
  • Executar script

sudo /etc/iptables/rules.sh
  • Configurar o Script para Executar na Inicialização

sudo nano /etc/rc.local
  • Adiciona no rc.local como exemplo

#!/bin/bash
sudo /etc/iptables/rules.sh
  • tonar executavel

sudo chmod +x /etc/rc.local
  • vericar status rc.local

sudo systemctl status rc-local
  • Caso nao tenha rc.local ativado verificar abaixo. https://www.lw92.me/index.php/archives/550

  • create a systemd service

sudo nano /etc/systemd/system/rc-local.service
  • Colocar dados abaixo no arquivo acima

[Unit]
Description=Local Startup Script

[Service]
Type=simple
ExecStart=/etc/rc.local

[Install]
WantedBy=multi-user.target
  • Tornar executavel

sudo chmod 644 /etc/systemd/system/rc-local.service
  • Ativar

sudo systemctl enable rc-local.service
  • Iniciar

sudo systemctl start rc-local.service
  • Verificar Status

sudo systemctl status rc-local.service
  • Errei ou quero alterar algo so alterar dados na stack na opcao editor e escolher update stack

Atualizado