• Tehnologie

Cum să găzduiești singur n8n pe un VPS Linux (pas cu pas)

  • Felix Rose-Collins
  • ••
  • 15 min read

Introducere

n8n este unul dintre cele mai puternice instrumente de automatizare a fluxurilor de lucru cu cod sursă deschis disponibile în prezent. Spre deosebire de alternativele SaaS, precum Zapier sau Make, n8n vă oferă control deplin asupra datelor și automatizărilor — dar numai dacă îl găzduiți singur. Un VPS Linux este mediul ideal pentru acest lucru: mereu activ, accesibil și pe deplin sub controlul dumneavoastră.

Acest ghid vă ghidează prin întregul proces de configurare a unei instanțe n8n gata de producție, găzduită de dvs., pe un VPS Linux. Veți porni de la un server gol și veți ajunge la o implementare n8n complet securizată, cu SSL activat, folosind Docker, Nginx, PostgreSQL, backup-uri automate și o configurație de securitate consolidată.

Puncte cheie

  • n8n pe un VPS vă oferă fluxuri de lucru nelimitate, fără limite de utilizare și proprietate deplină asupra datelor
  • Docker este metoda de instalare recomandată pentru actualizări mai ușoare și izolare
  • PostgreSQL este baza de date recomandată pentru sarcinile de producție (nu SQLite)
  • Pentru utilizarea în producție este necesar un proxy invers (Nginx) cu certificat SSL Let’s Encrypt
  • VPS-ul dvs. ar trebui să aibă cel puțin 1 vCPU și 2 GB RAM pentru o experiență n8n fără probleme cu PostgreSQL
  • Backup-urile automate periodice vă protejează datele fluxurilor de lucru și datele de autentificare

Ce este n8n?

n8n (pronunțat „n-eight-n”) este o platformă de automatizare a fluxurilor de lucru cu cod sursă deschisă, care vă permite să conectați aplicații, API-uri și servicii folosind un editor vizual bazat pe noduri. Aceasta suportă peste 400 de integrări gata de utilizare și vă permite să rulați cod personalizat JavaScript sau Python în cadrul fluxurilor de lucru.

Diferența cheie dintre n8n și concurenții săi se rezumă la trei aspecte: proprietate, cost și flexibilitate.

**Proprietatea: **Când găzduiți n8n pe propriul server, datele fluxurilor de lucru, datele de autentificare și jurnalele de execuție nu părăsesc niciodată serverul dvs. Pentru echipele care gestionează date sensibile ale clienților, înregistrări financiare sau logica de afaceri proprietară, acest aspect este extrem de important. Platformele cloud stochează logica de automatizare pe infrastructura lor, supusă politicilor lor de păstrare a datelor și nivelului de securitate.

**Costul: **Planul n8n în cloud percepe taxe pentru fiecare execuție a fluxului de lucru, ceea ce duce rapid la costuri mari în cazul automatizărilor cu volum ridicat. O echipă de dimensiuni medii care execută mii de operațiuni pe zi poate cheltui sute de dolari lunar. Pe propriul VPS, odată ce ați plătit pentru server, execuțiile sunt nelimitate, fără costuri suplimentare.

**Flexibilitate: **Versiunea n8n găzduită de dvs. vă permite să instalați noduri ale comunității, să rulați cod arbitrar în cadrul fluxurilor de lucru, să vă conectați la servicii interne inaccesibile de pe internetul public și să configurați fiecare aspect al implementării după preferințele dvs. Planurile cloud restricționează multe dintre aceste capacități.

Cerințe preliminare

Înainte de a începe, asigură-te că ai:

  • Un VPS Linux care rulează Ubuntu 22.04 sau 24.04 (recomandat). Verificați dacă furnizorul dvs. oferă Ubuntu pentru planul pe care îl alegeți, deoarece unele planuri de bază oferă doar alte distribuții
  • Un utilizator non-root cu privilegii sudo
  • Un nume de domeniu care să indice adresa IP a VPS-ului dvs. (de exemplu, n8n.domeniulvs.com)
  • Acces SSH la serverul dvs.
  • Cunoștințe de bază privind linia de comandă Linux

