Introduktion
n8n er et af de mest kraftfulde open source-værktøjer til automatisering af arbejdsgange, der findes i dag. I modsætning til SaaS-alternativer som Zapier eller Make giver n8n dig fuld kontrol over dine data og automatiseringer — men kun hvis du selv hoster det. En Linux VPS er det ideelle miljø til dette: altid tilgængelig, prisvenlig og fuldt ud under din kontrol.
Denne guide fører dig gennem hele processen med at opsætte en produktionsklar, selvhostet n8n-instans på en Linux VPS. Du vil gå fra en tom server til en fuldt sikret, SSL-aktiveret n8n-installation med Docker, Nginx, PostgreSQL, automatiske sikkerhedskopier og en styrket sikkerhedskonfiguration.
Vigtige pointer
- n8n på en VPS giver dig ubegrænsede arbejdsgange, ingen brugsbegrænsninger og fuld ejerskab over dine data
- Docker er den anbefalede installationsmetode for nemmere opdateringer og isolering
- PostgreSQL er den anbefalede database til produktionsarbejdsbelastninger (ikke SQLite)
- En reverse proxy (Nginx) med Let’s Encrypt SSL er påkrævet til produktionsbrug
- Din VPS bør have mindst 1 vCPU og 2 GB RAM for en problemfri n8n-oplevelse med PostgreSQL
- Regelmæssige automatiske sikkerhedskopier beskytter dine workflow-data og adgangsoplysninger
Hvad er n8n?
n8n (udtales "n-otte-n") er en open source-platform til automatisering af arbejdsgange, der giver dig mulighed for at forbinde apps, API'er og tjenester ved hjælp af en visuel, node-baseret editor. Den understøtter over 400 integrationer lige fra starten og giver dig mulighed for at køre brugerdefineret JavaScript- eller Python-kode inden for arbejdsgangene.
Den væsentligste forskel mellem n8n og konkurrenterne kan koges ned til tre ting: ejerskab, omkostninger og fleksibilitet.
**Ejerskab: **Når du selv hoster n8n, forbliver dine workflow-data, legitimationsoplysninger og udførelseslogfiler altid på din server. For teams, der håndterer følsomme kundedata, regnskabsoplysninger eller proprietær forretningslogik, er dette af enorm betydning. Cloud-platforme gemmer din automatiseringslogik på deres infrastruktur, hvor den er underlagt deres politikker for datalagring og sikkerhedsniveau.
**Omkostninger: **n8n-cloudabonnementet opkræver betaling pr. workflow-udførelse, hvilket hurtigt løber op ved automatiseringer med stort volumen. Et mellemstort team, der kører tusindvis af udførelser om dagen, kan bruge hundredvis af dollars om måneden. På din egen VPS er udførelserne ubegrænsede uden ekstra omkostninger, når du først har betalt for serveren.
**Fleksibilitet: **Med selvhostet n8n kan du installere community-noder, køre vilkårlig kode i workflows, oprette forbindelse til interne tjenester, der ikke er tilgængelige fra det offentlige internet, og konfigurere alle aspekter af implementeringen efter eget ønske. Cloud-abonnementer begrænser mange af disse muligheder.
Forudsætninger
Før du går i gang, skal du sikre dig, at du har:
- En Linux-VPS, der kører Ubuntu 22.04 eller 24.04 (anbefalet). Tjek, at din udbyder tilbyder Ubuntu på den planstørrelse, du vælger, da nogle entry-level-planer kun tilbyder andre distributioner
- En ikke-root-bruger med sudo-rettigheder
- Et domænenavn, der peger på din VPS' IP-adresse (f.eks. n8n.ditdomæne.com)
- SSH-adgang til din server
- Grundlæggende kendskab til Linux-kommandolinjen
Valg af den rigtige VPS
Den server, du vælger, har direkte indflydelse på n8ns ydeevne. Du skal som minimum have 1 vCPU, 2 GB RAM og 20 GB SSD-lagerplads. Den ekstra RAM i forhold til en minimal SQLite-baseret installation er nødvendig, fordi PostgreSQL, Nginx og n8n alle kører samtidigt.
Alt-i-en-platformen til effektiv SEO
Bag enhver succesfuld virksomhed ligger en stærk SEO-kampagne. Men med utallige optimeringsværktøjer og -teknikker at vælge imellem kan det være svært at vide, hvor man skal starte. Nå, frygt ikke mere, for jeg har lige det, der kan hjælpe dig. Jeg præsenterer Ranktracker alt-i-en platformen til effektiv SEO
Vi har endelig åbnet for gratis registrering til Ranktracker!
Opret en gratis kontoEller logge ind med dine legitimationsoplysninger
For teams med flere brugere, komplekse arbejdsgange i flere trin eller høj webhook-gennemstrømning bør du opgradere til 2 vCPU og 4 GB RAM. Lagerpladsen bør være på mindst 40 GB, hvis du planlægger at gemme lange udførelseslogfiler.
PetroSky tilbyder NVMe-VPS-abonnementer i Paris og Montreal, hvor n8n er tilgængeligt som en »one-click«-applikation ved kassen: Et open source-installationsscript implementerer n8n med Docker Compose og konfigurerer HTTPS automatisk via Caddy og Let’s Encrypt. Denne vejledning dækker den manuelle fremgangsmåde, som fungerer hos enhver udbyder.
Når du vælger en VPS-udbyder, skal du også tage højde for den geografiske placering. Host din n8n-instans i den region, der ligger tættest på de tjenester, den oftest skal oprette forbindelse til – dette reducerer API-forsinkelsen i dine workflow-udførelser.
Trin 1: Opdater din server
Log ind på din VPS via SSH, og kør en fuld systemopdatering, før du installerer noget:
sudo apt update && sudo apt upgrade -y
Dette sikrer, at du har de nyeste sikkerhedsopdateringer, og at alle systembiblioteker er opdaterede, inden du installerer Docker og anden software ovenpå.
Genstart, hvis der er blevet installeret en kerneopdatering:
sudo reboot
Når du har oprettet forbindelse via SSH igen, skal du oprette en dedikeret systembruger til at køre n8n. Det udgør en sikkerhedsrisiko at køre tjenester som root:
sudo adduser n8nuser
sudo usermod -aG sudo n8nuser
su - n8nuser
Trin 2: Installer Docker og Docker Compose
n8ns officielle anbefalede installationsmetode er Docker. Docker isolerer n8n og dets afhængigheder fra resten af dit system, hvilket gør opdateringer og tilbageførsler enkle.
Installer Docker ved hjælp af det officielle hjælpescript:
curl -fsSL https://get.docker.com | sudo sh
I Dockers dokumentation bemærkes det, at hjælpeskriptet ikke anbefales til produktionsmiljøer, da det installerer den nyeste udgave uden at give dig mulighed for at vælge en version. Hvis du ønsker at fastlåse Docker-versioner, skal du i stedet bruge apt-repository-metoden fra Dockers Ubuntu-installationsvejledning (docs.docker.com/engine/install/ubuntu/).
Føj din bruger til Docker-gruppen, så du kan køre Docker-kommandoer uden sudo:
sudo usermod -aG docker $USER
newgrp docker
Kontroller, at Docker kører korrekt:
docker --version
docker compose version
Begge kommandoer skal returnere versionsstrenge uden fejl. Hvis Docker Compose ikke findes, skal du installere det manuelt:
sudo apt install docker-compose-plugin -y
Trin 3: Konfigurer PostgreSQL til produktion
Som standard bruger n8n SQLite som database. SQLite er fint til personlig brug og lette arbejdsgange, men det håndterer samtidige skrivninger dårligt, hvilket viser sig som forsinkelser og "databasen er låst"-fejl, når mange arbejdsgange kører på samme tid. Til en produktionsimplementering er PostgreSQL det rigtige valg.
Alt-i-en-platformen til effektiv SEO
Bag enhver succesfuld virksomhed ligger en stærk SEO-kampagne. Men med utallige optimeringsværktøjer og -teknikker at vælge imellem kan det være svært at vide, hvor man skal starte. Nå, frygt ikke mere, for jeg har lige det, der kan hjælpe dig. Jeg præsenterer Ranktracker alt-i-en platformen til effektiv SEO
Vi har endelig åbnet for gratis registrering til Ranktracker!
Opret en gratis kontoEller logge ind med dine legitimationsoplysninger
Kør PostgreSQL i Docker sammen med n8n:
mkdir ~/n8n && cd ~/n8n
Opret en miljøfil til sikker opbevaring af dine hemmelige oplysninger. Indsæt aldrig adgangskoder direkte i din compose-fil:
nano ~/n8n/.env
Tilføj følgende, og udskift pladsholderværdierne med stærke, unikke adgangskoder:
POSTGRES_USER=n8n
POSTGRES_PASSWORD=din_stærke_db-adgangskode_her
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=din_tilfældige_streng_på_32_tegn_her
Generer en sikker krypteringsnøgle med:
openssl rand -hex 16
Brug outputtet som din N8N_ENCRYPTION_KEY. Denne nøgle krypterer de legitimationsoplysninger, der er gemt i n8n — hvis du mister den, kan ingen af de gemte legitimationsoplysninger gendannes.
Trin 4: Opret n8n-Docker-Compose-filen
Opret filen docker-compose.yml i dit n8n-bibliotek:
nano ~/n8n/docker-compose.yml
Indsæt følgende konfiguration:
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Europe/London
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- EXECUTIONS_MODE=regular
- N8N_LOG_LEVEL=info
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
Konfigurationsbemærkninger:
- Portbindingen 127.0.0.1:5678:5678 sikrer, at n8n kun er tilgængeligt lokalt. Nginx håndterer al ekstern trafik — port 5678 må aldrig eksponeres direkte på internettet.
- depends_on med betingelsen service_healthy sikrer, at n8n venter på, at PostgreSQL er fuldt klar, før den starter. Uden dette vil n8n fejle ved første opstart, hvis databasen endnu ikke accepterer forbindelser.
- N8N_LOG_LEVEL=info giver dig nyttige driftslogfiler uden at oversvømme diskpladsen, som debug ville gøre.
Trin 5: Installer og konfigurer Nginx
Nginx fungerer som en reverse proxy, der videresender HTTPS-trafik fra port 443 til din n8n-container på port 5678. Den håndterer også SSL-terminering, hvilket betyder, at n8n selv ikke behøver at administrere certifikater.
sudo apt install nginx -y
Fjern standardwebstedet, og opret en ny serverblok til n8n:
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/sites-available/n8n
Indsæt følgende:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
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;
chunked_transfer_encoding on;
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 90s;
client_max_body_size 50m;
}
}
Map-blokken øverst håndterer WebSocket-opgraderingsheadere korrekt. n8n bruger WebSockets til realtidsopdateringer i editoren, så denne konfiguration er vigtig — uden den vil den visuelle editor ikke fungere korrekt.
Direktivet client_max_body_size 50m gør det muligt for arbejdsgange at modtage store webhook-payloads. Standardgrænsen i Nginx er 1 MB, hvilket er for lidt til arbejdsgange, der behandler filoverførsler eller store JSON-svar.
Aktivér konfigurationen og test den:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Trin 6: Udsted et SSL-certifikat med Let’s Encrypt
Installer Certbot og Nginx-pluginet:
sudo apt install certbot python3-certbot-nginx -y
Anmod om et certifikat til dit domæne:
sudo certbot --nginx -d n8n.yourdomain.com
Følg vejledningen. Når du bliver spurgt, om HTTP-trafik skal omdirigeres til HTTPS, skal du vælge Ja (mulighed 2). Certbot opdaterer automatisk din Nginx-konfiguration, så den håndterer denne omdirigering, og installerer den fulde certifikatkæde.
Kontroller, at automatisk fornyelse er konfigureret korrekt:
sudo certbot renew --dry-run
Certbot installerer en systemd-timer, der fornyer certifikater automatisk hver 12. time. Certifikater fornyes, når der er mindre end 30 dage til udløb. Du bør aldrig have behov for at forny manuelt.
Trin 7: Start n8n
Gå tilbage til dit n8n-bibliotek og start alle tjenester:
cd ~/n8n
docker compose up -d
Docker henter PostgreSQL- og n8n-images, opretter volumenerne, starter først PostgreSQL, venter på, at sundhedstjekket gennemføres, og starter derefter n8n. Denne proces tager 1–3 minutter ved første kørsel.
Kontroller, at begge containere kører:
docker compose ps
Du bør se både postgres og n8n opført med status Up. Hvis n8n viser Restarting, skal du tjekke logfilerne:
docker compose logs n8n --tail=50
Når begge containere fungerer korrekt, skal du åbne din browser og gå til https://n8n.yourdomain.com. Du bliver bedt om at oprette en ejerkonto med en e-mailadresse og en adgangskode. Denne konto har fuld administratoradgang til din n8n-instans.
Trin 8: Konfigurer n8n til at starte ved opstart
Direktivet "restart: always" i din docker-compose.yml sikrer, at alle containere genstarter automatisk ved nedbrud eller genstart af serveren.
Kontroller dette ved at genstarte din server:
sudo reboot
Når du har oprettet forbindelse via SSH igen, skal du kontrollere, at n8n er startet op automatisk:
docker compose -f ~/n8n/docker-compose.yml ps
Begge containere bør nu vises som kørende uden manuel indgriben.
Trin 9: Opsæt automatiske sikkerhedskopier
Dine n8n-data — arbejdsgange, legitimationsoplysninger og udførelseshistorik — findes to steder: i PostgreSQL-databasen og i n8n_data-Docker-volumenet (hvor krypteringsnøgler og visse konfigurationsoplysninger gemmes). Lav regelmæssige sikkerhedskopier af begge dele.
Opret et sikkerhedskopieringsscript:
nano ~/n8n/backup.sh
Indsæt følgende:
#!/bin/bash
BACKUP_DIR="/home/n8nuser/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
LOG_FILE="$BACKUP_DIR/backup.log"
# Sørg for, at sikkerhedskopieringsmappen findes, før du fortsætter
mkdir -p "$BACKUP_DIR"
# Dump PostgreSQL
DUMP_FILE="$BACKUP_DIR/n8n_db_$DATE.sql"
docker compose -f /home/n8nuser/n8n/docker-compose.yml exec -T postgres \
pg_dump -U n8n n8n > "$DUMP_FILE"
# Kontroller, at dumpen lykkedes, og at filen ikke er tom
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
echo "FEJL: Databasesikkerhedskopiering mislykkedes den $DATE" >> "$LOG_FILE"
rm -f "$DUMP_FILE"
exit 1
fi
# Sikkerhedskopier krypteringsnøglen og miljøvariablerne
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Sikkerhedskopier n8n_data-volumenet (instanskonfiguration og installerede community-noder)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
tar czf /backup/n8n_data_$DATE.tar.gz -C /data .
# Komprimér database-dumpen
gzip "$DUMP_FILE"
# Behold kun sikkerhedskopier fra de sidste 7 dage
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete
find "$BACKUP_DIR" -name "*.bak" -mtime +7 -delete
find "$BACKUP_DIR" -name "n8n_data_*.tar.gz" -mtime +7 -delete
echo "Sikkerhedskopiering afsluttet: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"
Volumenavnet n8n_n8n_data stammer fra, at Docker Compose sætter projektmappens navn (n8n) foran volumenet. Bekræft dit med docker volume ls.
Gør scriptet eksekverbart, og planlæg det med cron:
chmod +x ~/n8n/backup.sh
crontab -e
Tilføj denne linje for at køre sikkerhedskopieringen hver dag kl. 02:00:
0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1
For redundans uden for stedet kan du overveje at synkronisere dit backup-bibliotek til en S3-kompatibel objektlagringsudbyder ved hjælp af rclone eller aws s3 sync.
Trin 10: Aktiver grundlæggende sikkerhedsforstærkning
Opsæt en firewall
Installer UFW, og tillad kun de porte, din server har brug for:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Kontroller, at reglerne er aktive:
sudo ufw status verbose
Du bør se, at port 22 (SSH), 80 (HTTP) og 443 (HTTPS) er tilladt. En advarsel: Docker skriver sine egne firewall-regler og omgår UFW for offentliggjorte containerporte. Port 5678 forbliver privat, fordi compose-filen binder den til 127.0.0.1, ikke på grund af UFW, så ændr aldrig den binding til 0.0.0.0.
Deaktiver adgangskodebaseret autentificering for SSH
Hvis du bruger SSH-nøgler (hvilket du bør gøre), skal du helt deaktivere adgangskodebaseret SSH-login. Sørg først for, at n8nuser-kontoen kan logge ind med din nøgle. Kør følgende fra din lokale maskine:
ssh-copy-id n8nuser@din_server_ip
Rediger derefter SSH-serverkonfigurationen:
sudo nano /etc/ssh/sshd_config
Indstil følgende værdier:
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart ssh
På mange Ubuntu-cloud-images indstiller en fil i /etc/ssh/sshd_config.d/ (ofte 50-cloud-init.conf) PasswordAuthentication til yes, og denne indstilling har forrang, da sshd bruger den første værdi, den læser. Kontroller, hvilken indstilling der rent faktisk er gældende:
sudo sshd -T | grep -i passwordauthentication
Der bør vises passwordauthentication no. Hvis det ikke er tilfældet, skal du ændre værdien i overstyringsfilen og genstarte SSH igen.
Luk ikke din nuværende SSH-session, før du har verificeret, at nøglebaseret login fungerer i et nyt terminalvindue.
Begræns antallet af adgang til n8n-login-siden
Tilføj hastighedsbegrænsning for at bremse brute-force-angreb mod n8n-login-endpointet.
Alt-i-en-platformen til effektiv SEO
Bag enhver succesfuld virksomhed ligger en stærk SEO-kampagne. Men med utallige optimeringsværktøjer og -teknikker at vælge imellem kan det være svært at vide, hvor man skal starte. Nå, frygt ikke mere, for jeg har lige det, der kan hjælpe dig. Jeg præsenterer Ranktracker alt-i-en platformen til effektiv SEO
Vi har endelig åbnet for gratis registrering til Ranktracker!
Opret en gratis kontoEller logge ind med dine legitimationsoplysninger
**Vigtigt: **Direktivet "limit_req_zone" skal placeres inden for http {}-blokken i din primære Nginx-konfiguration — ikke inden for serverblokken. Åbn hovedkonfigurationen:
sudo nano /etc/nginx/nginx.conf
Tilføj denne linje inden for den eksisterende http {}-blok:
http {
...
limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
...
}
Tilføj derefter i din n8n-sitekonfiguration (/etc/nginx/sites-available/n8n) denne location-blok inden for den server-blok, der lytter på port 443 (Certbot oprettede den i trin 6), ved siden af den eksisterende location /. Nginx overfører ikke proxy-headers fra location /, så de gentages her:
location /rest/login {
limit_req zone=n8n_login burst=5 nodelay;
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
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;
}
Genstart Nginx for at anvende ændringerne:
sudo nginx -t && sudo systemctl reload nginx
Dette begrænser hver IP-adresse til ca. 5 loginforsøg pr. minut, med en lille tolerance for pludselige stigninger.
Hold n8n og PostgreSQL opdateret
Hent og genstart regelmæssigt med de nyeste billeder:
cd ~/n8n
docker compose pull
docker compose up -d
Docker henter de nyeste n8nio/n8n- og postgres-billeder og genstarter kun de containere, hvor der er en nyere version tilgængelig.
I produktionsmiljøet bør du overveje at fastlåse n8n-billedet til et specifikt versionstag (docker.n8n.io/n8nio/n8n:<version>, hentet fra n8ns release notes) og opgradere bevidst, så en rutinemæssig hentning aldrig springer en hovedversion over, før du har læst changeloggen.
Fejlfinding af almindelige problemer
n8n-containeren genstarter hele tiden
Tjek containerlogfilerne umiddelbart efter, at genstartsløkken begynder:
docker compose logs n8n --tail=100
Almindelige årsager:
- Fejl i databaseforbindelsen: Sørg for, at PostgreSQL fungerer korrekt ved at køre `docker compose ps`. Kontroller, at `POSTGRES_PASSWORD` i din `.env`-fil stemmer overens med det, databasen blev initialiseret med.
- Manglende eller ændret krypteringsnøgle: Hvis N8N_ENCRYPTION_KEY ikke er angivet eller er blevet ændret efter den første kørsel, kan n8n ikke dekryptere de gemte legitimationsoplysninger og vil gå ned.
- Utilstrækkelig RAM: PostgreSQL og n8n kan tilsammen bruge 1–1,5 GB RAM. Tjek den tilgængelige hukommelse med `free -h`.
Webhooks fungerer ikke
Webhooks kræver, at n8n er tilgængelig fra internettet på dit domæne. Kontroller:
- Din domænes DNS A-post peger på din VPS-IP: dig n8n.yourdomain.com
- Nginx kører: sudo systemctl status nginx
- Port 443 er åben: sudo ufw status
- Miljøvariablen WEBHOOK_URL stemmer nøjagtigt overens med dit offentlige domæne, inklusive den afsluttende skråstreg
n8n-editoren indlæses ikke korrekt
Hvis den visuelle editor indlæses, men viser et tomt workflow-arbejdsområde, eller hvis realtidsopdateringerne holder op med at fungere, er der en fejl i WebSocket-forbindelsen. Kontroller, at $http_upgrade-blokken er til stede i din Nginx-konfiguration, og at du bruger variablen $connection_upgrade — ikke den bogstavelige streng “upgrade” — i proxy_set_header Connection-linjen.
SSL-certifikatfejl
Hvis Certbot fejler med en domænevalideringsfejl, skal du kontrollere, at port 80 er tilgængelig fra internettet:
curl -I http://n8n.yourdomain.com
Hvis anmodningen går i timeout, blokerer din VPS-udbyders firewall muligvis port 80. Kontroller firewallreglerne i cloudkonsollen ud over UFW.
Konklusion
Selvhosting af n8n på en Linux-VPS giver dig en produktionsklar platform til automatisering af arbejdsgange uden begrænsninger i udførelsen, fuld databeskyttelse og fleksibilitet til at køre enhver integration, du har brug for. Den opsætning, der beskrives i denne vejledning — Docker, PostgreSQL, Nginx reverse proxy, Let’s Encrypt SSL, automatiske sikkerhedskopier og sikkerhedsforstærkning — er den samme stack, der bruges i produktionsmiljøer, og giver dig et stabilt og sikkert fundament at bygge videre på.
I modsætning til en minimal installation via Docker-kommandoen `run` er denne opsætning bygget til at overleve genstart af serveren, håndtere samtidige udførelser af arbejdsgange og genoprette sig problemfrit efter fejl. Dine loginoplysninger er krypteret, der tages backup af dine data hver nat, og dit login-endpoint er hastighedsbegrænset mod brute force-angreb.
Når din instans kører, kan du udforske n8ns indbyggede noder til databaser, API’er, webhooks og AI-integrationer for straks at begynde at automatisere dine arbejdsgange. Det selvhostede community-forum på community.n8n.io er også en fremragende ressource til idéer til arbejdsgange, fejlfinding af noder og tips til implementering.

