Hoe draai je n8n met Docker?

Hoe draai je n8n met Docker?

n8n met Docker installeren is een efficiënte manier om deze tool voor workflowautomatisering zelf te hosten. In plaats van n8n rechtstreeks op je virtual private server (VPS) te installeren, draait n8n in een geïsoleerde containeromgeving.

Daardoor kun je n8n-versies makkelijker upgraden of downgraden, je setup opschalen voor meer workflows en je n8n-instantie naar een andere server migreren.

In dit artikel leer je hoe je n8n installeert met Docker en Docker Compose. Met deze methode leg je de n8n-service, omgevingsvariabelen en afhankelijkheden, zoals een database, vast in één YAML-bestand.

Lees verder voor stapsgewijze instructies om je n8n-instantie met Docker te installeren, configureren, beveiligen en bij te werken.

n8n zelf hosten met Docker

Om n8n zelf te hosten met Docker, moet je eerst Docker en Docker Compose op je VPS installeren. Vervolgens moet je een Docker Compose-bestand maken om je n8n-service te configureren. Tot slot moet je de n8n-container starten met de opdracht docker compose up -d.

Daarna beveilig je je n8n-configuratie met SSL en een reverse proxy, pas je omgevingsvariabelen aan waar nodig en update je n8n zodra er nieuwe versies uitkomen.

In de volgende secties lees je meer over elke stap.

📚 Aanbevolen lectuur

Installeer je n8n liever rechtstreeks op je server, dan helpt onze handleiding voor n8n installeren op een VPS je verder.

1. Installeer Docker en Docker Compose

Controleer eerst of Docker op je server is ingesteld. Vanaf Docker v20.10.0 is Docker Compose standaard inbegrepen als plugin, dus je hoeft het niet apart te installeren.

Als je Docker VPS-hosting van Hostinger gebruikt, heb je geluk – Docker is al vooraf geïnstalleerd, dus je kunt deze stap helemaal overslaan.

Gebruikers met gewone Hostinger VPS-abonnementen kunnen Docker nog steeds installeren, via een vooraf geconfigureerde template of handmatig via de opdrachtregel.

Kies je voor de laatste optie, controleer dan de installatie door de volgende Linux-opdracht in je terminal uit te voeren:

docker -v

Hiermee zie je welke Docker-versie is geïnstalleerd, bijvoorbeeld:

2. Bereid de n8n-gegevensmap voor

Maak vervolgens mappen aan voor de data- en configuratiebestanden van n8n. Voer de onderstaande opdracht uit om de hoofdmap voor n8n te maken en ga ernaartoe:

mkdir ~/n8n && cd ~/n8n

Maak in de nieuw aangemaakte map een submap met de naam n8n_data om de blijvende gegevens van n8n op te slaan:

mkdir n8n_data

Stel het juiste eigenaarschap in voor de persistente gegevens, wat belangrijk is als je n8n met Docker gebruikt:

sudo chown -R 1000:1000 n8n_data

3. Maak een Docker Compose-bestand voor n8n

Nadat je mappen voor n8n hebt voorbereid, maak je een nieuw Docker Compose-bestand om de instellingen van n8n te configureren, omgevingsvariabelen te definiëren en de benodigde volumes op te geven.

Je doet dat met de nano-teksteditor:

sudo nano docker-compose.yml

Plak de volgende inhoud en vervang yourUser en yourPassword door de inloggegevens die jij wilt gebruiken:

services:

  n8n:

    image: n8nio/n8n

    ports:

      - "5678:5678"

    environment:

      - N8N_BASIC_AUTH_ACTIVE=true

      - N8N_BASIC_AUTH_USER=yourUser

      - N8N_BASIC_AUTH_PASSWORD=yourPassword

    volumes:

      - ./n8n_data:/home/node/.n8n

Sla daarna je wijzigingen op en sluit nano af door op Ctrl + XYEnter te drukken.

4. Start de n8n-container

Start nu de n8n-container met deze opdracht:

docker compose up -d

