• Teknologi

Slik setter du opp n8n på en Linux-VPS (trinn for trinn)

  • Felix Rose-Collins
  • ••
  • 13 min read

Innledning

n8n er et av de kraftigste verktøyene for automatisering av arbeidsflyt med åpen kildekode som finnes i dag. I motsetning til SaaS-alternativer som Zapier eller Make gir n8n deg full kontroll over dataene og automatiseringene dine – men bare når du selv står for driften. En Linux-VPS er det ideelle miljøet for dette: alltid tilgjengelig, rimelig og fullstendig under din kontroll.

Denne veiledningen tar deg gjennom hele prosessen med å sette opp en produksjonsklar, selvhostet n8n-instans på en Linux-VPS. Du vil gå fra en tom server til en fullt sikret, SSL-aktivert n8n-distribusjon med Docker, Nginx, PostgreSQL, automatiserte sikkerhetskopier og en forsterket sikkerhetskonfigurasjon.

Hovedpunkter

  • n8n på en VPS gir deg ubegrensede arbeidsflyter, ingen bruksbegrensninger og fullt eierskap til dataene
  • Docker er den anbefalte installasjonsmetoden for enklere oppdateringer og isolering
  • PostgreSQL er den anbefalte databasen for produksjonsarbeidsbelastninger (ikke SQLite)
  • En omvendt proxy (Nginx) med Let’s Encrypt SSL er påkrevd for produksjonsbruk
  • VPS-en din bør ha minst 1 vCPU og 2 GB RAM for en jevn n8n-opplevelse med PostgreSQL
  • Regelmessige automatiserte sikkerhetskopier beskytter arbeidsflytdataene og påloggingsopplysningene dine

Hva er n8n?

n8n (uttales «n-åtte-n») er en plattform for automatisering av arbeidsflyter med åpen kildekode som lar deg koble sammen apper, API-er og tjenester ved hjelp av en visuell, nodebasert editor. Den støtter over 400 integrasjoner som standard og lar deg kjøre tilpasset JavaScript- eller Python-kode inne i arbeidsflytene.

Den viktigste forskjellen mellom n8n og konkurrentene kan oppsummeres i tre punkter: eierskap, kostnad og fleksibilitet.

**Eierskap: **Når du selv drifter n8n, forlater aldri arbeidsflytdataene, påloggingsopplysningene og kjøringsloggene serveren din. For team som håndterer sensitive kundedata, regnskapsopplysninger eller proprietær forretningslogikk, er dette av enorm betydning. Skyplattformer lagrer automatiseringslogikken din på sin egen infrastruktur, underlagt deres retningslinjer for datalagring og sikkerhetsnivå.

**Kostnad: **n8n-skytjenesten tar betalt per utførelse av en arbeidsflyt, noe som raskt blir kostbart ved automatiseringer med høyt volum. Et mellomstort team som kjører tusenvis av utførelser per dag, kan bruke hundrevis av dollar hver måned. På din egen VPS er utførelsene ubegrenset uten ekstra kostnad, så snart du har betalt for serveren.

**Fleksibilitet: **Med selvhostet n8n kan du installere community-noder, kjøre vilkårlig kode inne i arbeidsflyter, koble til interne tjenester som ikke er tilgjengelige fra det offentlige internett, og konfigurere alle aspekter av distribusjonen etter eget ønske. Skyabonnementene begrenser mange av disse mulighetene.

Forutsetninger

Før du begynner, må du sørge for at du har:

  • En Linux-VPS som kjører Ubuntu 22.04 eller 24.04 (anbefalt). Sjekk at leverandøren din tilbyr Ubuntu i den planstørrelsen du velger, da noen startpakker kun tilbyr andre distribusjoner
  • En ikke-root-bruker med sudo-rettigheter
  • Et domenenavn som peker til IP-adressen til VPS-en din (f.eks. n8n.dittdomene.com)
  • SSH-tilgang til serveren din
  • Grunnleggende kjennskap til Linux-kommandolinjen

Velge riktig VPS

