• Tehnoloogia

Kuidas n8n-i Linuxi VPS-il ise majutada (samm-sammult)

  • Felix Rose-Collins
  • ••
  • 12 min read

Sissejuhatus

n8n on üks võimsamaid avatud lähtekoodiga töövoo automatiseerimise tööriistu, mis tänapäeval saadaval on. Erinevalt SaaS-alternatiividest, nagu Zapier või Make, annab n8n teile täieliku kontrolli oma andmete ja automatiseerimiste üle – kuid ainult siis, kui te seda ise hostite. Linuxi VPS on selleks ideaalne keskkond: alati saadaval, taskukohane ja täielikult teie kontrolli all.

Käesolev juhend viib teid läbi kogu protsessi, kuidas seadistada Linuxi VPS-il tootmiseks valmis, ise majutatav n8n-instants. Alustate tühjast serverist ja jõuate täielikult turvatud, SSL-toega n8n-i rakenduseni, mis sisaldab Dockerit, Nginxi, PostgreSQL-i, automatiseeritud varukoopiaid ja tugevdatud turvakonfiguratsiooni.

Peamised järeldused

  • n8n VPS-il pakub teile piiramatut arvu töövooge, kasutamispiiranguid ei ole ning teile kuulub täielik omandiõigus andmetele
  • Docker on soovitatav paigaldusmeetod, mis lihtsustab uuendusi ja isolatsiooni
  • Tootmiskeskkonnas on soovitatav kasutada andmebaasina PostgreSQL-i (mitte SQLite’i)
  • Tootmiskeskkonnas on vaja pöördproksit (Nginx) koos Let’s Encrypt SSL-iga
  • Sujuvaks n8n-kogemuseks PostgreSQL-iga peaks teie VPS-il olema vähemalt 1 vCPU ja 2 GB RAM-i
  • Regulaarsed automatiseeritud varukoopiad kaitsevad teie töövoo andmeid ja autentimisandmeid

Mis on n8n?

n8n (hääldatakse „n-eight-n”) on avatud lähtekoodiga töövoo automatiseerimise platvorm, mis võimaldab ühendada rakendusi, API-sid ja teenuseid visuaalse sõlmpõhise redaktori abil. See toetab kohe kasutusvalmis üle 400 integratsiooni ja võimaldab töövoogudes käivitada kohandatud JavaScripti või Pythoni koodi.

Peamine erinevus n8n ja selle konkurentide vahel seisneb kolmes asjas: omandiõigus, maksumus ja paindlikkus.

**Omandiõigus: **Kui te majutate n8n-i ise, ei lahku teie töövoo andmed, autentimisandmed ega täitmislogid kunagi teie serverist. Meeskondadele, kes tegelevad tundlike kliendiandmete, finantsandmete või ettevõttele omase äriloogikaga, on see äärmiselt oluline. Pilveplatvormid salvestavad teie automatiseerimisloogika oma infrastruktuuris, kus kehtivad nende andmete säilitamise eeskirjad ja turvalisuse tase.

**Kulud: **n8n-i pilvepaketi puhul arvestatakse tasu iga töövoo täitmise eest, mis suuremahuliste automatiseerimiste korral kasvab kiiresti. Keskmise suurusega meeskond, mis teostab päevas tuhandeid täitmisi, võib kulutada kuus sadu dollareid. Oma VPS-il on täitmiste arv pärast serveri eest maksmist piiramatu ja selle eest ei tule maksta lisatasu.

**Paindlikkus: **Isemajutatav n8n võimaldab teil installida kogukonna sõlmi, käivitada töövoogudes suvalist koodi, ühenduda sisemiste teenustega, millele avalikust internetist juurdepääs puudub, ning seadistada rakenduse iga aspekti oma soovi järgi. Pilvepaketid piiravad paljusid neist võimalustest.

Eeltingimused

Enne alustamist veenduge, et teil on:

  • Linuxi VPS, millel jookseb Ubuntu 22.04 või 24.04 (soovitatav). Kontrollige, et teie teenusepakkuja pakub valitud paketi suurusega Ubuntu versiooni, kuna mõned algtaseme paketid pakuvad ainult teisi distributsioone
  • Mitte-root-kasutaja, kellel on sudo-õigused
  • Teie VPS-i IP-aadressile suunatud domeeninimi (nt n8n.yourdomain.com)
  • SSH-juurdepääs teie serverile
  • Põhiteadmised Linuxi käsureast

