• Technológia

Hogyan állítsuk be az n8n saját szerverét egy Linux VPS-en (lépésről lépésre)

  • Felix Rose-Collins
  • ••
  • 14 min read

Bevezető

Az n8n az egyik leghatékonyabb, forráskóddal rendelkező munkafolyamat-automatizáló eszköz, amely ma elérhető. A Zapier vagy a Makehez hasonló SaaS-alternatívákkal ellentétben az n8n teljes ellenőrzést biztosít az adatok és az automatizálások felett – de csak akkor, ha saját magad üzemelteted. Ehhez a Linux VPS a legideálisabb környezet: mindig elérhető, megfizethető és teljes mértékben a te irányításod alatt áll.

Ez az útmutató végigvezeti Önt a termeléskész, saját szerveren futtatott n8n-példány Linux VPS-en történő beállításának teljes folyamatán. Az üres szervertől eljuthat egy teljesen biztonságos, SSL-támogatással rendelkező n8n-telepítésig, Dockerrel, Nginx-szel, PostgreSQL-lel, automatizált biztonsági mentésekkel és megerősített biztonsági konfigurációval.

Főbb tanulságok

  • Az n8n VPS-en korlátlan munkafolyamatokat, használati korlátok nélküli működést és teljes adat-tulajdonjogot biztosít
  • A Docker az ajánlott telepítési módszer a könnyebb frissítések és az elszigetelés érdekében
  • A PostgreSQL az ajánlott adatbázis a termelési terhelésekhez (nem az SQLite)
  • Termelési használathoz szükséges egy Let’s Encrypt SSL-lel ellátott fordított proxy (Nginx)
  • A zökkenőmentes n8n-élményhez a VPS-nek legalább 1 vCPU-val és 2 GB RAM-mal kell rendelkeznie a PostgreSQL használatához
  • A rendszeres automatikus biztonsági mentések védik a munkafolyamat-adataidat és a hitelesítő adataidat

Mi az az n8n?

Az n8n (kiejtése: „n-nyolc-n”) egy nyílt forráskódú munkafolyamat-automatizálási platform, amely lehetővé teszi alkalmazások, API-k és szolgáltatások összekapcsolását egy vizuális, csomópont-alapú szerkesztő segítségével. Több mint 400 integrációt támogat alapértelmezés szerint, és lehetővé teszi egyéni JavaScript- vagy Python-kód futtatását a munkafolyamatokon belül.

Az n8n és versenytársai közötti legfontosabb különbség három dologra vezethető vissza: a tulajdonjogra, a költségekre és a rugalmasságra.

**Tulajdonjog: **Ha az n8n-t saját szerveren üzemelteti, a munkafolyamat-adatok, a hitelesítő adatok és a végrehajtási naplófájlok soha nem hagyják el a szerverét. Ez rendkívül fontos azoknak a csapatoknak, amelyek érzékeny ügyféladatokat, pénzügyi nyilvántartásokat vagy saját üzleti logikát kezelnek. A felhőalapú platformok az automatizálási logikát a saját infrastruktúrájukon tárolják, amelyre az ő adatmegőrzési irányelveik és biztonsági szabályzataik vonatkoznak.

**Költség: **Az n8n felhőalapú csomagja a munkafolyamatok végrehajtásai után számol fel díjat, ami nagy volumenű automatizálások esetén gyorsan összeadódik. Egy közepes méretű csapat, amely naponta több ezer végrehajtást futtat, havonta több száz dollárt is elköltenhet. Saját VPS-en, miután kifizette a szerver díját, a végrehajtások korlátlanok, további költségek nélkül.

**Rugalmasság: **Az önállóan üzemeltetett n8n lehetővé teszi közösségi csomópontok telepítését, tetszőleges kód futtatását a munkafolyamatokon belül, a nyilvános internetről nem elérhető belső szolgáltatásokhoz való csatlakozást, valamint a telepítés minden aspektusának saját igényeid szerinti konfigurálását. A felhőalapú csomagok ezek közül sok funkciót korlátoznak.

Előfeltételek

Mielőtt elkezdené, győződjön meg arról, hogy rendelkezik a következőkkel:

  • Egy Ubuntu 22.04 vagy 24.04 rendszert futtató Linux VPS (ajánlott). Ellenőrizd, hogy a szolgáltatód kínál-e Ubuntut a választott csomagméretben, mivel egyes belépő szintű csomagok csak más disztribúciókat kínálnak
  • Egy nem root felhasználó sudo jogosultságokkal
  • A VPS IP-címére mutató domainnév (pl. n8n.yourdomain.com)
  • SSH-hozzáférés a szerveréhez
  • Alapvető ismeretek a Linux parancssor használatáról