Serveren du velger, har direkte innvirkning på ytelsen til n8n. Du trenger minst 1 vCPU, 2 GB RAM og 20 GB SSD-lagring. Den ekstra RAM-en sammenlignet med en minimal SQLite-basert installasjon er nødvendig fordi PostgreSQL, Nginx og n8n alle kjører samtidig.

Møt Ranktracker

Alt-i-ett-plattformen for effektiv søkemotoroptimalisering

Bak enhver vellykket bedrift ligger en sterk SEO-kampanje. Men med utallige optimaliseringsverktøy og teknikker der ute å velge mellom, kan det være vanskelig å vite hvor du skal begynne. Vel, frykt ikke mer, for jeg har akkurat det som kan hjelpe deg. Vi presenterer Ranktracker alt-i-ett-plattformen for effektiv SEO.

Vi har endelig åpnet registreringen til Ranktracker helt gratis!

Opprett en gratis konto

Eller logg inn med påloggingsinformasjonen din

For team med flere brukere, komplekse arbeidsflyter med flere trinn eller høy webhook-gjennomstrømning, bør du oppgradere til 2 vCPU og 4 GB RAM. Lagringsplassen bør være på minst 40 GB hvis du planlegger å beholde lange kjøringslogger.

PetroSky tilbyr NVMe-VPS-abonnementer i Paris og Montreal, der n8n er tilgjengelig som en «ett-klikk-applikasjon» ved kassen: et installasjonsskript med åpen kildekode distribuerer n8n med Docker Compose og konfigurerer HTTPS automatisk via Caddy og Let’s Encrypt. Denne veiledningen omhandler den manuelle fremgangsmåten, som fungerer hos alle leverandører.

Når du velger en VPS-leverandør, bør du også ta hensyn til den geografiske plasseringen. Host n8n-instansen din i regionen som ligger nærmest tjenestene den oftest vil koble seg til – dette reduserer API-forsinkelsen i utførelsen av arbeidsflytene dine.

Trinn 1: Oppdater serveren

Koble deg til VPS-en din via SSH og kjør en fullstendig systemoppdatering før du installerer noe:

    sudo apt update && sudo apt upgrade -y

Dette sikrer at du har de nyeste sikkerhetsoppdateringene og at alle systembibliotekene er oppdaterte før du installerer Docker og annen programvare.

Start på nytt hvis det ble installert en kjernenoppdatering:

    sudo reboot

Etter at du har koblet til via SSH igjen, opprett en egen systembruker for å kjøre n8n. Å kjøre tjenester som root utgjør en sikkerhetsrisiko:

    sudo adduser n8nuser
    sudo usermod -aG sudo n8nuser
    su - n8nuser

Trinn 2: Installer Docker og Docker Compose

n8ns offisielle anbefalte installasjonsmetode er Docker. Docker isolerer n8n og dets avhengigheter fra resten av systemet ditt, noe som gjør oppdateringer og tilbakeføringer enkle.

Installer Docker ved hjelp av det offisielle skriptet:

    curl -fsSL https://get.docker.com | sudo sh

I Dockers dokumentasjon står det at dette skriptet ikke anbefales for produksjonsmiljøer, fordi det installerer den nyeste versjonen uten at du kan velge versjon. Hvis du vil låse Docker-versjoner, bør du i stedet bruke apt-repositoriet som beskrevet i Dockers installasjonsveiledning for Ubuntu (docs.docker.com/engine/install/ubuntu/).

Legg til brukeren din i Docker-gruppen, slik at du kan kjøre Docker-kommandoer uten sudo:

    sudo usermod -aG docker $USER
    newgrp docker

Kontroller at Docker kjører som det skal:

    docker --version
    docker compose version

Begge kommandoene skal returnere versjonsstrenger uten feil. Hvis Docker Compose ikke blir funnet, må du installere det manuelt:

    sudo apt install docker-compose-plugin -y

Trinn 3: Konfigurer PostgreSQL for produksjon

