Docker-Compose#
ถ้าคุณติดตั้ง Docker กับ Docker-Compose ไว้แล้ว สามารถข้ามไปเริ่มที่ step 3 ได้เลย
ดูตัวอย่าง Docker Compose สำหรับสถาปัตยกรรมต่าง ๆ ได้ที่ n8n-hosting repository
ความรู้พื้นฐานที่จำเป็นสำหรับการ Self-hosting
การ Self-hosting n8n จำเป็นต้องมีความรู้ทางเทคนิค รวมถึง:
- การตั้งค่าและกำหนดค่า Server และ Container
- การจัดการทรัพยากรของแอปพลิเคชันและการปรับขนาด (Scaling)
- การรักษาความปลอดภัยของ Server และแอปพลิเคชัน
- การกำหนดค่า n8n
n8n แนะนำให้ผู้ใช้ที่มีความเชี่ยวชาญทำการ Self-hosting การตั้งค่าผิดพลาดอาจนำไปสู่การสูญเสียข้อมูล ปัญหาด้านความปลอดภัย และ Downtime หากคุณไม่มีประสบการณ์ในการจัดการ Server ทาง n8n แนะนำให้ใช้ n8n Cloud แทน
เวอร์ชั่น Latest และ Next
n8n ออกเวอร์ชั่น Minor ใหม่เกือบทุกสัปดาห์ เวอร์ชั่น latest
มีไว้สำหรับใช้งานจริง (Production) ส่วน next
คือเวอร์ชั่นล่าสุดที่เพิ่งออกมา คุณควรพิจารณา next
ว่าเป็นเวอร์ชั่น Beta ซึ่งอาจยังไม่เสถียร หากต้องการรายงานปัญหา โปรดใช้ forum
Current latest
: 1.91.2
Current next
: 1.92.1
1. Install Docker and Docker Compose#
วิธีติดตั้ง Docker และ Docker Compose จะแตกต่างกันไปตาม Linux distribution ที่ใช้ ดูรายละเอียดได้ที่ Docker และ Docker Compose ตัวอย่างนี้สำหรับ Ubuntu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
ตรวจสอบว่า Docker กับ Docker Compose ใช้งานได้ด้วยคำสั่ง:
1 2 |
|
2. Optional: Non-root user access#
สามารถตั้งค่าให้ user ปกติรัน Docker ได้โดยไม่ต้องใช้ sudo
ถ้าจะให้ user ที่ล็อกอินอยู่ (และมีสิทธิ์ sudo) ใช้ Docker ได้ ให้รัน:
1 2 3 |
|
ถ้าจะให้ user อื่นใช้ Docker ได้ ให้รัน (แทนที่ <USER_TO_RUN_DOCKER>
ด้วยชื่อ user):
1 |
|
ต้องรัน exec sg docker newgrp
ใน session ของ user นั้นเพื่อให้สิทธิ์ใหม่มีผล
ตรวจสอบว่า session ปัจจุบันเห็น group docker หรือยัง ด้วยคำสั่ง:
1 |
|
3. DNS setup#
ถ้าจะให้ n8n ใช้งานผ่าน network หรือออนไลน์ ให้สร้าง subdomain แล้วชี้ไปที่ server ของคุณ
เพิ่ม A record แบบนี้:
- Type: A
- Name:
n8n
(หรือ subdomain ที่ต้องการ) - IP address: (IP ของ server คุณ)
4. Create an .env
file#
สร้าง project directory สำหรับเก็บไฟล์ config ของ n8n และ Docker Compose แล้วเข้าไปในโฟลเดอร์นั้น:
1 2 |
|
ในโฟลเดอร์ n8n-compose
สร้างไฟล์ .env
เพื่อกำหนดค่าต่าง ๆ ของ n8n ตัวอย่างเช่น:
.env file | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
5. Create local files directory#
ใน project directory ให้สร้างโฟลเดอร์ local-files
สำหรับแชร์ไฟล์ระหว่าง n8n กับ host (เช่น ใช้กับ Read/Write Files from Disk node):
1 |
|
Docker Compose file ด้านล่างจะสร้างโฟลเดอร์นี้ให้อัตโนมัติ แต่สร้างเองจะได้สิทธิ์และ owner ถูกต้อง
6. Create Docker Compose file#
สร้างไฟล์ docker-compose.yml
แล้ววางเนื้อหานี้ลงไป:
docker-compose.yml file | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
|
Docker Compose file นี้จะสร้าง 2 container: n8n กับ traefik (proxy สำหรับจัดการ TLS/SSL และ routing)
จะมีการสร้างและ mount Docker Volumes 2 ตัว และ bind โฟลเดอร์ local-files
ที่สร้างไว้:
Name | Type | Container mount | Description |
---|---|---|---|
n8n_data |
Volume | /home/node/.n8n |
ที่เก็บ SQLite database และ encryption key ของ n8n |
traefik_data |
Volume | /letsencrypt |
ที่เก็บข้อมูล TLS/SSL certificate ของ traefik |
./local-files |
Bind | /files |
โฟลเดอร์ local ที่แชร์กับ n8n ใช้ path /files ใน n8n เพื่ออ่าน/เขียนไฟล์นี้ |
7. Start Docker Compose#
เริ่มรัน n8n ด้วยคำสั่ง:
1 |
|
ถ้าจะหยุด container ให้ใช้:
1 |
|
8. Done#
ตอนนี้สามารถเข้าใช้งาน n8n ได้ที่ subdomain + domain ที่ตั้งไว้ใน .env
ตัวอย่างเช่น https://n8n.example.com
n8n จะเข้าได้เฉพาะผ่าน HTTPS เท่านั้น
Next steps#
- เรียนรู้เพิ่มเติมเกี่ยวกับ configuring และ scaling n8n
- หรือสำรวจการใช้งาน n8n: ลองดู Quickstarts