• Tehnologija

Kako samostojno gostiti n8n na VPS-ju z operacijskim sistemom Linux (korak za korakom)

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

Uvod

n8n je eno najmočnejših orodij za avtomatizacijo delovnih tokov z odprtokodno kodo, ki so danes na voljo. Za razliko od SaaS-alternativ, kot sta Zapier ali Make, vam n8n omogoča popoln nadzor nad vašimi podatki in avtomatizacijami – vendar le, če ga gostite sami. Linux VPS je za to idealno okolje: vedno na voljo, cenovno dostopno in popolnoma pod vašim nadzorom.

Ta vodnik vas popelje skozi celoten postopek vzpostavitve produkcijsko pripravljene, samostojno gostovane instance n8n na Linux VPS. Iz praznega strežnika boste ustvarili popolnoma varno, SSL-omogočeno n8n-razporeditev z Dockerjem, Nginxom, PostgreSQL, avtomatiziranimi varnostnimi kopijami in okrepljeno varnostno konfiguracijo.

Ključne točke

  • n8n na VPS-ju vam omogoča neomejeno število delovnih tokov, brez omejitev uporabe in popolno lastništvo nad podatki
  • Docker je priporočena metoda namestitve za lažje posodobitve in izolacijo
  • PostgreSQL je priporočena baza podatkov za produkcijske obremenitve (ne SQLite)
  • Za produkcijsko uporabo je potreben reverzni proxy (Nginx) z SSL-jem Let’s Encrypt
  • Vaš VPS mora imeti vsaj 1 vCPU in 2 GB RAM za nemoteno delovanje n8n s PostgreSQL
  • Redne avtomatizirane varnostne kopije ščitijo vaše podatke o delovnih tokovih in poverilnice

Kaj je n8n?

n8n (izgovarja se »n-osem-n«) je platforma za avtomatizacijo delovnih tokov z odprtokodno kodo, ki vam omogoča povezovanje aplikacij, API-jev in storitev z uporabo vizualnega urednika na osnovi vozlišč. Podpira več kot 400 integracij, ki so takoj pripravljene za uporabo, in vam omogoča izvajanje prilagojene kode JavaScript ali Python znotraj delovnih tokov.

Ključna razlika med n8n in njegovimi konkurenti se kaže v treh stvareh: lastništvu, stroških in prilagodljivosti.

**Lastništvo: **Ko n8n gostite sami, podatki o delovnih tokovih, poverilnice in dnevniki izvajanja nikoli ne zapustijo vašega strežnika. Za ekipe, ki obdelujejo občutljive podatke strank, finančne evidence ali lastniško poslovno logiko, je to izjemno pomembno. Oblakovne platforme shranjujejo vašo logiko avtomatizacije na svoji infrastrukturi, pri čemer veljajo njihove politike hrambe podatkov in varnostni ukrepi.

**Stroški: **Oblak n8n zaračunava po izvedbi delovnega toka, kar se pri avtomatizacijah z velikim obsegom hitro sešteje. Srednje velika ekipa, ki dnevno izvede tisoče izvedb, lahko mesečno porabi več sto dolarjev. Na lastnem VPS-ju so izvedbe, ko enkrat plačate za strežnik, neomejene brez dodatnih stroškov.

**Prilagodljivost: **Samogostovani n8n vam omogoča namestitev vozlišč skupnosti, izvajanje poljubne kode znotraj delovnih tokov, povezovanje z notranjimi storitvami, ki niso dostopne iz javnega interneta, ter konfiguracijo vsakega vidika razporeditve po vaših željah. Oblakovi načrti omejujejo mnoge od teh zmožnosti.

Predpogoji

Preden začnete, se prepričajte, da imate:

  • Linux VPS z operacijskim sistemom Ubuntu 22.04 ali 24.04 (priporočeno). Preverite, ali vaš ponudnik ponuja Ubuntu v izbranem paketu, saj nekateri osnovni paketi ponujajo le druge distribucije
  • Uporabnik brez root pravic s privilegiji sudo
  • Domensko ime, usmerjeno na IP-naslov vašega VPS-a (npr. n8n.yourdomain.com)
  • Dostop prek SSH do vašega strežnika
  • Osnovno poznavanje ukazne vrstice v sistemu Linux

