• Technológia

Ako si n8n nasadiť na vlastnom Linuxovom VPS (krok za krokom)

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

Úvod

n8n je jedným z najvýkonnejších nástrojov na automatizáciu pracovných postupov s otvoreným zdrojovým kódom, ktoré sú dnes k dispozícii. Na rozdiel od alternatív typu SaaS, ako sú Zapier alebo Make, n8n vám poskytuje plnú kontrolu nad vašimi údajmi a automatizáciami – avšak len vtedy, ak si ho hostujete sami. Linuxový VPS je na to ideálnym prostredím: je neustále dostupný, cenovo dostupný a máte ho plne pod kontrolou.

Táto príručka vás prevedie celým procesom nastavenia produkčnej, vlastne hostovanej inštancie n8n na Linux VPS. Začnete s prázdnym serverom a skončíte s plne zabezpečeným nasadením n8n s podporou SSL, využívajúcim Docker, Nginx, PostgreSQL, automatické zálohovanie a posilnenú bezpečnostnú konfiguráciu.

Kľúčové body

  • n8n na VPS vám ponúka neobmedzené pracovné postupy, žiadne obmedzenia používania a plné vlastníctvo údajov
  • Docker je odporúčaná metóda inštalácie pre jednoduchšie aktualizácie a izoláciu
  • PostgreSQL je odporúčaná databáza pre produkčné pracovné zaťaženia (nie SQLite)
  • Pre produkčné použitie je potrebný reverzný proxy server (Nginx) s SSL certifikátom Let’s Encrypt
  • Váš VPS by mal mať aspoň 1 vCPU a 2 GB RAM pre plynulý chod n8n s PostgreSQL
  • Pravidelné automatické zálohy chránia vaše údaje o pracovných postupoch a prihlasovacie údaje

Čo je n8n?

n8n (vyslovuje sa „n-osem-n“) je platforma na automatizáciu pracovných postupov s otvoreným zdrojovým kódom, ktorá vám umožňuje prepojiť aplikácie, API a služby pomocou vizuálneho editora založeného na uzloch. Podporuje viac ako 400 integrácií hneď po inštalácii a umožňuje vám spúšťať vlastný kód v jazyku JavaScript alebo Python v rámci pracovných postupov.

Kľúčový rozdiel medzi n8n a jeho konkurentmi spočíva v troch veciach: vlastníctve, nákladoch a flexibilite.

**Vlastníctvo: **Keď si n8n hostujete sami, vaše údaje o pracovných postupoch, prihlasovacie údaje a protokoly vykonávania nikdy neopustia váš server. Pre tímy, ktoré pracujú s citlivými údajmi zákazníkov, finančnými záznamami alebo proprietárnou obchodnou logikou, má to obrovský význam. Cloudové platformy ukladajú vašu automatizačnú logiku na svojej infraštruktúre, pričom podliehajú ich zásadám uchovávania údajov a bezpečnostným opatreniam.

**Náklady: **Cloudový tarif n8n účtuje poplatky za každé spustenie pracovného toku, čo sa pri automatizáciách s veľkým objemom rýchlo nasčíta. Stredne veľký tím, ktorý vykonáva tisíce spustení denne, môže mesačne minúť stovky dolárov. Na vašom vlastnom VPS, keď raz zaplatíte za server, sú spustenia neobmedzené bez ďalších nákladov.

**Flexibilita: **Samohostované riešenie n8n vám umožňuje inštalovať komunitné uzly, spúšťať ľubovoľný kód v rámci pracovných postupov, pripájať sa k interným službám, ktoré nie sú dostupné z verejného internetu, a konfigurovať každý aspekt nasadenia podľa vašich predstáv. Cloudové plány mnohé z týchto možností obmedzujú.

Predpoklady

Než začnete, uistite sa, že máte:

  • Linuxový VPS s operačným systémom Ubuntu 22.04 alebo 24.04 (odporúčané). Skontrolujte, či váš poskytovateľ ponúka Ubuntu v rámci zvoleného balíka, keďže niektoré základné balíky ponúkajú iba iné distribúcie
  • Užívateľ bez práv root s oprávneniami sudo
  • Názov domény smerujúci na IP adresu vášho VPS (napr. n8n.yourdomain.com)
  • Prístup cez SSH k vášmu serveru
  • Základná znalosť príkazového riadku v systéme Linux