A megfelelő VPS kiválasztása

A választott szerver közvetlen hatással van az n8n teljesítményére. Legalább 1 vCPU-ra, 2 GB RAM-ra és 20 GB SSD-tárhelyre van szükség. A minimális SQLite-alapú telepítéshez képest a többlet RAM azért szükséges, mert a PostgreSQL, az Nginx és az n8n egyszerre futnak.

Ismerje meg a Ranktracker-t

Az All-in-One platform a hatékony SEO-hoz

Minden sikeres vállalkozás mögött egy erős SEO kampány áll. De a számtalan optimalizálási eszköz és technika közül lehet választani, ezért nehéz lehet tudni, hol kezdjük. Nos, ne félj tovább, mert van egy ötletem, ami segíthet. Bemutatom a Ranktracker all-in-one platformot a hatékony SEO-ért.

Végre megnyitottuk a Ranktracker regisztrációt teljesen ingyenesen!

Ingyenes fiók létrehozása

Vagy Jelentkezzen be a hitelesítő adatokkal

Több felhasználóval rendelkező csapatok, összetett, több lépésből álló munkafolyamatok vagy nagy webhook-átviteli sebesség esetén frissítsen 2 vCPU-ra és 4 GB RAM-ra. A tárhelynek legalább 40 GB-nak kell lennie, ha hosszú futási naplókat kíván megőrizni.

A PetroSky NVMe VPS-csomagokat kínál Párizsban és Montrealban, ahol az n8n egy kattintással telepíthető alkalmazásként elérhető a fizetéskor: egy nyílt forráskódú telepítő szkript a Docker Compose segítségével telepíti az n8n-t, és a Caddy és a Let’s Encrypt segítségével automatikusan beállítja a HTTPS-t. Ez az útmutató a manuális telepítési módszert ismerteti, amely bármely szolgáltatónál működik.

A VPS-szolgáltató kiválasztásakor vegye figyelembe a földrajzi elhelyezkedést is. Helyezze el az n8n-példányát abban a régióban, amely a legközelebb van azokhoz a szolgáltatásokhoz, amelyekhez leggyakrabban csatlakozni fog – ez csökkenti az API-késleltetést a munkafolyamatok végrehajtása során.

1. lépés: Frissítse a szerverét

Csatlakozz SSH-n keresztül a VPS-hez, és futtasd le a teljes rendszerfrissítést, mielőtt bármit is telepítenél:

    sudo apt update && sudo apt upgrade -y

Ezzel biztosítja, hogy a legfrissebb biztonsági javítások és az összes rendszerkönyvtár naprakész legyen, mielőtt a Docker-t és más szoftvereket telepítené rájuk.

Indítsa újra a rendszert, ha kernel-frissítés történt:

    sudo reboot

Miután újra csatlakozott SSH-n keresztül, hozzon létre egy dedikált rendszerfelhasználót az n8n futtatásához. A szolgáltatások rootként való futtatása biztonsági kockázatot jelent:

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

2. lépés: Telepítse a Docker-t és a Docker Compose-t

Az n8n hivatalosan ajánlott telepítési módszere a Docker. A Docker elszigeteli az n8n-t és annak függőségeit a rendszer többi részétől, így a frissítések és a visszaállítások egyszerűen elvégezhetők.

Telepítse a Docker-t a hivatalos segédparancsfájl segítségével:

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

A Docker dokumentációja megjegyzi, hogy a kényelmi szkriptet nem ajánlják termelési környezetekben, mert a legújabb kiadást telepíti anélkül, hogy lehetőséget adna a verzió kiválasztására. Ha rögzíteni szeretné a Docker verzióit, inkább használja az apt-tárház módszerét a Docker Ubuntu-telepítési útmutatójából (docs.docker.com/engine/install/ubuntu/).

Adja hozzá felhasználóját a Docker csoporthoz, hogy sudo nélkül is futtathassa a Docker parancsokat:

    sudo usermod -aG docker $USER
    newgrp docker

Ellenőrizze, hogy a Docker megfelelően fut-e:

    docker --version
    docker compose version

Mindkét parancsnak hiba nélkül kell visszaadnia a verziószöveget. Ha a Docker Compose nem található, telepítse manuálisan:

    sudo apt install docker-compose-plugin -y