Izbira pravega VPS-a

Strežnik, ki ga izberete, neposredno vpliva na zmogljivost n8n. Potrebujete vsaj 1 vCPU, 2 GB RAM in 20 GB prostora na SSD-ju. Dodatni RAM v primerjavi z minimalno namestitvijo na podlagi SQLite je potreben, ker PostgreSQL, Nginx in n8n tečejo hkrati.

Spoznajte Ranktracker

Platforma "vse v enem" za učinkovito SEO

Za vsakim uspešnim podjetjem stoji močna kampanja SEO. Vendar je ob neštetih orodjih in tehnikah optimizacije težko vedeti, kje začeti. Ne bojte se več, ker imam za vas prav to, kar vam lahko pomaga. Predstavljam platformo Ranktracker vse-v-enem za učinkovito SEO

Končno smo odprli registracijo za Ranktracker popolnoma brezplačno!

Ustvarite brezplačen račun

Ali se prijavite s svojimi poverilnicami

Za ekipe z več uporabniki, zapletenimi večstopenjskimi delovnimi tokovi ali visoko prepustnostjo webhookov nadgradite na 2 vCPU in 4 GB RAM-a. Prostor za shranjevanje naj bo najmanj 40 GB, če nameravate hraniti dolge dnevnike izvajanja.

PetroSky ponuja pakete NVMe VPS v Parizu in Montrealu, kjer je n8n na voljo kot aplikacija z enim klikom ob zaključku naročila: odprtokodni namestitveni skript namesti n8n z Docker Compose in samodejno nastavi HTTPS prek Caddy in Let’s Encrypt. Ta vodnik obravnava ročni postopek, ki deluje pri katerem koli ponudniku.

Pri izbiri ponudnika VPS upoštevajte tudi geografsko lokacijo. Svojo instanco n8n gostujte v regiji, ki je najbližja storitvam, s katerimi se bo najpogosteje povezovala – to zmanjša zakasnitev API-ja pri izvajanju vaših delovnih tokov.

Korak 1: Posodobite strežnik

Prek SSH se povežite s svojim VPS-om in pred namestitvijo česarkoli izvedite popolno posodobitev sistema:

    sudo apt update && sudo apt upgrade -y

S tem zagotovite, da imate najnovejše varnostne popravke in da so vse sistemske knjižnice posodobljene, preden dodate Docker in drugo programsko opremo.

Če je bila izvedena posodobitev jedra, ponovno zaženite sistem:

    sudo reboot

Po ponovni povezavi prek SSH ustvarite namenski sistemski uporabnik za zagon n8n. Zagon storitev kot root predstavlja varnostno tveganje:

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

Korak 2: Namestite Docker in Docker Compose

Uradno priporočena metoda namestitve n8n je Docker. Docker izolira n8n in njegove odvisnosti od preostalega sistema, kar poenostavi posodobitve in vrnitev na prejšnjo različico.

Namestite Docker z uradnim skriptom:

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

V dokumentaciji Dockerja je navedeno, da skript ni priporočljiv za produkcijska okolja, saj namesti najnovejšo različico, ne da bi vam omogočil izbiro različice. Če želite fiksirati različice Dockerja, namesto tega uporabite metodo repozitorija apt iz Dockerjevega vodnika za namestitev v Ubuntu (docs.docker.com/engine/install/ubuntu/).

Dodajte svojega uporabnika v skupino Docker, da boste lahko izvajali ukaze Dockerja brez sudo:

    sudo usermod -aG docker $USER
    newgrp docker

Preverite, ali Docker deluje pravilno:

    docker --version
    docker compose version

Oba ukaza morata brez napak prikazati nize z različicami. Če Docker Compose ni najden, ga namestite ročno:

    sudo apt install docker-compose-plugin -y

Korak 3: Nastavite PostgreSQL za produkcijsko okolje