Alegerea VPS-ului potrivit

Serverul pe care îl alegeți are un impact direct asupra performanței n8n. Aveți nevoie de cel puțin 1 vCPU, 2 GB RAM și 20 GB spațiu de stocare SSD. Memoria RAM suplimentară față de o instalare minimă bazată pe SQLite este necesară deoarece PostgreSQL, Nginx și n8n rulează toate în același timp.

Faceți cunoștință cu Ranktracker

Platforma All-in-One pentru un SEO eficient

În spatele fiecărei afaceri de succes se află o campanie SEO puternică. Dar, având în vedere că există nenumărate instrumente și tehnici de optimizare din care puteți alege, poate fi greu să știți de unde să începeți. Ei bine, nu vă mai temeți, pentru că am exact ceea ce vă poate ajuta. Vă prezentăm platforma Ranktracker all-in-one pentru un SEO eficient

Am deschis în sfârșit înregistrarea la Ranktracker absolut gratuit!

Creați un cont gratuit

Sau Conectați-vă folosind acreditările dvs.

Pentru echipele cu mai mulți utilizatori, fluxuri de lucru complexe în mai mulți pași sau un volum mare de webhook-uri, faceți upgrade la 2 vCPU și 4 GB RAM. Spațiul de stocare ar trebui să fie de cel puțin 40 GB dacă intenționați să păstrați jurnale de execuție pe termen lung.

PetroSky oferă planuri VPS NVMe în Paris și Montreal, cu n8n disponibil ca aplicație instalabilă cu un singur clic la finalizarea comenzii: un script de instalare open-source implementează n8n cu Docker Compose și configurează automat HTTPS prin Caddy și Let’s Encrypt. Acest ghid prezintă procedura manuală, care funcționează cu orice furnizor.

Atunci când alegeți un furnizor de VPS, luați în considerare și locația geografică. Găzduiți-vă instanța n8n în regiunea cea mai apropiată de serviciile la care se va conecta cel mai des — acest lucru reduce latența API-ului în execuțiile fluxurilor de lucru.

Pasul 1: Actualizați-vă serverul

Conectați-vă prin SSH la VPS-ul dvs. și rulați o actualizare completă a sistemului înainte de a instala orice:

    sudo apt update && sudo apt upgrade -y

Astfel vă asigurați că aveți cele mai recente patch-uri de securitate și că toate bibliotecile de sistem sunt la zi înainte de a adăuga Docker și alte programe.

Reporniți sistemul dacă a fost aplicată o actualizare a kernelului:

    sudo reboot

După reconectarea prin SSH, creați un utilizator de sistem dedicat pentru rularea n8n. Rularea serviciilor ca root reprezintă un risc de securitate:

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

Pasul 2: Instalați Docker și Docker Compose

Metoda oficială de instalare recomandată de n8n este Docker. Docker izolează n8n și dependențele sale de restul sistemului, simplificând actualizările și revenirea la versiunile anterioare.

Instalați Docker folosind scriptul oficial de instalare:

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

Documentația Docker menționează că scriptul de instalare rapidă nu este recomandat pentru mediile de producție, deoarece instalează cea mai recentă versiune fără a vă permite să alegeți o versiune. Dacă doriți să fixați versiunile Docker, utilizați în schimb metoda depozitului apt din ghidul de instalare Docker pentru Ubuntu (docs.docker.com/engine/install/ubuntu/).

Adăugați-vă utilizatorul la grupul Docker, astfel încât să puteți rula comenzi Docker fără sudo:

    sudo usermod -aG docker $USER
    newgrp docker

Verificați dacă Docker funcționează corect:

    docker --version
    docker compose version

Ambele comenzi ar trebui să afișeze șiruri de caractere cu versiunea, fără erori. Dacă Docker Compose nu este găsit, instalați-l manual:

    sudo apt install docker-compose-plugin -y

Pasul 3: Configurarea PostgreSQL pentru producție

În mod implicit, n8n utilizează SQLite ca bază de date. SQLite este potrivit pentru uz personal și fluxuri de lucru ușoare, dar gestionează slab operațiunile de scriere simultane, ceea ce se manifestă prin încetiniri și erori de tipul „baza de date este blocată” atunci când mai multe fluxuri de lucru rulează în același timp. Pentru o implementare în producție, PostgreSQL este alegerea potrivită.