Je ziet het opstartproces van de container. Zodra alles klaar is, zie je regels zoals Created en Started, vergelijkbaar met de afbeelding hieronder:

Controleer of je n8n-container is gestart door het volgende adres in je browser te openen, waarbij je your_vps_ip vervangt door het IP-adres van je eigen VPS:

http://your_vps_ip:5678

Hostinger VPS-klanten vinden het IP-adres van hun server in hPanel via VPSBeherenOverzichtVPS-gegevens.

Als je bij het bezoeken van het adres een waarschuwing over een fout met beveiligde cookies ziet, zoals in de afbeelding hieronder, hoef je je geen zorgen te maken. Je n8n-instantie draait daadwerkelijk. De fout treedt op omdat SSL niet is ingesteld voor beveiligde verbindingen, maar dat pak je in de volgende stap aan.

5. Beveilig n8n met SSL en een NGINX-reverseproxy

Om veilig via HTTPS toegang te krijgen tot je n8n-instance, moet je een SSL-certificaat uitgeven en een reverse proxy configureren.

Installeer eerst de NGINX-webserver op je VPS:

sudo apt install nginx -y

Stop de NGINX-service direct tijdelijk:

sudo systemctl stop nginx

Installeer daarna Certbot om je SSL-certificaat te verkrijgen:

sudo apt install certbot -y

Download een losse SSL-certificaatversie van Certbot. Vervang yourdomain.tld door je eigen domeinnaam als je die naar je VPS hebt verwezen. Vraag anders een SSL-certificaat aan voor je hostnaam:

sudo certbot certonly --standalone -d yourdomain.tld

Je krijgt de vraag om een geldig e-mailadres in te voeren, akkoord te gaan met de servicevoorwaarden en je eventueel aan te melden voor promotionele e-mails.

Zodra je klaar bent, start je NGINX opnieuw:

sudo systemctl start nginx

Maak daarna een configuratiebestand om de reverse proxy met NGINX in te stellen:

sudo nano /etc/nginx/sites-available/n8n

Plak de onderstaande configuratiegegevens in het bestand. Vervang yourdomain.tld door je eigen domein of hostnaam.

server {

    listen 443 ssl;

    server_name yourdomain.tld;

    ssl_certificate /etc/letsencrypt/live/yourdomain.tld/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/yourdomain.tld/privkey.pem;

    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;

    }

}

server {

    listen 80;

    server_name yourdomain.tld;

    return 301 https://$host$request_uri;

}

Sla het bestand op, sluit de editor af en voer deze opdracht uit om de configuratie in te schakelen:

sudo ln -sf /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/n8n

Test de NGINX-configuratie op fouten:

sudo nginx -t

Laad de NGINX-service opnieuw om de wijzigingen toe te passen:

sudo systemctl reload nginx

6. Open je n8n-instance

Ga nu naar je n8n-instantie via het domein of de hostnaam die je eerder hebt ingesteld. Je ziet de registratiepagina voor het n8n-eigenaarsaccount, waar je je kunt registreren met de inloggegevens van jouw voorkeur.

Open daarna het n8n-dashboard en maak je eerste geautomatiseerde workflows. Bekijk ter inspiratie eens enkele n8n-workflowvoorbeelden.

Als je niet helemaal vanaf nul wilt beginnen, vind n8n-templates voor kant-en-klare oplossingen.

Vergeet niet om n8n-integraties te bekijken, zodat je ziet wat je kunt koppelen, welke tools je kunt gebruiken en wat de use cases voor elke integratie zijn.

7. Pas n8n-omgevingsvariabelen aan

Wanneer je je n8n-instantie beheert, moet je mogelijk omgevingsvariabelen aanpassen om databaseverbindingen in te stellen, authenticatie in te schakelen, services van derden te integreren of de beveiliging te verbeteren.

Ga hiervoor terug naar je terminal en bewerk je Docker Compose-bestand:

sudo nano docker-compose.yml

Voeg in de sectie Environment configuratie-instellingen toe voor je n8n-container of pas ze aan. Hier zijn enkele van de meest gebruikte variabelen:

  • N8N_ENCRYPTION_KEY – versleutelt inloggegevens in de database voor extra beveiliging.
