เกี่ยวกับ n8n
n8n เป็นแพลตฟอร์มอัตโนมัติแบบ Low-code ที่ช่วยให้คุณเชื่อมต่อระบบต่างๆ เข้าด้วยกันโดยไม่ต้องเขียนโค้ดมากนัก คุณสามารถสร้าง Workflow ที่เชื่อมต่อแอพพลิเคชั่นต่างๆ เช่น Google Sheets, Gmail, Slack, หรือแม้แต่ APIs ภายนอกได้อย่างง่ายดาย
ข้อกำหนดเบื้องต้น
- Docker Engine และ Docker Compose ติดตั้งบนเครื่องของคุณ
- สำหรับ Windows และ macOS: ดาวน์โหลด Docker Desktop
- สำหรับ Linux: คำแนะนำการติดตั้ง Docker Engine
- หลังจากติดตั้งสามารถตรวจสอบเวอร์ชันการใช้งานด้วยคำสั่ง
docker --version && docker compose version
- สิทธิ์ในการรัน Docker commands (root หรือ docker group)
- พอร์ท 5678 ว่างสำหรับการเข้าถึง n8n
- ความรู้พื้นฐานเกี่ยวกับการใช้ Terminal/Command Line
ขั้นตอนการติดตั้ง
1. สร้างไฟล์ docker-compose.yml
สร้างโฟลเดอร์สำหรับการติดตั้ง n8n และสร้างไฟล์ docker-compose.yml ด้วยเนื้อหาต่อไปนี้:
services: n8n: image: docker.n8n.io/n8nio/n8n environment: - N8N_HOST=http://localhost:5678 - N8N_EDITOR_BASE_URL=http://localhost:5678 - WEBHOOK_URL=http://localhost:5678 - GENERIC_TIMEZONE=Asia/Bangkok - TZ=Asia/Bangkok - DB_TYPE=postgresdb - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_HOST=postgresql - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_USER=n8n_user - DB_POSTGRESDB_SCHEMA=public - DB_POSTGRESDB_PASSWORD=your_secure_password_here volumes: - 'n8n-data:/home/node/.n8n' depends_on: postgresql: condition: service_healthy healthcheck: test: - CMD-SHELL - 'wget -qO- http://127.0.0.1:5678/' interval: 5s timeout: 20s retries: 10 ports: - "5678:5678" postgresql: image: 'postgres:16-alpine' volumes: - 'postgresql-data:/var/lib/postgresql/data' environment: - POSTGRES_USER=n8n_user - POSTGRES_PASSWORD=your_secure_password_here - POSTGRES_DB=n8n healthcheck: test: - CMD-SHELL - 'pg_isready -U n8n_user -d n8n' interval: 5s timeout: 20s retries: 10 volumes: n8n-data: postgresql-data:
2. ปรับแต่งการตั้งค่า
แก้ไขการตั้งค่าในไฟล์ docker-compose.yml ตามความต้องการของคุณ:
- URL สำหรับการเข้าถึง n8n ต้องกำหนดให้ตรงกันทั้ง 3 ตัวแปร:
N8N_HOST
,N8N_EDITOR_BASE_URL
, และWEBHOOK_URL
- สำหรับการใช้งานในเครื่องโลคอล ตั้งค่าเป็น
http://localhost:5678
- สำหรับเซิร์ฟเวอร์ ตั้งค่าเป็นโดเมนของคุณ เช่น
https://n8n.yourdomain.com
- สำหรับการใช้งานในเครื่องโลคอล ตั้งค่าเป็น
ข้อควรรู้: หากต้องการกำหนดค่าเพียงครั้งเดียว คุณสามารถสร้างไฟล์
.env
และอ้างอิงค่าตัวแปรได้ แต่การกำหนดค่าโดยตรงในไฟล์ docker-compose.yml ทำให้ง่ายต่อการเริ่มต้นใช้งาน
DB_POSTGRESDB_USER
: ชื่อผู้ใช้สำหรับฐานข้อมูล PostgreSQL (เช่นn8n_user
)DB_POSTGRESDB_PASSWORD
และPOSTGRES_PASSWORD
: รหัสผ่านที่ปลอดภัยสำหรับฐานข้อมูล (ต้องเป็นรหัสผ่านเดียวกัน)- สามารถใช้เว็บ https://www.lastpass.com/features/password-generator ในการสร้าง Password ได้ครับ
3. เริ่มต้นใช้งาน n8n
เปิด Terminal หรือ Command Prompt, นำทางไปยังโฟลเดอร์ที่มีไฟล์ docker-compose.yml และรันคำสั่ง:
docker-compose up -d
คำสั่งนี้จะดาวน์โหลด Docker images ที่จำเป็น และเริ่มต้นบริการในโหมด detached (ทำงานเบื้องหลัง)
4. ตรวจสอบสถานะการทำงาน
ตรวจสอบว่า containers ทั้งหมดกำลังทำงานด้วยคำสั่ง:
docker-compose ps
คุณควรเห็น containers ของ n8n และ PostgreSQL ในสถานะ “Up”
5. เข้าถึง n8n
เปิดเบราว์เซอร์ของคุณและเข้าไปที่:
http://localhost:5678
หรือหากคุณตั้งค่าโดเมนของคุณ ให้ใช้ URL นั้นแทน
การจัดการ n8n
การหยุดการทำงาน
docker-compose stop
การเริ่มการทำงานอีกครั้ง
docker-compose start
การหยุดและลบ containers (ข้อมูลยังคงอยู่)
docker-compose down
การอัปเดต n8n เป็นเวอร์ชันล่าสุด
- หยุดและลบ containers ก่อน
docker-compose down
- Download image ใหม่ที่จำเป็น
docker-compose pull
- ติดตั้ง Container ที่จำเป็น
docker-compose up -d
การดูล็อก
docker-compose logs -f n8n
การสำรองข้อมูล
ข้อมูลของ n8n ถูกเก็บไว้ใน Docker volumes ที่ระบุไว้ในไฟล์ docker-compose (n8n-data
และ postgresql-data
) ซึ่งจะยังคงอยู่แม้ว่าคุณจะลบ containers
สำรองฐานข้อมูล PostgreSQL:
docker-compose exec postgresql pg_dump -U n8n_user n8n > n8n_backup_$(date +%Y%m%d).sql
การแก้ไขปัญหาเบื้องต้น
n8n ไม่สามารถเชื่อมต่อกับฐานข้อมูล
ตรวจสอบล็อกของ n8n:
docker-compose logs n8n
ตรวจสอบว่า PostgreSQL กำลังทำงานอยู่:
docker-compose ps postgresql
ปัญหาการเข้าถึง n8n
- ตรวจสอบว่าพอร์ท 5678 ไม่ถูกบล็อกโดยไฟร์วอลล์
- ตรวจสอบว่า Docker containers ทำงานอยู่ (
docker-compose ps
) - ตรวจสอบล็อกของ n8n เพื่อดูข้อผิดพลาด (
docker-compose logs n8n
)
การใช้งานขั้นสูง
การตั้งค่า HTTPS
สำหรับการใช้งานในโปรดักชัน คุณควรตั้งค่า HTTPS ซึ่งสามารถทำได้โดยใช้ reverse proxy เช่น Nginx หรือ Traefik
การเปิดการเชื่อมต่อจากภายนอก
สามารถใช้ ngrok เพื่อเปิดให้ Service จากภายนอกสามารถเข้าถึง n8n ที่เครื่องของเราได้ https://ngrok.com/
การจำกัดทรัพยากร
คุณสามารถจำกัดการใช้ทรัพยากรของ containers โดยเพิ่มการตั้งค่าเช่น:
services: n8n: # การตั้งค่าอื่นๆ... deploy: resources: limits: cpus: '1' memory: 1G postgresql: # การตั้งค่าอื่นๆ... deploy: resources: limits: cpus: '0.5' memory: 512M
เริ่มต้นใช้งาน n8n
หลังจากติดตั้งเสร็จแล้ว คุณสามารถเริ่มสร้าง Workflows ได้ใน n8n UI. คลิกที่ปุ่ม “Create new workflow” และเริ่มเพิ่ม Nodes เพื่อสร้างระบบอัตโนมัติของคุณ