Faceți cunoștință cu Ranktracker

Platforma All-in-One pentru un SEO eficient

În spatele fiecărei afaceri de succes se află o campanie SEO puternică. Dar, având în vedere că există nenumărate instrumente și tehnici de optimizare din care puteți alege, poate fi greu să știți de unde să începeți. Ei bine, nu vă mai temeți, pentru că am exact ceea ce vă poate ajuta. Vă prezentăm platforma Ranktracker all-in-one pentru un SEO eficient

Am deschis în sfârșit înregistrarea la Ranktracker absolut gratuit!

Creați un cont gratuit

Sau Conectați-vă folosind acreditările dvs.

Rulați PostgreSQL în Docker alături de n8n:

    mkdir ~/n8n && cd ~/n8n

Creați un fișier de mediu pentru a stoca secretele în siguranță. Nu codificați niciodată parolele în fișierul compose:

    nano ~/n8n/.env

Adăugați următoarele, înlocuind valorile din locurile de rezervă cu parole puternice și unice:

    POSTGRES_USER=n8n
    POSTGRES_PASSWORD=parola_ta_puternica_pentru_baza_de_date_aici
    POSTGRES_DB=n8n
    N8N_ENCRYPTION_KEY=șirul_tău_aleatoriu_de_32_de_caractere_aici

Generați o cheie de criptare sigură cu:

    openssl rand -hex 16

Utilizați rezultatul ca N8N_ENCRYPTION_KEY. Această cheie criptează datele de autentificare stocate în n8n — dacă o pierdeți, toate datele de autentificare salvate devin irecuperabile.

Pasul 4: Creați fișierul Docker Compose pentru n8n

Creați fișierul docker-compose.yml în directorul n8n:

    nano ~/n8n/docker-compose.yml

Lipiți următoarea configurație:


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
    volume:
      - n8n_data:/home/node/.n8n
    depends_on:
      postgres:
        condiție: service_healthy


volume:
  postgres_data:
  n8n_data:

Note de configurare:

  • Legarea portului 127.0.0.1:5678:5678 asigură că n8n este accesibil doar local. Nginx va gestiona tot traficul extern — nu expuneți niciodată portul 5678 direct pe internet.
  • Utilizarea opțiunii `depends_on` cu condiția `service_healthy` asigură că n8n așteaptă ca PostgreSQL să fie complet pregătit înainte de a porni. Fără aceasta, n8n va eșua la prima pornire dacă baza de date nu acceptă încă conexiuni.
  • N8N_LOG_LEVEL=info vă oferă jurnale operaționale utile fără a supraîncărca spațiul de stocare pe disc, așa cum ar face opțiunea „debug”.

Pasul 5: Instalarea și configurarea Nginx

Nginx va acționa ca un proxy invers, redirecționând traficul HTTPS de la portul 443 către containerul n8n de pe portul 5678. De asemenea, se ocupă de terminarea SSL, ceea ce înseamnă că n8n în sine nu trebuie să gestioneze certificatele.

    sudo apt install nginx -y

Eliminați site-ul implicit și creați un nou bloc de server pentru n8n:

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

Lipiți următorul text:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }
server {
    listen 80;
    server_name n8n.domeniul-dumneavoastră.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;
    }
}

Blocul map din partea de sus gestionează corect anteturile de actualizare WebSocket. n8n utilizează WebSockets pentru actualizări în timp real în editor, așa că această configurație este importantă — fără ea, editorul vizual nu va funcționa corect.

Directiva client_max_body_size 50m permite fluxurilor de lucru să primească încărcături webhook de dimensiuni mari. Limita implicită a Nginx este de 1 MB, ceea ce este prea puțin pentru fluxurile de lucru care procesează încărcări de fișiere sau răspunsuri JSON de dimensiuni mari.

Activați configurația și testați-o:

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

Pasul 6: Emiteți un certificat SSL cu Let’s Encrypt

Instalați Certbot și pluginul Nginx:

    sudo apt install certbot python3-certbot-nginx -y