Som standard bruker n8n SQLite som database. SQLite er greit for personlig bruk og enkle arbeidsflyter, men det håndterer samtidige skrivninger dårlig, noe som viser seg som forsinkelser og «databasen er låst»-feil når mange arbeidsflyter kjører samtidig. For en produksjonsdistribusjon er PostgreSQL det riktige valget.

Møt Ranktracker

Alt-i-ett-plattformen for effektiv søkemotoroptimalisering

Bak enhver vellykket bedrift ligger en sterk SEO-kampanje. Men med utallige optimaliseringsverktøy og teknikker der ute å velge mellom, kan det være vanskelig å vite hvor du skal begynne. Vel, frykt ikke mer, for jeg har akkurat det som kan hjelpe deg. Vi presenterer Ranktracker alt-i-ett-plattformen for effektiv SEO.

Vi har endelig åpnet registreringen til Ranktracker helt gratis!

Opprett en gratis konto

Eller logg inn med påloggingsinformasjonen din

Kjør PostgreSQL i Docker sammen med n8n:

    mkdir ~/n8n && cd ~/n8n

Opprett en miljøfil for å lagre hemmelige opplysninger på en sikker måte. Du må aldri skrive inn passord direkte i compose-filen:

    nano ~/n8n/.env

Legg til følgende, og erstatt plassholderverdiene med sterke, unike passord:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=ditt_sterke_db-passord_her
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=din_tilfeldige_streng_på_32_tegn_her

Generer en sikker krypteringsnøkkel med:

    openssl rand -hex 16

Bruk utdataene som din N8N_ENCRYPTION_KEY. Denne nøkkelen krypterer påloggingsopplysningene som er lagret i n8n — hvis du mister den, blir alle lagrede påloggingsopplysninger uopprettelige.

Trinn 4: Opprett n8n Docker Compose-filen

Opprett filen docker-compose.yml i n8n-katalogen din:

    nano ~/n8n/docker-compose.yml

Lim inn følgende konfigurasjon:


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:

Konfigurasjonsmerknader:

  • Portbindingen 127.0.0.1:5678:5678 sikrer at n8n kun er tilgjengelig lokalt. Nginx vil håndtere all ekstern trafikk — port 5678 skal aldri eksponeres direkte mot internett.
  • depends_on med betingelsen service_healthy sikrer at n8n venter til PostgreSQL er helt klar før den starter. Uten dette vil n8n mislykkes ved første oppstart hvis databasen ennå ikke aksepterer tilkoblinger.
  • N8N_LOG_LEVEL=info gir deg nyttige driftslogger uten å oversvømme diskplassen slik som «debug» ville gjort.

Trinn 5: Installer og konfigurer Nginx

Nginx vil fungere som en omvendt proxy og videresende HTTPS-trafikk fra port 443 til n8n-containeren din på port 5678. Den håndterer også SSL-terminering, noe som betyr at n8n selv ikke trenger å administrere sertifikater.

    sudo apt install nginx -y

Fjern standardnettstedet og opprett en ny serverblokk for n8n:

    sudo rm /etc/nginx/sites-enabled/default
    sudo nano /etc/nginx/sites-available/n8n