- N8N_ENCRYPTION_KEY=yourStrongRandomString
  • N8N_HOST, N8N_PORT, N8N_PROTOCOL – zorgen ervoor dat n8n de juiste URL’s genereert, vooral achter een reverse proxy of wanneer je SSL gebruikt.
- N8N_HOST=yourdomain.tld

- N8N_PORT=5678

- N8N_PROTOCOL=https
  • WEBHOOK_URL – stelt de openbare URL voor webhooks in, wat belangrijk is als je HTTPS of een aangepast domein gebruikt.
- WEBHOOK_URL=https://youdomain.tld
  • DB_TYPE, DB_POSTGRESDB – laat je PostgreSQL gebruiken in plaats van de standaard SQLite voor betere prestaties en schaalbaarheid.
- DB_TYPE=postgresdb

- DB_POSTGRESDB_HOST=your_postgres_host

- DB_POSTGRESDB_PORT=5432

- DB_POSTGRESDB_DATABASE=your_database_name

- DB_POSTGRESDB_USER=your_db_user

- DB_POSTGRESDB_PASSWORD=your_db_password
  • TZ – stelt de tijdzone voor n8n in.
- TZ=UTC

Sla het bestand op zodra je de nodige wijzigingen hebt aangebracht.

Voer daarna de volgende Docker-opdracht uit om de n8n-container te stoppen:

docker compose down

Start de container opnieuw met de bijgewerkte omgevingsvariabelen:

docker compose up -d

💡 Pro tip

Als je alleen je n8n Docker-container opnieuw wilt opstarten zonder het Compose-bestand aan te passen, gebruik dan in plaats daarvan de opdracht docker compose restart.

8. Werk n8n bij naar de nieuwste versie

Werk n8n regelmatig bij naar de nieuwste versie om beveiligingsrisico’s zo klein mogelijk te houden en te profiteren van nieuwe functies en verbeteringen.

Werk eerst de update bij door de nieuwste n8n-image van Docker Hub op te halen:

docker pull n8nio/n8n

Start daarna de n8n-container opnieuw op met de bijgewerkte image:

docker compose up -d

Wat zijn de beste werkwijzen voor het beheren van n8n met Docker?

Hier zijn enkele best practices voor het beheren van n8n met Docker, waaronder een paar die al in deze tutorial zijn getoond:

  • Docker-volumes koppelen. Koppel een hostmap zoals./n8n_data:/home/node/.n8n om workflows, inloggegevens en uitvoeringsgegevens buiten de container op te slaan. Zo blijven je gegevens bewaard na updates, herstarts of het opnieuw aanmaken van containers.
  • Configureer omgevingsvariabelen. Stel in docker-compose.yml API-sleutels, webhookgeheimen, databasegegevens en andere gevoelige data in als omgevingsvariabelen. Zo blijven geheimen buiten workflows en broncode, wat de beveiliging verbetert en sleutelrotatie eenvoudiger maakt.
  • Beveilig de toegang. Schakel altijd basisauthenticatie in (N8N_BASIC_AUTH_ACTIVE=true) en gebruik sterke gebruikersnamen en wachtwoorden. Voor veilige communicatie zet je n8n achter een reverse proxy zoals NGINX met SSL, zodat alle gegevens, inclusief inloggegevens, versleuteld zijn en niet als platte tekst worden verstuurd.
  • Maak regelmatig back-ups. Maak regelmatig een back-up van de hostmap die is gekoppeld aan /home/node/.n8n, niet van het interne pad van de container. Gebruik voor een actieve container de opdracht hieronder:
docker cp n8n:/home/node/.n8n /path/to/backup/folder
  • Stel resourcelimieten in. Stel in je docker-compose.yml -bestand CPU- en geheugenlimieten in om te voorkomen dat n8n te veel van de resources van je VPS gebruikt. Bijvoorbeeld:
