n8n är den sortens verktyg du börjar använda lätt och sedan tyst dirigerar hälften av dina operationer genom. Vid vilken punkt "det körs på någons cloud-seat, mätt per exekvering, med mina API-nycklar boende på deras servrar" börjar kännas mindre bra. Self-hosting fixar alla tre — platt kostnad, ingen exekveringsgräns, och dina nycklar stannar på en box du äger. Med Docker är det ett femton-minuters-jobb.
Hur mycket server den faktiskt behöver
Ärliga siffror först, så att du inte över- eller underköper:
- ~2 GB RAM är sweet spot — n8n plus dess Postgres-databas plus normala workflows sitter bekvämt här.
- 1 GB fungerar om dina workflows är lätta, men du märker det på större körningar.
- 4 GB om du gör tunga parallella exekveringar eller trycker stora payloads igenom.
n8n är inte CPU-hungrig i vila; den toppar under körningar. En 2-kärnors box är fin för de flesta uppsättningar. (Mer om att matcha specifikationer till workload i dimensioneringsguiden.)
Docker-uppsättningen
På en färsk Ubuntu/Debian-box, installera Docker:
curl -fsSL https://get.docker.com | sudo sh
Gör en mapp och en docker-compose.yml — n8n med en persistent volym och Postgres:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.yourdomain.com/
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PASSWORD=change-me
volumes:
- ./n8n-data:/home/node/.n8n
depends_on: [db]
db:
image: postgres:16
restart: always
environment:
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=n8n
volumes:
- ./db-data:/var/lib/postgresql/data
sudo docker compose up -d
Två saker värda att peka på: volymerna (n8n-data, db-data) är vad som håller dina workflows vid liv över omstarter och uppgraderingar — hoppa inte över dem. Och n8n är bunden till 127.0.0.1, inte 0.0.0.0 — den är inte direkt exponerad mot internet. Det är avsiktligt; nästa steg hanterar åtkomst säkert.
Åtkomst: HTTPS eller en tunnel
- Publik URL (behövs för OAuth-noder och webhooks): rikta en subdomän mot servern och kör en reverse proxy (Caddy är minst ansträngning — automatisk HTTPS) framför
127.0.0.1:5678. Detta är där ett dedikerad-IP-plan passar, eftersom du kontrollerar portar och DNS. - Bara för dig själv, ingen domän: hoppa över proxyn och nå den över en SSH-tunnel —
ssh -L 5678:127.0.0.1:5678 user@server, öppna sedanlocalhost:5678. Fungerar fint på en NAT-VPS.
Lås ner det och håll det uppe
n8n håller dina API-nycklar och credentials, så boxen måste vara tät: gör säkerhetschecklistan (SSH-nycklar, brandvägg, ingen lösenords-login) innan du sätter riktiga credentials i den. restart: always i compose-filen betyder redan att Docker tar tillbaka n8n efter en krasch eller omstart — det är din uptime hanterad.
Är det värt det?
Var ärlig mot dig själv om volym. Om du kör automationer konstant, vinner self-hosting på kostnad (platt vs per-exekvering) och tar bort alla workflow/körnings-gränser. Om du triggar ett par flöden i månaden är en hostad seat mindre krångel. Men kontroll-argumentet står oavsett: dina workflows, din data, dina nycklar — på din server, inte hyrda. För de flesta som blev seriösa om n8n är det den avgörande faktorn.
En 2 GB-box, en compose-fil, en domän (eller en tunnel), och du kör din egen automations-hub — betalbar i krypto utan KYC, live på minuter.
Färdig uppsättning: se VPS för n8n — det rekommenderade planet och en krypto-deploy på en minut.
Kommentarer
Inga kommentarer än. Bli först.