Lim inn følgende:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
server {
    listen 80;
    server_name n8n.dittdomene.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-oppgraderingsheadere på riktig måte. n8n bruker WebSockets for sanntidsoppdateringer i redigeringsverktøyet, så denne konfigurasjonen er viktig — uten den vil det visuelle redigeringsverktøyet ikke fungere som det skal.

Direktivet `client_max_body_size 50m` gjør det mulig for arbeidsflyter å motta store webhook-nyttelaster. Standardgrensen i Nginx er 1 MB, noe som er for lite for arbeidsflyter som behandler filopplastinger eller store JSON-svar.

Aktiver konfigurasjonen og test den:

    sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx

Trinn 6: Utsted et SSL-sertifikat med Let’s Encrypt

Installer Certbot og Nginx-pluginen:

    sudo apt install certbot python3-certbot-nginx -y

Be om et sertifikat for domenet ditt:

    sudo certbot --nginx -d n8n.dittdomene.com

Følg instruksjonene. Når du blir spurt om du vil omdirigere HTTP-trafikk til HTTPS, velger du Ja (alternativ 2). Certbot oppdaterer automatisk Nginx-konfigurasjonen din for å håndtere denne omdirigeringen og installerer hele sertifikatkjeden.

Kontroller at automatisk fornyelse er konfigurert riktig:

    sudo certbot renew --dry-run

Certbot installerer en systemd-timer som fornyer sertifikatene automatisk hver 12. time. Sertifikatene fornyes når det er mindre enn 30 dager igjen til utløpsdatoen. Du bør aldri trenge å fornye manuelt.

Trinn 7: Start n8n

Gå tilbake til n8n-katalogen og start alle tjenestene:

    cd ~/n8n
    docker compose up -d

Docker henter PostgreSQL- og n8n-bildene, oppretter volumene, starter PostgreSQL først, venter på at tilstandskontrollen skal bestås, og starter deretter n8n. Denne prosessen tar 1–3 minutter ved første kjøring.

Sjekk at begge containerne kjører:

    docker compose ps

Du bør se både postgres og n8n oppført med statusen Up. Hvis n8n viser Restarting, sjekk loggene:

    docker compose logs n8n --tail=50

Når begge containerne er i orden, åpner du nettleseren og går til https://n8n.yourdomain.com. Du blir bedt om å opprette en eierkonto med en e-postadresse og et passord. Denne kontoen har full administratorrettighet til n8n-instansen din.

Trinn 8: Konfigurer n8n til å starte ved oppstart

Direktivet «restart: always» i filen docker-compose.yml sørger for at alle containere starter på nytt automatisk ved krasj eller omstart av serveren.

Kontroller dette ved å starte serveren på nytt:

    sudo reboot

Etter at du har koblet til via SSH igjen, sjekk at n8n kom opp igjen automatisk:

    docker compose -f ~/n8n/docker-compose.yml ps

Begge containerne skal vises som aktive uten manuell inngripen.

Trinn 9: Konfigurer automatiske sikkerhetskopier

n8n-dataene dine — arbeidsflyter, påloggingsinformasjon og utførelseshistorikk — ligger på to steder: PostgreSQL-databasen og n8n_data Docker-volumet (som lagrer krypteringsnøkler og deler av konfigurasjonen). Ta regelmessige sikkerhetskopier av begge deler.

Lag et sikkerhetskopieringsskript:

    nano ~/n8n/backup.sh

Lim inn 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 sikkerhetskopikatalogen finnes før du gjør noe annet
mkdir -p "$BACKUP_DIR"


# Ta sikkerhetskopi av 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 sikkerhetskopieringen lyktes og at filen ikke er tom
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "FEIL: Sikkerhetskopiering av databasen mislyktes den $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Ta sikkerhetskopi av krypteringsnøkkelen og miljøvariablene
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Ta sikkerhetskopi av n8n_data-volumet (instanskonfigurasjon og installerte fellesskapsnoder)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Komprimere databasedumpen
gzip "$DUMP_FILE"


# Behold kun sikkerhetskopier fra de siste 7 dagene
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 "Sikkerhetskopiering fullført: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Volumnavnet n8n_n8n_data kommer fra at Docker Compose setter prosjektmappenavnet (n8n) foran volumet. Bekreft ditt med docker volume ls.

Gjør skriptet kjørbart og planlegg det med cron:

    chmod +x ~/n8n/backup.sh
    crontab -e

Legg til denne linjen for å kjøre sikkerhetskopieringen hver dag kl. 02.00:

    0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1

For ekstern redundans bør du vurdere å synkronisere sikkerhetskopikatalogen din til en S3-kompatibel objektlagringsleverandør ved hjelp av rclone eller aws s3 sync.

Trinn 10: Aktiver grunnleggende sikkerhetsforbedringer

Konfigurer en brannmur

Installer UFW og tillat kun de portene serveren din trenger:

    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable

Kontroller at reglene er aktive:

    sudo ufw status verbose

Du bør se at port 22 (SSH), 80 (HTTP) og 443 (HTTPS) er tillatt. En advarsel: Docker skriver sine egne brannmurregler og omgår UFW for publiserte containerporter. Port 5678 forblir privat fordi compose-filen binder den til 127.0.0.1, ikke på grunn av UFW, så endre aldri den bindingen til 0.0.0.0.

Deaktiver passordautentisering for SSH

Hvis du bruker SSH-nøkler (noe du bør gjøre), må du deaktivere passordbasert SSH-pålogging fullstendig. Sørg først for at n8nuser-kontoen kan logge inn med nøkkelen din. Kjør følgende fra din lokale maskin:

    ssh-copy-id n8nuser@din_server_ip

Rediger deretter SSH-serverkonfigurasjonen:

    sudo nano /etc/ssh/sshd_config

Angi følgende verdier:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

På mange Ubuntu-skybilder angir en fil i /etc/ssh/sshd_config.d/ (ofte 50-cloud-init.conf) PasswordAuthentication yes, og denne innstillingen har forrang fordi sshd bruker den første verdien den leser. Sjekk hvilken innstilling som faktisk gjelder:

    sudo sshd -T | grep -i passwordauthentication

Det skal vises «passwordauthentication no». Hvis ikke, endrer du verdien i overstyringsfilen og starter SSH på nytt.

Ikke lukk den nåværende SSH-økten før du har bekreftet at nøkkelbasert pålogging fungerer i et nytt terminalvindu.

Begrens antall forespørsler til n8n-innloggingssiden

Legg til hastighetsbegrensning for å bremse brute-force-angrep mot n8n-påloggingsendepunktet.

Møt Ranktracker

Alt-i-ett-plattformen for effektiv søkemotoroptimalisering

Bak enhver vellykket bedrift ligger en sterk SEO-kampanje. Men med utallige optimaliseringsverktøy og teknikker der ute å velge mellom, kan det være vanskelig å vite hvor du skal begynne. Vel, frykt ikke mer, for jeg har akkurat det som kan hjelpe deg. Vi presenterer Ranktracker alt-i-ett-plattformen for effektiv SEO.

Vi har endelig åpnet registreringen til Ranktracker helt gratis!

Opprett en gratis konto

Eller logg inn med påloggingsinformasjonen din

**Viktig: **Direktivet «limit_req_zone» må plasseres inne i «http {}»-blokken i hovedkonfigurasjonen til Nginx — ikke inne i serverblokken. Åpne hovedkonfigurasjonen:

    sudo nano /etc/nginx/nginx.conf

Legg til denne linjen inne i den eksisterende http {}-blokken:

    http {
        ...
        limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
        ...
    }

Deretter legger du til denne location-blokken i n8n-nettstedskonfigurasjonen (/etc/nginx/sites-available/n8n) inne i server-blokken som lytter på port 443 (Certbot opprettet den i trinn 6), ved siden av den eksisterende location /. Nginx overfører ikke proxy-headere fra location /, så de gjentas 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;
    }

