Pular para o conteúdo principal

Implantação do Embed

Este guia explica como implantar o n8n embarcado em ambiente de produção, cobrindo segurança, autenticação, performance, monitoramento, exemplos de deployment e troubleshooting para garantir integração robusta e segura com sua aplicação.


Segurança e Configuração

Headers de Segurança

Configure os headers de segurança no seu proxy reverso ou servidor web:

# Headers de segurança para embed
add_header X-Frame-Options "ALLOW-FROM https://app.suaempresa.com" always;
add_header Content-Security-Policy "frame-ancestors 'self' https://app.suaempresa.com" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Configuração de CORS

# Configuração de CORS para embed
add_header Access-Control-Allow-Origin "https://app.suaempresa.com" always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Requested-With" always;
add_header Access-Control-Allow-Credentials "true" always;

Cache e Performance

# Cache para recursos estáticos
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 1y;
    add_header Cache-Control "public, max-age=2592000";
}

Monitoramento e Troubleshooting

Logs e Alertas

  • Configure logs de acesso e auditoria no backend do n8n
  • Configure alertas para falhas de autenticação e erros de integração
  • Use webhooks para notificar eventos críticos (ex: workflow.error, workflow.saved)

Exemplo de webhook para monitoramento:

{
  "event": "workflow.error",
  "workflowId": "abc123",
  "user": "user@empresa.com",
  "timestamp": "2024-06-01T12:00:00Z",
  "error": "Token inválido"
}

Estratégias de Fallback

  • Exiba mensagens de erro amigáveis no embed
  • Implemente retry automático para falhas temporárias
  • Redirecione para tela de login em caso de sessão expirada
  • Mantenha logs detalhados para análise de incidentes

Exemplos de Deployment

Docker Compose para Produção

version: '3.8'
services:
  n8n:
    image: n8nio/n8n
    environment:
      - N8N_HOST=n8n.suaempresa.com
      - N8N_PROTOCOL=https
      - N8N_PORT=5678
      - N8N_USER_MANAGEMENT_DISABLED=false
      - N8N_RBAC_ENABLED=true
      - N8N_SAML_ENABLED=true
      - N8N_SAML_ISSUER=https://sso.suaempresa.com
      - N8N_SAML_ENTRY_POINT=https://sso.suaempresa.com/sso
      - N8N_SAML_CERT=/path/to/certificate.pem
    volumes:
      - n8n_data:/home/node/.n8n
    ports:
      - "5678:5678"
    restart: always
    depends_on:
      - postgres

  postgres:
    image: postgres:15
    environment:
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=SUA_SENHA_FORTE_AQUI
      - POSTGRES_DB=n8n
    volumes:
      - pg_data:/var/lib/postgresql/data

volumes:
  n8n_data:
  pg_data:

Proxy Reverso com Nginx

server {
    listen 443 ssl http2;
    server_name n8n.suaempresa.com;

    ssl_certificate /etc/letsencrypt/live/n8n.suaempresa.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/n8n.suaempresa.com/privkey.pem;

    # Headers de segurança para embed
    add_header X-Frame-Options "ALLOW-FROM https://app.suaempresa.com" always;
    add_header Content-Security-Policy "frame-ancestors 'self' https://app.suaempresa.com" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    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;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

CI/CD para Automação de Deployment

Use GitHub Actions, GitLab CI ou outra ferramenta para automatizar build e deploy.

Exemplo de job para deploy automático:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Deploy para servidor
        run: |
          docker-compose pull
          docker-compose up -d

Checklist de Produção

  • HTTPS obrigatório e certificado válido
  • Domínios permitidos configurados (CORS e CSP)
  • SSO e autenticação integrados
  • Permissões e RBAC revisados
  • Monitoramento e alertas ativos
  • Mensagens de erro amigáveis e logs detalhados
  • Backup e restore testados
  • CI/CD automatizado para deploy

Dica Pro

Automatize o deploy do embed com CI/CD e monitore o uso do iframe para identificar gargalos de performance.

Importante

Nunca exponha o n8n embed sem HTTPS e sem restrição de domínios. Teste todos os fluxos de autenticação e fallback antes de liberar para produção.