3. lépés: A PostgreSQL beállítása termelési környezetre

Alapértelmezés szerint az n8n az SQLite-ot használja adatbázisként. Az SQLite személyes használatra és egyszerű munkafolyamatokhoz megfelelő, de rosszul kezeli a párhuzamos írási műveleteket, ami lassulásként és „adatbázis zárolva” hibaként jelentkezik, ha egyszerre több munkafolyamat fut. Termelési környezetben a PostgreSQL a megfelelő választás.

Ismerje meg a Ranktracker-t

Az All-in-One platform a hatékony SEO-hoz

Minden sikeres vállalkozás mögött egy erős SEO kampány áll. De a számtalan optimalizálási eszköz és technika közül lehet választani, ezért nehéz lehet tudni, hol kezdjük. Nos, ne félj tovább, mert van egy ötletem, ami segíthet. Bemutatom a Ranktracker all-in-one platformot a hatékony SEO-ért.

Végre megnyitottuk a Ranktracker regisztrációt teljesen ingyenesen!

Ingyenes fiók létrehozása

Vagy Jelentkezzen be a hitelesítő adatokkal

Futtassa a PostgreSQL-t a Dockerben az n8n mellett:

    mkdir ~/n8n && cd ~/n8n

Hozzon létre egy környezeti fájlt a titkos adatok biztonságos tárolásához. Soha ne írja be a jelszavakat közvetlenül a compose fájlba:

    nano ~/n8n/.env

Adja hozzá a következőket, a helyőrző értékeket erős, egyedi jelszavakra cserélve:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=itt_adja_meg_az_erős_adatbázis-jelszavát
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=itt_adja_meg_a_véletlenszerű_32_karakteres_karakterláncot

Hozzon létre egy biztonságos titkosítási kulcsot a következő paranccsal:

    openssl rand -hex 16

Használja a kimenetet N8N_ENCRYPTION_KEY értékeként. Ez a kulcs titkosítja az n8n-ben tárolt hitelesítő adatokat — ha elveszíti, az összes mentett hitelesítő adat helyrehozhatatlanná válik.

4. lépés: Hozza létre az n8n Docker Compose fájlt

Hozza létre a docker-compose.yml fájlt az n8n könyvtárban:

    nano ~/n8n/docker-compose.yml

Illessze be a következő konfigurációt:


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:

Konfigurációs megjegyzések:

  • A 127.0.0.1:5678:5678 portkötés biztosítja, hogy az n8n csak helyileg legyen elérhető. Az Nginx kezeli az összes külső forgalmat — soha ne tegye a 5678-as portot közvetlenül elérhetővé az interneten.
  • A depends_on a service_healthy feltétellel biztosítja, hogy az n8n a PostgreSQL teljes készenlétére várjon, mielőtt elindulna. Enélkül az n8n az első indításkor meghiúsul, ha az adatbázis még nem fogad kapcsolatokat.
  • Az N8N_LOG_LEVEL=info hasznos üzemeltetési naplókat biztosít anélkül, hogy a debug parancshoz hasonlóan elárasztaná a lemezterületet.

5. lépés: Az Nginx telepítése és konfigurálása

Az Nginx fordított proxyként fog működni, továbbítva a 443-as porton érkező HTTPS-forgalmat az 5678-as porton futó n8n konténeredhez. Emellett kezeli az SSL-végpontot is, ami azt jelenti, hogy az n8n-nek magának nem kell a tanúsítványokat kezelnie.

    sudo apt install nginx -y

Távolítsa el az alapértelmezett webhelyet, és hozzon létre egy új szerverblokkot az n8n számára:

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

Illessze be a következőket:

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

A tetején található map blokk helyesen kezeli a WebSocket frissítési fejléceket. Az n8n a szerkesztőben a valós idejű frissítésekhez WebSocketeket használ, ezért ez a konfiguráció fontos — ennek hiányában a vizuális szerkesztő nem fog megfelelően működni.

A client_max_body_size 50m utasítás lehetővé teszi a munkafolyamatok számára, hogy nagy méretű webhook-adatcsomagokat fogadjanak. Az Nginx alapértelmezett korlátja 1 MB, ami túl kicsi a fájlfeltöltéseket vagy nagy méretű JSON-válaszokat feldolgozó munkafolyamatok számára.

Engedélyezze a konfigurációt, és tesztelje le:

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

6. lépés: SSL-tanúsítvány kiállítása a Let’s Encrypt segítségével