Õige VPS-i valimine

Valitud server mõjutab otseselt n8n-i jõudlust. Vajate vähemalt 1 vCPU-d, 2 GB RAM-i ja 20 GB SSD-mälu. Lisamälu on vajalik võrreldes minimaalse SQLite-põhise installatsiooniga, kuna PostgreSQL, Nginx ja n8n töötavad kõik samaaegselt.

Meet Ranktracker

Kõik-ühes platvorm tõhusaks SEO-ks

Iga eduka ettevõtte taga on tugev SEO-kampaania. Kuid kuna on olemas lugematu hulk optimeerimisvahendeid ja -tehnikaid, mille hulgast valida, võib olla raske teada, kust alustada. Noh, ärge kartke enam, sest mul on just see, mis aitab. Tutvustan Ranktracker'i kõik-ühes platvormi tõhusaks SEO-ks.

Oleme lõpuks avanud registreerimise Ranktracker täiesti tasuta!

Loo tasuta konto

Või logi sisse oma volituste abil

Meeskondadele, kus on palju kasutajaid, keerulised mitmeastmelised töövood või suur webhookide läbilaskevõime, soovitame täiendada 2 vCPU-ni ja 4 GB RAM-ini. Kui kavatsete säilitada pikki täitmisloge, peaks salvestusruumi olema vähemalt 40 GB.

PetroSky pakub NVMe VPS-pakette Pariisis ja Montrealis, kus n8n on kassas saadaval ühe klõpsuga rakendusena: avatud lähtekoodiga installiskript paigaldab n8n Docker Compose’i abil ja seadistab HTTPS-i automaatselt Caddy ja Let’s Encrypti kaudu. Käesolev juhend käsitleb käsitsi paigaldamist, mis toimib mis tahes teenusepakkuja puhul.

VPS-teenusepakkuja valimisel võtke arvesse ka geograafilist asukohta. Hostige oma n8n-instantsi piirkonnas, mis asub kõige lähemal teenustele, millega see kõige sagedamini ühendust loob – see vähendab API viivitust teie töövoogude täitmisel.

1. samm: uuendage oma server

Logige SSH-ga oma VPS-i sisse ja viige enne mis tahes installimist läbi täielik süsteemi värskendus:

    sudo apt update && sudo apt upgrade -y

See tagab, et teil on paigaldatud uusimad turvaparandused ja et kõik süsteemiraamatukogud on ajakohased enne Docker’i ja muu tarkvara lisamist.

Käivitage arvuti uuesti, kui tuum on uuendatud:

    sudo reboot

Pärast uuesti SSH-ühenduse loomist looge n8n-i käitamiseks spetsiaalne süsteemikasutaja. Teenuste käitamine root-õigustega on turvarisk:

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

2. samm: Docker ja Docker Compose paigaldamine

n8n-i ametlikult soovitatav paigaldusmeetod on Docker. Docker eraldab n8n-i ja selle sõltuvused ülejäänud süsteemist, muutes uuendused ja tagasipööramised lihtsaks.

Paigalda Docker ametliku abiskripti abil:

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

Dockeri dokumentatsioonis märgitakse, et mugavuskäsikirja ei soovitata kasutada tootmiskeskkondades, kuna see installib viimase versiooni, ilma et saaksite versiooni valida. Kui soovite Docker-versioone fikseerida, kasutage selle asemel Docker’i Ubuntu installimisjuhendis (docs.docker.com/engine/install/ubuntu/) kirjeldatud apt-repositooriumi meetodit.

Lisage oma kasutaja Docker-gruppi, et saaksite Docker-käsklusi käivitada ilma sudo-ta:

    sudo usermod -aG docker $USER
    newgrp docker

Kontrollige, kas Docker töötab korrektselt:

    docker --version
    docker compose version

Mõlemad käsud peaksid väljastama versiooninimed ilma vigadeta. Kui Docker Compose'i ei leita, paigaldage see käsitsi:

    sudo apt install docker-compose-plugin -y

3. samm: PostgreSQLi seadistamine tootmiskeskkonnaks

