n8nen.nl logo n8nen.nl

n8n 2.0 Upgrade Gids: Complete migratie handleiding voor Nederlandse bedrijven

2026-02-12 n8nen
n8n 2.0 Upgrade Gids: Complete migratie handleiding voor Nederlandse bedrijven

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:

  1. Installeer n8n 2.0 op test server
  2. Importeer backup workflows
  3. Test elke workflow kritisch
  4. 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:

  1. Ga naar Credentials → Add Credential
  2. Kies type (Header Auth, Query Auth, etc.)
  3. Voeg variabelen toe als credential fields
  4. 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:

  1. Start n8n - controleer op errors in logs
  2. Login - verifieer authentication
  3. Check workflows - alle workflows aanwezig?
  4. Test executions - run test executions voor kritieke workflows
  5. Check credentials - alle credentials nog werken?
  6. 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:

  1. Converteer naar n8n credentials (aanbevolen)
  2. Of whitelist specifieke variables: N8N_RESTRICT_ENV_VARS_TO_ACCESS=var1,var2

Issue 2: ExecuteCommand node disabled

Error: Node "ExecuteCommand" is disabled

Oplossing:

  1. Vervang met native n8n nodes (HTTP Request, AWS nodes, etc.)
  2. 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:

  1. Open workflow
  2. Test in draft mode
  3. 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.

#n8n #upgrade #migratie #security #2.0 #breaking changes #enterprise