Telepítse a Certbotot és az Nginx-bővítményt:

    sudo apt install certbot python3-certbot-nginx -y

Kérjen tanúsítványt a domainjéhez:

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

Kövesse az utasításokat. Amikor a rendszer megkérdezi, hogy átirányítsa-e a HTTP forgalmat HTTPS-re, válassza az Igen (2. opció) lehetőséget. A Certbot automatikusan frissíti az Nginx konfigurációját az átirányítás kezeléséhez, és telepíti a teljes tanúsítványláncot.

Ellenőrizze, hogy az automatikus megújítás helyesen van-e beállítva:

    sudo certbot renew --dry-run

A Certbot telepít egy systemd időzítőt, amely 12 óránként automatikusan megújítja a tanúsítványokat. A tanúsítványok akkor kerülnek megújításra, amikor lejáratukig 30 nap vagy annál kevesebb van hátra. Soha nem kell kézzel megújítania őket.

7. lépés: Indítsa el az n8n-t

Térjen vissza az n8n könyvtárba, és indítsa el az összes szolgáltatást:

    cd ~/n8n
    docker compose up -d

A Docker letölti a PostgreSQL- és az n8n-képeket, létrehozza a köteteket, először elindítja a PostgreSQL-t, megvárja, amíg az állapotellenőrzés sikeresen lezárul, majd elindítja az n8n-t. Ez a folyamat az első futtatáskor 1–3 percet vesz igénybe.

Ellenőrizze, hogy mindkét konténer fut-e:

    docker compose ps

A listán mind a postgres, mind az n8n „Up” állapotban kell, hogy szerepeljen. Ha az n8n „Restarting” állapotot jelez, ellenőrizze a naplókat:

    docker compose logs n8n --tail=50

Amint mindkét konténer rendben működik, nyissa meg a böngészőjét, és lépjen a https://n8n.yourdomain.com oldalra. A rendszer kéri, hogy hozzon létre egy tulajdonosi fiókot e-mail-címmel és jelszóval. Ez a fiók teljes rendszergazdai hozzáférést biztosít az n8n-példányához.

8. lépés: Az n8n beállítása a rendszerindításkor történő elindításra

A docker-compose.yml fájlban található restart: always utasítás biztosítja, hogy az összes konténer automatikusan újrainduljon összeomlás vagy a szerver újraindítása esetén.

Ellenőrizze ezt a szerver újraindításával:

    sudo reboot

Miután újra csatlakozott SSH-n keresztül, ellenőrizze, hogy az n8n automatikusan újraindult-e:

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

Mindkét konténernek manuális beavatkozás nélkül futó állapotban kell lennie.

9. lépés: Automatikus biztonsági mentések beállítása

Az n8n adatai – munkafolyamatok, hitelesítő adatok és végrehajtási előzmények – két helyen találhatók: a PostgreSQL adatbázisban és az n8n_data Docker-kötetben (amely a titkosítási kulcsokat és néhány konfigurációs adatot tárolja). Készítsen rendszeresen biztonsági másolatot mindkettőről.

Készítsen biztonsági mentési szkriptet:

    nano ~/n8n/backup.sh

Illessze be a következőket:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Először ellenőrizze, hogy létezik-e a biztonsági mentési könyvtár
mkdir -p "$BACKUP_DIR"


# PostgreSQL-dump
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"


# Ellenőrizze, hogy a mentés sikeres volt-e és nem üres-e a fájl
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "HIBA: Az adatbázis-mentés sikertelen volt $DATE-kor" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# A titkosítási kulcs és a környezeti változók biztonsági mentése
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Az n8n_data kötet biztonsági mentése (az instancia konfigurációja és a telepített közösségi csomópontok)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Az adatbázis-dump tömörítése
gzip "$DUMP_FILE"


# Csak az elmúlt 7 nap biztonsági másolatait tartja meg
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 "A biztonsági mentés befejeződött: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Az n8n_n8n_data kötetnév abból származik, hogy a Docker Compose a kötet elé a projektmappa nevét (n8n) illeszti. Ellenőrizze a sajátját a docker volume ls paranccsal.

Tegye a szkriptet futtathatóvá, és ütemezze be a cron segítségével:

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

Adja hozzá ezt a sort, hogy a biztonsági mentés minden nap hajnali 2 órakor futjon:

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

A helyszínen kívüli redundancia érdekében fontolja meg a biztonsági mentési könyvtár szinkronizálását egy S3-kompatibilis objektumtároló szolgáltatóval az rclone vagy az aws s3 sync segítségével.

