n8n-ийг өөрийн серверт байрлуулах нь: нэг encryption key бүх нууцыг аварна

|Зохиогч: QUASA редакцын баг|4 мин уншина
n8n-ийг өөрийн серверт байрлуулах нь: нэг encryption key бүх нууцыг аварна

n8n-ийг Docker-оор өөрийн серверт байрлуулахдаа PostgreSQL-ийн өгөгдөл, n8n-ийн тогтвортой volume болон credential тайлах encryption key-г хамт хадгал. PostgreSQL-тэй албан ёсны Compose жишээ түлхүүртэй volume устсан бол өгөгдлийн санг сэргээсэн ч хадгалсан credential-үүд уншигдахгүйг анхааруулдаг. Энэ түлхүүрийг хамгаалах нь зөвхөн нууцлалын асуудал биш, сэргээх боломжийн үндсэн нөхцөл юм.

Монголд түрээсэлсэн VPS-д n8n, PostgreSQL, TLS холболт хүлээн авах reverse proxy-г Docker Compose-оор ажиллуулж болно. Өгөгдлийн сан болон n8n-ийн хэрэглэгчийн санд тус тусад нь тогтвортой volume оноо; нөөцийг серверээс өөр газар хадгал. Ингэсний дараа тусдаа орчинд нөөцөөс сэргээж, workflow харагдахаас гадна credential ашигласан холболт ажиллаж байгааг шалгах хэрэгтэй.

Compose төслийг VPS дээр байгуулах нь

Linux VPS дээр Docker Engine болон Compose суулгаад docker --version, docker compose version тушаалаар бэлэн эсэхийг шалга. Домэйны DNS бичлэгийг серверийн нийтийн IP хаягт зааж, compose.yaml болон орчны тохиргоог нэг төслийн санд байрлуул. n8n-ийн Compose заавар Traefik-ээр HTTPS хүлээн авч, n8n_data volume-ийг /home/node/.n8n-д холбох бүтцийг үзүүлдэг.

PostgreSQL-д өөрийн тогтвортой volume өгч, n8n болон өгөгдлийн санг нэг дотоод Docker сүлжээнд холбо. DB_TYPE=postgresdb, DB_POSTGRESDB_HOST болон өгөгдлийн сангийн нэр, хэрэглэгч, нууц үгийг n8n үйлчилгээнд тохируулна. PostgreSQL-ийн портыг нийтийн сүлжээнд нээх шаардлагагүй: Compose сүлжээнд n8n түүнийг үйлчилгээний нэрээр нь олно. Шинэчлэх хувилбараа хянахын тулд хоёр image-ийн тодорхой tag-ийг тэмдэглэж хадгал.

Reverse proxy тусдаа контейнер бол n8n-ийн портыг интернэтэд шууд нийтлэхгүйгээр дотоод сүлжээгээр дамжуул. Proxy серверийн өөрийн процесс бол n8n-ийн портыг зөвхөн 127.0.0.1 хаягт холбо. N8N_HOST-д домэйноо, N8N_PROTOCOL=https, WEBHOOK_URL-д гаднаас ашиглах HTTPS хаягаа өг; GENERIC_TIMEZONE=Asia/Ulaanbaatar нь хуваарьт workflow-ийн цагийг орон нутгийн нөхцөлд тааруулна. Эдгээр утга хоорондоо зөрвөл редакторт харагдах webhook хаяг бодит нийтийн хаягтай таарахгүй байж болно.

Өгөгдөл ба encryption key-г нэг сэргээх багц болгох нь

PostgreSQL ашигласан ч /home/node/.n8n санг тогтвортой хадгал. n8n анх асахдаа encryption key үүсгэж хэрэглэгчийн сандаа хадгалдаг; түлхүүрийг анхны асаалтаас өмнө N8N_ENCRYPTION_KEY хувьсагчаар өөрөө тохируулж болдгийг шифрлэлтийн түлхүүрийн заавар тайлбарладаг. Аль аргыг сонгосон ч тухайн instance-ийн ажиллаж буй түлхүүрийг тодорхой бүртгэж, сэргээх үед яг тэр утгыг ашигла.

PostgreSQL-ийн сэргээж болох хуулбар, /home/node/.n8n volume, Compose тохиргоо болон ашигласан түлхүүрийн нөөц нэг сэргээх үеийг төлөөлөх ёстой. Өгөгдлийн сангийн хуулбар workflow болон шифрлэсэн credential-ийн бичлэгийг авчирна, харин түлхүүргүй бол credential-ийг тайлж чадахгүй. Хэрэв workflow файлыг контейнерийн өөр замд эсвэл гадаад хадгалалтад бичдэг бол тэр байршлыг ч нөөцлөлтийн хүрээнд оруул. Зөвхөн VPS-ийн үндсэн диск дээр үлдсэн хуулбар серверийн гэмтлийн үед хамт алга болж болзошгүй.