Vaikimisi kasutab n8n andmebaasina SQLite'i. SQLite sobib hästi isiklikuks kasutamiseks ja kergeteks töövoogudeks, kuid see ei suuda hästi toime tulla samaaegsete kirjutamistega, mis avaldub aeglustustena ja „andmebaas on lukustatud” veateadetena, kui palju töövooge töötab samaaegselt. Tootmiskeskkonnas on õige valik PostgreSQL.

Meet Ranktracker

Kõik-ühes platvorm tõhusaks SEO-ks

Iga eduka ettevõtte taga on tugev SEO-kampaania. Kuid kuna on olemas lugematu hulk optimeerimisvahendeid ja -tehnikaid, mille hulgast valida, võib olla raske teada, kust alustada. Noh, ärge kartke enam, sest mul on just see, mis aitab. Tutvustan Ranktracker'i kõik-ühes platvormi tõhusaks SEO-ks.

Oleme lõpuks avanud registreerimise Ranktracker täiesti tasuta!

Loo tasuta konto

Või logi sisse oma volituste abil

Käivita PostgreSQL Dockeris koos n8n-iga:

    mkdir ~/n8n && cd ~/n8n

Loo keskkonnafail, et salajasi andmeid turvaliselt säilitada. Ära kunagi kirjuta paroole otse compose-faili:

    nano ~/n8n/.env

Lisa järgmine tekst, asendades asendusväärtused tugevate ja unikaalsete paroolidega:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=sinu_tugev_andmebaasi_parool_siia
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=sinu_juhuslik_32-märgiline_string_siia

Loo turvaline krüpteerimisvõti järgmise käskuga:

    openssl rand -hex 16

Kasutage väljundit oma N8N_ENCRYPTION_KEY-na. See võti krüpteerib n8n-is salvestatud kasutajatunnuseid – kui te selle kaotate, muutuvad kõik salvestatud kasutajatunnused taastamatuks.

4. samm: Loo n8n Docker Compose'i fail

Loo oma n8n-kataloogis fail docker-compose.yml:

    nano ~/n8n/docker-compose.yml

Kopeerige sinna järgmine konfiguratsioon:


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
      korduskatseid: 10


  n8n:
    pilt: docker.n8n.io/n8nio/n8n
    taaskäivitus: alati
    pordid:
      - "127.0.0.1:5678:5678"
    keskkond:
      - 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:

Konfiguratsiooni märkused:

  • Pordi sidumine 127.0.0.1:5678:5678 tagab, et n8n on kättesaadav ainult kohalikult. Nginx haldab kogu välist liiklust — ära ava porti 5678 kunagi otse internetile.
  • depends_on koos tingimusega service_healthy tagab, et n8n ootab enne käivitumist, kuni PostgreSQL on täielikult valmis. Ilma selleta ebaõnnestub n8n esimesel käivitamisel, kui andmebaas veel ühendusi vastu ei võta.
  • N8N_LOG_LEVEL=info annab sulle kasulikke operatsioonilogisid, ilma et see ülekoormaks kettaruumi nii, nagu seda teeks debug.

5. samm: Nginx'i installimine ja konfigureerimine

Nginx toimib pöördproksina, suunates HTTPS-liikluse pordist 443 teie n8n-konteinerisse pordis 5678. Samuti haldab see SSL-i lõpetamist, mis tähendab, et n8n ise ei pea sertifikaate haldama.

    sudo apt install nginx -y

Eemalda vaikimisi veebisait ja loo uus serveriblokk n8n-ile:

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

Kopeerige järgmine tekst:

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

Ülaosas asuv map-plokk töötleb WebSocketi uuendamise päiseid korrektselt. n8n kasutab WebSocketeid reaalajas uuenduste edastamiseks toimetajas, seega on see konfiguratsioon oluline – ilma selleta ei tööta visuaalne toimetaja korrektselt.

Direktiiv `client_max_body_size 50m` võimaldab töövoogudel vastu võtta suuri webhooki andmepakette. Nginxi vaikimisi piirang on 1 MB, mis on liiga väike töövoogudele, mis töötlevad failide üleslaadimisi või suuri JSON-vastuseid.

Lülita konfiguratsioon sisse ja testi seda:

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

6. samm: SSL-sertifikaadi väljastamine Let’s Encryptiga