deploy:
  resources:
    limits:
      cpus: '1'
      memory: 1G
  • Controleer logs en prestaties. Voer docker compose logs n8n uit om de logs te bekijken en problemen op te lossen. Overweeg voor doorlopende monitoring een integratie met een systeem zoals de LGTM-stack om meldingen te krijgen als n8n niet beschikbaar is of niet goed werkt.

Waarom is Hostinger de beste manier om je n8n Docker-setup te hosten?

Docker maakt n8n zelf hosten eenvoudig en flexibel met een overdraagbare, consistente omgeving op verschillende systemen. Maar om alles 24/7 betrouwbaar te laten draaien, kun je niet op je eigen computer vertrouwen – je hebt een VPS nodig.

Een VPS draait continu, zodat je workflows actief blijven, ook als je computer uitstaat of niet is verbonden. Daarnaast kun je n8n veilig openen en beheren vanaf elke locatie, niet alleen binnen je lokale netwerk.

Docker VPS van Hostinger is een uitstekende keuze als je gecontaineriseerde apps zoals n8n zelf wilt hosten. Docker en alle vereiste onderdelen zijn al vooraf geïnstalleerd, zodat je n8n snel kunt implementeren zonder extra configuratie.

We hebben meerdere datacenters in verschillende regio’s, zodat je een server dichter bij jou kunt kiezen en de latentie minimaal blijft. Bovendien blijven je automatiseringsworkflows met Hostinger’s uptimegarantie van 99,9% dag en nacht betrouwbaar online.

Vanaf €5,49/maand bevatten onze Docker-VPS-abonnementen tot 8 vCPU-cores, 32 GB RAM en 400 GB NVMe-opslag. Je kunt klein beginnen en met een paar klikken upgraden naar een hoger abonnement als je automatiseringsbehoeften groeien.

Beveiliging heeft prioriteit, met automatische back-ups, geavanceerde DDoS-bescherming en een malwarescanner die je gegevens veilig houdt, aanvallen blokkeert en verstoringen van je n8n-setup voorkomt.

Wat doe je nadat je n8n zelf host met Docker?

Als je n8n zelf host met Docker, heb je volledige controle, flexibiliteit en schaalbaarheid voor je workflowautomatisering. Je draait zo een krachtige automatiseringstool op jouw voorwaarden – veilig, betrouwbaar en met ruimte om te groeien.

Terwijl je verdergaat met het opzetten en beheren van je n8n-configuratie, kun je hierna het volgende doen:

  • Ontdek ideeën voor automatisering. Ontdek wat je met n8n kunt automatiseren om inspiratie op te doen en repetitieve taken te stroomlijnen.
  • Schaal je n8n-setup op. Implementeer een Docker-stack om n8n over meerdere servers op te schalen en services in een swarmcluster te beheren.
  • Beveilig je server. Volg de aanbevolen procedures voor VPS-beveiliging, zoals het wijzigen van de SSH-poort, het uitschakelen van rootlogin en het instellen van een firewall, om je n8n-instantie te beschermen.
  • Gebruik n8n met MCP. Stel je workflows open voor AI-agents en zet contextbewuste automatisering in door n8n te integreren met model context protocol (MCP).

Heb je nog vragen over het draaien en beheren van n8n met Docker, laat dan gerust hieronder een reactie achter.

Alle tutorials op deze website voldoen aan de strenge edactionele standaarden en waarden van Hostinger.

Author
De auteur

Faradilla Ayunindya

Faradilla, ook bekend als Ninda, is Content Marketing Specialist bij Hostinger met meer dan vijf jaar ervaring en een achtergrond van tien jaar als taalkundige. Ze maakt technologie toegankelijk door complexe onderwerpen om te zetten in duidelijke, makkelijk te volgen tutorials. In haar vrije tijd volgt ze graag de nieuwste trends in tech en digitale marketing, of kijkt ze naar grappige dierenvideo’s. Je kunt met haar verbinden via LinkedIn.

Wat onze klanten zeggen

Leave a reply

Please fill the required fields.Please accept the privacy checkbox.Please fill the required fields and accept the privacy checkbox.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.