N8n privzeto uporablja SQLite kot svojo bazo podatkov. SQLite je primeren za osebno rabo in enostavne delovne tokove, vendar slabo obvladuje sočasno pisanje, kar se kaže v upočasnitvah in napakah »baza podatkov je zaklenjena«, ko hkrati teče več delovnih tokov. Za produkcijsko razporeditev je PostgreSQL prava izbira.

Spoznajte Ranktracker

Platforma "vse v enem" za učinkovito SEO

Za vsakim uspešnim podjetjem stoji močna kampanja SEO. Vendar je ob neštetih orodjih in tehnikah optimizacije težko vedeti, kje začeti. Ne bojte se več, ker imam za vas prav to, kar vam lahko pomaga. Predstavljam platformo Ranktracker vse-v-enem za učinkovito SEO

Končno smo odprli registracijo za Ranktracker popolnoma brezplačno!

Ustvarite brezplačen račun

Ali se prijavite s svojimi poverilnicami

Zaženite PostgreSQL v Dockerju skupaj z n8n:

    mkdir ~/n8n && cd ~/n8n

Ustvarite datoteko z nastavitvami okolja, da boste varno shranili svoje gesla. Gesel nikoli ne vpisujte neposredno v datoteko compose:

    nano ~/n8n/.env

Dodajte naslednje in nadomestite vrednosti v mestih za vnos z močnimi, edinstvenimi gesli:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=vaše_močno_geslo_za_bazo_podatkov_tukaj
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=vaš_naključni_niz_32_znakov_tukaj

Ustvarite varen šifrirni ključ z:

    openssl rand -hex 16

Izhodno vrednost uporabite kot svoj N8N_ENCRYPTION_KEY. Ta ključ šifrira poverilnice, shranjene v n8n — če ga izgubite, vseh shranjenih poverilnic ne bo mogoče obnoviti.

Korak 4: Ustvarite datoteko n8n Docker Compose

V imeniku n8n ustvarite datoteko docker-compose.yml:

    nano ~/n8n/docker-compose.yml

Vstavite naslednjo konfiguracijo:


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
      ponovni poskusi: 10


  n8n:
    slika: docker.n8n.io/n8nio/n8n
    ponovni zagon: vedno
    vrata:
      - "127.0.0.1:5678:5678"
    okolje:
      - 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:

Opombe k konfiguraciji:

  • Povezava vrat 127.0.0.1:5678:5678 zagotavlja, da je n8n dostopen le lokalno. Nginx bo obdeloval ves zunanji promet – vrata 5678 nikoli ne izpostavljajte neposredno internetu.
  • Uporaba `depends_on` s pogojem `service_healthy` zagotavlja, da n8n pred zagonom počaka, da je PostgreSQL popolnoma pripravljen. Brez tega bo n8n ob prvem zagonu odpovedal, če baza podatkov še ne sprejema povezav.
  • N8N_LOG_LEVEL=info vam zagotavlja koristne operativne dnevnike, ne da bi preplavili prostora na disku, kot bi to storila nastavitev debug.

Korak 5: Namestitev in konfiguracija Nginx

Nginx bo deloval kot povratni proxy in posredoval HTTPS promet iz vrat 443 v vaš n8n-kontejner na vratih 5678. Prav tako skrbi za zaključevanje SSL-ja, kar pomeni, da n8n samemu ni treba upravljati s certifikati.

    sudo apt install nginx -y

Odstranite privzeto spletno mesto in ustvarite nov strežniški blok za n8n:

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

Vstavi naslednje:

    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;
    }
}

Blok map na vrhu pravilno obdeluje glave za nadgradnjo WebSocket. n8n uporablja WebSocket za posodobitve v realnem času v urejevalniku, zato je ta konfiguracija pomembna — brez nje vizualni urejevalnik ne bo deloval pravilno.

Direktiva `client_max_body_size 50m` omogoča delovnim tokovom sprejemanje velikih vsebin webhookov. Privzeta omejitev Nginx je 1 MB, kar je premalo za delovne tokove, ki obdelujejo nalaganje datotek ali velike odgovore v formatu JSON.

Omogočite konfiguracijo in jo preizkusite:

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

Korak 6: Izdelajte SSL-potrdilo z Let’s Encrypt