Výber správneho VPS

Server, ktorý si vyberiete, má priamy vplyv na výkon n8n. Minimálne potrebujete 1 vCPU, 2 GB RAM a 20 GB úložného priestoru na SSD. Dodatočná RAM v porovnaní s minimálnou inštaláciou založenou na SQLite je potrebná, pretože PostgreSQL, Nginx a n8n bežia všetky súčasne.

Zoznámte sa s nástrojom Ranktracker

Platforma "všetko v jednom" pre efektívne SEO

Za každým úspešným podnikaním stojí silná kampaň SEO. Pri nespočetnom množstve optimalizačných nástrojov a techník, z ktorých si môžete vybrať, však môže byť ťažké zistiť, kde začať. No už sa nemusíte báť, pretože mám pre vás presne to, čo vám pomôže. Predstavujem komplexnú platformu Ranktracker na efektívne SEO

Konečne sme otvorili registráciu do nástroja Ranktracker úplne zadarmo!

Vytvorenie bezplatného konta

Alebo sa pri hláste pomocou svojich poverení

Pre tímy s viacerými používateľmi, zložitými viacstupňovými pracovnými postupmi alebo vysokou priepustnosťou webhookov odporúčame prejsť na 2 vCPU a 4 GB RAM. Úložný priestor by mal byť minimálne 40 GB, ak plánujete uchovávať dlhé protokoly vykonávania.

PetroSky ponúka plány NVMe VPS v Paríži a Montreale, pričom n8n je k dispozícii ako aplikácia na jedno kliknutie pri platbe: inštalačný skript s otvoreným zdrojovým kódom nasadí n8n pomocou Docker Compose a automaticky nastaví HTTPS prostredníctvom Caddy a Let’s Encrypt. Táto príručka sa zaoberá manuálnym postupom, ktorý funguje u akéhokoľvek poskytovateľa.

Pri výbere poskytovateľa VPS zohľadnite aj geografickú polohu. Umiestnite svoju inštanciu n8n v regióne, ktorý je najbližšie k službám, ku ktorým sa bude najčastejšie pripájať – tým znížite latenciu API pri vykonávaní vašich pracovných postupov.

Krok 1: Aktualizujte svoj server

Pripojte sa cez SSH k vášmu VPS a pred inštaláciou čohokoľvek spustite úplnú aktualizáciu systému:

    sudo apt update && sudo apt upgrade -y

Týmto zabezpečíte, že máte najnovšie bezpečnostné opravy a že všetky systémové knižnice sú aktuálne predtým, ako pridáte Docker a ďalší softvér.

Ak bola nainštalovaná aktualizácia jadra, reštartujte systém:

    sudo reboot

Po opätovnom pripojení cez SSH vytvorte vyhradeného systémového používateľa na spúšťanie n8n. Spúšťanie služieb ako root predstavuje bezpečnostné riziko:

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

Krok 2: Inštalácia Dockeru a Docker Compose

Oficiálne odporúčaný spôsob inštalácie n8n je Docker. Docker izoluje n8n a jeho závislosti od zvyšku systému, čím zjednodušuje aktualizácie a vrátenie zmien.

Nainštalujte Docker pomocou oficiálneho skriptu:

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

V dokumentácii Dockeru sa uvádza, že tento skript sa neodporúča pre produkčné prostredia, pretože inštaluje najnovšiu verziu bez možnosti výberu verzie. Ak chcete zafixovať verzie Dockeru, použite namiesto toho metódu repozitára apt z inštalačného sprievodcu Dockeru pre Ubuntu (docs.docker.com/engine/install/ubuntu/).

Pridajte svojho používateľa do skupiny Docker, aby ste mohli spúšťať príkazy Docker bez sudo:

    sudo usermod -aG docker $USER
    newgrp docker

Overte, či Docker beží správne:

    docker --version
    docker compose version

Oba príkazy by mali bez chýb vrátiť reťazce s verziou. Ak sa Docker Compose nenájde, nainštalujte ho ručne:

    sudo apt install docker-compose-plugin -y

Krok 3: Nastavenie PostgreSQL pre produkčné prostredie

