คู่มือการติดตั้ง n8n ด้วย Docker Compose

เกี่ยวกับ n8n

n8n เป็นแพลตฟอร์มอัตโนมัติแบบ Low-code ที่ช่วยให้คุณเชื่อมต่อระบบต่างๆ เข้าด้วยกันโดยไม่ต้องเขียนโค้ดมากนัก คุณสามารถสร้าง Workflow ที่เชื่อมต่อแอพพลิเคชั่นต่างๆ เช่น Google Sheets, Gmail, Slack, หรือแม้แต่ APIs ภายนอกได้อย่างง่ายดาย

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

  • Docker Engine และ Docker Compose ติดตั้งบนเครื่องของคุณ
  • สิทธิ์ในการรัน 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_HOSTN8N_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 เป็นเวอร์ชันล่าสุด

  1. หยุดและลบ containers ก่อน
docker-compose down
  1. Download image ใหม่ที่จำเป็น
docker-compose pull
  1. ติดตั้ง 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 เพื่อสร้างระบบอัตโนมัติของคุณ

WORKFLOW NEXT STEP
เปลี่ยนบทความนี้ให้เป็น workflow ที่ใช้งานได้จริง

ถ้าคุณกำลังอ่านมาถึงขั้นลงมือทำ การเริ่มจาก n8n Automation Starter คือทางที่สั้นที่สุดในการเปลี่ยนความเข้าใจเรื่อง AI Automation ให้กลายเป็นระบบที่ใช้งานได้ในทีมจริง

Short Link: https://data-espresso.com/10yr

Leave a Comment

สอบถามข้อมูล
Scroll to Top