Namestite Certbot in vtičnik za Nginx:

    sudo apt install certbot python3-certbot-nginx -y

Zahtevajte certifikat za svojo domeno:

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

Sledite navodilom. Ko vas vpraša, ali želite preusmeriti HTTP promet na HTTPS, izberite Da (možnost 2). Certbot bo samodejno posodobil vašo konfiguracijo Nginx, da bo omogočal to preusmeritev, in namestil celotno verigo certifikatov.

Preverite, ali je samodejno podaljševanje pravilno nastavljeno:

    sudo certbot renew --dry-run

Certbot namesti sistemski časovnik, ki certifikate samodejno obnovi vsake 12 ur. Certifikati se obnovijo, ko je do njihovega poteka še 30 dni. Ročna obnova naj ne bi bila nikoli potrebna.

Korak 7: Zaženite n8n

Vrnite se v imenik n8n in zaženite vse storitve:

    cd ~/n8n
    docker compose up -d

Docker bo prenesel slike PostgreSQL in n8n, ustvaril prostorske enote, najprej zagnal PostgreSQL, počakal, da se uspešno opravi preverjanje delovanja, nato pa zagnal n8n. Ta postopek pri prvem zagonu traja 1–3 minute.

Preverite, ali oba kontejnerja delujeta:

    docker compose ps

Na seznamu bi morali videti postgres in n8n s statusom Up. Če n8n prikazuje Restarting, preverite dnevnike:

    docker compose logs n8n --tail=50

Ko sta oba kontejnerja v dobrem stanju, odprite brskalnik in obiščite https://n8n.yourdomain.com. Sistem vas bo pozval, da ustvarite lastniški račun z e-poštnim naslovom in geslom. Ta račun ima polni administrativni dostop do vaše instance n8n.

Korak 8: Nastavite n8n, da se zažene ob zagonu sistema

Direktiva restart: always v datoteki docker-compose.yml zagotavlja, da se vsi kontejnerji samodejno ponovno zaženejo ob okvari ali ponovnem zagonu strežnika.

To preverite z ponovnim zagonom strežnika:

    sudo reboot

Po ponovni povezavi prek SSH preverite, ali se je n8n samodejno ponovno zagnal:

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

Oba kontejnerja bi morala biti prikazana kot delujoča brez kakršnega koli ročnega posredovanja.

Korak 9: Nastavite avtomatske varnostne kopije

Vaši podatki n8n — delovni tokovi, poverilnice in zgodovina izvedb — se nahajajo na dveh mestih: v bazi podatkov PostgreSQL in v Dockerjevem volumnu n8n_data (ki shranjuje šifrirne ključe in nekatere nastavitve). Oba redno varnostno kopirajte.

Ustvarite skript za varnostno kopiranje:

    nano ~/n8n/backup.sh

Vstavite naslednje:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Preden nadaljujete, se prepričajte, da imenik za varnostne kopije obstaja
mkdir -p "$BACKUP_DIR"


# Izvoz podatkov iz 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"


# Preveri, ali je izvoz uspel in ali datoteka ni prazna
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "NAPAKA: Varnostno kopiranje baze podatkov ni uspelo dne $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Varnostno kopirajte šifrirni ključ in spremenljivke okolja
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Varnostno kopirajte zbirko n8n_data (konfiguracijo instance in nameščene vozlišča skupnosti)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Stiskanje izpisa baze podatkov
gzip "$DUMP_FILE"


# Ohranite le varnostne kopije zadnjih 7 dni
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 "Varnostna kopija zaključena: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Ime prostora n8n_n8n_data izhaja iz Docker Compose, ki pred ime prostora doda ime projektne mape (n8n). Preverite svoje z ukazom docker volume ls.

Naredite skript izvedljiv in ga načrtujte s cronom:

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

Dodajte to vrstico, da se varnostno kopiranje izvaja vsak dan ob 2. uri zjutraj:

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

Za zunanjo redundancijo razmislite o sinhronizaciji imenika varnostnih kopij s ponudnikom objektnega shranjevanja, združljivim s S3, z uporabo rclone ali aws s3 sync.

Korak 10: Omogočite osnovno okrepitev varnosti

Nastavite požarni zid