10. lépés: Alapvető biztonsági megerősítés engedélyezése

Tűzfal beállítása

Telepítse az UFW-t, és csak a szerver számára szükséges portokat engedélyezze:

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

Ellenőrizze, hogy a szabályok aktívak-e:

    sudo ufw status verbose

Látnia kell, hogy a 22-es (SSH), a 80-as (HTTP) és a 443-as (HTTPS) port engedélyezve van. Egy fontos megjegyzés: a Docker saját tűzfalszabályokat ír, és a közzétett konténerportok esetében megkerüli az UFW-t. Az 5678-as port azért marad privát, mert a compose fájl a 127.0.0.1-hez köti, nem pedig az UFW miatt, ezért soha ne változtassa meg ezt a kötést 0.0.0.0-ra.

Tiltsa le a jelszóval történő hitelesítést az SSH-n

Ha SSH-kulcsokat használ (amit egyébként is ajánlott), teljesen tiltsa le a jelszóalapú SSH-bejelentkezést. Először győződjön meg arról, hogy az n8nuser fiók be tud jelentkezni a kulcsával. A helyi gépről futtassa a következő parancsot:

    ssh-copy-id n8nuser@your_server_ip

Ezután szerkeszd az SSH-kiszolgáló konfigurációját:

    sudo nano /etc/ssh/sshd_config

Állítsa be a következő értékeket:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Számos Ubuntu felhőalapú képfájlban az /etc/ssh/sshd_config.d/ könyvtárban található fájl (gyakran 50-cloud-init.conf) a PasswordAuthentication értéket yes-re állítja, és ez az érték érvényesül, mivel az sshd az első olvasott értéket veszi figyelembe. Ellenőrizze, hogy melyik beállítás van ténylegesen érvényben:

    sudo sshd -T | grep -i passwordauthentication

A kimenetnek passwordauthentication no-t kell jelenítenie. Ha nem így van, módosítsa az értéket a felülírási fájlban, majd indítsa újra az SSH-t.

Ne zárja be a jelenlegi SSH-munkamenetet, amíg meg nem győződött arról, hogy a kulcsalapú bejelentkezés működik egy új terminálablakban.

A n8n bejelentkezési oldal sebességkorlátozása

Adjon hozzá sebességkorlátozást, hogy lassítsa a n8n bejelentkezési végpont elleni brute-force támadásokat.

Ismerje meg a Ranktracker-t

Az All-in-One platform a hatékony SEO-hoz

Minden sikeres vállalkozás mögött egy erős SEO kampány áll. De a számtalan optimalizálási eszköz és technika közül lehet választani, ezért nehéz lehet tudni, hol kezdjük. Nos, ne félj tovább, mert van egy ötletem, ami segíthet. Bemutatom a Ranktracker all-in-one platformot a hatékony SEO-ért.

Végre megnyitottuk a Ranktracker regisztrációt teljesen ingyenesen!

Ingyenes fiók létrehozása

Vagy Jelentkezzen be a hitelesítő adatokkal

**Fontos: **A limit_req_zone direktívát a fő Nginx-konfiguráció http {} blokkjába kell beilleszteni — nem a szerverblokkba. Nyissa meg a fő konfigurációt:

    sudo nano /etc/nginx/nginx.conf

Adja hozzá ezt a sort a meglévő http {} blokkba:

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

Ezután az n8n webhelykonfigurációjában (/etc/nginx/sites-available/n8n) adja hozzá ezt a location blokkot a 443-as porton figyelő server blokkba (a Certbot a 6. lépésben hozta létre), a meglévő location / mellé. Az Nginx nem viszi át a proxy fejléceket a location /-ból, ezért azokat itt meg kell ismételni:

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

Az alkalmazáshoz indítsd újra az Nginx-et:

    sudo nginx -t && sudo systemctl reload nginx

Ezzel minden IP-címre percenként körülbelül 5 bejelentkezési kísérletet korlátozunk, kis mértékű túlterhelés-tűréssel.

Tartsa naprakészen az n8n-t és a PostgreSQL-t

Rendszeresen töltse le a legújabb képeket, és indítsa újra a rendszert:

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

A Docker letölti a legújabb n8nio/n8n és postgres képeket, és csak azokat a konténereket indítja újra, amelyekhez újabb verzió áll rendelkezésre.

