คู่มือ Self-host n8n บน DigitalOcean 2026 — Automation ฟรี
A practical guide to self-hosting n8n workflow automation on a DigitalOcean Droplet using Docker Compose, covering server sizing, domain and SSL setup, and workflow backups.
n8n คือเครื่องมือ workflow automation แบบ open-source ที่กำลังได้รับความนิยมในหมู่นักพัฒนาไทยที่ต้องการทางเลือกจาก Zapier หรือ Make โดยไม่ต้องจ่ายค่า task รายเดือน คู่มือนี้อธิบายขั้นตอนติดตั้ง n8n บน DigitalOcean Droplet ด้วย Docker Compose ตั้งแต่เลือกสเปกเซิร์ฟเวอร์ ตั้งค่าโดเมนพร้อม SSL ไปจนถึงการสำรอง workflow อย่างปลอดภัย พร้อมตัวอย่างคำสั่งจริงที่ใช้งานได้ทันที
สารบัญ
n8n คืออะไร ใช้แทน Zapier ได้ไหม
n8n เป็นเครื่องมือ workflow automation แบบ node-based ที่เปิดซอร์สภายใต้ fair-code license ใช้เชื่อมต่อแอปพลิเคชันต่าง ๆ เข้าด้วยกันโดยไม่ต้องเขียนโค้ดมากนัก จุดเด่นเมื่อเทียบกับ Zapier หรือ Make คือ n8n รองรับการ self-host บนเซิร์ฟเวอร์ของตัวเอง ทำให้ไม่มีข้อจำกัดเรื่องจำนวน workflow หรือจำนวนครั้งที่ execute ต่อเดือนแบบที่ SaaS เก็บค่าบริการตาม task ส่วน n8n Cloud เวอร์ชัน SaaS ก็มีให้บริการเช่นกันสำหรับผู้ที่ไม่อยากดูแลเซิร์ฟเวอร์เอง ในแง่ฟีเจอร์ n8n รองรับ integration มากกว่า 400 บริการ ทั้ง Google Workspace, Slack, Line Notify, Telegram, ฐานข้อมูล และ REST API ทั่วไป รวมถึงมี node สำหรับเขียน JavaScript/Python เองได้เมื่อ integration สำเร็จรูปไม่ครอบคลุม ข้อแตกต่างสำคัญจาก Zapier คือ n8n ให้ควบคุม data flow ได้ละเอียดกว่า เช่น loop, branch เงื่อนไขซับซ้อน, error handling แบบกำหนดเอง ซึ่งเหมาะกับทีมที่มี workflow ซับซ้อนหรือปริมาณการทำงานสูง สำหรับคำถามว่า n8n ใช้แทน Zapier ได้ไหม คำตอบคือได้ในหลายกรณี โดยเฉพาะงานที่มีปริมาณ execution สูงซึ่งจะทำให้ Zapier มีค่าใช้จ่ายรายเดือนสูงตามจำนวน task แต่ n8n self-host จะมีเพียงค่าเซิร์ฟเวอร์คงที่ต่อเดือนไม่ว่าจะรันกี่ครั้งก็ตาม ข้อแลกเปลี่ยนคือทีมงานต้องรับผิดชอบเรื่อง maintenance เซิร์ฟเวอร์ อัพเดตเวอร์ชัน และความปลอดภัยเอง ซึ่งต่างจาก SaaS ที่ผู้ให้บริการดูแลให้ทั้งหมด สำหรับนักพัฒนาที่คุ้นเคยกับ Docker และ Linux การ self-host บน DigitalOcean Droplet จึงเป็นทางเลือกที่คุ้มค่าในระยะยาว
n8n is a node-based workflow automation tool released under a fair-code license. It connects applications together with minimal coding. Compared to Zapier or Make, n8n's standout feature is self-hosting support on your own server, eliminating limits on workflow count or monthly execution limits the way SaaS platforms charge per task. n8n Cloud also offers a managed SaaS version for those who prefer not to manage infrastructure. Feature-wise, n8n integrates with over 400 services including Google Workspace, Slack, Line Notify, Telegram, databases, and generic REST APIs. It also includes nodes for writing JavaScript/Python when ready-made integrations fall short. The key difference from Zapier is n8n gives finer control over data flow — loops, complex conditionals, custom error handling — making it ideal for teams with intricate workflows or high execution volumes. Can n8n replace Zapier? In many cases, yes — especially for high-execution workloads that would cost dearly in monthly Zapier tasks. Self-hosted n8n has fixed server costs regardless of run frequency, whereas Zapier charges per task. The trade-off is your team must handle server maintenance, updates, and security patches yourself, unlike SaaS vendors who manage everything. For developers comfortable with Docker and Linux, self-hosting on a DigitalOcean Droplet delivers compelling long-term value.
- n8n เปิดซอร์สภายใต้ fair-code license ใช้งานฟรีเมื่อ self-host ไม่จำกัดจำนวน workflow
- รองรับ integration มากกว่า 400 บริการ พร้อม node เขียนโค้ดเองได้
- self-host ไม่มีค่า task รายเดือนเหมือน Zapier/Make แต่ต้องดูแลเซิร์ฟเวอร์เอง
- n8n Cloud (SaaS) เป็นทางเลือกสำหรับผู้ไม่ต้องการดูแลระบบเอง
Deploy n8n ด้วย Docker Compose
ก่อนติดตั้ง n8n ควรเลือกสเปก Droplet ให้เหมาะสมกับปริมาณงาน สำหรับทดสอบหรือใช้งานส่วนตัวเบื้องต้น แผน Basic แบบ Shared CPU ขนาด 1 GiB RAM/1 vCPU/25 GB SSD ราคา $6/เดือน พอใช้งานได้ แต่หากตั้งใจรัน n8n ร่วมกับฐานข้อมูล PostgreSQL หรือมี workflow ทำงานพร้อมกันหลายตัว แนะนำขยับไปที่แผน 2 GiB RAM/1 vCPU/50 GB SSD ราคา $12/เดือน เพื่อไม่ให้หน่วยความจำไม่พอจนคอนเทนเนอร์ค้างหรือรีสตาร์ตเอง
หลังจากสร้าง Droplet และ SSH เข้าเซิร์ฟเวอร์แล้ว ให้ติดตั้ง Docker ด้วยสคริปต์ทางการ curl -fsSL https://get.docker.com | sh จากนั้นตรวจสอบว่า Docker Compose plugin มาพร้อมกันแล้วด้วย docker compose version ขั้นตอนถัดไปคือสร้างไฟล์ docker-compose.yml เพื่อกำหนดค่า service n8n เช่น
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.yourdomain.com
- N8N_PROTOCOL=https
- N8N_PORT=5678
- WEBHOOK_URL=https://n8n.yourdomain.com/
- GENERIC_TIMEZONE=Asia/Bangkok
- N8N_ENCRYPTION_KEY=changeme-to-random-string
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
จากนั้นรัน docker compose up -d เพื่อเริ่มคอนเทนเนอร์ในโหมด background ตรวจสอบสถานะด้วย docker compose ps และดู log ด้วย docker compose logs -f n8n เมื่อคอนเทนเนอร์ทำงานปกติ n8n จะเปิดให้เข้าถึงผ่านพอร์ต 5678 ซึ่งขั้นตอนถัดไปคือการตั้งค่าโดเมนและ SSL เพื่อให้ webhook และการเข้าถึงหน้าเว็บปลอดภัย อย่าลืมเปิดใช้งาน Cloud Firewall ของ DigitalOcean ซึ่งไม่มีค่าใช้จ่ายเพิ่ม เพื่อจำกัดพอร์ตที่เปิดให้เฉพาะ 22, 80 และ 443 เท่านั้น
- แผนเริ่มต้นที่แนะนำคือ 2 GiB RAM/1 vCPU/50 GB SSD ราคา $12/เดือน สำหรับใช้งานจริง
- ติดตั้ง Docker ด้วยสคริปต์ทางการ curl -fsSL https://get.docker.com | sh
- กำหนด N8N_ENCRYPTION_KEY เองในไฟล์ docker-compose.yml ตั้งแต่แรก
ตั้งค่าโดเมนและ SSL
เมื่อ n8n รันอยู่บน Droplet แล้ว ขั้นตอนถัดไปคือชี้โดเมนย่อยมาที่เซิร์ฟเวอร์ โดยสร้าง DNS A record เช่น n8n.yourdomain.com ให้ชี้ไปยัง IP ของ Droplet จากนั้นติดตั้ง Nginx เป็น reverse proxy เพื่อรับ traffic จากพอร์ต 80/443 แล้วส่งต่อไปยัง n8n ที่รันอยู่บนพอร์ต 5678 ภายในเครื่อง ตัวอย่างการตั้งค่า Nginx site config
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://localhost:5678;
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;
}
}
หลังจากทดสอบว่า Nginx ทำงานถูกต้องแล้ว ให้ขอใบรับรอง SSL ฟรีจาก Let's Encrypt ด้วย Certbot โดยรันคำสั่ง certbot --nginx -d n8n.yourdomain.com ซึ่ง Certbot จะแก้ config ให้เปลี่ยนเป็น HTTPS อัตโนมัติและตั้ง redirect จาก HTTP ไป HTTPS ให้ด้วย ใบรับรองจะหมดอายุทุก 90 วัน จึงควรตั้ง cron job หรือ systemd timer ให้ต่ออายุอัตโนมัติ ซึ่ง Certbot จะติดตั้ง timer ให้อัตโนมัติอยู่แล้วในเวอร์ชันปัจจุบัน ตรวจสอบได้ด้วย certbot renew --dry-run
จุดที่มักพลาดคือค่า environment variable ในไฟล์ docker-compose.yml ต้องตรงกับโดเมนที่ใช้จริงเสมอ โดยเฉพาะ N8N_HOST, N8N_PROTOCOL=https และ WEBHOOK_URL ถ้าค่าทั้งสามนี้ไม่สอดคล้องกับโดเมนและ SSL ที่ตั้งไว้ webhook node จะสร้าง URL ผิดและ trigger จากภายนอกจะไม่ทำงาน หลังแก้ค่าใน docker-compose.yml แล้วต้องรัน docker compose up -d ซ้ำเพื่อให้ค่าใหม่มีผล นอกจากนี้ทาง DigitalOcean มี Cloud Firewall และ VPC private networking ให้ใช้ฟรีทั้งคู่ ซึ่งช่วยเสริมความปลอดภัยระดับเครือข่ายได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม
- สร้าง DNS A record ชี้โดเมนย่อยไปยัง IP ของ Droplet ก่อนตั้งค่า SSL
- ใช้ Nginx เป็น reverse proxy ส่ง traffic จากพอร์ต 443 ไปยัง n8n พอร์ต 5678
- ขอใบรับรองฟรีด้วย certbot --nginx -d n8n.yourdomain.com และตรวจ renew ด้วย certbot renew --dry-run
ตัวอย่าง Workflow อัตโนมัติเบื้องต้น
เมื่อระบบพร้อมใช้งานแล้ว ตัวอย่างที่เหมาะสำหรับผู้เริ่มต้นคือ workflow รับข้อมูลจากฟอร์มแล้วส่งแจ้งเตือนอัตโนมัติ โครงสร้างพื้นฐานประกอบด้วย node หลักสามส่วนคือ trigger, logic และ action เริ่มจากเพิ่ม node ประเภท Webhook ซึ่งจะสร้าง URL เฉพาะให้ระบบภายนอก เช่นฟอร์มบนเว็บไซต์หรือระบบอื่นส่งข้อมูลมาที่ n8n ได้ทันทีที่มีการ submit
ขั้นต่อไปเพิ่ม node ประเภท IF เพื่อกำหนดเงื่อนไข เช่นตรวจสอบว่าข้อมูลที่ส่งเข้ามามีฟิลด์ email ครบถ้วนหรือไม่ ถ้าเงื่อนไขเป็นจริงให้ต่อด้วย node HTTP Request เพื่อยิง API ไปยังบริการภายนอก เช่นส่งข้อความแจ้งเตือนผ่าน Line Notify หรือ Telegram Bot API หรือจะใช้ node สำเร็จรูปสำหรับ Google Sheets เพื่อบันทึกข้อมูลลงตารางอัตโนมัติก็ได้เช่นกัน ระหว่างทางสามารถแทรก node Set เพื่อจัดรูปแบบข้อมูลก่อนส่งต่อ เช่นรวมชื่อ-นามสกุลเป็นข้อความเดียว หรือแปลงรูปแบบวันที่ให้ตรงกับที่ปลายทางต้องการ
อีกตัวอย่างที่ใช้บ่อยคือ workflow แบบ schedule trigger สำหรับงานที่ต้องรันตามเวลา เช่นดึงข้อมูลจาก API ทุกเช้าแล้วสรุปส่งเข้า Slack หรือ Email โดยใช้ node Schedule Trigger กำหนด cron expression เอง เช่นรันทุกวันเวลา 08:00 ตามเวลาไทย ซึ่งต้องตั้งค่า GENERIC_TIMEZONE=Asia/Bangkok ในไฟล์ docker-compose.yml ให้ตรงกันด้วย ไม่เช่นนั้น schedule จะรันผิดเวลาไปจากที่ตั้งใจ เมื่อสร้าง workflow เสร็จแล้วสามารถกด Activate เพื่อให้ทำงานอัตโนมัติในพื้นหลังได้ทันทีโดยไม่ต้องเปิดหน้าจอ n8n ค้างไว้
- Webhook node สร้าง URL รับข้อมูลจากภายนอกแบบ real-time
- IF node ใช้กำหนดเงื่อนไขก่อนส่งต่อไปยัง action
- HTTP Request node ใช้ยิง API ไปยัง Line Notify, Telegram หรือบริการอื่น
Backup ข้อมูล Workflow
ข้อมูล workflow, credential และประวัติการ execute ของ n8n จะถูกเก็บไว้ในโฟลเดอร์ /home/node/.n8n ภายในคอนเทนเนอร์ ซึ่งตาม docker-compose.yml ตัวอย่างข้างต้นได้ mount เป็น volume ชื่อ n8n_data ไว้แล้ว หากใช้ SQLite ซึ่งเป็นค่าเริ่มต้น ไฟล์ฐานข้อมูลทั้งหมดจะอยู่ใน volume เดียวกันนี้ ทำให้การสำรองข้อมูลทำได้หลายวิธีตามระดับความสำคัญของงาน
วิธีแรกและง่ายที่สุดคือให้ DigitalOcean สำรอง Droplet ทั้งเครื่องด้วย Snapshot ซึ่งคิดค่าใช้จ่าย $0.06 ต่อ GiB ต่อเดือน เหมาะสำหรับการกู้คืนทั้งระบบในกรณีเซิร์ฟเวอร์มีปัญหา แต่ไม่เหมาะกับการกู้คืนเฉพาะ workflow เดียว วิธีที่สองคือแยกเก็บข้อมูลสำคัญไว้ใน DigitalOcean Volumes ต่างหากจากดิสก์หลักของ Droplet ซึ่งคิดราคา $0.10 ต่อ GiB ต่อเดือน แล้วตั้ง cron job รัน rsync หรือ tar สำรองโฟลเดอร์ .n8n ไปเก็บใน volume นั้นเป็นประจำทุกวัน
วิธีที่สามซึ่งแนะนำสำหรับ production คือใช้คำสั่งของ n8n CLI เอง export workflow ทั้งหมดออกมาเป็นไฟล์ JSON ด้วยคำสั่ง docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/backup.json และ export credential ด้วย n8n export:credentials --all --output=/home/node/.n8n/credentials.json ไฟล์ JSON เหล่านี้นำไป import กลับได้ด้วยคำสั่ง n8n import:workflow --input=backup.json ทำให้ย้าย workflow ไปยังเซิร์ฟเวอร์ใหม่ได้ง่าย และควรอัพโหลดไฟล์ backup เหล่านี้ไปเก็บนอกเซิร์ฟเวอร์ด้วย เช่นใน DigitalOcean Spaces ซึ่งเป็น object storage แบบ S3-compatible เริ่มต้นที่ $5 ต่อเดือน เพื่อให้มั่นใจว่าแม้ Droplet หลักมีปัญหาข้อมูล workflow ก็ยังกู้คืนได้
- ข้อมูล workflow อยู่ใน /home/node/.n8n ต้อง mount volume ไว้เสมอ
- Droplet Snapshot ราคา $0.06/GiB/เดือน เหมาะสำรองทั้งระบบ
- DigitalOcean Volumes ราคา $0.10/GiB/เดือน เหมาะแยกเก็บ backup เฉพาะข้อมูลสำคัญ
เมื่อไหร่ควรใช้ฟีเจอร์นี้ (Use Case จริง)
การ self-host n8n บน DigitalOcean เหมาะกับหลายสถานการณ์ในทางปฏิบัติ กรณีแรกคือทีมที่มีปริมาณ workflow execution สูงต่อเดือน เพราะ SaaS อย่าง Zapier คิดค่าบริการตามจำนวน task ทำให้ค่าใช้จ่ายเพิ่มขึ้นตามการใช้งาน ขณะที่ n8n self-host มีค่าใช้จ่ายคงที่คือค่า Droplet รายเดือนไม่ว่าจะรันกี่ครั้งก็ตาม กรณีที่สองคือธุรกิจที่มีข้อกำหนดเรื่องความเป็นส่วนตัวของข้อมูล เช่นต้องเก็บข้อมูลลูกค้าไว้ในเซิร์ฟเวอร์ที่ควบคุมเอง เพื่อให้สอดคล้องกับนโยบายภายในหรือข้อกำหนดด้าน data residency กรณีที่สามคือทีมพัฒนาที่ต้องการเชื่อมต่อระบบภายในองค์กรที่ไม่มี public API หรือ integration สำเร็จรูป ซึ่ง n8n เปิดให้เขียน custom node หรือใช้ node Function เขียน JavaScript เชื่อมต่อเองได้อย่างอิสระ นอกจากนี้ทีมที่มีระบบอื่นรันอยู่บน DigitalOcean อยู่แล้ว เช่น Managed Database หรือ Droplet อื่น ๆ ก็ได้ประโยชน์จากการเชื่อมต่อผ่าน VPC private network ซึ่งเร็วกว่าและปลอดภัยกว่าการยิงผ่านอินเทอร์เน็ตสาธารณะ และไม่มีค่าใช้จ่ายเพิ่มเติม อย่างไรก็ตามการ self-host ไม่เหมาะกับทุกกรณี หากทีมไม่มีเวลาดูแลระบบ ไม่มีคนดูแล Linux/Docker หรือไม่ต้องการรับความเสี่ยงเรื่อง uptime และ security patch เอง การใช้ n8n Cloud แบบ SaaS หรือ deploy ผ่าน DigitalOcean App Platform ซึ่งจัดการ infrastructure ให้บางส่วน เช่นแผน Shared 1 vCPU/1 GiB RAM/100 GB transfer ราคา $10 ต่อเดือน จะเหมาะกว่า เพราะลดภาระการดูแลเซิร์ฟเวอร์เองลงได้มาก แม้จะยืดหยุ่นน้อยกว่าการ deploy ด้วย Docker Compose บน Droplet โดยตรงก็ตาม
- เหมาะกับทีมที่มี workflow execution ปริมาณสูงจนค่า SaaS แพงกว่า self-host
- เหมาะกับงานที่มีข้อกำหนดด้าน data residency ต้องควบคุมเซิร์ฟเวอร์เอง
- เหมาะกับทีมที่ต้องเชื่อมต่อระบบภายในผ่าน VPC private network ฟรี
ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
จุดที่ผู้ใช้มักถามมาคือ ปัญหาที่พบบ่อยที่สุดอันดับแรกคือ webhook จากภายนอกยิงเข้ามาไม่ทำงาน สาเหตุมักมาจากค่า WEBHOOK_URL และ N8N_HOST ในไฟล์ docker-compose.yml ไม่ตรงกับโดเมนจริงที่ตั้ง SSL ไว้ วิธีแก้คือตรวจสอบให้ค่าทั้งสองตรงกับโดเมนที่ระบบภายนอกใช้เรียกจริง แล้วรัน docker compose up -d ใหม่เพื่อให้ค่ามีผล
ปัญหาที่สองคือคอนเทนเนอร์ค้างหรือรีสตาร์ตตัวเองบ่อย มักเกิดจากใช้ Droplet ขนาดเล็กเกินไป เช่นแผน 1 GiB RAM ซึ่งไม่พอเมื่อมี workflow ทำงานพร้อมกันหลายตัวหรือประมวลผลข้อมูลขนาดใหญ่ วิธีแก้คืออัพเกรดไปแผน 2 GiB RAM ขึ้นไป หรือย้ายไป PostgreSQL แทน SQLite เพื่อลด I/O บนดิสก์
ปัญหาที่สามคือข้อมูล workflow หายหลังจาก restart คอนเทนเนอร์ สาเหตุมาจากลืม mount volume ให้ path /home/node/.n8n ทำให้ข้อมูลอยู่ใน container filesystem ชั่วคราวเท่านั้น วิธีแก้คือตรวจสอบว่า docker-compose.yml มีการ mount volume ถูกต้องเสมอ ปัญหาที่สี่คือ schedule trigger รันผิดเวลาซึ่งมักเกิดจากไม่ได้ตั้งค่า GENERIC_TIMEZONE ทำให้ n8n ใช้ timezone default เป็น UTC แทนเวลาประเทศไทย
ปัญหาที่ห้าที่ร้ายแรงกว่าคือลืมกำหนด N8N_ENCRYPTION_KEY เองตั้งแต่แรก ทำให้ n8n สุ่ม key ให้อัตโนมัติ ถ้าคอนเทนเนอร์ถูกสร้างใหม่โดยไม่มี volume เดิม หรือย้ายไปเซิร์ฟเวอร์อื่นโดยไม่ได้ backup key นี้ credential ที่เข้ารหัสไว้ทั้งหมดจะถอดรหัสไม่ได้ต้องตั้งค่า credential ใหม่ทั้งหมด วิธีป้องกันคือกำหนด encryption key เองเป็นค่าคงที่ตั้งแต่แรกและเก็บสำเนาไว้อย่างปลอดภัยแยกจากเซิร์ฟเวอร์
- webhook ไม่ทำงาน: ตรวจสอบ WEBHOOK_URL/N8N_HOST ให้ตรงโดเมนจริงแล้ว restart คอนเทนเนอร์
- คอนเทนเนอร์ค้าง/รีสตาร์ตบ่อย: Droplet เล็กเกินไป ให้อัพเกรดเป็น 2 GiB RAM ขึ้นไป
- ข้อมูลหายหลัง restart: ลืม mount volume ที่ /home/node/.n8n
- schedule รันผิดเวลา: ต้องตั้ง GENERIC_TIMEZONE=Asia/Bangkok
- ลืมกำหนด N8N_ENCRYPTION_KEY เอง ทำให้ credential ถอดรหัสไม่ได้เมื่อย้ายเซิร์ฟเวอร์
แนวทางปฏิบัติที่ดีที่สุด (Best Practices)
เพื่อให้การ self-host n8n มีความเสถียรและปลอดภัยในระยะยาว มีแนวทางปฏิบัติที่ควรทำตั้งแต่วันแรก เริ่มจากกำหนด N8N_ENCRYPTION_KEY เป็นค่าคงที่แบบสุ่มที่ปลอดภัย แล้วเก็บสำเนาไว้ในที่ปลอดภัยแยกจากเซิร์ฟเวอร์ เพื่อป้องกันปัญหา credential ถอดรหัสไม่ได้เมื่อย้ายหรือกู้คืนระบบ
สำหรับ production ที่มี workflow จำนวนมากหรือ execution ถี่ ควรเปลี่ยนจาก SQLite เริ่มต้นไปใช้ PostgreSQL แทน เพื่อรองรับการอ่าน-เขียนพร้อมกันได้ดีกว่าและลดความเสี่ยงไฟล์ฐานข้อมูลเสียหาย โดยสามารถรัน PostgreSQL เป็นอีก service หนึ่งในไฟล์ docker-compose.yml เดียวกัน หรือใช้ DigitalOcean Managed Database ก็ได้เพื่อลดภาระดูแลฐานข้อมูลเอง
ด้านความปลอดภัย ควรเปิดใช้ระบบ user management ของ n8n เพื่อกำหนดสิทธิ์การเข้าถึงเป็นรายบุคคลแทนการใช้ instance เดียวร่วมกันแบบไม่มี authentication และควรอัพเดตเวอร์ชัน image ของ n8n อย่างสม่ำเสมอด้วยคำสั่ง docker compose pull && docker compose up -d เพื่อรับ security patch ล่าสุด ด้านเครือข่ายควรใช้ Cloud Firewall ของ DigitalOcean ซึ่งฟรี จำกัดพอร์ตที่เปิดเฉพาะ 22, 80 และ 443 และหากมีบริการอื่นเชื่อมต่อ เช่นฐานข้อมูลหรือ Droplet อื่น ควรใช้ VPC private network ซึ่งฟรีเช่นกันแทนการเปิดพอร์ตออกสู่อินเทอร์เน็ตสาธารณะ
สุดท้ายควรตั้ง Monitoring ฟรีของ DigitalOcean เพื่อดู CPU และ memory usage ของ Droplet และตั้ง Uptime Check ฟรี 1 รายการต่อบัญชีไว้เฝ้าดูว่า n8n ยังตอบสนองอยู่หรือไม่ หากวางแผนย้าย Droplet ในอนาคตหรือทำ failover ควรพิจารณาใช้ Reserved IP ซึ่งฟรีตราบใดที่ผูกกับ Droplet ที่ใช้งานอยู่ เพื่อให้ DNS และ webhook URL ไม่ต้องเปลี่ยนแม้ย้ายเครื่อง
- ตั้ง N8N_ENCRYPTION_KEY เป็นค่าคงที่ตั้งแต่แรกและสำรองแยกจากเซิร์ฟเวอร์
- เปลี่ยนจาก SQLite เป็น PostgreSQL สำหรับ production ที่มี workflow จำนวนมาก
- เปิด user management ของ n8n และอัพเดต image ด้วย docker compose pull เป็นประจำ