Ievads
n8n ir viens no jaudīgākajiem šobrīd pieejamajiem atvērtā koda darba plūsmas automatizācijas rīkiem. Atšķirībā no SaaS alternatīvām, piemēram, Zapier vai Make, n8n nodrošina pilnīgu kontroli pār jūsu datiem un automatizācijām — taču tikai tad, ja jūs to hostējat paši. Linux VPS ir ideāla vide šim nolūkam: vienmēr pieejama, pieejama par saprātīgu cenu un pilnībā jūsu kontrolē.
Šī rokasgrāmata izvedīs jūs cauri visam procesam, kā uzstādīt darbam gatavu, pašhostētu n8n instanci uz Linux VPS. Jūs sāksiet ar tukšu serveri un nonāksiet pie pilnībā drošas, SSL atbalstošas n8n vides ar Docker, Nginx, PostgreSQL, automatizētām dublējumkopijām un pastiprinātu drošības konfigurāciju.
Galvenie secinājumi
- n8n uz VPS nodrošina neierobežotu darba plūsmu skaitu, bez lietošanas ierobežojumiem un pilnīgu datu īpašumtiesību saglabāšanu
- Docker ir ieteicamā instalēšanas metode, kas atvieglo atjauninājumus un izolāciju
- PostgreSQL ir ieteicamā datubāze ražošanas darba slodzēm (nevis SQLite)
- Ražošanas lietošanai ir nepieciešams reversais starpniekserveris (Nginx) ar Let’s Encrypt SSL
- Lai nodrošinātu nevainojamu n8n darbību ar PostgreSQL, jūsu VPS jābūt vismaz 1 vCPU un 2 GB RAM
- Regulāras automatizētas dublējumu kopijas aizsargā jūsu darba plūsmu datus un piekļuves datus
Kas ir n8n?
n8n (izrunā kā „n-eight-n”) ir atvērtā koda darba plūsmas automatizācijas platforma, kas ļauj savienot lietotnes, API un pakalpojumus, izmantojot vizuālu, uz mezgliem balstītu redaktoru. Tā jau sākotnēji atbalsta vairāk nekā 400 integrācijas un ļauj darba plūsmās izpildīt pielāgotu JavaScript vai Python kodu.
Galvenā atšķirība starp n8n un tā konkurentiem ir saistīta ar trim aspektiem: īpašumtiesībām, izmaksām un elastīgumu.
**Īpašumtiesības: **Ja n8n tiek pašhostēts, jūsu darba plūsmu dati, autentifikācijas dati un izpildes žurnāli nekad neiziet ārpus jūsu servera. Komandām, kas apstrādā konfidenciālus klientu datus, finanšu ierakstus vai patentētu biznesa loģiku, tas ir ārkārtīgi svarīgi. Mākoņplatformas glabā jūsu automatizācijas loģiku savā infrastruktūrā, kas ir pakļauta to datu glabāšanas politikai un drošības stāvoklim.
**Izmaksas: **n8n mākoņpakalpojuma plāns paredz maksu par katru darba plūsmas izpildi, kas liela apjoma automatizācijām ātri summējas. Vidēja lieluma komanda, kas dienā veic tūkstošiem izpildes, mēnesī var tērēt simtiem dolāru. Savā VPS, tiklīdz esat samaksājuši par serveri, izpildes ir neierobežotas bez papildu izmaksām.
**Elastība: **Pašuzstādītais n8n ļauj instalēt kopienas mezglus, izpildīt jebkādu kodu darba plūsmās, savienoties ar iekšējiem pakalpojumiem, kas nav pieejami no publiskā interneta, un konfigurēt katru izvietošanas aspektu pēc saviem ieskatiem. Mākoņpakalpojumu plāni ierobežo daudzas no šīm iespējām.
Priekšnosacījumi
Pirms sākat, pārliecinieties, ka jums ir:
- Linux VPS ar Ubuntu 22.04 vai 24.04 (ieteicams). Pārbaudiet, vai jūsu pakalpojumu sniedzējs piedāvā Ubuntu izvēlētajā plāna izmērā, jo daži pamata līmeņa plāni piedāvā tikai citas distribūcijas
- Lietotājs bez root tiesībām, kam ir sudo privilēģijas
- Domēna vārds, kas norāda uz jūsu VPS IP adresi (piem., n8n.yourdomain.com)
- SSH piekļuve jūsu serverim
- Pamata zināšanas par Linux komandu rindu
Pareizā VPS izvēle
Jūsu izvēlētais serveris tieši ietekmē n8n veiktspēju. Minimāli nepieciešams 1 vCPU, 2 GB RAM un 20 GB SSD atmiņas. Papildu RAM, salīdzinot ar minimālo SQLite bāzētu instalāciju, ir nepieciešama, jo PostgreSQL, Nginx un n8n darbojas vienlaikus.
"Viss vienā" platforma efektīvai SEO optimizācijai
Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.
Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!
Izveidot bezmaksas kontuVai Pierakstīties, izmantojot savus akreditācijas datus
Komandām ar vairākiem lietotājiem, sarežģītām daudzpakāpju darba plūsmām vai lielu webhook caurlaidspēju ieteicams veikt uzlabojumu līdz 2 vCPU un 4 GB RAM. Ja plānojat saglabāt garus izpildes žurnālus, uzglabāšanas vietai jābūt vismaz 40 GB.
PetroSky piedāvā NVMe VPS plānus Parīzē un Monreālā, kur n8n ir pieejams kā ar vienu klikšķi instalējama lietojumprogramma norēķinu brīdī: atvērtā koda instalācijas skripts izvieto n8n ar Docker Compose un automātiski konfigurē HTTPS, izmantojot Caddy un Let’s Encrypt. Šajā rokasgrāmatā ir aprakstīta manuālā instalēšana, kas darbojas ar jebkuru pakalpojumu sniedzēju.
Izvēloties VPS pakalpojumu sniedzēju, ņemiet vērā arī ģeogrāfisko atrašanās vietu. Izvietojiet savu n8n instanci reģionā, kas atrodas vistuvāk pakalpojumiem, ar kuriem tā visbiežāk savienosies — tas samazina API aizturi jūsu darba plūsmas izpildēs.
1. solis: Atjauniniet savu serveri
Pirms kaut ko instalēt, izveidojiet SSH savienojumu ar savu VPS un veiciet pilnu sistēmas atjaunināšanu:
sudo apt update && sudo apt upgrade -y
Tas nodrošina, ka jums ir jaunākie drošības labojumi un visas sistēmas bibliotēkas ir atjauninātas, pirms pievienojat Docker un citu programmatūru.
Pārstartējiet sistēmu, ja tika veikts kodola atjauninājums:
sudo reboot
Pēc atkārtotas savienošanās caur SSH izveidojiet atsevišķu sistēmas lietotāju n8n darbībai. Pakalpojumu darbināšana kā root ir drošības risks:
sudo adduser n8nuser
sudo usermod -aG sudo n8nuser
su - n8nuser
2. solis: Instalējiet Docker un Docker Compose
n8n oficiāli ieteicamā instalēšanas metode ir Docker. Docker izolē n8n un tā atkarības no pārējās sistēmas, padarot atjauninājumus un atgriešanos pie iepriekšējās versijas vienkāršu.
Instalējiet Docker, izmantojot oficiālo ērtības skriptu:
curl -fsSL https://get.docker.com | sudo sh
Docker dokumentācijā ir norādīts, ka ērtības skripts nav ieteicams ražošanas vidē, jo tas instalē jaunāko versiju, neļaujot izvēlēties versiju. Ja vēlaties fiksēt Docker versijas, izmantojiet apt repozitorija metodi no Docker Ubuntu instalēšanas rokasgrāmatas (docs.docker.com/engine/install/ubuntu/).
Pievienojiet savu lietotāju Docker grupai, lai varētu izpildīt Docker komandas bez sudo:
sudo usermod -aG docker $USER
newgrp docker
Pārbaudiet, vai Docker darbojas pareizi:
docker --version
docker compose version
Abām komandām jāatgriež versiju virknes bez kļūdām. Ja Docker Compose netiek atrasts, instalējiet to manuāli:
sudo apt install docker-compose-plugin -y
3. solis: PostgreSQL konfigurēšana ražošanas vidē
Pēc noklusējuma n8n kā datubāzi izmanto SQLite. SQLite ir piemērota personiskai lietošanai un vienkāršām darbplūsmām, taču tā slikti apstrādā vienlaicīgas rakstīšanas darbības, kas izpaužas kā palēnināšanās un kļūdas „datubāze ir bloķēta”, ja vienlaikus darbojas daudzas darbplūsmas. Ražošanas vides izvietošanai pareizā izvēle ir PostgreSQL.
"Viss vienā" platforma efektīvai SEO optimizācijai
Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.
Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!
Izveidot bezmaksas kontuVai Pierakstīties, izmantojot savus akreditācijas datus
Palaidiet PostgreSQL Docker vidē kopā ar n8n:
mkdir ~/n8n && cd ~/n8n
Izveidojiet vides failu, lai droši uzglabātu savus slepenos datus. Nekad neiekļaujiet paroles tieši kompozīcijas failā:
nano ~/n8n/.env
Pievienojiet šo tekstu, aizstājot vietu turētāju vērtības ar spēcīgām, unikālām parolēm:
POSTGRES_USER=n8n
POSTGRES_PASSWORD=jūsu_spēcīgā_datubāzes_parole_šeit
POSTGRES_DB=n8n
N8N_ENCRYPTION_KEY=jūsu_nejauša_32_rakstzīmju_virkne_šeit
Izveidojiet drošu šifrēšanas atslēgu, izmantojot:
openssl rand -hex 16
Izmantojiet izvadi kā savu N8N_ENCRYPTION_KEY. Šī atslēga šifrē n8n uzglabātās piekļuves datus — ja to pazaudējat, visi saglabātie piekļuves dati kļūst neatgūstami.
4. solis: Izveidojiet n8n Docker Compose failu
Izveidojiet failu docker-compose.yml savā n8n direktorijā:
nano ~/n8n/docker-compose.yml
Ielīmējiet šādu konfigurāciju:
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
atkārtojumi: 10
n8n:
attēls: docker.n8n.io/n8nio/n8n
pārstartēšana: vienmēr
porti:
- "127.0.0.1:5678:5678"
vide:
- 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ācijas piezīmes:
- Porta piesaistīšana 127.0.0.1:5678:5678 nodrošina, ka n8n ir pieejams tikai lokāli. Nginx apstrādās visu ārējo datplūsmu — nekad neizpaužiet portu 5678 tieši internetā.
- Iestatījums `depends_on` ar nosacījumu `service_healthy` nodrošina, ka n8n pirms palaišanas gaida, līdz PostgreSQL ir pilnībā gatavs. Bez šī nosacījuma n8n neizdosies pirmajā palaišanas reizē, ja datu bāze vēl nepieņem savienojumus.
- N8N_LOG_LEVEL=info nodrošina noderīgus darbības žurnālus, nepārblīvējot diska atmiņu, kā to darītu debug.
5. solis: Nginx instalēšana un konfigurēšana
Nginx darbosies kā apgrieztais starpniekserveris, pārsūtot HTTPS datplūsmu no 443. porta uz jūsu n8n konteineri 5678. portā. Tas arī apstrādā SSL pārtraukšanu, kas nozīmē, ka n8n pašam nav jāpārvalda sertifikāti.
sudo apt install nginx -y
Noņemiet noklusējuma vietni un izveidojiet jaunu servera bloku n8n:
sudo rm /etc/nginx/sites-enabled/default
sudo nano /etc/nginx/sites-available/n8n
Ielīmējiet šo tekstu:
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;
}
}
Augšējā map bloka konfigurācija pareizi apstrādā WebSocket atjaunināšanas galvenes. n8n izmanto WebSockets reāllaika atjauninājumiem redaktorā, tāpēc šī konfigurācija ir svarīga — bez tās vizuālais redaktors nedarbosies pareizi.
Direktīva `client_max_body_size 50m` ļauj darba plūsmām saņemt liela apjoma webhook datu slodzes. Nginx noklusējuma ierobežojums ir 1 MB, kas ir pārāk mazs darba plūsmām, kuras apstrādā failu augšupielādes vai liela apjoma JSON atbildes.
Iespējojiet konfigurāciju un pārbaudiet to:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
6. solis: Izsniedziet SSL sertifikātu ar Let’s Encrypt
Instalējiet Certbot un Nginx spraudni:
sudo apt install certbot python3-certbot-nginx -y
Pieprasiet sertifikātu savam domēnam:
sudo certbot --nginx -d n8n.yourdomain.com
Izpildiet norādījumus. Kad tiek jautāts, vai pāradresēt HTTP datplūsmu uz HTTPS, izvēlieties „Yes” (2. opcija). Certbot automātiski atjauninās jūsu Nginx konfigurāciju, lai apstrādātu šo pāradresāciju, un instalēs pilnu sertifikātu ķēdi.
Pārbaudiet, vai automātiskā atjaunošana ir konfigurēta pareizi:
sudo certbot renew --dry-run
Certbot instalē systemd taimeri, kas sertifikātus automātiski atjauno ik pēc 12 stundām. Sertifikāti tiek atjaunoti, kad līdz to derīguma termiņa beigām ir palikuši 30 dienas. Jums nekad nevajadzētu tos atjaunot manuāli.
7. solis: Palaižiet n8n
Atgriezieties savā n8n direktorijā un palaidiet visus pakalpojumus:
cd ~/n8n
docker compose up -d
Docker lejupielādīs PostgreSQL un n8n attēlus, izveidos apjomus, vispirms palaidīs PostgreSQL, pagaidīs, līdz tiks veikta veiktspējas pārbaude, un pēc tam palaidīs n8n. Šis process pirmajā reizē aizņem 1–3 minūtes.
Pārbaudiet, vai abi konteineri darbojas:
docker compose ps
Jums vajadzētu redzēt, ka gan postgres, gan n8n ir uzskaitīti ar statusu Up. Ja n8n rāda Restarting, pārbaudiet žurnālus:
docker compose logs n8n --tail=50
Kad abi konteineri darbojas pareizi, atveriet pārlūku un dodieties uz https://n8n.yourdomain.com. Jums tiks piedāvāts izveidot īpašnieka kontu, norādot e-pasta adresi un paroli. Šim kontam ir pilnīgas administratora tiesības jūsu n8n instancē.
8. solis: Konfigurējiet n8n, lai tas sāktos sistēmas uzsākšanas laikā
Docker-compose.yml failā esošā direktīva „restart: always” nodrošina, ka visi konteineri automātiski restartējas pēc kļūmes vai servera pārstartēšanas.
Pārbaudiet to, pārstartējot savu serveri:
sudo reboot
Pēc atkārtotas savienošanās caur SSH pārbaudiet, vai n8n ir automātiski atsācis darbu:
docker compose -f ~/n8n/docker-compose.yml ps
Abiem konteineriem jābūt redzamiem kā darbojošiem bez jebkādas manuālas iejaukšanās.
9. solis: Automātisko dublējumu iestatīšana
Jūsu n8n dati — darba plūsmas, autentifikācijas dati un izpildes vēsture — atrodas divās vietās: PostgreSQL datu bāzē un n8n_data Docker sējumā (kurā tiek glabāti šifrēšanas atslēgas un daļa konfigurācijas). Regulāri veiciet abu dublējumus.
Izveidojiet dublējuma skriptu:
nano ~/n8n/backup.sh
Ielīmējiet šo tekstu:
#!/bin/bash
BACKUP_DIR="/home/n8nuser/backups"
DATE=$(date +%Y-%m-%d_%H-%M)
LOG_FILE="$BACKUP_DIR/backup.log"
# Pirms jebkādas citas darbības pārliecinieties, ka dublējumu katalogs pastāv
mkdir -p "$BACKUP_DIR"
# Izveidojiet PostgreSQL dublējumu
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"
# Pārbaudīt, vai izgūšana ir izdevusies un fails nav tukšs
if [ $? -ne 0 ] || [ ! -s "$DUMP_FILE" ]; then
echo "KĻŪDA: Datubāzes dublējums neizdevās $DATE" >> "$LOG_FILE"
rm -f "$DUMP_FILE"
exit 1
fi
# Izveidojiet šifrēšanas atslēgas un vides mainīgo rezerves kopiju
cp /home/n8nuser/n8n/.env "$BACKUP_DIR/n8n_env_$DATE.bak"
# Izveidojiet n8n_data sējuma rezerves kopiju (instances konfigurācija un instalētie kopienas mezgli)
docker run --rm -v n8n_n8n_data:/data -v "$BACKUP_DIR":/backup alpine \
tar czf /backup/n8n_data_$DATE.tar.gz -C /data .
# Saspiež datubāzes izgūto kopiju
gzip "$DUMP_FILE"
# Saglabā tikai pēdējo 7 dienu dublējumus
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 "Dublējums pabeigts: n8n_db_$DATE.sql.gz" >> "$LOG_FILE"
Sējuma nosaukums n8n_n8n_data ir cēlies no Docker Compose, kas sējumam pievieno projekta mapes nosaukumu (n8n). Pārbaudiet savu ar komandu docker volume ls.
Padariet skriptu izpildāmu un ieplānojiet tā izpildi ar cron:
chmod +x ~/n8n/backup.sh
crontab -e
Pievienojiet šo rindu, lai dublējums tiktu veikts katru dienu plkst. 2:00:
0 2 * * * /home/n8nuser/n8n/backup.sh >> /home/n8nuser/backups/backup.log 2>&1
Lai nodrošinātu ārējo dublējumu, apsveriet iespēju sinhronizēt savu dublējumu direktoriju ar S3 saderīgu objektu uzglabāšanas pakalpojumu sniedzēju, izmantojot rclone vai aws s3 sync.
10. solis: Iespējojiet pamata drošības pastiprināšanu
Ugunsmūra konfigurēšana
Instalējiet UFW un atļaujiet tikai tos portus, kas nepieciešami jūsu serverim:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Pārbaudiet, vai noteikumi ir aktīvi:
sudo ufw status verbose
Jums vajadzētu redzēt, ka ir atļauti porti 22 (SSH), 80 (HTTP) un 443 (HTTPS). Viena piezīme: Docker raksta savus ugunsmūra noteikumus un apiet UFW attiecībā uz publicētajiem konteineru portiem. 5678. ports paliek privāts, jo compose fails to piesaista pie 127.0.0.1, nevis UFW dēļ, tāpēc nekad nemainiet šo piesaisti uz 0.0.0.0.
Atvienojiet paroles autentifikāciju SSH
Ja izmantojat SSH atslēgas (kā tas būtu jādara), pilnībā atspējojiet paroli balstītu SSH pieteikšanos. Vispirms pārliecinieties, ka n8nuser konts var pieteikties ar jūsu atslēgu. No savas lokālās ierīces izpildiet:
ssh-copy-id n8nuser@your_server_ip
Tad rediģējiet SSH servera konfigurāciju:
sudo nano /etc/ssh/sshd_config
Iestatiet šādas vērtības:
PasswordAuthentication no
PermitRootLogin no
sudo systemctl restart ssh
Daudzos Ubuntu mākoņattēlos failā /etc/ssh/sshd_config.d/ (bieži vien 50-cloud-init.conf) ir iestatīts PasswordAuthentication yes, un šis iestatījums ir noteicošais, jo sshd izmanto pirmo vērtību, ko tas nolasa. Pārbaudiet, kurš iestatījums faktiski ir spēkā:
sudo sshd -T | grep -i passwordauthentication
Rezultātā jāparādās tekstam passwordauthentication no. Ja tā nav, mainiet vērtību pārrakstīšanas failā un atkārtoti restartējiet SSH.
Neaizveriet pašreizējo SSH sesiju, kamēr neesat pārliecinājies, ka pieteikšanās ar atslēgu darbojas jaunā termināļa logā.
Ierobežojiet n8n pieteikšanās lapas apmeklējumu ātrumu
Pievienojiet piekļuves ātruma ierobežojumu, lai palēninātu brute-force uzbrukumus pret n8n pieteikšanās galapunktu.
"Viss vienā" platforma efektīvai SEO optimizācijai
Katra veiksmīga uzņēmuma pamatā ir spēcīga SEO kampaņa. Taču, ņemot vērā neskaitāmos optimizācijas rīkus un paņēmienus, var būt grūti saprast, ar ko sākt. Nu, nebaidieties, jo man ir tieši tas, kas jums palīdzēs. Iepazīstinu ar Ranktracker "viss vienā" platformu efektīvai SEO optimizācijai.
Mēs beidzot esam atvēruši reģistrāciju Ranktracker pilnīgi bez maksas!
Izveidot bezmaksas kontuVai Pierakstīties, izmantojot savus akreditācijas datus
**Svarīgi: **Direktīvai „limit_req_zone“ jāatrodas galvenās Nginx konfigurācijas blokā „http {}“ — nevis servera blokā. Atveriet galveno konfigurāciju:
sudo nano /etc/nginx/nginx.conf
Pievienojiet šo rindu esošajā http {} blokā:
http {
...
limit_req_zone $binary_remote_addr zone=n8n_login:10m rate=5r/m;
...
}
Tad savā n8n vietnes konfigurācijā (/etc/nginx/sites-available/n8n) pievienojiet šo location bloku servera blokā, kas klausās 443. portā (Certbot to izveidoja 6. solī), blakus esošajam location /. Nginx nepārnes proxy galvenes no location /, tāpēc tās šeit tiek atkārtotas:
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;
}
Lai izmaiņas stātos spēkā, pārlādējiet Nginx:
sudo nginx -t && sudo systemctl reload nginx
Tas ierobežo katru IP adresi līdz aptuveni 5 pieteikšanās mēģinājumiem minūtē, ņemot vērā nelielu pārsnieguma iespēju.
Regulāri atjauniniet n8n un PostgreSQL
Regulāri lejupielādējiet un pārstartējiet ar jaunākajiem attēliem:
cd ~/n8n
docker compose pull
docker compose up -d
Docker lejupielādīs jaunākos n8nio/n8n un postgres attēlus un pārstartēs tikai tos konteinerus, kuriem ir pieejama jaunāka versija.
Ražošanas vidē apsveriet iespēju piesaistīt n8n attēlu konkrētai versijas birkai (docker.n8n.io/n8nio/n8n:<versija>, ņemta no n8n izlaides piezīmēm) un veikt apzinātu atjaunināšanu, lai ikdienas lejupielāde nekad nepārietu uz nākamo galveno versiju, pirms esat izlasījuši izmaiņu žurnālu.
Bieži sastopamu problēmu novēršana
n8n konteiners nepārtraukti pārstartējas
Pārbaudiet konteinera žurnālus tūlīt pēc tam, kad sākas pārstartēšanas cikls:
docker compose logs n8n --tail=100
Biežākie cēloņi:
- Datu bāzes savienojuma kļūda: Pārliecinieties, ka PostgreSQL darbojas pareizi, izmantojot komandu `docker compose ps`. Pārbaudiet, vai POSTGRES_PASSWORD jūsu .env failā atbilst tam, ar ko tika inicializēta datu bāze.
- Trūkst šifrēšanas atslēgas vai tā ir mainīta: ja N8N_ENCRYPTION_KEY nav iestatīts vai tika mainīts pēc pirmās palaišanas, n8n nevar atšifrēt saglabātās autentifikācijas datus un avarēs.
- Nepietiekama RAM: PostgreSQL un n8n kopā var izmantot 1–1,5 GB RAM. Pārbaudiet pieejamo atmiņu ar komandu `free -h`.
Webhooki nedarbojas
Lai webhooki darbotos, n8n jūsu domēnā jābūt pieejamam no interneta. Pārbaudiet:
- Jūsu domēna DNS A ieraksts norāda uz jūsu VPS IP adresi: dig n8n.yourdomain.com
- Nginx darbojas: sudo systemctl status nginx
- 443. ports ir atvērts: sudo ufw status
- Vides mainīgais WEBHOOK_URL precīzi atbilst jūsu publiskajam domēnam, ieskaitot beigu slīpsvītru
n8n redaktors netiek pareizi ielādēts
Ja vizuālais redaktors ielādējas, bet parāda tukšu darba plūsmas laukumu vai reāllaika atjauninājumi vairs nedarbojas, tas nozīmē, ka WebSocket savienojums nedarbojas. Pārbaudiet, vai jūsu Nginx konfigurācijā ir iekļauts $http_upgrade bloks un vai proxy_set_header Connection rindā izmantojat mainīgo $connection_upgrade — nevis burtisko virkni “upgrade”.
SSL sertifikāta kļūdas
Ja Certbot neizdodas, parādot domēna validācijas kļūdu, pārbaudiet, vai ports 80 ir pieejams no interneta:
curl -I http://n8n.yourdomain.com
Ja pieprasījums beidzas ar laika limitu, iespējams, ka jūsu VPS pakalpojuma sniedzēja ugunsmūris bloķē 80. portu. Papildus UFW pārbaudiet arī māko ņkonsoles ugunsmūra noteikumus.
Secinājums
n8n pašhostēšana uz Linux VPS nodrošina jums ražošanai gatavu darba plūsmas automatizācijas platformu bez izpildes ierobežojumiem, ar pilnīgu datu privātumu un elastību, lai palaistu jebkuru nepieciešamo integrāciju. Šajā rokasgrāmatā aprakstītā konfigurācija — Docker, PostgreSQL, Nginx apgrieztais starpniekserveris, Let’s Encrypt SSL, automatizētās dublējumu kopijas un drošības pastiprināšana — ir tā pati platforma, ko izmanto ražošanas vidēs, un tā sniedz jums stabilu, drošu pamatu, uz kura balstīties.
Atšķirībā no minimālās instalācijas ar Docker komandu „run“, šī konfigurācija ir veidota tā, lai izturētu servera pārstartēšanu, apstrādātu vienlaicīgas darba plūsmu izpildes un veiksmīgi atgūtos no kļūmēm. Jūsu autentifikācijas dati ir šifrēti, ik nakti tiek veikta datu dublēšana, un jūsu pieteikšanās galapunktam ir noteikts piekļuves ātruma ierobežojums, lai novērstu bruto spēka uzbrukumus.
Kad jūsu instance darbojas, iepazīstieties ar n8n iebūvētajiem mezgliem datu bāzēm, API, webhooks un AI integrācijām, lai nekavējoties sāktu automatizēt savus darba plūsmu procesus. Pašhostētais kopienas forums community.n8n.io ir arī lielisks resurss, kur smelties idejas par darba plūsmām, atrisināt problēmas ar mezgliem un iegūt padomus par ieviešanu.