Solicitați un certificat pentru domeniul dvs.:

    sudo certbot --nginx -d n8n.domeniul-dumneavoastră.com

Urmați instrucțiunile afișate. Când vi se cere dacă doriți să redirecționați traficul HTTP către HTTPS, alegeți Da (opțiunea 2). Certbot va actualiza automat configurația Nginx pentru a gestiona această redirecționare și va instala lanțul complet de certificate.

Verificați dacă reînnoirea automată este configurată corect:

    sudo certbot renew --dry-run

Certbot instalează un cron de systemd care reînnoiește automat certificatele la fiecare 12 ore. Certificatele sunt reînnoite cu 30 de zile înainte de expirare. Nu ar trebui să fie niciodată necesar să le reînnoiți manual.

Pasul 7: Porniți n8n

Reveniți în directorul n8n și porniți toate serviciile:

    cd ~/n8n
    docker compose up -d

Docker va descărca imaginile PostgreSQL și n8n, va crea volumele, va porni mai întâi PostgreSQL, va aștepta finalizarea verificării stării de funcționare, apoi va porni n8n. Acest proces durează între 1 și 3 minute la prima execuție.

Verificați dacă ambele containere rulează:

    docker compose ps

Ar trebui să vedeți atât postgres, cât și n8n listate cu starea Up. Dacă n8n afișează Restarting, verificați jurnalele:

    docker compose logs n8n --tail=50

Odată ce ambele containere sunt în stare bună, deschideți browserul și accesați https://n8n.yourdomain.com. Vi se va solicita să creați un cont de proprietar cu o adresă de e-mail și o parolă. Acest cont are acces administrativ complet la instanța dvs. n8n.

Pasul 8: Configurați n8n să pornească la pornirea sistemului

Directiva „restart: always” din fișierul docker-compose.yml asigură că toate containerele se repornesc automat în cazul unei blocări sau al repornirii serverului.

Verificați acest lucru repornind serverul:

    sudo reboot

După reconectarea prin SSH, verificați dacă n8n a pornit automat:

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

Ambele containere ar trebui să apară ca fiind în funcțiune, fără nicio intervenție manuală.

Pasul 9: Configurați copiile de rezervă automate

Datele dvs. n8n — fluxuri de lucru, date de autentificare și istoricul execuțiilor — se află în două locuri: baza de date PostgreSQL și volumul Docker n8n_data (care stochează cheile de criptare și unele setări de configurare). Efectuați copii de rezervă pentru ambele în mod regulat.

Creați un script de backup:

    nano ~/n8n/backup.sh

Lipiți următorul text:

    #!/bin/bash
    BACKUP_DIR="/home/n8nuser/backups"
    DATE=$(date +%Y-%m-%d_%H-%M)
    LOG_FILE="$BACKUP_DIR/backup.log"
# Asigurați-vă că directorul de backup există înainte de orice altceva
mkdir -p "$BACKUP_DIR"


# Efectuați o copie de rezervă a bazei de date 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"


# Verifică dacă salvarea a reușit și dacă fișierul nu este gol
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
    echo "EROARE: Eșec la copierea de rezervă a bazei de date la data $DATE" >> "$LOG_FILE"
    rm -f "$DUMP_FILE"
    exit 1
fi


# Faceți o copie de rezervă a cheii de criptare și a variabilelor de mediu
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Faceți o copie de rezervă a volumului n8n_data (configurația instanței și nodurile comunității instalate)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
  tar czf /backup/n8n_data_$DATE.tar.gz -C /data .


# Comprimarea copiei de siguranță a bazei de date
gzip "$DUMP_FILE"


# Păstrează doar copiile de rezervă din ultimele 7 zile
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 "Copie de rezervă finalizată: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"

Numele volumului n8n_n8n_data provine din faptul că Docker Compose adaugă prefixul numelui folderului proiectului (n8n) la numele volumului. Verificați-l cu comanda docker volume ls.

Faceți scriptul executabil și programați-l cu cron:

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

Adăugați această linie pentru a rula copierea de rezervă în fiecare zi la ora 2:00:

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