Namestite UFW in dovolite le vrata, ki jih vaš strežnik potrebuje:

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

Preverite, ali so pravila aktivna:

    sudo ufw status verbose

Prikazati se morajo dovoljena vrata 22 (SSH), 80 (HTTP) in 443 (HTTPS). Eno opozorilo: Docker piše svoja lastna pravila požarnega zidu in za objavljena vrata kontejnerjev zaobide UFW. Vrata 5678 ostanejo zasebna, ker jih datoteka compose veže na 127.0.0.1, ne zaradi UFW, zato te vezi nikoli ne spreminjajte na 0.0.0.0.

Onemogočite avtentifikacijo z geslom za SSH

Če uporabljate SSH-ključe (kar bi morali), popolnoma onemogočite prijavo v SSH z geslom. Najprej se prepričajte, da se lahko račun n8nuser prijavi z vašim ključem. Na svojem lokalnem računalniku zaženite:

    ssh-copy-id n8nuser@vaš_naslov_strežnika

Nato uredite konfiguracijo strežnika SSH:

    sudo nano /etc/ssh/sshd_config

Nastavite naslednje vrednosti:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Na mnogih oblačnih slikah Ubuntu datoteka v mapi /etc/ssh/sshd_config.d/ (pogosto 50-cloud-init.conf) nastavi PasswordAuthentication yes, in ta nastavitev prevlada, ker sshd uporabi prvo vrednost, ki jo prebere. Preverite, katera nastavitev dejansko velja:

    sudo sshd -T | grep -i passwordauthentication

Izpisati bi se moralo »passwordauthentication no«. Če se to ne zgodi, spremenite vrednost v datoteki za prepisovanje in ponovno zaženite SSH.

Ne zapirajte trenutne seje SSH, dokler ne preverite, da prijava s ključem deluje v novem terminalu.

Omejitev hitrosti na prijavni strani n8n

Dodajte omejitev hitrosti, da upočasnite brute-force napade na končno točko prijave n8n.

Spoznajte Ranktracker

Platforma "vse v enem" za učinkovito SEO

Za vsakim uspešnim podjetjem stoji močna kampanja SEO. Vendar je ob neštetih orodjih in tehnikah optimizacije težko vedeti, kje začeti. Ne bojte se več, ker imam za vas prav to, kar vam lahko pomaga. Predstavljam platformo Ranktracker vse-v-enem za učinkovito SEO

Končno smo odprli registracijo za Ranktracker popolnoma brezplačno!

Ustvarite brezplačen račun

Ali se prijavite s svojimi poverilnicami

**Pomembno: **Direktiva limit_req_zone mora biti v bloku http {} v glavni konfiguracijski datoteki Nginx — ne v bloku server. Odprite glavno konfiguracijsko datoteko:

    sudo nano /etc/nginx/nginx.conf

V obstoječi blok http {} dodajte to vrstico:

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

Nato v konfiguraciji spletnega mesta n8n (/etc/nginx/sites-available/n8n) dodajte ta blok `location` znotraj bloka `server`, ki posluša na vratih 443 (Certbot ga je ustvaril v koraku 6), poleg obstoječe lokacije `/`. Nginx ne prenaša proxy glav iz lokacije `/`, zato so tukaj ponovljene:

    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;
    }

Za uporabo ponovno zaženite Nginx:

    sudo nginx -t && sudo systemctl reload nginx

To omeji vsak IP-naslov na približno 5 poskusov prijave na minuto, z majhnim dovoljenim številom hitrih poskusov.

Poskrbite, da sta n8n in PostgreSQL posodobljena

Redno prenesite najnovejše slike in ponovno zaženite:

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

Docker bo prenesel najnovejše slike n8nio/n8n in postgres ter ponovno zagnal le tiste kontejnerje, za katere je na voljo novejša različica.

Za produkcijsko okolje razmislite o vezavi slike n8n na določeno oznako različice (docker.n8n.io/n8nio/n8n:<različica>, vzeto iz opomb k izdaji n8n) in namerno nadgrajujte, tako da rutinsko nalaganje nikoli ne preskoči glavne različice, preden preberete dnevnik sprememb.

