Temari N8N - Unitat 1
Introducció a N8N
Unitat 1: Introducció a N8N
1.1. Què és N8N?
Concepte d'automatització de workflows
L'automatització de workflows (fluxos de treball) és el procés de dissenyar i executar seqüències d'accions predefinides que es realitzen automàticament sense intervenció humana. En l'àmbit de Big Data, això és especialment rellevant perquè permet:
- Reduir errors humans: Les tasques repetitives són propenses a errors quan es fan manualment
- Augmentar l'eficiència: Processos que trigaven hores es poden completar en minuts
- Escalabilitat: Un workflow ben dissenyat pot processar 10 registres o 10 milions amb la mateixa facilitat
- Consistència: Les mateixes regles s'apliquen sempre de la mateixa manera
- Alliberament de recursos: Els professionals poden dedicar-se a tasques de més valor
Exemples pràctics d'automatització: - Extreure dades d'una API cada hora i desar-les a una base de dades - Processar fitxers CSV rebuts per email i generar informes - Sincronitzar dades entre diferents sistemes (CRM, ERP, eines d'analítica) - Enviar alertes quan es detecten anomalies en dades en temps real
N8N com a plataforma d'automatització visual
N8N (pronunciat "n-eight-n", provinent de "nodemation" = node + automation) és una plataforma d'automatització de workflows que combina:
1. Editor visual (No-code/Low-code) - Interfície de drag-and-drop on arrossegues i connectes "nodes" - Cada node representa una acció o una integració amb un servei - Les connexions entre nodes defineixen el flux de dades - Pots veure els resultats de cada pas en temps real
2. Flexibilitat amb codi (Code) - Permet injectar codi JavaScript o Python quan la configuració visual no és suficient - Ideal per a transformacions complexes de dades - Accés complet a llibreries npm i Python - Combina el millor dels dos mons: rapidesa visual + potència del codi
3. Orientació a desenvolupadors i data engineers - Dissenyat pensant en professionals tècnics - Suport per a Git, CI/CD, ambients separats - API REST completa per a gestió programàtica - Capacitat de self-hosting amb control total
Arquitectura bàsica:
Per exemple, un pipeline simple seria:
[Schedule: cada hora] → [HTTP Request: API] → [Function: processar JSON] → [PostgreSQL: INSERT] → [Slack: notificar]
Diferències entre N8N i altres eines
N8N vs Zapier:
| Aspecte | N8N | Zapier |
|---|---|---|
| Model | Fair-code, self-hosted | SaaS tancat |
| Preu | Gratuït (self-hosted), Cloud amb preu/execució | Per "Zaps" i execucions |
| Control | Total sobre infraestructura i dades | Dades al núvol de Zapier |
| Codi personalitzat | JavaScript i Python natives | Limitat |
| Complexitat | Workflows molt complexos amb branching | Millor per a automatitzacions simples |
| Corba d'aprenentatge | Mitjana-alta | Baixa |
N8N vs Make (Integromat):
| Aspecte | N8N | Make |
|---|---|---|
| Editor visual | Node-based | Visual però diferent paradigma |
| Hosting | Self-hosted o cloud | Només cloud |
| Integracions | +400, més HTTP Request genèric | +1500 apps |
| Codi personalitzat | Molt integrat | Més limitat |
| Preu | Més econòmic en self-hosted | Per operacions |
N8N vs Apache Airflow:
| Aspecte | N8N | Airflow |
|---|---|---|
| Enfocament | General purpose automation | Orquestració de data pipelines |
| Configuració | Visual + codi | Només codi (Python DAGs) |
| Facilitat d'ús | Més accessible | Requereix coneixements avançats |
| Integració IA | Nativa i fàcil | Requereix desenvolupament |
| Escalabilitat | Bona (fins a 220 exec/seg) | Excel·lent per a big data massiu |
| Best for | SMB a enterprise, prototipatge ràpid | Enterprise, data engineering complex |
Quan utilitzar N8N: - Necessites automatitzar processos entre múltiples aplicacions - Vols control sobre la infraestructura (compliance, GDPR) - El teu equip té coneixements tècnics però vol rapidesa - Necessites integrar IA en els teus workflows - Vols prototipatge ràpid de pipelines de dades
Quan NO utilitzar N8N: - Processament de petabytes de dades (millor Spark, Airflow) - Streaming de dades massiu en temps real (millor Kafka, Flink) - Només necessites automatitzacions molt simples (millor Zapier)
Fair-code license: avantatges del codi obert
N8N utilitza una llicència "fair-code" (Apache 2.0 amb Commons Clause), que és un híbrid entre open-source i propietari:
Què pots fer: - ✅ Veure tot el codi font a GitHub - ✅ Self-hostejar gratuïtament sense límits - ✅ Modificar el codi per a ús intern - ✅ Contribuir amb millores a la comunitat - ✅ Usar comercialment dins la teva organització
Què NO pots fer: - ❌ Vendre N8N com a servei (crear un competidor de N8N Cloud) - ❌ Crear un producte comercial basat en N8N
Avantatges per a usuaris:
- Transparència: Pots auditar el codi per seguretat
- No vendor lock-in: Sempre pots migrar les teves dades
- Comunitat activa: +200.000 usuaris contribuint
- Evolució ràpida: Updates constants amb noves funcionalitats
- Confiança: No desapareixerà si l'empresa té problemes
- Customització: Pots crear els teus propis nodes
Comparativa de models:
Tancat (Zapier) ───────────── Fair-code (N8N) ───────────── Open-source pur (Apache)
│ │ │
No pots veure codi Pots veure i modificar Tot és lliure
Depens del vendor Certa autonomia Autonomia total
Menys control Control mitjà-alt Control absolut
Casos d'ús en el context de Big Data
1. Pipelines ETL/ELT
N8N excel·leix en la creació de pipelines Extract-Transform-Load:
Exemple 1: Agregació de dades de múltiples APIs
[Schedule: diari 2AM]
↓
[HTTP: API Vendes] ──┐
[HTTP: API Inventari] ┼→ [Function: merge i clean] → [PostgreSQL: staging] → [DBT: transformacions] → [BigQuery: DWH]
[HTTP: API Clients] ──┘
Exemple 2: Streaming de dades IoT
[Webhook: sensors] → [Validate] → [IF: anomalia?] ──Yes→ [Slack: alerta]
↓
No
↓
[TimescaleDB: insert] → [Aggregate cada 5min] → [Grafana API]
2. Data Quality i Monitoring
Exemple: Sistema de qualitat de dades
[Schedule: cada hora]
↓
[PostgreSQL: count nulls] ──┐
[PostgreSQL: check dupes] ──┼→ [Function: data quality score] → [IF: score < 90%] → [PagerDuty: incident]
[PostgreSQL: check ranges] ─┘ ↓
[Log a DB]
3. Machine Learning Operations (MLOps)
Exemple: Pipeline de reentrenament de model
[Schedule: setmanal]
↓
[S3: fetch new data] → [Python: preprocess] → [SageMaker: train] → [IF: accuracy > threshold]
↓
Deploy
↓
[Update model registry] → [Slack: notify team]
4. Real-time Analytics
Exemple: Dashboard en temps real de vendes
[Webhook: nova venda]
↓
[Enrich amb dades client] → [PostgreSQL: insert] → [Redis: update cache] → [Pusher: notify dashboard]
↓
[Check: venda gran?] → [Slack: notificar equip comercial]
5. Data Integration i Sincronització
Exemple: Sincronitzar CRM amb Data Warehouse
[Schedule: cada 15 min]
↓
[Salesforce: get modified records] → [Transform: map fields] → [Snowflake: MERGE] → [dbt Cloud: trigger refresh]
6. Automatització de Reports
Exemple: Report diari de mètriques
[Schedule: diari 8AM]
↓
[BigQuery: query KPIs] → [Function: format data] → [Google Sheets: update] → [SendGrid: email to stakeholders]
↓
[Slack: post to #metrics]
Avantatges específics per a Big Data:
- Prototipatge ràpid: Pots provar idees de pipelines en minuts
- Cost-efectiu: Self-hosting gratuït vs eines empresarials cares
- Flexibilitat: Des de MB fins a GB de dades (amb optimitzacions)
- Integració fàcil: +400 connectors predefinits
- Debugging visual: Veus exactament què passa a cada pas
- Orquestració simple: No necessites Airflow per a molts casos
Limitacions a considerar:
- No és per a streaming massiu: Millor Kafka/Flink per a milions d'events/seg
- Transformacions in-memory: Dades molt grans (>1GB) poden tenir problemes
- No substitueix un data warehouse: És per a orquestració, no emmagatzematge
- Escalabilitat té límits: OK per a SMB/mid-market, enterprise massiu pot necessitar altres eines
1.2. Arquitectura de N8N
Components principals
L'arquitectura de N8N està dissenyada per ser modular i escalable. Aquests són els components clau:
1. Editor (Frontend) - Aplicació web Vue.js - Interfície de drag-and-drop - Permet crear i editar workflows visualment - Mostra resultats en temps real - S'executa al navegador de l'usuari
2. Server (Backend) - Node.js + TypeScript - Gestiona l'execució de workflows - API REST per a operacions CRUD - Gestiona autenticació i autorització - Coordina l'execució dels nodes
3. Executor - Component que executa els workflows - Pot córrer en diferents modes (main, queue, webhook) - Gestiona el flux de dades entre nodes - Implementa retry logic i error handling
4. Database - Emmagatzema workflows, executions, credencials - Suporta: SQLite (dev), PostgreSQL, MySQL, MariaDB - Credencials encriptades amb clau mestra - Historial d'execucions amb TTL configurable
5. File Storage - Emmagatzema fitxers binaris - Per defecte: sistema de fitxers local - Pot configurar-se S3, Google Cloud Storage, etc.
Diagrama d'arquitectura bàsica:
┌─────────────────────────────────────────┐
│ User Browser │
│ ┌───────────────────────────────────┐ │
│ │ N8N Editor (Vue.js) │ │
│ └───────────────────────────────────┘ │
└──────────────┬──────────────────────────┘
│ HTTPS/WSS
↓
┌──────────────────────────────────────────┐
│ N8N Server (Node.js) │
│ ┌────────────┐ ┌──────────────────┐ │
│ │ API │ │ Workflow Engine │ │
│ │ REST/WS │ │ Executor │ │
│ └────────────┘ └──────────────────┘ │
│ ↓ ↓ │
│ ┌────────────┐ ┌──────────────────┐ │
│ │ Auth/ACL │ │ Node Registry │ │
│ └────────────┘ └──────────────────┘ │
└───────┬────────────────────┬─────────────┘
↓ ↓
┌───────────────┐ ┌──────────────┐
│ Database │ │ File Storage │
│ PostgreSQL │ │ /uploads │
└───────────────┘ └──────────────┘
Nodos (nodes) i connexions
Els nodes són els blocs de construcció fonamentals de N8N. Cada node representa una acció específica o una integració amb un servei.
Tipus de nodes:
1. Trigger Nodes (Inicien el workflow)
Manual Trigger → Execució manual pel usuari
Schedule Trigger → Execució temporitzada (cron)
Webhook Trigger → Rep peticions HTTP externes
Email Trigger → Detecta emails nous (IMAP)
2. Action Nodes (Realitzen accions)
HTTP Request → Crida a APIs REST
PostgreSQL → Operacions amb base de dades
Send Email → Envia correus
Slack → Envia missatges a Slack
Google Sheets → Llegeix/escriu a fulls de càlcul
3. Logic Nodes (Control de flux)
IF → Condicional (si/no)
Switch → Múltiples condicions
Merge → Combina fluxos
Split In Batches → Divideix en lots
Loop → Iteracions
4. Transform Nodes (Transformació de dades)
Set → Estableix valors
Function → JavaScript personalitzat
Code → JavaScript o Python
Move → Reorganitza dades
Aggregate → Agrupa i suma
Connexions entre nodes:
Les connexions defineixen com flueixen les dades:
Tipus de connexions:
- Main connection (connexió principal)
- Passa totes les dades d'un node a l'altre
-
Representada amb línia sòlida
-
Multiple outputs (sortides múltiples)
-
Multiple inputs (múltiples entrades)
Exemple pràctic de workflow:
[Manual Trigger]
↓
[HTTP Request: GET https://api.github.com/users/torvalds]
↓
[Set Node]
name = {{ $json.login }}
repos = {{ $json.public_repos }}
↓
[Function Node]
// Calcula una mètrica
return [{
json: {
...items[0].json,
repo_quality_score: items[0].json.public_repos / 10
}
}];
↓
[PostgreSQL: INSERT]
table: github_users
↓
[Slack: Post message]
channel: #data-updates
text: "Nou usuari processat: {{ $json.name }}"
Flux de dades en format JSON
Totes les dades a N8N es passen entre nodes en format JSON. Això proporciona:
- Uniformitat: Tots els nodes parlen el mateix "idioma"
- Flexibilitat: JSON pot representar estructures complexes
- Interoperabilitat: Fàcil integració amb APIs modernes
Estructura de dades:
Cada node rep i retorna un array d'items, on cada item té aquesta estructura:
[
{
json: {
// Les teves dades aquí
name: "Joan",
age: 30,
city: "Barcelona"
},
binary: {
// Fitxers binaris opcionals (imatges, PDFs, etc.)
data: Buffer,
mimeType: "image/png",
fileName: "photo.png"
},
pairedItem: {
// Metadata per tracking
item: 0
}
},
{
json: {
name: "Maria",
age: 25,
city: "Girona"
}
}
]
Per què un array?
Perquè un node pot processar múltiples registres alhora:
[HTTP Request] → Retorna 100 usuaris
↓
[Function] → Processa tots 100 usuaris
↓
[PostgreSQL] → Insereix els 100 registres
Accés a dades amb expressions:
N8N utilitza expressions per accedir a dades dels nodes anteriors:
// Dades del node actual
{{ $json.name }}
// Dades d'un node específic
{{ $node["HTTP Request"].json.users[0].email }}
// Funcions integrades
{{ $now }} // Timestamp actual
{{ $today }} // Data actual
{{ $json.price * 1.21 }} // Operacions matemàtiques
{{ $json.name.toLowerCase() }} // Funcions de string
Exemple de transformació:
Node d'entrada (HTTP Request):
{
"json": {
"id": 1,
"first_name": "Joan",
"last_name": "Garcia",
"email": "joan@example.com",
"salary": 50000
}
}
Set Node transforma a:
full_name = {{ $json.first_name }} {{ $json.last_name }}
email_domain = {{ $json.email.split('@')[1] }}
annual_cost = {{ $json.salary * 1.35 }} // Amb impostos
Output:
Modes d'execució
N8N pot executar-se en diferents modes segons les necessitats:
1. Main Mode (Mode principal)
- Ús: Desenvolupament, proves, projectes petits
- Característiques:
- Tot en un sol procés
- Fàcil de configurar
- Workflow s'executa al mateix procés que l'editor
- Limitacions:
- No escala horitzontalm ent
- Si el procés mor, tot s'atura
- Quan usar-lo: <1000 execucions/dia
2. Queue Mode (Mode amb cua)
┌─────────────┐ ┌──────────────┐
│ N8N Main │────>│ Redis Queue │
│ (Editor) │ └──────┬───────┘
└─────────────┘ │
↓
┌────────────────────────┐
│ N8N Workers (x3) │
│ ┌──────┐ ┌──────┐ │
│ │Worker│ │Worker│ │
│ │ 1 │ │ 2 │ │
│ └──────┘ └──────┘ │
└────────────────────────┘
- Ús: Producció, alta càrrega
- Característiques:
- Main process gestiona editor i reb workflows
- Redis com a cua de missatges
- Workers executen workflows en paral·lel
- Pot escalar afegint més workers
- Avantatges:
- Alta disponibilitat
- Escalabilitat horitzontal
- Isolation: si un worker peta, altres continuen
- Quan usar-lo: >1000 execucions/dia, producció crítica
Configuració Queue Mode:
# docker-compose.yml
services:
redis:
image: redis:7
n8n-main:
image: n8nio/n8n
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
ports:
- "5678:5678"
n8n-worker-1:
image: n8nio/n8n
command: worker
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
n8n-worker-2:
image: n8nio/n8n
command: worker
environment:
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
3. Webhook Mode
- Els workflows amb webhook trigger estan sempre escoltant
- Responen immediatament a peticions HTTP
- No depenen de cron ni execucions manuals
Escalabilitat i rendiment
Capacitat de N8N:
- Single instance: fins a 220 execucions/segon
- Queue mode: pràcticament il·limitat (afegeix workers)
- Concurrent executions: configurable (default: 10)
Factors que afecten el rendiment:
-
Complexitat del workflow
-
Operacions externes
- API calls: 100-1000ms segons latència
- Database queries: 10-100ms
-
File I/O: 50-500ms
-
Volum de dades
Optimitzacions:
1. Batch Processing
[Source: 10,000 items]
↓
[Split In Batches: 100 items per batch]
↓
[Process batch]
↓
[Loop until done]
2. Parallel Execution
3. Caching
[Check Redis cache]
↓
¿Hit?
├─ Yes → Return cached
└─ No → [Fetch from API] → [Cache in Redis] → Return
Mètriques de monitoratge:
- Execution time: temps total del workflow
- Node execution time: temps per node
- Success rate: % d'execucions exitoses
- Error rate: % d'execucions amb errors
- Queue depth: workflows pendents (queue mode)
- Worker utilization: % d'us dels workers
1.3. Opcions de desplegament
N8N Cloud (SaaS)
Què és: - Servei gestionat per n8n.io - No necessites gestionar infraestructura - Sempre actualitzat amb l'última versió
Característiques:
┌─────────────────────────────┐
│ n8n.io Infrastructure │
│ │
│ ┌───────────────────────┐ │
│ │ Your N8N Instance │ │
│ │ - Editor │ │
│ │ - Workflows │ │
│ │ - Executions │ │
│ └───────────────────────┘ │
│ │
│ Managed by n8n.io: │
│ - Updates │
│ - Backups │
│ - Security │
│ - Scaling │
└─────────────────────────────┘
Avantatges: - ✅ Setup en 5 minuts - ✅ Manteniment zero - ✅ Backups automàtics - ✅ SSL/HTTPS inclòs - ✅ Uptime garantit - ✅ Suport oficial
Desavantatges: - ❌ Cost recurrent per execució - ❌ Dades al núvol (pot ser problema amb GDPR) - ❌ Menys control sobre infraestructura - ❌ Depens de la disponibilitat de n8n.io
Plans i preus (2026):
Starter: Gratuït - 100 execucions/dia
Pro: $20/mes - 5,000 execucions/mes
Business: $50/mes - 25,000 execucions/mes
Enterprise: Custom - Il·limitat
Quan usar N8N Cloud: - Projectes petits/mitjans - No tens equip DevOps - Prioritzes rapidesa sobre control - No tens requisits estrictes de compliance
Self-hosted (Docker, Kubernetes)
Què és: - Instal·les i gestiones N8N a la teva infraestructura - Control total sobre dades i configuració - Gratuït (només pagues infraestructura)
Opcions d'instal·lació:
1. Docker (més simple)
# Single container
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
2. Docker Compose (recomanat)
version: '3.8'
services:
postgres:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: secret
n8n:
image: n8nio/n8n
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- N8N_ENCRYPTION_KEY=your-encryption-key
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
volumes:
postgres_data:
n8n_data:
3. Kubernetes (producció enterprise)
apiVersion: apps/v1
kind: Deployment
metadata:
name: n8n
spec:
replicas: 3
selector:
matchLabels:
app: n8n
template:
metadata:
labels:
app: n8n
spec:
containers:
- name: n8n
image: n8nio/n8n:latest
ports:
- containerPort: 5678
env:
- name: EXECUTIONS_MODE
value: "queue"
- name: QUEUE_BULL_REDIS_HOST
value: "redis-service"
---
apiVersion: v1
kind: Service
metadata:
name: n8n-service
spec:
selector:
app: n8n
ports:
- port: 80
targetPort: 5678
type: LoadBalancer
Arquitectura self-hosted recomanada:
Internet
↓
[CloudFlare]
↓
[Nginx/Traefik]
SSL termination
↓
┌────────────┴────────────┐
↓ ↓
[N8N Main] [N8N Workers x3]
↓ ↓
[Redis Queue] ←───────────────┘
↓
[PostgreSQL]
↓
[S3 / Object Storage]
Avantatges: - ✅ Cost fix (infraestructura) - ✅ Control total de dades - ✅ Compliance més fàcil (GDPR, etc.) - ✅ Personalització sense límits - ✅ No vendor lock-in
Desavantatges: - ❌ Requires gestió i manteniment - ❌ Tu fas les actualitzacions - ❌ Necessites expertise DevOps - ❌ Tu gestiones backups i seguretat
Quan usar Self-hosted: - Dades sensibles (sanitat, finances) - Requisits de compliance estrictes - Gran volum d'execucions (>100k/mes) - Vols control total - Tens equip DevOps
Avantatges del desplegament on-premise
1. Seguretat i Control de Dades
┌──────────────────────────────┐
│ Your Private Network │
│ │
│ ┌────────────────────────┐ │
│ │ N8N Instance │ │
│ │ ├── Workflows │ │
│ │ ├── Credentials │ │
│ │ └── Execution Data │ │
│ └────────────────────────┘ │
│ ↓ │
│ ┌────────────────────────┐ │
│ │ Your Databases │ │
│ │ - PostgreSQL │ │
│ │ - MongoDB │ │
│ └────────────────────────┘ │
│ │
│ Everything stays inside │
│ your infrastructure │
└──────────────────────────────┘
Beneficis: - Dades mai surten de la teva xarxa - Pots auditar tot el codi - Compleix amb requisits air-gapped - Control d'encriptació
2. Compliance i Regulació
Per sectors regulats (sanitat, finances, govern):
GDPR (Europa): - Data residency garantida - Right to deletion implementable - Data processing agreements no necessaris amb tercers
HIPAA (Sanitat USA): - PHI (Protected Health Information) no surt de la teva xarxa - Audit logs complets - Encriptació end-to-end
Exemple: Pipeline de dades mèdiques
[Hospital EHR] → [N8N self-hosted] → [Private Data Warehouse]
↓
[Local AI models]
↓
[Encrypted Backup]
3. Cost-efectivitat a escala
Comparativa de costos (100,000 execucions/mes):
N8N Cloud:
~$200-500/mes (segons pla)
Self-hosted:
Server VPS: $50/mes (Hetzner, OVH)
o
AWS t3.large: ~$60/mes
PostgreSQL: inclòs
Storage: ~$10/mes
Total: ~$70/mes
Estalvi: ~65-85%
A més gran escala, més estalvi:
4. Personalització sense límits
// Pots crear custom nodes
class MyCustomNode implements INodeType {
description: INodeTypeDescription = {
displayName: 'My Company Integration',
name: 'myCompanyNode',
// ... teva lògica
};
async execute(this: IExecuteFunctions) {
// Lògica personalitzada per integració interna
}
}
5. Integració amb sistemes interns
┌──────────────────────────────────┐
│ Your Corporate Network │
│ │
│ [N8N] ← → [Internal CRM] │
│ ↕ │
│ [Legacy System] │
│ ↕ │
│ [Private API] │
│ ↕ │
│ [On-premise Database] │
│ │
│ No need to expose anything │
│ to the internet! │
└──────────────────────────────────┘
Consideracions de seguretat i compliance
1. Seguretat de la xarxa
Best practices: - ✅ N8N darrera VPN - ✅ Whitelist d'IPs - ✅ SSL/TLS obligatori - ✅ Rate limiting - ✅ DDoS protection
2. Autenticació i Autorització
Opcions: 1. Basic Auth (simple) 2. LDAP/Active Directory (enterprise) 3. SAML SSO (enterprise) 4. OAuth2
Exemple LDAP:
environment:
- N8N_AUTH_TYPE=ldap
- N8N_AUTH_LDAP_URI=ldap://ldap.company.com
- N8N_AUTH_LDAP_BASE_DN=dc=company,dc=com
RBAC (Role-Based Access Control):
Admin → Pot tot
Editor → Pot crear/editar workflows
Viewer → Només pot veure workflows
Executor → Només pot executar workflows
3. Encriptació
En trànsit:
En repòs:
environment:
# Encryption key per credencials
- N8N_ENCRYPTION_KEY=your-256-bit-key
# Database encryption
- DB_POSTGRESDB_SSL_CA=/path/to/ca.crt
- DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED=true
4. Auditoria i Logs
Què auditar: - Qui crea/modifica workflows - Qui executa workflows - Accessos a credencials - Canvis en configuració - Errors i excepcions
Configuració:
environment:
# Log level
- N8N_LOG_LEVEL=info
# Log streaming (opcional)
- N8N_LOG_OUTPUT=console,file
- N8N_LOG_FILE_LOCATION=/var/log/n8n/
Integració amb SIEM:
5. Backup i Disaster Recovery
Què fer backup: 1. Database (workflows, credentials, executions) 2. File storage (binary files) 3. Configuration files 4. Custom nodes (si n'has creat)
Estratègia 3-2-1: - 3 còpies de les dades - 2 tipus de mitjans diferents - 1 còpia off-site
Exemple script backup:
#!/bin/bash
# Backup N8N
# 1. Backup database
docker exec n8n-postgres pg_dump -U n8n n8n > backup_$(date +%Y%m%d).sql
# 2. Backup files
docker cp n8n:/home/node/.n8n ./backup_n8n_data/
# 3. Encrypt
gpg --encrypt --recipient admin@company.com backup_$(date +%Y%m%d).sql
# 4. Upload to S3
aws s3 cp backup_$(date +%Y%m%d).sql.gpg s3://company-backups/n8n/
# 5. Cleanup old backups (keep 30 days)
find ./backups -name "*.sql.gpg" -mtime +30 -delete
Recovery Time Objective (RTO): - Cloud: ~5 minuts (failover automàtic) - Self-hosted: ~30 minuts (restore manual)
Recovery Point Objective (RPO): - Continuous: Real-time replication - Daily: Backups diaris (màx 24h de pèrdua)
6. Compliance Checklist
GDPR: - ✅ Data residency (EU servers) - ✅ Encryption at rest and in transit - ✅ Right to deletion implemented - ✅ Audit logs - ✅ Data processing agreement (si cloud)
ISO 27001: - ✅ Access control - ✅ Incident management - ✅ Risk assessment - ✅ Security policies documented
SOC 2: - ✅ Monitoring and alerting - ✅ Change management - ✅ Vendor management - ✅ Penetration testing
Resum Unitat 1:
En aquesta unitat hem cobert: 1. Què és N8N i per què és útil per Big Data 2. Com es compara amb altres eines del mercat 3. L'arquitectura interna i com funciona 4. Les opcions de desplegament (Cloud vs Self-hosted) 5. Consideracions crítiques de seguretat i compliance
Conceptes clau: - N8N combina automatització visual amb potència de codi - Fair-code license ofereix transparència i control - Modes d'execució (main vs queue) per escalar - Self-hosted dóna control total sobre dades - Seguretat i compliance són crítics en Big Data
Pròxims passos: A la Unitat 2 veurem com instal·lar N8N pas a pas i configurar-lo per començar a treballar.