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.