Paigalda Certbot ja Nginx-i pistikprogramm:

    sudo apt install certbot python3-certbot-nginx -y

Taotlege sertifikaati oma domeenile:

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

Järgige ekraanil kuvatavaid juhiseid. Kui küsitakse, kas suunata HTTP-liiklus ümber HTTPS-ile, valige „Yes“ (valik 2). Certbot uuendab automaatselt teie Nginx-i konfiguratsiooni, et see ümbersuunamine toimiks, ning installib täieliku sertifikaatiahela.

Kontrollige, kas automaatne uuendamine on õigesti seadistatud:

    sudo certbot renew --dry-run

Certbot installib systemd-ajastuse, mis uuendab sertifikaate automaatselt iga 12 tunni järel. Sertifikaadid uuendatakse 30 päeva enne nende aegumist. Teil ei peaks kunagi olema vaja neid käsitsi uuendada.

7. samm: Käivita n8n

Naaske oma n8n-kataloogi ja käivitage kõik teenused:

    cd ~/n8n
    docker compose up -d

Docker laadib alla PostgreSQL-i ja n8n-i pildid, loob mahud, käivitab esmalt PostgreSQL-i, ootab, kuni tervisekontroll on edukalt läbitud, ja käivitab seejärel n8n-i. See protsess võtab esmakordsel käivitamisel aega 1–3 minutit.

Kontrollige, et mõlemad konteinerid töötaksid:

    docker compose ps

Nimekirjas peaksid olema nii postgres kui ka n8n staatusega „Up”. Kui n8n staatus on „Restarting”, kontrolli logifaile:

    docker compose logs n8n --tail=50

Kui mõlemad konteinerid on töökorras, avage brauser ja minge aadressile https://n8n.yourdomain.com. Teil palutakse luua omanikukonto, sisestades e-posti aadressi ja parooli. Sellel kontol on täielik administraatori juurdepääs teie n8n-instantsile.

8. samm: n8n-i seadistamine käivituma süsteemi käivitamisel

Docker-compose.yml-failis olev direktiiv „restart: always“ tagab, et kõik konteinerid taaskäivituvad automaatselt krahhi või serveri taaskäivitamise korral.

Kontrollige seda, taaskäivitades oma serveri:

    sudo reboot

Pärast uuesti SSH-ühenduse loomist kontrollige, kas n8n käivitus automaatselt uuesti:

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

Mõlemad konteinerid peaksid ilma käsitsi sekkumiseta olema käivitunud.

9. samm: automaatsete varukoopiate seadistamine

Teie n8n andmed — töövood, autentimisandmed ja täitmise ajalugu — asuvad kahes kohas: PostgreSQL-andmebaasis ja n8n_data Docker-mahus (kus hoitakse krüpteerimisvõtmeid ja mõningaid seadistusi). Tehke mõlemast regulaarselt varukoopiaid.

Looge varunduskäsikiri:

    nano ~/n8n/backup.sh

Kopeerige sinna järgmine tekst:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Veenduge enne muud tegevust, et varunduskataloog on olemas
mkdir -p "$BACKUP_DIR"


# PostgreSQL-i varundamine
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"


# Kontrolli, kas varundamine õnnestus ja fail ei ole tühi
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "VIGA: Andmebaasi varundamine ebaõnnestus kuupäeval $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Tee varukoopia krüpteerimisvõtmest ja keskkonnamuutujatest
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Tee varukoopia n8n_data-mahust (instantsi konfiguratsioon ja installitud kogukonna sõlmed)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Andmebaasi väljavõtte pakkimine
gzip "$DUMP_FILE"


# Säilita ainult viimase 7 päeva varukoopiaid
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 "Varuandmete loomine lõpetatud: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Mahu nimi n8n_n8n_data pärineb Docker Compose'ist, mis lisab mahule projekti kausta nime (n8n). Kontrollige oma mahu nime käsuga docker volume ls.

Tee skript käivitatavaks ja planeeri selle käivitamine croni abil:

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

Lisage järgmine rida, et varundamine toimuks iga päev kell 2 öösel:

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

Välise redundantsuse tagamiseks kaaluge varunduskataloogi sünkroniseerimist S3-ühilduva objektide salvestuspakkujaga, kasutades rclone'i või aws s3 sync'i.

