Waarom upgraden naar n8n 2.0?
n8n 2.0, uitgebracht in december 2025, is een major release die n8n transformeert naar een enterprise-grade automatiseringsplatform. De belangrijkste focus: security by default.
Deze versie introduceert fundamentele veranderingen in hoe workflows worden beheerd, uitgevoerd en beveiligd. Voor Nederlandse bedrijven die serieus nemen maken van automatisering en compliance, is deze upgrade essentieel.
⚠️ Belangrijk: Breaking changes
n8n 2.0 bevat breaking changes. Lees deze gids volledig door voordat je upgradeert. Plan je migratie zorgvuldig om downtime te minimaliseren.
Top 5 nieuwe features in n8n 2.0
1. Save vs Publish Paradigm
De meest zichtbare verandering: workflows hebben nu twee statussen.
| Actie | Wat gebeurt er? | Impact op productie |
|---|---|---|
| Save | Wijzigingen opslaan | Geen - productie blijft ongewijzigd |
| Publish | Wijzigingen live zetten | Direct actief in productie |
Voordelen:
- Veiliger ontwikkelen - test zonder productie te beïnvloeden
- Betere collaboration - meerdere mensen kunnen bewerken
- Explicit deployment - bewuste keuze om live te gaan
- Undo mogelijk - ongedaan maken voordat gepubliceerd
2. Task Runners (Secure Execution)
Code node uitvoeringen draaien nu standaard in geïsoleerde omgevingen (task runners) in plaats van direct in het n8n proces.
Security voordelen:
- Geen toegang tot omgevingsvariabelen (by default)
- Geen toegang tot bestandssysteem
- Geen toegang tot interne n8n API's
- Betere resource isolatie
3. Blocked Environment Variables
Omgevingsvariabelen zijn standaard niet meer toegankelijk vanuit Code nodes, tenzij expliciet toegestaan.
Voorheen (n8n 1.x):
// Code node - werkte in 1.x
const apiKey = $env.MY_API_KEY;
const dbPassword = $env.DATABASE_PASSWORD;
Nu (n8n 2.0):
// Code node - werkt NIET meer by default
const apiKey = $env.MY_API_KEY; // Error: Access denied
// Oplossing: Gebruik n8n credentials
// OF configureer allowed variables in n8n settings
4. Disabled Nodes (Security Hardening)
De volgende nodes zijn standaard uitgeschakeld voor security redenen:
- ExecuteCommand node: Voorkomt willekeurige commando uitvoering
- LocalFileTrigger node: Voorkomt bestandssysteem toegang
Herinschakelen: Alleen mogelijk via environment variabelen bij self-hosted installs.
5. In-memory Binary Data Mode Removed
Binary data (bestanden, afbeeldingen) wordt nu altijd opgeslagen in externe storage, nooit meer in geheugen.
Voordelen:
- Minder geheugengebruik
- Betere performance bij grote bestanden
- Schaalbaarder
Migratie stappenplan
Stap 1: Pre-upgrade analyse
Gebruik de Migration Report Tool om te identificeren wat er moet veranderen:
# Self-hosted - run migratie tool
npx n8n-migration-report
# Of via n8n CLI
n8n migration:report
De tool genereert een rapport met:
- Aantal workflows met Code nodes
- Gebruik van environment variabelen
- ExecuteCommand node usage
- LocalFileTrigger node usage
- Binary data handling
Stap 2: Backup maken
CRUCIAAL: Maak een volledige backup voordat je upgradeert.
n8n Cloud:
# Export alle workflows
n8n export:workflow --all --output=workflows-backup.json
# Export credentials (encrypted)
n8n export:credentials --all --output=credentials-backup.json
Self-hosted (SQLite):
# Backup database
cp ~/.n8n/database.sqlite ~/.n8n/database-backup-$(date +%Y%m%d).sqlite
# Backup complete n8n directory
tar -czf n8n-backup-$(date +%Y%m%d).tar.gz ~/.n8n/
Self-hosted (PostgreSQL/MySQL):
# PostgreSQL backup
pg_dump n8n_db > n8n-backup-$(date +%Y%m%d).sql
# MySQL backup
mysqldump n8n_db > n8n-backup-$(date +%Y%m%d).sql
Stap 3: Test omgeving opzetten
Test NOOIT direct in productie. Setup een staging omgeving:
- Installeer n8n 2.0 op test server
- Importeer backup workflows
- Test elke workflow kritisch
- Documenteer problemen en fixes
Stap 4: Code nodes aanpassen
Identificeer alle Code nodes die environment variabelen gebruiken:
# Zoek in alle workflows
grep -r "\$env" ~/.n8n/workflows/
Optie A: Gebruik n8n Credentials (aanbevolen)
Converteer environment variabelen naar n8n credentials:
- Ga naar Credentials → Add Credential
- Kies type (Header Auth, Query Auth, etc.)
- Voeg variabelen toe als credential fields
- Update Code node om credentials te gebruiken
// Oude methode
const apiKey = $env.MY_API_KEY;
// Nieuwe methode
const apiKey = $credentials.myApiCredential.apiKey;
Optie B: Whitelist environment variabelen
Voor self-hosted installs, configureer allowed variables:
# .env file of environment
N8N_BLOCK_ENV_ACCESS_IN_NODE=false
N8N_RESTRICT_ENV_VARS_TO_ACCESS=my_api_key,my_other_var
⚠️ Waarschuwing: Dit verlaagt de security. Alleen gebruiken als Optie A niet mogelijk is.
Stap 5: Disabled nodes vervangen
ExecuteCommand node vervangen
Vervang shell commando's met native n8n nodes:
| Oude methode | Nieuwe methode |
|---|---|
curl |
HTTP Request node |
jq |
Code node (JSON.parse) |
aws cli |
AWS nodes (S3, Lambda, etc.) |
mysql |
MySQL node |
Als ExecuteCommand echt nodig is:
# Self-hosted - herinschakelen
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=false
N8N_RESTRICT_FILE_ACCESS_TO=/tmp
# Docker
docker run -e N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=false n8nio/n8n
LocalFileTrigger node vervangen
Gebruik alternatieven:
- Webhook + externe service: Dropbox, Google Drive, S3 triggers
- Polling: Schedule Trigger + Read File from Disk
- Custom node: Community node voor file watching
Stap 6: Binary data storage configureren
n8n 2.0 vereist externe binary storage. Configureer een storage backend:
Optie A: Local filesystem (standaard)
# .env
N8N_BINARY_DATA_STORAGE_MODE=filesystem
N8N_BINARY_DATA_STORAGE_PATH=/var/n8n/binary-data
Optie B: AWS S3
# .env
N8N_BINARY_DATA_STORAGE_MODE=s3
N8N_BINARY_DATA_S3_BUCKET=my-n8n-bucket
N8N_BINARY_DATA_S3_REGION=eu-west-1
N8N_BINARY_DATA_S3_ACCESS_KEY=your-access-key
N8N_BINARY_DATA_S3_ACCESS_SECRET=your-secret-key
Optie C: Google Cloud Storage
# .env
N8N_BINARY_DATA_STORAGE_MODE=gcs
N8N_BINARY_DATA_GCS_BUCKET=my-n8n-bucket
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
Stap 7: Upgrade uitvoeren
Na alle voorbereidingen, voer de daadwerkelijke upgrade uit:
n8n Cloud:
Automatische upgrade - controleer Cloud admin dashboard voor beschikbaarheid.
Self-hosted (npm):
# Stop n8n
pm stop n8n
# Backup (nogmaals voor zekerheid)
cp -r ~/.n8n ~/.n8n-pre-upgrade-backup
# Upgrade
npm update -g n8n
# Start n8n
n8n start
Self-hosted (Docker):
# Stop container
docker stop n8n
# Pull nieuwe versie
docker pull n8nio/n8n:2
# Start met nieuwe versie
docker run -d --name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n:2
Stap 8: Post-upgrade verificatie
Na de upgrade, verifieer alles:
- Start n8n - controleer op errors in logs
- Login - verifieer authentication
- Check workflows - alle workflows aanwezig?
- Test executions - run test executions voor kritieke workflows
- Check credentials - alle credentials nog werken?
- Monitor performance - task runners werken correct?
Breaking changes overzicht
Code Node Changes
| Feature | n8n 1.x | n8n 2.0 |
|---|---|---|
| Environment variables | ✅ Volledige toegang | ❌ Blocked by default |
| File system access | ✅ Mogelijk | ❌ Blocked by default |
| Process spawning | ✅ Mogelijk | ❌ Blocked by default |
| Task runners | ❌ Niet beschikbaar | ✅ Standaard aan |
Node Changes
| Node | n8n 1.x | n8n 2.0 |
|---|---|---|
| ExecuteCommand | ✅ Beschikbaar | ⚠️ Disabled by default |
| LocalFileTrigger | ✅ Beschikbaar | ⚠️ Disabled by default |
| Read File from Disk | ✅ Mogelijk | ⚠️ Restricted by default |
Workflow Changes
| Concept | n8n 1.x | n8n 2.0 |
|---|---|---|
| Workflow status | Active/Inactive | Draft/Published |
| Opslaan | Direct live | Save = draft, Publish = live |
| Binary data | In-memory option | External storage only |
Common issues en oplossingen
Issue 1: Environment variable access denied
Error: Error: Access to process.env is not allowed
Oplossing:
- Converteer naar n8n credentials (aanbevolen)
- Of whitelist specifieke variables:
N8N_RESTRICT_ENV_VARS_TO_ACCESS=var1,var2
Issue 2: ExecuteCommand node disabled
Error: Node "ExecuteCommand" is disabled
Oplossing:
- Vervang met native n8n nodes (HTTP Request, AWS nodes, etc.)
- Of herinschakel:
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=false
Issue 3: Binary data mode error
Error: Binary data storage mode "default" is no longer supported
Oplossing:
Configureer externe storage:
N8N_BINARY_DATA_STORAGE_MODE=filesystem
# Of s3, gcs, azure-blob-storage
Issue 4: Workflows in draft mode
Probleem: Workflows werken niet na upgrade.
Oplossing: Na upgrade staan alle workflows in draft mode. Je moet ze expliciet publishen:
- Open workflow
- Test in draft mode
- Klik Publish om live te zetten
Performance verbeteringen
n8n 2.0 brengt significante performance verbeteringen:
- Task runners: Geïsoleerde uitvoering voorkomt resource conflicts
- Binary data: Externe storage vermindert geheugengebruik
- Database optimizations: Snellere queries en betere indexing
- Caching: Verbeterde caching voor credentials en workflows
Security best practices voor n8n 2.0
1. Gebruik credentials, geen environment variabelen
n8n credentials zijn veiliger omdat ze:
- Versleuteld worden opgeslagen
- Permissie-based sharing ondersteunen
- Audit trail hebben
- makkelijker te roteren zijn
2. Minimize file access
Gebruik alleen file access als absoluut nodig. Alternatieven:
- S3, Google Drive, Dropbox voor file storage
- Webhooks voor externe triggers
- HTTP requests voor API calls
3. Enable audit logging
Voor compliance, schakel audit logging in:
# .env
N8N_AUDIT_ENABLED=true
N8N_AUDIT_LOG_OUTPUT=file
N8N_AUDIT_LOG_FILE=/var/log/n8n/audit.log
4. Configureer RBAC (Enterprise)
Role-Based Access Control voor grotere teams:
- Admin: Volledige toegang
- Editor: Workflows bewerken, niet publishen
- Viewer: Alleen bekijken
- Custom roles: Granular permissions
Rollback plan
Mocht de upgrade misgaan, heb je een rollback nodig:
Self-hosted (npm):
# Stop n8n
npm stop n8n
# Restore backup
cp -r ~/.n8n-pre-upgrade-backup ~/.n8n
# Downgrade naar 1.x
npm install -g n8n@1
# Start
n8n start
Self-hosted (Docker):
# Stop container
docker stop n8n
# Restore backup
docker run --rm -v ~/.n8n:/data -v ~/.n8n-pre-upgrade-backup:/backup alpine ash -c "cp -a /backup/. /data/"
# Start met 1.x
docker run -d --name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n:1
Conclusie
De upgrade naar n8n 2.0 vereist planning en voorbereiding, maar de security en workflow management verbeteringen zijn het meer dan waard. Nederlandse bedrijven die serieus zijn over automatisering en compliance moeten deze upgrade serieus overwegen.
Key takeaways:
- Security by default: Veiliger standaard configuratie
- Save vs Publish: Veiliger workflow ontwikkeling
- Task runners: Geïsoleerde code uitvoering
- Migration tool: Identificeer breaking changes vooraf
- Backup is cruciaal: Altijd backup voor upgrade
Hulp nodig bij je migratie? Neem contact op via onze support of bekijk de officiële n8n 2.0 documentatie.