Backup และ Restore Workflow n8n ทำยังไง?
วิธี backup และ restore workflow, credential, และข้อมูล n8n อย่างถูกต้อง ไม่ให้ข้อมูลสูญหายเมื่อเกิดปัญหา
การ backup n8n เป็นสิ่งที่หลายคนมองข้าม จนกระทั่งเกิดปัญหาขึ้นจริงๆ ไม่ว่าจะเป็น server เสีย, update แล้วมีปัญหา, หรือลบข้อมูลโดยไม่ตั้งใจ ถ้าไม่มี backup ทุกอย่างที่สร้างมาก็จะหายไปพร้อมกัน
n8n เก็บข้อมูลหลักสองส่วนคือ workflow/credential ใน database และ configuration ใน directory .n8n การ backup ที่ครบถ้วนต้องครอบคลุมทั้งสองส่วนนี้
ทำความเข้าใจโครงสร้างข้อมูล n8n
ก่อน backup ต้องรู้ว่า n8n เก็บข้อมูลไว้ที่ไหน:
| ข้อมูล | ตำแหน่ง (SQLite) | ตำแหน่ง (PostgreSQL) |
|---|---|---|
| Workflow | ~/.n8n/database.sqlite | ใน PostgreSQL database |
| Credentials | ~/.n8n/database.sqlite | ใน PostgreSQL database |
| Execution history | ~/.n8n/database.sqlite | ใน PostgreSQL database |
| Configuration | ~/.n8n/config | ~/.n8n/config |
| Encryption key | environment variable | environment variable |
| Custom nodes | ~/.n8n/nodes/ | ~/.n8n/nodes/ |
สำคัญมาก: N8N_ENCRYPTION_KEY ที่ใช้เข้ารหัส credential ต้องเก็บไว้แยกต่างหาก ถ้า key หาย แม้จะมี database backup ก็ไม่สามารถ decrypt credential ได้
วิธีที่ 1: Export Workflow ผ่าน UI (เหมาะสำหรับ workflow เดี่ยว)
วิธีนี้ง่ายที่สุด เหมาะสำหรับ backup workflow เฉพาะชิ้น หรือย้าย workflow ระหว่าง instance
Export workflow เดี่ยว
- เปิด workflow ที่ต้องการ backup
- คลิกเมนู (จุดสามจุด) มุมขวาบน
- เลือก Download — จะได้ไฟล์
.json
Export workflow ทั้งหมด
ผ่าน CLI บนเครื่อง server:
# Export ทุก workflow เป็นไฟล์ JSON แยกกัน
n8n export:workflow --all --output=/backup/workflows/
# หรือถ้าใช้ Docker
docker exec n8n n8n export:workflow --all --output=/home/node/.n8n/backup/
วิธีที่ 2: Backup ด้วย n8n CLI (แนะนำ)
n8n มี built-in command สำหรับ export/import ที่ครอบคลุมทั้ง workflow และ credential
# Export workflows ทั้งหมด
n8n export:workflow --all --backup --output=/backup/
# Export credentials ทั้งหมด (ยังเข้ารหัสอยู่)
n8n export:credentials --all --backup --output=/backup/
สำหรับ Docker:
# สร้างโฟลเดอร์ backup
mkdir -p ~/n8n-backup/$(date +%Y-%m-%d)
# Export ผ่าน Docker exec
docker exec n8n n8n export:workflow --all --backup --output=/tmp/backup/
docker cp n8n:/tmp/backup/. ~/n8n-backup/$(date +%Y-%m-%d)/
วิธีที่ 3: Backup Directory .n8n ทั้งหมด (Full Backup)
วิธีนี้ครอบคลุมที่สุด เหมาะสำหรับ restore ทั้งระบบ
สำหรับ SQLite (default)
# หยุด n8n ก่อน backup เพื่อความปลอดภัย
docker stop n8n
# Backup directory ทั้งหมด
tar -czf ~/n8n-backup-$(date +%Y%m%d).tar.gz ~/.n8n/
# เริ่ม n8n ใหม่
docker start n8n
สำหรับ PostgreSQL
# Backup database
docker exec postgres pg_dump -U n8n n8n > ~/n8n-db-$(date +%Y%m%d).sql
# Backup .n8n directory (เก็บ config และ custom nodes)
tar -czf ~/n8n-config-$(date +%Y%m%d).tar.gz ~/.n8n/ --exclude=*.sqlite
ตั้งค่า Auto Backup ด้วย Cron
สร้าง script สำหรับ backup อัตโนมัติ:
sudo nano /usr/local/bin/n8n-backup.sh
#!/bin/bash
BACKUP_DIR=/var/backups/n8n
DATE=$(date +%Y%m%d-%H%M)
mkdir -p $BACKUP_DIR
# Backup n8n data
docker stop n8n
tar -czf $BACKUP_DIR/n8n-$DATE.tar.gz /root/.n8n/
docker start n8n
# ลบ backup เก่ากว่า 30 วัน
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete
echo "Backup complete: n8n-$DATE.tar.gz"
chmod +x /usr/local/bin/n8n-backup.sh
เพิ่มใน crontab เพื่อรันทุกวันตี 2:
crontab -e
# เพิ่มบรรทัดนี้
0 2 * * * /usr/local/bin/n8n-backup.sh >> /var/log/n8n-backup.log 2>&1
วิธี Restore n8n จาก Backup
Restore จาก Export JSON (workflow เดี่ยว)
- เปิด n8n
- คลิก + เพื่อสร้าง workflow ใหม่
- คลิกเมนู แล้วเลือก Import from File
- เลือกไฟล์
.jsonที่ backup ไว้
Restore จาก CLI Export
# Import workflows
n8n import:workflow --input=/backup/
# Import credentials
n8n import:credentials --input=/backup/
Restore Full Backup (Directory)
# หยุด n8n
docker stop n8n
# ลบข้อมูลเก่า
rm -rf ~/.n8n
# แตกไฟล์ backup
tar -xzf ~/n8n-backup-20260410.tar.gz -C /
# เริ่ม n8n ใหม่
docker start n8n
Restore PostgreSQL
# Drop และสร้าง database ใหม่
docker exec postgres psql -U n8n -c "DROP DATABASE n8n;"
docker exec postgres psql -U n8n -c "CREATE DATABASE n8n;"
# Restore จาก dump
cat ~/n8n-db-20260410.sql | docker exec -i postgres psql -U n8n -d n8n
Checklist ก่อน Restore
ก่อน restore ทุกครั้ง ตรวจสอบ:
- มี
N8N_ENCRYPTION_KEYเดิมพร้อมใช้งาน - Version ของ n8n ที่จะ restore ใส่ตรงกับ backup (หรือใกล้เคียง)
- Backup ไฟล์ไม่เสียหาย (ลอง extract ดูก่อน)
- Backup database ล่าสุด
ขั้นต่อไป
เมื่อมีระบบ backup แล้ว ขั้นต่อไปคือดูวิธี อัปเดต n8n อย่างปลอดภัย และ Best Practices ด้านความปลอดภัยสำหรับ n8n Server
อยากเรียน n8n แบบเป็นระบบ ตั้งแต่เริ่มต้นจนสร้าง Workflow ใช้งานจริงได้ ลองดู คอร์สสอน n8n ที่ aiunlock.co
Related posts
ติดตั้ง n8n ด้วย Docker แบบละเอียด
คู่มือ step-by-step ติดตั้ง n8n ด้วย Docker และ Docker Compose บน Windows, Mac, Linux พร้อม persistent data
Deploy n8n บน Railway ฟรี ภายใน 5 นาที
วิธี deploy n8n บน Railway แบบ step-by-step ไม่ต้องมีเซิร์ฟเวอร์ ฟรีสำหรับ hobby project พร้อมใช้งานได้ทันที
ติดตั้ง n8n บน Server ของคุณเอง: คู่มือฉบับสมบูรณ์
รวมทุกวิธีติดตั้ง n8n แบบ self-host ตั้งแต่ Docker, VPS, จนถึง Raspberry Pi พร้อม checklist ความปลอดภัย