Last inn Nginx på nytt for å ta endringene i bruk:

    sudo nginx -t && sudo systemctl reload nginx

Dette begrenser hver IP-adresse til omtrent 5 påloggingsforsøk per minutt, med en liten toleranse for sporadiske topper.

Hold n8n og PostgreSQL oppdatert

Hent og start på nytt med de nyeste bildene regelmessig:

    cd ~/n8n
    docker compose pull
    docker compose up -d

Docker henter de nyeste n8nio/n8n- og postgres-bildene og starter bare på nytt de containerne som har en nyere versjon tilgjengelig.

For produksjonsmiljøer bør du vurdere å feste n8n-bildet til en bestemt versjonstagg (docker.n8n.io/n8nio/n8n:<versjon>, hentet fra n8ns utgivelsesnotater) og oppgradere bevisst, slik at en rutinemessig henting aldri hopper over en hovedversjon før du har lest endringsloggen.

Feilsøking av vanlige problemer

n8n-containeren starter på nytt hele tiden

Sjekk containerloggene umiddelbart etter at omstartsløyfen begynner:

    docker compose logs n8n --tail=100

Vanlige årsaker:

  • Feil i databaseforbindelsen: Sørg for at PostgreSQL fungerer som den skal ved å kjøre `docker compose ps`. Sjekk at `POSTGRES_PASSWORD` i .env-filen din stemmer overens med det som ble brukt ved initialiseringen av databasen.
  • Manglende eller endret krypteringsnøkkel: Hvis N8N_ENCRYPTION_KEY ikke er angitt eller ble endret etter første kjøring, kan ikke n8n dekryptere lagrede påloggingsopplysninger og vil krasje.
  • Utilstrekkelig RAM: PostgreSQL og n8n kan til sammen bruke 1–1,5 GB RAM. Sjekk tilgjengelig minne med `free -h`.