Түлхүүрийг нийтэд харагдах Compose файлд ил бичихээс зайлсхий. .env файл хэрэглэвэл файлын унших эрхийг хязгаарлаж, кодын сан болон нийтэд нээлттэй нөөцөд оруулахгүй; нууц хадгалах тусгай хэрэгсэл ашигладаг бол түүний сэргээх эрхийг мөн төлөвлө. Ажиллаж буй instance-ийн түлхүүрийг дур мэдэн шинээр солих нь өмнө хадгалсан credential-д нэвтрэх чадварт нөлөөлнө. Нөөцийг сэргээх туршилтад түлхүүрийн утга зөв хүрч буйг бодит credential ашигладаг холболтоор баталгаажуул.

TLS ба хадгалалтын шифрлэлтийг тохируулах нь

Нийтийн домэйн руу ирэх урсгалыг хүчинтэй TLS сертификаттай reverse proxy дээр хүлээн авч, HTTP хүсэлтийг HTTPS рүү шилжүүл. n8n-ийн аюулгүй байдлын тайлбар өөрийн серверт байршуулсан хэрэглэгч TLS reverse proxy болон n8n, өгөгдлийн сан бичигдэх хадгалалтын шифрлэлтийг хариуцна гэж заадаг. TLS нь дамжиж буй мэдээлэлд, дискний шифрлэлт нь хадгалагдсан мэдээлэлд үйлчилдэг тул хоёуланг нь тусад нь тохируулна.

VPS үйлчилгээ үзүүлэгчийн дискний шифрлэлтийн нөхцөлийг шалгаж, PostgreSQL ба n8n-ийн volume бодитоор ямар диск дээр байгааг тогтоо. Үндсэн диск шифрлэгдсэн байсан ч тусдаа диск эсвэл нөөцийн хадгалалт ижил хамгаалалттай гэж автоматаар үзэж болохгүй. Нөөцийн файлуудыг шифрлэж, тэдгээрийг тайлах эрхийг нөөц байрлаж буй орчноос тусад нь хамгаалах нь зүйтэй. Өөрөө шифрлэсэн хуваалт ашиглавал сервер дахин асахад хуваалтыг нээх түлхүүр, ажиллагааг сэргээх журмаа мөн хадгал.

Нээлттэй webhook-ийг хязгаарлах нь

Гаднын үйлчилгээ webhook дуудах бол WEBHOOK_URL нь жинхэнэ нийтийн HTTPS хаягтай таарах ёстой. n8n-ийн Webhook заавар Basic, Header, JWT баталгаажуулалт болон зөвшөөрөгдсөн IP хаягийн жагсаалтыг тайлбарладаг. Илгээгчийн боломжид тохирох аргыг workflow бүрт сонго; санамсаргүй үүссэн URL замыг дангаар нь нэвтрэх хяналт гэж үзэх хэрэггүй.

Хэрэв илгээгч тогтмол IP хаягтай бол webhook-ийн зөвшөөрөгдсөн хаягийг хязгаарлаж болно. Гарын үсэгтэй хүсэлт илгээдэг үйлчилгээ ашиглавал тухайн үйлчилгээний баримт бичгийн дагуу гарын үсгийг workflow-д шалгах шаардлагатай; Webhook node-ийн ерөнхий баталгаажуулалтын сонголт үүнийг бүх үйлчилгээнд автоматаар орлохгүй. Reverse proxy дээр хүсэлтийн хэмжээ, давтамжийг тухайн webhook-ийн бодит хэрэглээнд тааруулж, логт credential эсвэл хүсэлтийн нууц утгыг ил гаргахгүй байхаар тохируул.

Шинэчлэл ба буцаан сэргээх төлөвлөгөө

Image шинэчлэхийн өмнө ажиллаж буй n8n ба PostgreSQL-ийн tag, Compose файл, өгөгдлийн сангийн хуулбар, /home/node/.n8n volume болон encryption key-ийн нөөцийг нэг дор тэмдэглэ. Дараа нь шинэ image-ийг татаж үйлчилгээг асаагаад редактор, хуваарьт workflow, webhook, credential ашигладаг холболтыг шалга. Контейнер ассан гэдэг нь эдгээр ажиллагаа бүгд хэвийн гэсэн баталгаа биш.

Буцаах төлөвлөгөөнд хуучин image tag-аас гадна түүнд тохирох өгөгдлийн сангийн хуулбарыг оруул. Шинэ хувилбар өгөгдлийн сангийн бүтцийг өөрчилсөн бол зөвхөн хуучин image-ийг асаахад хангалтгүй байж болно. Сэргээх туршилтыг тусдаа орчинд хийж, үйлдвэрлэлийн webhook-ийг санамсаргүй идэвхжүүлэхээс сэргийл. Нөөцөөс боссон instance-д workflow нээгдэж, хадгалсан credential-ээр гаднын үйлчилгээтэй холбогдож байвал өгөгдөл, volume болон түлхүүрийг хамтад нь сэргээх төлөвлөгөө бодитоор ажиллаж байна.

Хуваалцах:

Мэдээллийн товхимолд бүртгүүлэх

Web3, AI болон криптоны шинэ мэдээг шууд имэйл хайрцагтаа аваарай.

0