อัปเดตล่าสุด 2026: Docker Compose v2

ติดตั้ง n8n ด้วย
Docker Compose

สร้าง Workflow Automation Platform ส่วนตัวได้ง่ายๆ ด้วย n8n และ Docker พร้อมฐานข้อมูล PostgreSQL ทำงานได้จริงใน 5 นาที

สถาปัตยกรรมระบบ (System Architecture)

Docker Compose Project n8n Automation Engine Workflow Nodes PostgreSQL Database Persistent Data User HTTP (Port 5678) Integrations API / Webhooks Connections 5678:5678 (HTTP)

สิ่งที่ต้องเตรียม (Prerequisites)

1

Docker & Docker Compose

ติดตั้ง Docker และ Docker Compose บนเครื่อง Server

docker --version && docker-compose version
2

Domain (ถ้าต้องการ)

โดเมนของคุณ เช่น n8n.yourdomain.com สำหรับเข้าใช้งาน

ถ้าใช้ Port 5678 เข้าผ่าน IP ได้เลย
1

สร้างไฟล์ docker-compose.yml

สร้างโฟลเดอร์สำหรับโปรเจกต์ และสร้างไฟล์ docker-compose.yml เพื่อกำหนดการทำงานของ containers

Terminal - Create Project Directory
$ mkdir n8n-docker $ cd n8n-docker $ touch docker-compose.yml ✓ Project directory created ✓ Empty docker-compose.yml created

วางโค้ดนี้ในไฟล์ docker-compose.yml:

docker-compose.yml
version: '3.8' services: # n8n Service n8n: image: n8nio/n8n:latest container_name: n8n restart: always ports: - 5678:5678 environment: - N8N_HOST=0.0.0.0 - N8N_PORT=5678 - N8N_PROTOCOL=http - NODE_ENV=production - WEBHOOK_URL=http://your-domain.com:5678/ - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=n8n - DB_POSTGRESDB_USER=n8n - DB_POSTGRESDB_PASSWORD=your_secure_password volumes: - n8n_data:/home/node/.n8n depends_on: - postgres networks: - n8n-network # PostgreSQL Database postgres: image: postgres:15 container_name: n8n-postgres restart: always environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=your_secure_password - POSTGRES_DB=n8n volumes: - postgres_data:/var/lib/postgresql/data networks: - n8n-network volumes: n8n_data: postgres_data: networks: n8n-network: driver: bridge
สำคัญ! อย่าลืมเปลี่ยน your_secure_password เป็นรหัสผ่านที่แข็งแรง และ WEBHOOK_URL เป็นโดเมนจริงของคุณ
2

อธิบายการตั้งค่าแต่ละส่วน

มาดูว่าแต่ละส่วนของ docker-compose.yml ทำงานอย่างไร

n8n Service

ports: 5678:5678

เปิด Port 5678 เข้าถึงจากภายนอก

DB_POSTGRESDB_*

เชื่อมต่อฐานข้อมูล PostgreSQL

volumes: n8n_data

เก็บข้อมูล workflows ถาวร

WEBHOOK_URL

URL สำหรับรับ Webhooks จากภายนอก

PostgreSQL

image: postgres:15

ใช้ PostgreSQL เวอร์ชัน 15

POSTGRES_PASSWORD

รหัสผ่านสำหรับฐานข้อมูล

volumes: postgres_data

เก็บข้อมูล Database ถาวร

networks

เชื่อมกับ n8n ใน network เดียวกัน

โครงสร้าง Docker Compose

services (2) n8n postgres WEBHOOK_URL POSTGRES_PASSWORD volumes (2) n8n_data postgres_data networks (1) n8n-network driver: bridge
3

รัน Containers ด้วย Docker Compose

เมื่อตั้งค่าเสร็จแล้ว ให้รันคำสั่ง Docker Compose เพื่อเริ่ม containers

เริ่มรัน containers

docker-compose up -d

* -d หมายถึง detached mode (ทำงานเบื้องหลัง)

ตรวจสอบสถานะ containers

docker-compose ps

ตรวจดูว่า containers ทำงานอยู่และ healthy หรือไม่

ดู logs (ถ้ามีปัญหา)

docker-compose logs -f

-f ติดตาม logs แบบ real-time

4

เข้าใช้งาน n8n

เมื่อ containers ทำงานเรียบร้อยแล้ว เข้าใช้งาน n8n ผ่าน Browser

เข้าถึง n8n

http://YOUR_SERVER_IP:5678
http://your-domain.com:5678
n8n - Workflow Editor

Create your first automation

NODES Webhook HTTP Request Set Send Email Webhook Trigger HTTP API Call Email Send

การตั้งค่าเพิ่มเติม

ใช้ SSL/HTTPS

ใช้ Nginx หรือ Traefik เป็น reverse proxy เพื่อเปิด SSL และใช้ port 443

Authentication

เพิ่ม Basic Auth หรือใช้ N8N_BASIC_AUTH หากต้องการรักษาความปลอดภัย

Auto Backup

สร้าง cron job หรือใช้ backup plugin เพื่อสำรองข้อมูล PostgreSQL ทุกวัน

Scale Up

ใช้ Docker Swarm หรือ Kubernetes เพื่อ scale หากมีการใช้งานขนาดใหญ่

แก้ปัญหาที่พบบ่อย (Troubleshooting)

Container ไม่ขึ้น

ตรวจสอบ logs ด้วย docker-compose logs n8n และดูว่ารหัสผ่านถูกต้องหรือไม่

ไม่สามารถเข้าผ่าน Browser ได้

ตรวจสอบ Firewall ว่าเปิด port 5678 หรือไม่ และตรวจสอบว่า containers ทำงานอยู่ด้วย docker-compose ps

Webhook ไม่ทำงาน

ตรวจสอบ WEBHOOK_URL ว่าตรงกับโดเมนจริงของคุณ และมี / ต่อท้ายหรือไม่

ผู้เขียน: praewa_ai_assistant