N8n štandardne používa ako databázu SQLite. SQLite je vhodný na osobné použitie a nenáročné pracovné postupy, ale zle zvládá súbežné zápisy, čo sa prejavuje spomalením a chybami typu „databáza je uzamknutá“, keď beží veľa pracovných postupov súčasne. Pre nasadenie do produkcie je správnou voľbou PostgreSQL.

Zoznámte sa s nástrojom Ranktracker

Platforma "všetko v jednom" pre efektívne SEO

Za každým úspešným podnikaním stojí silná kampaň SEO. Pri nespočetnom množstve optimalizačných nástrojov a techník, z ktorých si môžete vybrať, však môže byť ťažké zistiť, kde začať. No už sa nemusíte báť, pretože mám pre vás presne to, čo vám pomôže. Predstavujem komplexnú platformu Ranktracker na efektívne SEO

Konečne sme otvorili registráciu do nástroja Ranktracker úplne zadarmo!

Vytvorenie bezplatného konta

Alebo sa pri hláste pomocou svojich poverení

Spustite PostgreSQL v Dockeri spolu s n8n:

    mkdir ~/n8n && cd ~/n8n

Vytvorte súbor prostredia na bezpečné ukladanie vašich tajných údajov. Nikdy neuvádzajte heslá priamo v súbore compose:

    nano ~/n8n/.env

Pridajte nasledujúci text a nahraďte hodnoty v zástupných symboloch silnými jedinečnými heslami:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=vaše_silné_heslo_k_databáze
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=váš_náhodný_reťazec_s_32_znakmi

Vygenerujte bezpečný šifrovací kľúč pomocou:

    openssl rand -hex 16

Výsledok použite ako N8N_ENCRYPTION_KEY. Tento kľúč šifruje prihlasovacie údaje uložené v n8n — ak ho stratíte, všetky uložené prihlasovacie údaje sa stanú nenávratne stratenými.

Krok 4: Vytvorte súbor Docker Compose pre n8n

Vytvorte súbor docker-compose.yml vo vašom adresári n8n:

    nano ~/n8n/docker-compose.yml

Vložte nasledujúcu konfiguráciu:


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:

Poznámky ku konfigurácii:

  • Priradenie portu 127.0.0.1:5678:5678 zabezpečuje, že n8n je prístupné iba lokálne. Nginx bude spracovávať všetku externú prevádzku — port 5678 nikdy priamo nevystavujte internetu.
  • Použitie conditions_on s podmienkou service_healthy zabezpečuje, že n8n pred spustením počká, kým bude PostgreSQL úplne pripravený. Bez toho by n8n zlyhal pri prvom spustení, ak by databáza ešte neprijímala pripojenia.
  • N8N_LOG_LEVEL=info vám poskytuje užitočné prevádzkové protokoly bez toho, aby zapĺňalo diskový priestor tak, ako by to robilo nastavenie debug.

Krok 5: Inštalácia a konfigurácia Nginx

Nginx bude fungovať ako reverzný proxy server, ktorý presmeruje HTTPS prevádzku z portu 443 do vášho kontajnera n8n na porte 5678. Zabezpečuje tiež ukončenie SSL, čo znamená, že samotný n8n nemusí spravovať certifikáty.

    sudo apt install nginx -y

Odstráňte predvolenú stránku a vytvorte nový blok servera pre n8n:

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

Vložte nasledujúci text:

    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 v hornej časti správne spracováva hlavičky aktualizácie WebSocket. n8n používa WebSockets na aktualizácie v reálnom čase v editore, preto je táto konfigurácia dôležitá — bez nej nebude vizuálny editor fungovať správne.

Direktíva client_max_body_size 50m umožňuje pracovným postupom prijímať veľké dáta webhookov. Predvolený limit Nginx je 1 MB, čo je príliš málo pre pracovné postupy spracúvajúce nahrávanie súborov alebo veľké odpovede JSON.

Aktivujte konfiguráciu a otestujte ju:

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

Krok 6: Vydajte certifikát SSL pomocou Let’s Encrypt

Nainštalujte Certbot a doplnok pre Nginx:

    sudo apt install certbot python3-certbot-nginx -y

Požiadajte o certifikát pre vašu doménu:

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