Pentru redundanță offsite, luați în considerare sincronizarea directorului de backup cu un furnizor de stocare de obiecte compatibil cu S3, folosind rclone sau aws s3 sync.

Pasul 10: Activați măsurile de securitate de bază

Configurați un firewall

Instalați UFW și permiteți doar porturile de care are nevoie serverul dvs.:

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

Verificați dacă regulile sunt active:

    sudo ufw status verbose

Ar trebui să vedeți că porturile 22 (SSH), 80 (HTTP) și 443 (HTTPS) sunt permise. O precizare: Docker scrie propriile reguli de firewall și ocolește UFW pentru porturile containerelor publicate. Portul 5678 rămâne privat deoarece fișierul compose îl leagă de 127.0.0.1, nu din cauza UFW, așa că nu schimbați niciodată acea legătură la 0.0.0.0.

Dezactivați autentificarea prin parolă pentru SSH

Dacă utilizați chei SSH (așa cum ar trebui), dezactivați complet autentificarea SSH bazată pe parolă. Mai întâi, asigurați-vă că contul n8nuser se poate autentifica cu cheia dvs. De pe mașina locală, rulați:

    ssh-copy-id n8nuser@adresa_IP_serverului_dumneavoastră

Apoi editați configurația serverului SSH:

    sudo nano /etc/ssh/sshd_config

Setați următoarele valori:

    PasswordAuthentication no
    PermitRootLogin no
    sudo systemctl restart ssh

Pe multe imagini cloud Ubuntu, un fișier din /etc/ssh/sshd_config.d/ (adesea 50-cloud-init.conf) setează PasswordAuthentication yes, iar această setare prevalează deoarece sshd utilizează prima valoare pe care o citește. Verificați setarea care este efectiv activă:

    sudo sshd -T | grep -i passwordauthentication

Ar trebui să afișeze „passwordauthentication no”. Dacă nu este așa, modificați valoarea din fișierul de suprascriere și reporniți din nou SSH.

Nu închideți sesiunea SSH curentă până când nu vă asigurați că autentificarea bazată pe cheie funcționează într-o fereastră nouă de terminal.

Limitați rata de acces la pagina de autentificare n8n

Adăugați limitarea ratei pentru a încetini atacurile de tip „brute-force” împotriva punctului final de autentificare n8n.

Faceți cunoștință cu Ranktracker

Platforma All-in-One pentru un SEO eficient

În spatele fiecărei afaceri de succes se află o campanie SEO puternică. Dar, având în vedere că există nenumărate instrumente și tehnici de optimizare din care puteți alege, poate fi greu să știți de unde să începeți. Ei bine, nu vă mai temeți, pentru că am exact ceea ce vă poate ajuta. Vă prezentăm platforma Ranktracker all-in-one pentru un SEO eficient

Am deschis în sfârșit înregistrarea la Ranktracker absolut gratuit!

Creați un cont gratuit

Sau Conectați-vă folosind acreditările dvs.

**Important: **Directiva limit_req_zone trebuie să se afle în interiorul blocului http {} din configurația principală Nginx — nu în interiorul blocului server. Deschideți configurația principală:

    sudo nano /etc/nginx/nginx.conf

Adăugați această linie în interiorul blocului http {} existent:

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

Apoi, în configurația site-ului n8n (/etc/nginx/sites-available/n8n), adăugați acest bloc `location` în interiorul blocului `server` care ascultă pe portul 443 (Certbot l-a creat la Pasul 6), lângă locația existentă `/`. Nginx nu preia anteturile proxy din locația `/`, așa că acestea sunt repetate aici:

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

Reîncarcă Nginx pentru a aplica modificările:

    sudo nginx -t && sudo systemctl reload nginx

Aceasta limitează fiecare adresă IP la aproximativ 5 încercări de autentificare pe minut, cu o mică toleranță pentru rafale.

Mențineți n8n și PostgreSQL actualizate

Descărcați și reporniți regulat cu cele mai recente imagini:

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

Docker va descărca cele mai recente imagini n8nio/n8n și postgres și va reporni doar containerele pentru care este disponibilă o versiune mai nouă.