Termelési környezetben érdemes az n8n képet egy adott verziócímkéhez rögzíteni (docker.n8n.io/n8nio/n8n:<version>, az n8n kiadási megjegyzéseiből), és a frissítést szándékosan végrehajtani, így a rutin letöltés soha nem ugrik át egy főverziót, mielőtt elolvasta volna a változásnaplót.

Gyakori problémák elhárítása

Az n8n konténer folyamatosan újraindul

Ellenőrizze a konténer naplóit közvetlenül az újraindulási ciklus kezdete után:

    docker compose logs n8n --tail=100

Gyakori okok:

  • Adatbázis-kapcsolati hiba: Győződjön meg a docker compose ps paranccsal arról, hogy a PostgreSQL rendben működik-e. Ellenőrizze, hogy a .env fájlban szereplő POSTGRES_PASSWORD megegyezik-e azzal, amellyel az adatbázist inicializálták.
  • Hiányzó vagy megváltozott titkosítási kulcs: Ha az N8N_ENCRYPTION_KEY nincs beállítva, vagy az első futtatás után megváltozott, az n8n nem tudja visszafejteni a tárolt hitelesítő adatokat, és összeomlik.
  • Nem elegendő RAM: A PostgreSQL és az n8n együttesen 1–1,5 GB RAM-ot használhatnak. Ellenőrizze a rendelkezésre álló memóriát a `free -h` paranccsal.

A webhookok nem működnek

A webhookok működéséhez az n8n-nek elérhetőnek kell lennie az interneten a domainjén. Ellenőrizze:

  1. A domain DNS A-rekordja a VPS IP-címére mutat: dig n8n.yourdomain.com
  2. Az Nginx fut: sudo systemctl status nginx
  3. A 443-as port nyitva van: sudo ufw status
  4. A WEBHOOK_URL környezeti változó pontosan megegyezik a nyilvános domainjével, beleértve a záró perjelet is

Az n8n szerkesztő nem töltődik be megfelelően

Ha a vizuális szerkesztő betöltődik, de üres munkafolyamat-vásznat jelenít meg, vagy a valós idejű frissítések nem működnek, akkor a WebSocket-kapcsolat megszakadt. Ellenőrizze, hogy az Nginx konfigurációjában szerepel-e a $http_upgrade blokk, és hogy a proxy_set_header Connection sorban a $connection_upgrade változót használja-e — nem pedig az „upgrade” karakterláncot.

SSL-tanúsítványhibák

Ha a Certbot domain-érvényesítési hibával bukik meg, ellenőrizze, hogy a 80-as port elérhető-e az internetről:

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

Ha a kérés időtúllépést eredményez, előfordulhat, hogy a VPS-szolgáltató tűzfala blokkolja a 80-as portot. Az UFW mellett ellenőrizze a felhőkonzol tűzfalszabályait is.

Következtetés

Az n8n saját Linux VPS-en való üzemeltetése egy termeléskész munkafolyamat-automatizálási platformot biztosít, amelynek nincs végrehajtási korlátja, teljes adatvédelmet nyújt, és rugalmasan futtathat bármilyen szükséges integrációt. Az ebben az útmutatóban bemutatott beállítás — Docker, PostgreSQL, Nginx fordított proxy, Let’s Encrypt SSL, automatizált biztonsági mentések és biztonsági megerősítés — megegyezik a termelési környezetekben használt stackkel, és stabil, biztonságos alapot nyújt az építkezéshez.

A minimális Docker run-parancsos telepítéssel ellentétben ez a beállítás úgy van kialakítva, hogy kibírja a szerver újraindításait, kezelje a párhuzamos munkafolyamat-végrehajtásokat, és zökkenőmentesen helyreálljon a meghibásodások után. A hitelesítő adatai titkosítva vannak, az adatairól éjszakánként biztonsági másolatot készítenek, a bejelentkezési végpontját pedig sávszélesség-korlátozás védi a brute force támadások ellen.

Amint az instanciád fut, fedezd fel az n8n beépített csomópontjait adatbázisok, API-k, webhookok és AI-integrációk számára, hogy azonnal megkezdhesd a munkafolyamatok automatizálását. A community.n8n.io címen található, saját szerveren üzemeltetett közösségi fórum szintén kiváló forrás munkafolyamat-ötletekhez, csomópontok hibaelhárításához és telepítési tippekhez.

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.

Kezdje el használni a Ranktracker-t... Ingyen!

Tudja meg, hogy mi akadályozza a weboldalát a rangsorolásban.

Ingyenes fiók létrehozása

Vagy Jelentkezzen be a hitelesítő adatokkal

Different views of Ranktracker app