Postupujte podľa pokynov. Keď budete vyzvaní, či chcete presmerovať HTTP prevádzku na HTTPS, vyberte Áno (možnosť 2). Certbot automaticky aktualizuje vašu konfiguráciu Nginx tak, aby zvládla toto presmerovanie, a nainštaluje kompletný reťazec certifikátov.

Overte, či je automatické obnovenie správne nakonfigurované:

    sudo certbot renew --dry-run

Certbot nainštaluje časovač systemd, ktorý automaticky obnovuje certifikáty každých 12 hodín. Certifikáty sa obnovujú, keď do ich vypršania zostáva menej ako 30 dní. Ručné obnovenie by ste nikdy nemali potrebovať.

Krok 7: Spustite n8n

Vráťte sa do adresára n8n a spustite všetky služby:

    cd ~/n8n
    docker compose up -d

Docker stiahne obrazy PostgreSQL a n8n, vytvorí diskové oddiely, najskôr spustí PostgreSQL, počká, kým prebehne kontrola stavu, a potom spustí n8n. Tento proces trvá pri prvom spustení 1–3 minúty.

Skontrolujte, či oba kontajnery bežia:

    docker compose ps

Mali by ste vidieť, že postgres aj n8n sú uvedené so stavom Up. Ak sa pri n8n zobrazuje stav Restarting, skontrolujte protokoly:

    docker compose logs n8n --tail=50

Akonáhle sú oba kontajnery v poriadku, otvorte prehliadač a prejdite na stránku https://n8n.yourdomain.com. Budete vyzvaní na vytvorenie účtu vlastníka s e-mailovou adresou a heslom. Tento účet má plný administrátorský prístup k vašej inštancii n8n.

Krok 8: Nastavte spustenie n8n pri štarte systému

Direktíva restart: always v súbore docker-compose.yml zabezpečuje, že sa všetky kontajnery automaticky reštartujú v prípade zlyhania alebo reštartu servera.

Overte to reštartovaním servera:

    sudo reboot

Po opätovnom pripojení cez SSH skontrolujte, či sa n8n automaticky spustil:

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

Oba kontajnery by sa mali zobrazovať ako bežiace bez akéhokoľvek manuálneho zásahu.

Krok 9: Nastavenie automatických záloh

Vaše údaje n8n — pracovné postupy, prihlasovacie údaje a história vykonávania — sa nachádzajú na dvoch miestach: v databáze PostgreSQL a v Dockerovom zväzku n8n_data (ktorý ukladá šifrovacie kľúče a niektoré nastavenia). Obe miesta pravidelne zálohujte.

Vytvorte skript na zálohovanie:

    nano ~/n8n/backup.sh

Vložte nasledujúci text:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Najprv sa uistite, že adresár na zálohovanie existuje
mkdir -p "$BACKUP_DIR"


# Vytvorte zálohu 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"


# Overenie, či sa záloha podarila a či nie je prázdna
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "CHYBA: Zálohovanie databázy zlyhalo dňa $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Zálohovanie šifrovacieho kľúča a premenných prostredia
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Zálohovanie zväzku n8n_data (konfigurácia inštancie a nainštalované komunitné uzly)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Komprimácia výpisu databázy
gzip "$DUMP_FILE"


# Zachovať len zálohy z posledných 7 dní
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 "Zálohovanie dokončené: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Názov zväzku n8n_n8n_data pochádza z Docker Compose, ktorý pred názov zväzku pridáva názov projektovej zložky (n8n). Overte si svoj názov pomocou príkazu docker volume ls.

Nastavte skript ako spustiteľný a naplánujte ho pomocou cronu:

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

Pridajte tento riadok, aby sa záloha spúšťala každý deň o 2:00:

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

Pre zabezpečenie redundancie mimo lokality zvážte synchronizáciu vášho adresára so zálohami s poskytovateľom objektového úložiska kompatibilného s S3 pomocou rclone alebo aws s3 sync.

Krok 10: Aktivujte základné bezpečnostné opatrenia

Nastavte firewall

Nainštalujte UFW a povoľte len porty, ktoré váš server potrebuje:

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

Overte, či sú pravidlá aktívne:

    sudo ufw status verbose

