Jinsi ya kuweka n8n kwenye VPS na Docker
Jifunze kuweka n8n kwenye VPS kwa kutumia Docker Compose na Postgres. Tumia mbinu sahihi ya WEBHOOK_URL na encryption-key ili kuepuka makosa ya kawaida.
Unachojenga
n8n ni zana ya otomatishaji wa mfululizo wa kazi (workflow automation): ni mhariri wa picha ambapo kishikizo (trigger) — kama vile webhook, ratiba, au utumaji wa fomu — huchochea mfululizo wa node zinazopiga API, zinazobadilisha muundo wa data, na kuandika kwenye mifumo mingine. Imekuwa kiungo kikuu kwa mfululizo wa kazi za AI-agent kwa sababu inaweza kuwasiliana na kila mtoa huduma wa modeli na kanzidata bila wewe kuandika huduma mpya. docker run mmoja anapata mhariri unaofanya kazi ndani ya dakika mbili. Mwongozo huu unahusu asilimia kumi na tisa iliyobaki: kuifanya iwe imara kwa kutumia Postgres badala ya faili ya SQLite ya kawaida, kuifanya ifikike kupitia HTTPS, na — sehemu ambayo karibu kila mtu hukosea — kuifanya webhook itoe URL ambayo ulimwengu wa nje unaweza kuifikia.
Stack iliyokamilika ina kontena mbili kwenye mtandao mmoja wa Docker: n8n yenyewe, na kanzidata ya Postgres inayohifadhi mfululizo wa kazi na siri (credentials). Reverse proxy kwenye host inamaliza TLS na kuelekeza trafiki kwenda n8n kwenye localhost, hivyo hakuna kitu kinachokabili mtandao wa internet isipokuwa kupitia proxy hiyo. Inatambulika pamoja na huduma nyingine kwenye orodha ya self-hosting ya 2026.
Mahitaji ya awali, na mipaka yake halisi
Unahitaji VPS yenye angalau 1 GB ya RAM; panga kutumia 2 GB wakati mifumo inafanya kazi kubwa, kwa sababu utendaji na Node.js hutumia kumbukumbu nyingi. Ni bora kuepuka hali ambapo out-of-memory killer inazima container wakati wa utendaji. vCPU moja inatosha kuanza.
Unahitaji domain au subdomain — kwa mfano n8n.example.com — yenye A record inayoelekeza kwenye IP ya umma ya VPS ambayo inafanya kazi kabla ya kuomba cheti. Port 80 na 443 lazima ziwe wazi kwa proxy; port 5678 ya n8n isifunguliwe kwa mtandao wa nje. Unahitaji Docker Engine na plugin ya Compose; ikiwa docker compose version inatoa kosa la docker: 'compose' is not a docker command, unatumia binary ya zamani, na plugin ni sudo apt install docker-compose-plugin.
SQLite ni nzuri kwa majaribio, Postgres ni kwa ajili ya mifumo muhimu
Database ya n8n kwa kawaida ni faili ya SQLite iliyopo /home/node/.n8n/database.sqlite. Kwa ajili ya majaribio ni sawa — usifunge volume na utapoteza data wakati wa kuunda container upya, jambo ambalo ni somo la kwanza. Sababu ya kuhama kwenda Postgres si kasi pekee; SQLite hutumia single writer lock, hivyo instance inayotekeleza workflows nyingi kwa wakati mmoja, au queue mode utakayohitaji baadaye, itatupa SQLITE_BUSY: database is locked wakati wa concurrency. Postgres haina vikwazo hivyo, inafanya backup vizuri kwa pg_dump, na ndiyo inayopendekezwa na docs za n8n kwa server muhimu. Kubadilisha baadaye kunamaanisha kuhama data kwa mkono, hivyo ikiwa server hii ni muhimu, anza na Postgres.
DNS na firewall
Elekeza rekodi na ufungue bandari kwanza. Hii itazuia hatua ya cheti kushindwa kutokana na jina ambalo halitambuliki.
dig +short n8n.example.com
curl -s ifconfig.me
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow OpenSSH
sudo ufw enableUsifungue 5678. Faili ya compose inaunganisha n8n na 127.0.0.1:5678, hivyo ni reverse proxy ya host pekee inayoweza kuifikia. ufw allow 5678 itavunja ulinzi huo.
Faili ya Compose
Tengeneza directory ya kazi na docker-compose.yml. Hii ndiyo stack nzima — huduma mbili, mtandao mmoja wa ndani, na volume mbili zilizopewa majina.
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n_net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n -d n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: docker.n8n.io/n8nio/n8n:2.29.10
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com/
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
- N8N_PROXY_HOPS=1
- GENERIC_TIMEZONE=Europe/London
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- n8n_data:/home/node/.n8n
networks:
- n8n_net
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
networks:
n8n_net:Maamuzi machache yanayopaswa kutajwa wazi. DB_POSTGRESDB_HOST=postgres ni jina la huduma, ambalo Docker hutatua kwenye mtandao wa pamoja — si localhost, ambalo ndani ya container ya n8n linamaanisha n8n yenyewe. depends_on ikiwa na condition: service_healthy inazuia n8n kuanza kabla ya Postgres; bila hiyo, n8n itaanza, haitapata database, kisha itafunga. Volume ya n8n_data iliyopo kwenye /home/node/.n8n huhifadhi funguo ya usimbaji (encryption key) na, kwenye SQLite, database — directory moja ambayo usipoteze. Tumia toleo mahususi la image, usitumie latest; sababu zipo kwenye sehemu ya upgrade hapo chini.
Faili ya siri
Usiiweke kamwe nywila kwenye faili ya compose. Ziweke kwenye faili ya .env iliyo karibu nayo ambayo Compose inaisoma kiotomatiki, na uzitengeneze ziwe za nasibu kabisa.
printf 'POSTGRES_PASSWORD=%s\n' "$(openssl rand -hex 24)" > .env
printf 'N8N_ENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" >> .env
chmod 600 .envN8N_ENCRYPTION_KEY ndiyo mfululizo wa herufi muhimu zaidi hapa — ni ufunguo ambao kila nywila iliyohifadhiwa imefungwa nao. Iweke wazi badala ya kuacha n8n itengeneze moja, kwa sababu thamani uliyotengeneza unaweza kuandika na kuirejesha. Mara n8n itakapofunga nywila yake ya kwanza kwa ufunguo huu, kubadilisha ufunguo huo kutofanya nywila zote ziweze kusomika — hivyo iweke mara moja, sasa, na usiguse mstari huo tena.
Variable za mazingira (env vars) zinazofanya kazi za webhooks zifanye kazi
Variable nne zinadhibiti jinsi n8n inavyojitambulisha kwa ulimwengu wa nje. Makosa katika variable hizi ndiyo swali namba moja la msaada wa n8n.
N8N_HOSTni hostname ya umma,n8n.example.com. Iache ikiwalocalhostikiwa nyuma ya proxy. Kisha editor itajaribu kupakia API yake yenyewe kutokalocalhostkwenye browser yako, jambo ambalo litashindwa.N8N_PROTOCOL=httpsinaambia n8n kuwa inatumika kupitia TLS, hivyo inaweka session cookieSecurena kutengeneza URL zahttps://.N8N_PORT=5678ni port ambayo n8n inasikiliza ndani ya container. Sio port ya umma; proxy inamiliki port 443.WEBHOOK_URL=https://n8n.example.com/ndiyo inayosababisha matatizo. n8n hutengeneza anwani za webhook unazozibandika kwenye Stripe, GitHub au mwombaji wowote wa nje kwa kutumia thamani hizi. Ikiwa haijatengenezwa au ni mbaya, n8n itatumiaN8N_HOST:N8N_PORTna kukupahttps://n8n.example.com:5678/webhook/...au, mbaya zaidi,http://localhost:5678/webhook/...— itachapishwa bila kosa, itaonekana inawezekana, lakini haitafikiwa kutoka kwenye internet. Hii inafanya maombi ya mwombaji yasifike bila kutoa taarifa. Iweke kuwa URL kamili ya umma ikiwa na slash ya mwishoni, kisha hakikisha node ya webhook inaonyesha URL isiyo na port.
N8N_PROXY_HOPS=1 inaambia Express server ya n8n kuamini proxy moja iliyo mbele yake. Hii inafanya ukomo wa kiwango (rate-limiting) na vipengele vinavyosoma IP ya mteja kuona anwani halisi badala ya ya proxy. Variable moja ambayo hupasimili kuweka hapa ni N8N_RUNNERS_ENABLED: task runners — n8n inayorun mantiki ya Code-node katika mchakato tofauti wa sandboxed — zimekuwa chaguo la kawaida tangu toleo la 1.69 na ni lazima kuanzia toleo la 2.x linalopendekezwa hapa, hivyo chaguo la zamani limepitwa na wakati. Iweke sasa na n8n itatoa taarifa tu inayokuambia uiondoe.
Hatua ya kwanza
docker compose up -d
docker compose ps
docker compose logs -f n8nKuanza kwa mfumo vizuri huishia na mstari wa Editor is now accessible via:, ukiwa na mstari wa n8n ready on ..., port 5678 juu yake. docker compose ps inapaswa kuonyesha kontena zote Up, huku postgres ikiwa imewekwa (healthy). Ikiwa n8n imekwama kwenye loop ya Restarting, soma logi — mara nyingi ni kutokana na muunganisho wa database au ruhusa za volume kama ilivyoelezwa hapa chini.
TLS pamoja na reverse proxy
n8n yenyewe hutumia HTTP ya kawaida kwenye port 5678; kitu fulani mbele yake kinashughulikia HTTPS. Kuna chaguzi mbili rahisi.
Kama tayari unatumia container nyingi, weka n8n nyuma ya Traefik reverse proxy inayotoa TLS certificates kiotomatiki kwa kutumia labels chache — Traefik huomba na kuhuisha certificate kwa ajili yako.
Kama hii ndiyo app pekee kwenye server, nginx virtual host yenye certificate ya Let's Encrypt ni rahisi zaidi. Tumia setup ya Certbot na nginx TLS kwa Ubuntu 24.04 ili kupata certificate, kisha tumia server block hii:
server {
listen 443 ssl;
server_name n8n.example.com;
ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 3600;
client_max_body_size 16m;
}
}Header za Upgrade na Connection "upgrade" siyo za hiari. n8n hutuma updates za utendaji (execution updates) kwenye editor kupitia WebSocket, na bila mistari hiyo miwili, ukurasa wa kuingia (login page) utafunguka kisha utakwama kwa kuonyesha ujumbe wa "lost-connection". proxy_read_timeout 3600 huzuia utendaji unaochukua muda mrefu kukatwa baada ya sekunde 60 za nginx. Header ya X-Forwarded-Proto $scheme ni mfuatiliaji wa N8N_PROXY_HOPS=1: inaiambia n8n kuwa ombi la awali lilikuwa HTTPS ingawa proxy inafikia n8n kupitia HTTP ya kawaida, ili n8n isiamue kuwa muunganisho si salama na kukataa cookie yake yenyewe.
Workflow yako ya kwanza, ili kuifanya iwe halisi
Fungua https://n8n.example.com/, tengeneza akaunti ya mmiliki (sehemu inayofuata), na uunde workflow ndogo zaidi inayothibitisha kuwa njia hiyo inafanya kazi: webhook inayopokea, mwito wa HTTP, na majibu yanayotoka.
- Ongeza node ya Webhook. Set thamani ya method kuwa
POSTna path kamahello. Inaonyesha URL mbili, Test URL na Production URL — chanzo cha nusu ya ripoti za "webhook yangu haifanyi kazi". Test URL hujibu mwito mmoja tu, na ni wakati tu unapobofya Listen for test event; baada ya hapo inaisha muda wake. Production URL hujibu wakati wowote workflow ilipo Active. - Ongeza node ya HTTP Request baada yake, ikielekezwa kwenye API yoyote ya JSON ya umma — GET kwenda
https://api.github.com/zenhurudisha string ya mstari mmoja, ambayo inatosha. - Ongeza node ya Respond to Webhook, na uweke chaguo la Respond la node ya Webhook kuwa "Using Respond to Webhook node" ili mpiga simu apate matokeo ya node ya HTTP.
- Washa workflow iwe Active (juu kulia) na uipige:
curl -X POST https://n8n.example.com/webhook/hello. Unapaswa kupata mstari wa zen — POST inaingia, mwito wa API, majibu yanatoka, muundo wa automations nyingi halisi.
Toleo la kupangwa (scheduled) hubadilisha node ya Webhook na Schedule Trigger na hupiga mwisho wa API (endpoint) badala yake — Ollama inayojiendesha kwenye VPS ileile ni njia nzuri ya kujenga mfumo wa muhtasari wa kila usiku.
Usimamizi wa watumiaji, si basic auth
Mwongozo wa zamani wa n8n unakuambia uweke N8N_BASIC_AUTH_ACTIVE=true. Variable hizo ziliondolewa kwenye n8n 1.0 na hazifanyi kazi sasa. Utambulisho wa sasa ni owner account: mara ya kwanza unapofungua editor, n8n inakulazimisha utengeneze owner kwa kutumia email na password, na hatua hiyo ni ya lazima — hakuna mfumo wa anonymous. Itengeneze mara moja baada ya kuanza kwa mara ya kwanza, kabla ya kumpa mtu yeyote URL: kati ya docker compose up na utumizaji wa fomu hiyo ya kwanza, instance inaweza kuchukuliwa na mtu yeyote atakayefika kwanza. Kuweka reverse-proxy basic-auth ni ulinzi wa ziada unaofaa, lakini ni njia ya pili ya utambulisho, si utambulisho halisi.
Backups: kwanza ufunguo wa usimbaji, kisha hifadhidata
Mambo mawili yanahitaji kuhifadhiwa, na hayawezi kubadilishwa kwa usawa.
N8N_ENCRYPTION_KEY. Kila siri unayohifadhi ndani ya n8n — API tokens, nywila za hifadhidata, OAuth secrets — imesimbwa kwa kutumia ufunguo huu. Workflows kwenye Postgres hazitafanya kazi bila ufunguo huo: ukirejesha hifadhidata kwenye seva mpya yenye ufunguo tofauti, n8n haitaweza kusoma siri hata moja, na hakuna njia ya kurejesha au kubadilisha. Faili yako ya .env ina ufunguo huo; nakili faili hiyo nje ya seva — kutumia programu ya usimamizi wa nywila ni bora — siku unayotengeneza. Hii ndiyo backup muhimu zaidi.
Hifadhidata ya Postgres, kwa ajili ya workflows, historia ya utendaji, na siri zilizosimbwa:
docker compose exec -T postgres pg_dump -U n8n -d n8n \
| gzip > n8n-db-$(date +%F).sql.gzIrunge kwa ratiba na nakili faili hiyo nje ya seva. Ili kurejesha kwenye VPS mpya: washa stack mara moja ili hifadhidata iwepo, simamisha n8n, pakia tena dump kwa kutumia psql, weka N8N_ENCRYPTION_KEY ile ile kwenye .env, kisha washa n8n. Ufunguo ule ule pamoja na dump inatengeneza mfumo unaofanya kazi; ufunguo mpya itakuwa workflows ambazo haziwezi kutumia siri hata moja.
Upgrades: pin the tag
Faili ya compose imefunga n8nio/n8n:2.29.10 badala ya latest kwa makusudi. n8n hutoa toleo jipya la minor kila wiki na wakati mwingine hubadilisha muundo wa database au tabia ya node; hivyo latest inamaanisha kuwa pull isiyo ya uangalifu inaweza kukupa build inayohamia database yako mara tu inapoanza. Funga toleo mahususi, soma release notes kabla ya kubadilisha — n8n huonyesha mabadiliko yanayovunja mifumo hapo — na fanya upgrade kwa makusudi:
docker compose exec -T postgres pg_dump -U n8n -d n8n | gzip > pre-upgrade.sql.gz
# edit the image tag in docker-compose.yml, then:
docker compose pull n8n
docker compose up -d n8n
docker compose logs -f n8nMabadiliko ya toleo kuu (major-version) ndipo haya ni muhimu zaidi. Kwa mfano, mfululizo wa 2.0 ulibadilisha N8N_BLOCK_ENV_ACCESS_IN_NODE kwenda true kwa kimawazo, hivyo node yoyote ya Code inayosoma process.env itapoteza ufikiaji bila taarifa mpaka uirudishe kwenye false; toleo hilo hilo lilianza kusimamia vikwazo vikali kwenye faili ya settings. Soma 2.0 breaking-changes page kabla ya kuvuka mipaka ya toleo kuu. n8n hufanya migrations yoyote ya database inayohitajika kiotomatiki wakati wa kuanza — ndiyo sababu pg_dump ya kabla ya upgrade si ya hiari. Kwa sababu siri (credentials) huishi zikiwa zimefichwa na ufunguo kwenye .env na data inaishi kwenye Postgres, container zinaweza kufutwa: unafanya upgrade kwa kuzibadilisha, na unarudi nyuma kwa kufunga tag ya awali na kurejesha dump.
Njia za kushindwa, pamoja na maandishi utakayoyaona
The requested webhook "POST hello" is not registered. Hitilafu ya 404 inatokea unapoita webhook ambayo workflow yake haijashughulikiwa kama Active, au unapojaribu njia ya majaribio (test path) wakati hakuna anayesikiliza. Njia za majaribio (/webhook-test/...) hujibu tu wakati umebonyeza "Listen for test event"; njia za uzalishaji (/webhook/...) hujibu tu wakati swichi ya workflow imewashwa. This webhook is not registered for GET requests. Did you mean to make a POST request? inayofuatia inamaanisha kuwa njia (method) ni mbaya — node inatarajia POST lakini umetuma GET.
URL ya webhook inaonyesha :5678 au localhost. Node inaonyesha https://n8n.example.com:5678/webhook/... au http://localhost:5678/.... WEBHOOK_URL haijatengenezwa au ni mbaya, hivyo n8n imetengeneza anwani kutokana na N8N_HOST:N8N_PORT badala ya msingi wako wa umma. Weka WEBHOOK_URL=https://n8n.example.com/, tengeneza upya container kwa kutumia docker compose up -d, na port itatoweka.
There was a problem loading init data kwenye kivinjari (browser). Editor imefunguka lakini haiwezi kufikia backend API yake yenyewe. Ikiwa unatumia proxy, hii mara nyingi ni sababu ya N8N_HOST au WEBHOOK_URL mbaya, proxy inayokosa headers za WebSocket za Upgrade, au N8N_PROTOCOL isiyolingana na jinsi unavyojiunganisha. Hakikisha variable nne za umma na kwamba proxy inapitisha Upgrade na Connection.
password authentication failed for user "n8n" kwenye logs, huku container ikijizima na kuwaka upya. Password ambayo n8n inatuma hailingani na ile iliyotumika wakati database inatengenezwa. Changamoto ni hii: Postgres inasoma POSTGRES_PASSWORD tu wakati inatengeneza directory ya data ambayo ni tupu. Anza stack mara moja, kisha badilisha POSTGRES_PASSWORD kwenye .env, na volume ya postgres_data iliyopo bado itakuwa na password ya zamani. Irudishe kwenye asili, au, ikiwa huna data ya kuhifadhi, docker compose down na docker volume rm volume ya postgres, kisha iwashe upya.
EACCES: permission denied, open '/home/node/.n8n/config' wakati wa kuanza. n8n inafanya kazi kama mtumiaji wa node (UID 1000) na haiwezi kuandika kwenye directory yake ya usanidi (config directory). Hii huwapata watu wanaotumia bind-mount kwenye folder la host (./n8n_data:/home/node/.n8n ambalo ni la root. Tumia named volume iliyoonyeshwa hapo juu, au ikiwa unasisitiza kutumia bind mount, sudo chown -R 1000:1000 ./n8n_data kwanza.
Permissions 0644 for n8n settings file /home/node/.n8n/config are too wide. Changing permissions to 0600.. Kuanzia toleo la 2.x, n8n inatunza 0600 kwenye faili hiyo ya mipangilio kwa kimawazo na inajirekebisha yenyewe wakati wa kuwaka — mstari huu wa log unamaanisha tayari imerekebisha mode, mara nyingi baada ya bind mount au baada ya kurejesha (restore) faili yenye ruhusa (permissions) zisizo sahihi. Hakuna hatua inayohitajika; weka N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false tu ikiwa mfumo wako wa faili hauwezi kuunga mkono ruhusa.
Mismatching encryption keys — mstari kamili unasema kuwa encryption key kwenye faili ya mipangilio /home/node/.n8n/config hailingani na N8N_ENCRYPTION_KEY kwenye mazingira (environment) yako. Key kwenye mazingira yako ni tofauti na ile ambayo n8n iliandika kwenye volume yake ya data wakati wa kukimbia awali — mara nyingi ni kwa sababu n8n ilitengeneza key ya bahati mbaya wakati variable haikuwekwa, na kisha ukaweka nyingine tofauti. Rudisha key ya asili kwenye .env, au, ikiwa kweli huna siri (credentials) za kuhifadhi, futa faili ya config ndani ya volume ya n8n_data na uache n8n itengeneze upya — ukikubali kuwa siri zilizopo zitakuwa zisizoweza kusomeka.
Bango la kuingia kuhusu secure cookies: Your n8n server is configured to use a secure cookie, however you are either visiting this via an insecure URL, or using Safari. Umeingiza N8N_PROTOCOL=https lakini umeifikia n8n kupitia HTTP ya kawaida — kwa kawaida kwa kutumia IP na port moja kwa moja badala ya proxy ya HTTPS. Ifikie kupitia https://n8n.example.com/. Ikiwa kweli huwezi kutumia HTTPS, ndipo unapaswa kuweka N8N_SECURE_COOKIE=false, na usifanye hivyo kwenye mashine inayounganishwa na internet.
Ili kuweka model ya lugha ndani ya workflow hizo, tazama ujenzi wa AI workflows kwa kutumia Claude na n8n.
FAQ
Je, nitumie SQLite au Postgres kwa n8n?
SQLite (default) inafaa kwa kujaribu n8n na kwa matumizi binafsi yanayojiendesha kwa workflow moja kwa wakati mmoja. Hamia kwenye Postgres kwa kazi yoyote muhimu: SQLite inasababisha database is locked wakati wa kazi nyingi zinazofanyika kwa pamoja, na Postgres inafanya backup vizuri kwa pg_dump. Kuhama baadaye ni kwa kazi ya mkono, hivyo ikiwa seva ni muhimu, anza na Postgres.
Kwa nini webhooks za n8n hazifanyi kazi?
Mara nyingi ni WEBHOOK_URL. Ikiwa haijapangwa au imekosewa, n8n huonyesha anwani za webhook zinazoundwa kutokana na N8N_HOST:N8N_PORT — mara nyingi zikiwa na :5678 au localhost — ambazo zinaonekana kuwa sahihi lakini haziwezi kufikiwa kutoka kwenye internet, hivyo maombi ya mtumaji hayafiki. Weka WEBHOOK_URL=https://n8n.example.com/ na uhakikishe node inaonyesha URL isiyo na port. Sababu ya pili ni kuitia webhook ambayo workflow yake haijawashwa (Active), jambo linalorudisha The requested webhook ... is not registered..
Ni nini lazima nifanye backup katika n8n?
Vitu viwili. N8N_ENCRYPTION_KEY kutoka kwenye faili yako ya .env, kwa sababu kila siri (credential) iliyohifadhiwa imefungwa kwa N8N_ENCRYPTION_KEY na kuipoteza hufanya isiweze kufunguliwa tena — nakili nje ya seva siku unayotengeneza. Na pg_dump ya database ya Postgres kwa ajili ya workflows, historia, na siri. Kurejesha (restore) kunahitaji vyote viwili: key ile ile pamoja na dump.
Nitafanyaje n8n iwe nyuma ya HTTPS?
n8n hutumia HTTP ya kawaida kwenye port 5678; reverse proxy mbele yake huondoa TLS. Iunganishe n8n na 127.0.0.1:5678 ili proxy pekee iweze kuifikia, kisha tumia Traefik yenye certificates za kiotomatiki au nginx yenye certificate ya Let's Encrypt. Weka N8N_PROTOCOL=https na WEBHOOK_URL=https://your-host/, na uhakikishe proxy inapitisha WebSocket Upgrade headers vinginevyo editor itakwama.
Nitafanyaje upgrade ya n8n kwa usalama?
Tumia image tag maalum badala ya latest, fanya pg_dump kwanza kwa sababu n8n hufanya migrations kiotomatiki wakati wa kuanza, soma release notes kwa mabadiliko makubwa, kisha badilisha tag na uendeshe docker compose pull n8n && docker compose up -d n8n. Container inaweza kufutwa bila hasara, hivyo kurudisha nyuma (roll back) kwa kutumia tag ya awali na kurejesha dump ya kabla ya upgrade.