10. samm: Põhiliste turvameetmete aktiveerimine

Tulemüüri seadistamine

Paigaldage UFW ja lubage ainult need pordid, mida teie server vajab:

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

Kontrollige, kas reeglid on aktiivsed:

    sudo ufw status verbose

Peaksite nägema, et pordid 22 (SSH), 80 (HTTP) ja 443 (HTTPS) on lubatud. Üks hoiatus: Docker kirjutab oma tulemüüri reeglid ja möödub UFW-st avaldatud konteineriportide puhul. Port 5678 jääb privaatseks, kuna compose-fail seob selle aadressiga 127.0.0.1, mitte UFW tõttu, seega ärge kunagi muutke seda seost aadressiks 0.0.0.0.

Lülita SSH-i parooliautentimine välja

Kui kasutate SSH-võtmeid (mida te peaksite tegema), lülitage paroolipõhine SSH-sisselogimine täielikult välja. Esmalt veenduge, et n8nuser-konto saab teie võtmega sisse logida. Käivitage oma kohalikult arvutilt järgmine käsk:

    ssh-copy-id n8nuser@teie_serveri_IP

Seejärel muuda SSH-serveri konfiguratsiooni:

    sudo nano /etc/ssh/sshd_config

Määrake järgmised väärtused:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Paljudes Ubuntu pilvepiltides määrab fail kataloogis /etc/ssh/sshd_config.d/ (sageli 50-cloud-init.conf) väärtuseks PasswordAuthentication yes, ja see võidab, sest sshd kasutab esimest väärtust, mida ta loeb. Kontrollige, milline seade tegelikult kehtib:

    sudo sshd -T | grep -i passwordauthentication

Käsu väljund peaks olema passwordauthentication no. Kui see nii ei ole, muuda väärtust ümberkirjutamisfailis ja taaskäivita SSH uuesti.

Ära sulge oma praegust SSH-seanssi enne, kui oled veendunud, et võtmepõhine sisselogimine töötab uues terminaliaknas.

n8n sisselogimislehe kiiruspiirang

Lisage kiiruspiirang, et aeglustada n8n sisselogimise lõpppunkti vastu suunatud jõuvõttega rünnakuid.

Meet Ranktracker

Kõik-ühes platvorm tõhusaks SEO-ks

Iga eduka ettevõtte taga on tugev SEO-kampaania. Kuid kuna on olemas lugematu hulk optimeerimisvahendeid ja -tehnikaid, mille hulgast valida, võib olla raske teada, kust alustada. Noh, ärge kartke enam, sest mul on just see, mis aitab. Tutvustan Ranktracker'i kõik-ühes platvormi tõhusaks SEO-ks.

Oleme lõpuks avanud registreerimise Ranktracker täiesti tasuta!

Loo tasuta konto

Või logi sisse oma volituste abil

**Oluline: **Direktiiv „limit_req_zone“ peab asuma teie peamise Nginx-konfiguratsiooni http {} plokis — mitte server-plokis. Avage peamine konfiguratsioon:

    sudo nano /etc/nginx/nginx.conf

Lisage see rida olemasolevasse http {} plokki:

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

Seejärel lisage oma n8n-i saidi konfiguratsioonis (/etc/nginx/sites-available/n8n) see location-plokk server-ploki sisse, mis kuulab porti 443 (Certbot lõi selle 6. sammus), olemasoleva asukoha / kõrvale. Nginx ei kanna proxy-pealkirju üle asukohast /, seega korratakse neid siin:

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

Laadige Nginx uuesti, et muudatused jõustuksid:

    sudo nginx -t && sudo systemctl reload nginx

See piirab iga IP-aadressi ligikaudu 5 sisselogimiskatsega minutis, lubades väikest hetkelist ületamist.

Hoidke n8n ja PostgreSQL ajakohasena

Laadige regulaarselt alla uusimad pildid ja taaskäivitage:

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

Docker laadib alla uusimad n8nio/n8n ja postgres pildid ning taaskäivitab ainult need konteinerid, millele on saadaval uuem versioon.

Tootmiskeskkonnas kaaluge n8n-pildi kinnitamist kindla versioonimärgise juurde (docker.n8n.io/n8nio/n8n:<versioon>, mis on võetud n8n-i väljalasketeatest) ja uuendage seda teadlikult, nii et rutiinne allalaadimine ei hüppaks kunagi üle peaversiooni, enne kui olete muutuste loendit läbi lugenud.