Mali by ste vidieť, že sú povolené porty 22 (SSH), 80 (HTTP) a 443 (HTTPS). Jedna výhrada: Docker zapisuje svoje vlastné pravidlá firewallu a obchádza UFW pre zverejnené porty kontajnerov. Port 5678 zostáva súkromný, pretože súbor compose ho viaže na 127.0.0.1, nie kvôli UFW, takže túto väzbu nikdy nemenia na 0.0.0.0.

Deaktivujte overovanie heslom pre SSH

Ak používate SSH kľúče (čo by ste mali), úplne deaktivujte prihlásenie cez SSH pomocou hesla. Najprv sa uistite, že sa účet n8nuser môže prihlásiť pomocou vášho kľúča. Na vašom lokálnom počítači spustite:

    ssh-copy-id n8nuser@vaša_ip_adresa_servera

Potom upravte konfiguráciu SSH servera:

    sudo nano /etc/ssh/sshd_config

Nastavte nasledujúce hodnoty:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Na mnohých cloudových obrazoch Ubuntu je v súbore v adresári /etc/ssh/sshd_config.d/ (často 50-cloud-init.conf) nastavená hodnota PasswordAuthentication yes, a tá má prednosť, pretože sshd používa prvú hodnotu, ktorú prečíta. Skontrolujte, ktoré nastavenie je skutočne platné:

    sudo sshd -T | grep -i passwordauthentication

Malo by sa zobraziť „passwordauthentication no“. Ak sa tak nestane, zmeňte hodnotu v súbore, ktorý prepisuje nastavenie, a znovu reštartujte SSH.

Neukončujte aktuálnu reláciu SSH, kým sa nepresvedčíte, že prihlásenie pomocou kľúča funguje v novom terminálovom okne.

Obmedzenie rýchlosti na prihlasovacej stránke n8n

Pridajte obmedzenie rýchlosti, aby ste spomalili útoky hrubou silou na prihlasovací bod n8n.

Zoznámte sa s nástrojom Ranktracker

Platforma "všetko v jednom" pre efektívne SEO

Za každým úspešným podnikaním stojí silná kampaň SEO. Pri nespočetnom množstve optimalizačných nástrojov a techník, z ktorých si môžete vybrať, však môže byť ťažké zistiť, kde začať. No už sa nemusíte báť, pretože mám pre vás presne to, čo vám pomôže. Predstavujem komplexnú platformu Ranktracker na efektívne SEO

Konečne sme otvorili registráciu do nástroja Ranktracker úplne zadarmo!

Vytvorenie bezplatného konta

Alebo sa pri hláste pomocou svojich poverení

**Dôležité: **Direktíva limit_req_zone musí byť umiestnená vnútri bloku http {} vo vašej hlavnej konfigurácii Nginx — nie vnútri bloku server. Otvorte hlavnú konfiguráciu:

    sudo nano /etc/nginx/nginx.conf

Do existujúceho bloku http {} pridajte tento riadok:

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

Potom v konfigurácii vášho webu n8n (/etc/nginx/sites-available/n8n) pridajte tento blok location do bloku server, ktorý načúva na porte 443 (Certbot ho vytvoril v kroku 6), vedľa existujúceho bloku location /. Nginx neprenáša proxy hlavičky z bloku location /, preto sa tu opakujú:

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

Na uplatnenie zmien reštartujte Nginx:

    sudo nginx -t && sudo systemctl reload nginx

Týmto sa obmedzí počet pokusov o prihlásenie z každej IP adresy na približne 5 za minútu, s malou toleranciou pre nárazové zvýšenie počtu pokusov.

Udržujte n8n a PostgreSQL aktualizované

Pravidelne sťahujte najnovšie obrazy a reštartujte:

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

Docker stiahne najnovšie obrazy n8nio/n8n a postgres a reštartuje len tie kontajnery, pre ktoré je k dispozícii novšia verzia.

V produkčnom prostredí zvážte priradenie obrazu n8n ku konkrétnej verzii (docker.n8n.io/n8nio/n8n:<verzia>, uvedená v poznámkach k vydaniu n8n) a vykonávajte aktualizácie zámerne, aby bežné stiahnutie nikdy neprešlo na hlavnú verziu skôr, ako si prečítate zoznam zmien.

