Hoofdstuk 7 · 7.3
n8n: automatiseren op je eigen server
Met n8n koppel je diensten aan elkaar en automatiseer je taken, bijvoorbeeld een formulier dat een rij in een spreadsheet zet en een bericht stuurt. Je workflows en gegevens blijven op je eigen server.
Elk recept bouwt voort op de werkmap /srv/diensten met Caddy uit Je werkmap met compose.yaml, .env en Caddy. Je voegt een service toe aan compose.yaml, een blok aan het Caddyfile, en een A- en AAAA-record voor de naam (zie Een A- en AAAA-record in Mijn Domeinen).
1. DNS
Maak een A- en AAAA-record voor n8n.example.com.
2. compose.yaml
n8n:
image: n8nio/n8n
restart: unless-stopped
environment:
N8N_HOST: "n8n.example.com"
N8N_PORT: "5678"
N8N_PROTOCOL: "https"
N8N_WEBHOOK_URL: "https://n8n.example.com/"
NODE_ENV: "production"
GENERIC_TIMEZONE: "Europe/Amsterdam"
TZ: "Europe/Amsterdam"
volumes:
- n8n-data:/home/node/.n8n
En onder volumes::
n8n-data:
N8N_WEBHOOK_URL bestaat vanaf n8n 2.30.0. Gebruik je een oudere versie, dan heet hij WEBHOOK_URL. Met dit adres maakt n8n de links voor webhooks; staat het verkeerd, dan werken je webhooks van buitenaf niet.
3. Caddyfile
n8n.example.com {
reverse_proxy n8n:5678
}
anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Open https://n8n.example.com en maak meteen het account van de eigenaar aan. n8n werkt alleen via https; daar zorgt Caddy voor.
Back-up
In het volume n8n-data staan je workflows, je inloggegevens voor andere diensten en de sleutel waarmee n8n die inloggegevens versleutelt. Zonder die sleutel kun je een back-up niet meer gebruiken. Neem het volume dus compleet mee in je back-up (zie Databases en Docker-volumes goed meenemen).
Let op: Een workflow kan veel: mails versturen, bestanden lezen, andere diensten aansturen. Geef hem alleen de rechten die hij nodig heeft, en bescherm je n8n-account met een sterk wachtwoord en tweestapsverificatie.