Odpravljanje pogostih težav

Kontejner n8n se nenehno ponovno zaganjaja

Takoj po začetku zanke ponovnega zagona preverite dnevnike kontejnerja:

    docker compose logs n8n --tail=100

Pogosti vzroki:

  • Napaka pri povezavi z bazo podatkov: Preverite, ali je PostgreSQL v dobrem stanju s komando `docker compose ps`. Preverite, ali se `POSTGRES_PASSWORD` v vaši datoteki `.env` ujema s tistim, s katerim je bila baza podatkov inicializirana.
  • Manjka ali je bil spremenjen šifrirni ključ: Če N8N_ENCRYPTION_KEY ni nastavljen ali je bil spremenjen po prvem zagonu, n8n ne more dešifrirati shranjenih poverilnic in se bo sesul.
  • Premajhna količina RAM-a: PostgreSQL in n8n skupaj lahko porabita 1–1,5 GB RAM-a. Preverite razpoložljivi pomnilnik z ukazom `free -h`.

Webhooki ne delujejo

Webhooki zahtevajo, da je n8n na vaši domeni dostopen iz interneta. Preverite:

  1. Vaš DNS A zapis domene kaže na IP naslov vašega VPS: dig n8n.vašadomena.com
  2. Nginx teče: sudo systemctl status nginx
  3. Vrata 443 so odprta: sudo ufw status
  4. Okoljska spremenljivka WEBHOOK_URL se natančno ujema z vašo javno domeno, vključno s končnim poševnikom

Urednik n8n se ne nalaga pravilno

Če se vizualni urejevalnik naloži, vendar prikaže prazno delovno površino ali pa posodobitve v realnem času ne delujejo več, pomeni, da povezava WebSocket ne deluje. Preverite, ali je v vaši konfiguraciji Nginx prisoten blok $http_upgrade in ali v vrstici proxy_set_header Connection uporabljate spremenljivko $connection_upgrade — ne pa dobesednega niza »upgrade«.

Napake pri SSL-potrdilih

Če Certbot ne uspe zaradi napake pri preverjanju domene, preverite, ali je vrata 80 dostopna iz interneta:

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

Če pride do časovne omejitve zahtevka, je mogoče, da požarni zid vašega ponudnika VPS blokira vrata 80. Poleg UFW preverite tudi pravila požarnega zida v oblačni konzoli.

Zaključek

Samostojno gostovanje n8n na Linux VPS vam ponuja platformo za avtomatizacijo delovnih tokov, pripravljeno za produkcijo, brez omejitev izvajanja, s popolno zasebnostjo podatkov in prožnostjo za izvajanje katere koli integracije, ki jo potrebujete. Nastavitev, opisana v tem vodniku — Docker, PostgreSQL, povratni proxy Nginx, SSL Let’s Encrypt, avtomatizirana varnostna kopiranja in okrepitev varnosti — je enaka tisti, ki se uporablja v produkcijskih okoljih, in vam zagotavlja stabilno, varno osnovo za nadaljnji razvoj.

Za razliko od minimalne namestitve z ukazom »run« v Dockerju je ta konfiguracija zasnovana tako, da prenese ponovne zagone strežnika, obvladuje sočasno izvajanje delovnih tokov in se nemoteno obnovi po napakah. Vaša pooblastila so šifrirana, podatki se vsak večer varnostno kopirajo, končna točka za prijavo pa je omejena glede na število poskusov, da se prepreči brute-force napadi.

Ko vaša instanca že deluje, raziskajte vgrajene vozlišča n8n za baze podatkov, API-je, webhooke in integracije umetne inteligence, da takoj začnete avtomatizirati svoje delovne tokove. Samostojni forum skupnosti na community.n8n.io je prav tako odličen vir za ideje o delovnih tokovih, odpravljanje težav z vozlišči in nasvete za uvajanje.

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.

Začnite uporabljati Ranktracker... brezplačno!

Ugotovite, kaj preprečuje uvrstitev vašega spletnega mesta.

Ustvarite brezplačen račun

Ali se prijavite s svojimi poverilnicami

Different views of Ranktracker app