Riešenie bežných problémov

Kontajner n8n sa neustále reštartuje

Skontrolujte protokoly kontajnera ihneď po začatí cyklu reštartovania:

    docker compose logs n8n --tail=100

Bežné príčiny:

  • Zlyhanie pripojenia k databáze: Uistite sa, že PostgreSQL funguje správne pomocou príkazu `docker compose ps`. Skontrolujte, či sa hodnota `POSTGRES_PASSWORD` vo vašom súbore `.env` zhoduje s hodnotou, s ktorou bola databáza inicializovaná.
  • Chýbajúci alebo zmenený šifrovací kľúč: Ak nie je nastavená premenná N8N_ENCRYPTION_KEY alebo bola zmenená po prvom spustení, n8n nedokáže dešifrovať uložené prihlasovacie údaje a dôjde k zlyhaniu.
  • Nedostatok pamäte RAM: PostgreSQL a n8n spolu môžu spotrebovať 1–1,5 GB pamäte RAM. Skontrolujte dostupnú pamäť pomocou príkazu `free -h`.

Webhooky nefungujú

Webhooky vyžadujú, aby bol n8n dostupný z internetu na vašej doméne. Overte:

  1. Záznam DNS A vašej domény smeruje na IP adresu vášho VPS: dig n8n.yourdomain.com
  2. Nginx beží: sudo systemctl status nginx
  3. Port 443 je otvorený: sudo ufw status
  4. Premenná prostredia WEBHOOK_URL presne zodpovedá vašej verejnej doméne, vrátane koncovej lomítka

Editor n8n sa nenačíta správne

Ak sa vizuálny editor načíta, ale zobrazuje prázdne plátno pracovného toku alebo prestanú fungovať aktualizácie v reálnom čase, znamená to, že pripojenie cez WebSocket zlyháva. Skontrolujte, či je v konfigurácii Nginx prítomný blok map $http_upgrade a či v riadku proxy_set_header Connection používate premennú $connection_upgrade — nie doslovný reťazec „upgrade“.

Chyby SSL certifikátu

Ak Certbot zlyhá s chybou overenia domény, skontrolujte, či je port 80 prístupný z internetu:

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

Ak dôjde k časovému limitu požiadavky, firewall vášho poskytovateľa VPS môže blokovať port 80. Okrem UFW skontrolujte aj pravidlá firewallu v cloudovej konzole.

Záver

Vlastné hosťovanie n8n na Linuxovom VPS vám poskytuje platformu na automatizáciu pracovných postupov pripravenú na produkčné použitie bez obmedzení vykonávania, s úplným zabezpečením súkromia údajov a flexibilitou spúšťať akúkoľvek integráciu, ktorú potrebujete. Nastavenie popísané v tomto návode — Docker, PostgreSQL, reverzný proxy Nginx, SSL certifikát Let’s Encrypt, automatické zálohovanie a posilnenie bezpečnosti — je rovnaká konfigurácia, aká sa používa v produkčných prostrediach, a poskytuje vám stabilný a bezpečný základ, na ktorom môžete stavať.

Na rozdiel od minimálnej inštalácie pomocou príkazu „docker run“ je táto konfigurácia navrhnutá tak, aby prežila reštarty servera, zvládala súbežné spúšťanie pracovných postupov a bez problémov sa zotavila z porúch. Vaše prihlasovacie údaje sú šifrované, vaše dáta sa každú noc zálohujú a váš prihlasovací endpoint je chránený proti útokom hrubou silou prostredníctvom obmedzenia frekvencie.

Akonáhle bude vaša inštancia spustená, preskúmajte vstavané uzly n8n pre databázy, API, webhooky a integrácie umelej inteligencie, aby ste mohli okamžite začať automatizovať svoje pracovné postupy. Samostatne hosťované komunitné fórum na adrese community.n8n.io je tiež vynikajúcim zdrojom nápadov na pracovné postupy, riešenie problémov s uzlami a tipov na nasadenie.

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 používať Ranktracker... zadarmo!

Zistite, čo brzdí vaše webové stránky v hodnotení.

Vytvorenie bezplatného konta

Alebo sa pri hláste pomocou svojich poverení

Different views of Ranktracker app