Pentru mediul de producție, luați în considerare fixarea imaginii n8n la o etichetă de versiune specifică (docker.n8n.io/n8nio/n8n:<versiune>, preluată din notele de lansare ale n8n) și actualizarea în mod deliberat, astfel încât o descărcare de rutină să nu sară niciodată la o versiune majoră înainte de a citi jurnalul de modificări.

Depanarea problemelor frecvente

Containerul n8n se restartează în mod repetat

Verificați jurnalele containerului imediat după ce începe bucla de repornire:

    docker compose logs n8n --tail=100

Cauze frecvente:

  • Eșecul conexiunii la baza de date: Asigurați-vă că PostgreSQL funcționează corect folosind comanda `docker compose ps`. Verificați dacă variabila `POSTGRES_PASSWORD` din fișierul dvs. `.env` corespunde cu parola cu care a fost inițializată baza de date.
  • Cheie de criptare lipsă sau modificată: Dacă N8N_ENCRYPTION_KEY nu este setată sau a fost modificată după prima rulare, n8n nu poate decripta datele de autentificare stocate și se va bloca.
  • Memorie RAM insuficientă: PostgreSQL și n8n pot utiliza împreună între 1 și 1,5 GB de memorie RAM. Verificați memoria disponibilă cu comanda `free -h`.

Webhook-urile nu funcționează

Webhook-urile necesită ca n8n să fie accesibil de pe internet pe domeniul dvs. Verificați:

  1. Înregistrarea DNS A a domeniului dvs. indică adresa IP a VPS-ului: dig n8n.domeniulvs.com
  2. Nginx rulează: sudo systemctl status nginx
  3. Portul 443 este deschis: sudo ufw status
  4. Variabila de mediu WEBHOOK_URL corespunde exact cu domeniul dvs. public, inclusiv bara oblică finală

Editorul n8n nu se încarcă corect

Dacă editorul vizual se încarcă, dar afișează o zonă de lucru goală sau actualizările în timp real nu mai funcționează, conexiunea WebSocket eșuează. Verificați dacă blocul map $http_upgrade este prezent în configurația Nginx și dacă utilizați variabila $connection_upgrade — nu șirul literal „upgrade” — în linia proxy_set_header Connection.

Erori legate de certificatul SSL

Dacă Certbot eșuează cu o eroare de validare a domeniului, verificați dacă portul 80 este accesibil de pe internet:

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

Dacă cererea expiră, este posibil ca firewall-ul furnizorului dvs. de VPS să blocheze portul 80. Verificați regulile firewall-ului din consola cloud, pe lângă UFW.

Concluzie

Găzduirea proprie a n8n pe un VPS Linux vă oferă o platformă de automatizare a fluxurilor de lucru gata de producție, fără limite de execuție, cu confidențialitate completă a datelor și flexibilitatea de a rula orice integrare de care aveți nevoie. Configurația prezentată în acest ghid — Docker, PostgreSQL, proxy invers Nginx, certificat SSL Let’s Encrypt, backup-uri automate și consolidarea securității — este aceeași stivă utilizată în mediile de producție și vă oferă o bază stabilă și sigură pe care să construiți.

Spre deosebire de o instalare minimă prin comanda „run” din Docker, această configurare este concepută să reziste la repornirile serverului, să gestioneze execuțiile simultane ale fluxurilor de lucru și să se recupereze fără probleme în urma eșecurilor. Datele dvs. de autentificare sunt criptate, datele dvs. sunt salvate în fiecare noapte, iar punctul final de autentificare este limitat ca frecvență pentru a preveni atacurile de tip „brute force”.

Odată ce instanța dvs. rulează, explorați nodurile încorporate ale n8n pentru baze de date, API-uri, webhook-uri și integrări AI pentru a începe automatizarea fluxurilor de lucru imediat. Forumul comunității auto-găzduit la community.n8n.io este, de asemenea, o resursă excelentă pentru idei de fluxuri de lucru, depanarea nodurilor și sfaturi de implementare.

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.

Începeți să utilizați Ranktracker... Gratuit!

Aflați ce vă împiedică site-ul dvs. să se claseze.

Creați un cont gratuit

Sau Conectați-vă folosind acreditările dvs.

Different views of Ranktracker app