🔗
VPS

งานซ้ำซ้อนบน web ใช้เวลาของคุณเหลือเกิน — ตั้งแต่ปล่อยข้อความ social media ไปถึงการดึงข้อมูลจากหลายเว็บไซต์ หากคุณใช้บริการ Zapier หรือ Make.com ราคาจะพุ่งขึ้นอย่างรวดเร็วเมื่อ workflow เพิ่มขึ้น n8n เป็นโซลูชันโอเพนซอร์สที่ให้คุณ host เอง — หมายความว่าคุณควบคุมข้อมูล ประหยัดตัวอักษร และสามารถ automate ได้ไม่จำกัด บทความนี้จะสอนคุณวิธีติดตั้ง n8n บน VPS ของคุณโดยใช้ Docker หรือ Node.js พร้อมตั้งค่าให้ใช้งานได้อย่างปลอดภัยในโปรดักชัน

สรุปสั้น: n8n คือแพลตฟอร์มการ automate workflow โอเพนซอร์ส สามารถ self-host ได้บน VPS เพื่อประหยัดค่าใช้จ่ายและควบคุมข้อมูล วิธีที่เร็วที่สุดคือใช้ Docker โดยตั้ง environment variables (N8N_HOST, WEBHOOK_URL) ให้ถูกต้อง ตั้ง Nginx reverse proxy และ HTTPS สำหรับการทำงานอย่างปลอดภัย

n8n คืออะไร และทำไมต้อง Self-Host

n8n เป็นเครื่องมือ workflow automation แบบโอเพนซอร์สที่มีความคล้ายกับ Zapier และ Make.com — แต่ด้วยความแตกต่างที่สำคัญ: คุณสามารถ host มันเอง คำว่า "self-hosted" หมายความว่า n8n ทำงานบน server ของคุณเอง แทนที่จะพึ่งพาบริการ SaaS จากบุคคลที่สาม

ประโยชน์หลักของการ self-host n8n:

กรณีการใช้งาน (Use Cases) ที่ Workflow Automation มีประโยชน์

ก่อนติดตั้ง มาดูตัวอย่างสถานการณ์จริงว่า n8n สามารถช่วยอะไรให้คุณบ้าง:

ข้อกำหนดเบื้องต้น (Prerequisites)

เพื่อติดตั้ง n8n บน VPS คุณจะต้องมี:

วิธีติดตั้ง n8n โดยใช้ Docker (วิธีแนะนำ)

Docker ทำให้การติดตั้ง n8n ง่ายขึ้นมากเพราะไม่ต้องกังวลเกี่ยวกับการ dependencies หรือเวอร์ชันของ Node.js

ขั้นตอนที่ 1: ติดตั้ง Docker และ Docker Compose

หากคุณยังไม่ติดตั้ง Docker ให้รันคำสั่งต่อไปนี้:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

ตรวจสอบว่า Docker ติดตั้งสำเร็จ:

docker --version
docker run hello-world

ขั้นตอนที่ 2: สร้าง Directory และ Named Volume

สร้าง directory เพื่อจัดเก็บไฟล์ configuration และ data:

mkdir -p ~/n8n
cd ~/n8n
docker volume create n8n_data

ขั้นตอนที่ 3: สร้างไฟล์ docker-compose.yml

สร้างไฟล์ docker-compose.yml ด้วย text editor:

nano docker-compose.yml

นำเนื้อหาต่อไปนี้วางเข้าไป:

version: '3.8'
services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=automation.yourcompany.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://automation.yourcompany.com/
      - N8N_USER_MANAGEMENT_DISABLED=false
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped

volumes:
  n8n_data:

ข้อควรระวัง: ค่า N8N_HOST และ WEBHOOK_URL เป็นจุดผิดพลาดทั่วไปของผู้ใช้งาน หากตั้งค่าไม่ถูกต้อง webhook จะไม่ทำงาน และ workflow จะไม่ได้รับข้อมูลจากแหล่งอื่น ต้องแน่ใจว่าเป็นชื่อโดเมนเต็มพร้อม HTTPS protocol

แก้ไขค่า ต่อไปนี้ตามสภาวะของคุณ:

ขั้นตอนที่ 4: เริ่ม n8n ด้วย Docker

docker-compose up -d

ตรวจสอบว่า container ทำงาน:

docker ps
docker logs n8n

เมื่อเห็นข้อความว่า "Server started successfully" แสดงว่า n8n เริ่มต้นสำเร็จแล้ว แต่ยังไม่สามารถเข้าถึงได้โดยตรงจนกว่าจะตั้ง Nginx reverse proxy

ตั้ง Nginx Reverse Proxy และ HTTPS

n8n ฟังเฉพาะ localhost:5678 ดังนั้นเราต้องใช้ Nginx เป็น reverse proxy เพื่อนำ traffic จากโดเมนมาถึง n8n และตั้ง SSL/HTTPS ด้วย

ขั้นตอนที่ 1: ติดตั้ง Nginx และ Certbot

sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx

ขั้นตอนที่ 2: สร้างไฟล์ config Nginx

sudo nano /etc/nginx/sites-available/n8n

นำเนื้อหาต่อไปนี้วางเข้าไป:

server {
    listen 80;
    server_name automation.yourcompany.com;

    location / {
        proxy_pass http://localhost: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-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
}

แก้ไข automation.yourcompany.com เป็นโดเมนจริงของคุณ

ขั้นตอนที่ 3: เปิดใช้ไฟล์ config และทดสอบ

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

ขั้นตอนที่ 4: ติดตั้ง SSL Certificate โดยใช้ Let's Encrypt

sudo certbot --nginx -d automation.yourcompany.com

ตามข้อตกลงและให้อนุญาต certbot ให้แก้ไขไฟล์ Nginx โดยอัตโนมัติ หลังจากเสร็จสิ้น Nginx จะ redirect traffic HTTP ไปยัง HTTPS โดยอัตโนมัติ

ตั้ง User Management และ Authentication

เมื่อ n8n ติดตั้งเสร็จและสามารถเข้าถึงได้ผ่าน HTTPS คำสำคัญที่จะต้องตั้งค่า authentication เพื่อไม่ให้ใครสามารถเข้าถึง n8n ได้

n8n มี user management ในตัว — เมื่อเข้าไปครั้งแรก คุณจะถูกขอให้ตั้งค่า admin user name และ password เซฟข้อมูลนี้ไว้ให้ดีเพราะจะใช้สำหรับเข้า dashboard ทุกครั้ง

เคล็ดลับ: หากต้องการความปลอดภัยเพิ่มเติม ให้ติดตั้ง two-factor authentication (2FA) ใน settings ของ n8n หรือใช้ Nginx basic auth โดยสร้างไฟล์ .htpasswd และเพิ่มเข้าไปใน location block ของ Nginx config

ทำให้ Data อยู่ได้นาน: Persistence และ Backup

ข้อมูล workflow ทั้งหมดถูกเก็บใน ~/.n8n directory บน container ดังนั้นหากลบ container ข้อมูลก็หายไป โชคดีที่เราได้ mount named volume ไว้แล้ว แต่ยังต้องตั้ง backup เพิ่มเติม

ตรวจสอบว่า Volume ทำงาน

docker volume inspect n8n_data

ตั้ง Backup Schedule

สร้าง cron job เพื่อ backup ~/.n8n data ทุกวัน:

crontab -e

เพิ่มบรรทัด:

0 2 * * * tar -czf ~/backups/n8n-$(date +\%Y\%m\%d).tar.gz ~/n8n/

คำสั่งนี้จะสร้าง backup ของไดเรคทอรี n8n ทุกวันเวลา 2 โมงเช้า

ข้อพิจารณาด้าน Production

หากคุณวางแผนใช้ n8n ในสภาพแวดล้อม production (งานจริง) มีข้อพิจารณาเพิ่มเติมดังนี้:

บทสรุป

ตอนนี้คุณมี n8n ที่ใช้งานได้เต็มที่บน VPS ของคุณแล้ว สามารถสร้าง workflow ให้ automate งานซ้ำซ้อนได้โดยไม่ต้องเสียเงินตามจำนวน workflow ลงทุนแล้วในการ VPS ก็สามารถรัน workflow ได้ไม่จำกัด

ขั้นตอนต่อไป: เข้า n8n dashboard ที่ https://automation.yourcompany.com แล้งเริ่มสร้าง workflow แรกของคุณ ลองสร้าง workflow ง่ายๆ เช่น เมื่อได้รับ HTTP request ก็ส่งข้อความไป Slack เพื่อทำความเข้าใจวิธีการทำงาน หลังจากนั้นคุณสามารถสร้างการ automate ที่มีความซับซ้อนมากขึ้นได้

คำถามที่พบบ่อย (FAQ)

n8n ต่างจาก Zapier อย่างไรบ้าง?

Zapier เป็นบริการ SaaS แล้วคุณจ่ายเงินตามจำนวน workflow run ส่วน n8n เป็น open-source ที่ self-host บน server ของคุณเอง คุณลงทุนแล้วแล้ว workflow ทำงานได้ไม่จำกัด แถมข้อมูลทั้งหมดอยู่บน server ของคุณ

ถ้าไม่มี Docker จะติดตั้งยังไง?

สามารถติดตั้ง Node.js 18+ และรัน npm install -g n8n หลังจากนั้นรัน n8n เพื่อเริ่มต้น แต่ Docker นั้นปลอดภัยและง่ายกว่า เพราะ dependencies อยู่ในแยกกัน

ถ้า webhook ไม่ทำงาน ต้องทำอะไร?

มักเกิดจากค่า N8N_HOST หรือ WEBHOOK_URL ตั้งไม่ถูกต้อง ตรวจสอบว่าตั้งค่าเป็นชื่อโดเมนเต็ม + HTTPS และไม่มี whitespace ด้วย ตรวจสอบ Docker logs ด้วย docker logs n8n

n8n มีการจำกัดจำนวน workflow หรือ credential ไหม?

ไม่มีการจำกัด เพียงแต่ขึ้นอยู่กับ resource ของ VPS เช่น RAM/disk ถ้ามี workflow มากเกินไป VPS จะช้า และอาจต้องเพิ่ม resource หรือปรับปรุงเป็น VPS ที่มีพลังมากขึ้น

เริ่มต้นใช้งาน VPS AsiaGB วันนี้

VPS AsiaGB ใช้ SSD Storage ทุก Plan เลือก Datacenter ไทยหรือสิงคโปร์ได้ พร้อม Root Access เต็มรูปแบบ เริ่มต้น 500 บาท/เดือน (Linux) พร้อมทีมซัพพอร์ตภาษาไทย

ดูแพ็กเกจ VPS