Webhooks fungerer ikke

Webhooks krever at n8n er tilgjengelig fra internett på domenet ditt. Kontroller:

  1. DNS A-posten for domenet ditt peker til IP-adressen til VPS-en din: dig n8n.dittdomene.com
  2. Nginx kjører: sudo systemctl status nginx
  3. Port 443 er åpen: sudo ufw status
  4. Miljøvariabelen WEBHOOK_URL samsvarer nøyaktig med ditt offentlige domene, inkludert den avsluttende skråstreken

n8n-redigeringsprogrammet lastes ikke inn riktig

Hvis den visuelle redigereren lastes inn, men viser et tomt arbeidsflyt-arbeidsområde, eller hvis sanntidsoppdateringene slutter å fungere, er det feil i WebSocket-tilkoblingen. Sjekk at $http_upgrade-blokken finnes i Nginx-konfigurasjonen din, og at du bruker variabelen $connection_upgrade — ikke den bokstavelige strengen «upgrade» — i proxy_set_header Connection-linjen.

SSL-sertifikatfeil

Hvis Certbot mislykkes med en domenevalideringsfeil, må du sjekke at port 80 er tilgjengelig fra internett:

    curl -I http://n8n.yourdomain.com

Hvis forespørselen går ut på tid, kan det hende at brannmuren til VPS-leverandøren din blokkerer port 80. Sjekk brannmurreglene i skykonsollen i tillegg til UFW.

Konklusjon

Å selvhoste n8n på en Linux-VPS gir deg en produksjonsklar plattform for automatisering av arbeidsflyter uten begrensninger på utførelse, fullstendig personvern og fleksibilitet til å kjøre alle integrasjoner du trenger. Oppsettet som beskrives i denne veiledningen – Docker, PostgreSQL, Nginx-reversproxy, Let’s Encrypt SSL, automatiserte sikkerhetskopier og sikkerhetsforbedringer – er den samme stakken som brukes i produksjonsmiljøer og gir deg et stabilt og sikkert fundament å bygge videre på.

I motsetning til en minimal installasjon med Docker-kommandoen «run», er dette oppsettet bygget for å tåle omstart av serveren, håndtere samtidige utførelser av arbeidsflyter og gjenopprette driften på en smidig måte etter feil. Påloggingsopplysningene dine er kryptert, dataene dine sikkerhetskopieres hver natt, og påloggingspunktet ditt er hastighetsbegrenset for å hindre brute force-angrep.

Når instansen din er i gang, kan du utforske n8ns innebygde noder for databaser, API-er, webhooks og AI-integrasjoner for å begynne å automatisere arbeidsflytene dine umiddelbart. Det selvhostede fellesskapsforumet på community.n8n.io er også en utmerket ressurs for ideer til arbeidsflyter, feilsøking av noder og tips om distribusjon.

Felix Rose-Collins

Felix Rose-Collins

Ranktracker's CEO/CMO & Co-founder

Felix Rose-Collins is the Co-founder and CEO/CMO of Ranktracker. With over 15 years of SEO experience, he has single-handedly scaled the Ranktracker site to over 500,000 monthly visits, with 390,000 of these stemming from organic searches each month.

Begynn å bruke Ranktracker... Gratis!

Finn ut hva som hindrer nettstedet ditt i å bli rangert.

Opprett en gratis konto

Eller logg inn med påloggingsinformasjonen din

Different views of Ranktracker app