Tavaliste probleemide lahendamine

n8n-konteiner taaskäivitub pidevalt

Kontrollige konteineri logifaile kohe pärast taaskäivitumistsükli algust:

    docker compose logs n8n --tail=100

Tavalised põhjused:

  • Andmebaasi ühenduse viga: veenduge, et PostgreSQL töötab korralikult, kasutades käsku `docker compose ps`. Kontrollige, et teie .env-failis olev POSTGRES_PASSWORD vastab sellele, millega andmebaas algselt initsialiseeriti.
  • Krüpteerimisvõti puudub või on muutunud: kui N8N_ENCRYPTION_KEY ei ole määratud või seda on pärast esimest käivitamist muudetud, ei suuda n8n salvestatud autentimisandmeid dekrüpteerida ja kukub kokku.
  • Liiga vähe RAM-mälu: PostgreSQL ja n8n võivad kokku kasutada 1–1,5 GB RAM-mälu. Kontrollige vaba mälu mahtu käsuga `free -h`.

Webhookid ei tööta

Webhookide toimimiseks peab n8n olema teie domeenil internetist kättesaadav. Kontrollige:

  1. Teie domeeni DNS A-kirje viitab teie VPS-i IP-aadressile: dig n8n.yourdomain.com
  2. Nginx töötab: sudo systemctl status nginx
  3. Port 443 on avatud: sudo ufw status
  4. Keskkonnamuutuja WEBHOOK_URL vastab täpselt teie avalikule domeenile, sealhulgas lõpus olevale kaldkriipsule

n8n-redaktor ei lae korralikult

Kui visuaalne redaktor laadib küll, kuid kuvab tühja töövoo tööala või reaalajas uuendused lakkavad töötamast, on WebSocket-ühendus katkenud. Kontrollige, kas teie Nginx-konfiguratsioonis on olemas $http_upgrade-plokk ja kas kasutate proxy_set_header Connection-real muutujat $connection_upgrade — mitte otsest stringi „upgrade”.

SSL-sertifikaadi vead

Kui Certbot annab domeeni valideerimisvea, kontrollige, kas port 80 on internetist kättesaadav:

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

Kui päring aegub, võib teie VPS-teenusepakkuja tulemüür blokeerida porti 80. Kontrollige lisaks UFW-le ka pilvekonsooli tulemüüri reegleid.

Kokkuvõte

n8n-i isehostimine Linuxi VPS-il pakub teile tootmisvalmis töövoo automatiseerimise platvormi, millel puuduvad täitmispiirangud, mis tagab täieliku andmekaitse ja paindlikkuse käivitada mis tahes vajalik integratsioon. Käesolevas juhendis käsitletud seadistus – Docker, PostgreSQL, Nginx pöördproksi, Let’s Encrypt SSL, automatiseeritud varukoopiad ja turvalisuse tugevdamine – on sama tehnoloogiline lahendus, mida kasutatakse tootmiskeskkondades, ning pakub teile stabiilset ja turvalist alust, millele ehitada.

Erinevalt minimaalsest Docker run-käsu paigaldusest on see seadistus loodud taluma serveri taaskäivitusi, käsitlema samaaegseid töövoogude käivitamisi ja taastuma tõrgeteta riketest. Teie autentimisandmed on krüpteeritud, teie andmetest tehakse igal ööl varukoopiaid ja teie sisselogimise lõpppunkti juurdepääsu on piiratud, et vältida jõuvõtteid.

Kui teie instants töötab, uurige n8n-i sisseehitatud sõlmi andmebaaside, API-de, webhookide ja tehisintellekti integratsioonide jaoks, et alustada oma töövoogude automatiseerimist kohe. Isehostitud kogukonna foorum aadressil community.n8n.io on samuti suurepärane allikas töövoogude ideede, sõlmede veaotsingu ja kasutuselevõtu näpunäidete jaoks.

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.

Alusta Ranktracker'i kasutamist... Tasuta!

Uuri välja, mis takistab sinu veebisaidi edetabelisse paigutamist.

Loo tasuta konto

Või logi sisse oma volituste abil

Different views of Ranktracker app