คู่มือการติดตั้ง n8n ร่วมกับ PostgreSQL บน Termux ฉบับสมบูรณ์ (ปรับปรุงล่าสุด)

หน่วยงานสถาปัตยกรรมระบบ: ITSPRO Central Control Repository
หัวข้อย่อย: การตั้งค่าสภาพแวดล้อมใหม่ทั้งหมด, อัปเดต npm ล่าสุด, ระบบตรวจสุขภาพฐานข้อมูลป้องกัน SQLite บั๊ก, เปิดบริการเบื้องหลัง และฝังระบบกู้คืนอัตโนมัติเมื่อแอปดับ

ขั้นตอนที่ 1: การล้างข้อมูลแอป (Factory Reset)

เริ่มต้นกระบวนการจากสภาพแวดล้อมที่สะอาดที่สุดเพื่อป้องกันปัญหาไฟล์คอนฟิกเดิมขัดแย้งกัน

  1. เปิดเมนู การตั้งค่า (Settings) ของอุปกรณ์ Android
  2. เลือก แอปพลิเคชัน (Apps / Manage Apps) -> ค้นหาแอป Termux
  3. เข้าไปที่หัวข้อ ที่เก็บข้อมูล (Storage) -> กดปุ่ม ล้างข้อมูลทั้งหมด (Clear Data)
  4. เปิดแอป Termux ขึ้นมาใหม่ รอจนกระบวนการ Installing bootstrap packages... สำเร็จ

ขั้นตอนที่ 2: อัปเดตระบบ, อัปเดต npm ล่าสุด และติดตั้งเครื่องมือพื้นฐาน

อัปเกรดตัวจัดการแพ็กเกจ npm ให้เป็นเวอร์ชันล่าสุดเพื่อลดปัญหาแจ้งเตือนคำเตือนเหลือง (Deprecation Warn) และติดตั้ง htop ไว้เฝ้าดูระบบตั้งแต่แรก

  1. อัปเดตดัชนีซอฟต์แวร์หลักให้เป็นปัจจุบัน:
    pkg update && pkg upgrade -y
  2. ติดตั้ง OpenSSH, Node.js, เครื่องมือคอมไพล์ และตัวมอนิเตอร์ระบบ htop:
    pkg install openssh nodejs build-essential htop -y
  3. อัปเดต npm เป็นเวอร์ชันล่าสุดอย่างเป็นทางการ:
    npm install -g npm@latest
  4. กำหนดรหัสผ่านเพื่อความปลอดภัยในการเข้าใช้งานระยะไกล:
    passwd
  5. ตรวจสอบข้อมูลไอพีและยูสเซอร์ของเครื่อง จากนั้นสั่งเปิดบริการ SSH Server:
    whoami && ifconfig && sshd

ขั้นตอนที่ 3: ติดตั้งและตั้งค่าฐานข้อมูล PostgreSQL

สร้างสภาพแวดล้อมฐานข้อมูลทดแทนระบบ SQLite ดั้งเดิม เพื่อรองรับข้อมูลของ n8n ได้อย่างมีประสิทธิภาพ

  1. ติดตั้งเอนจินฐานข้อมูล PostgreSQL:
    pkg install postgresql -y
  2. สร้างพื้นที่จัดเก็บฐานข้อมูล (Data Directory):
    initdb -D $PREFIX/var/lib/postgresql
  3. สั่งเปิดบริการเอนจินฐานข้อมูลแมนนวลในครั้งแรก:
    pg_ctl -D $PREFIX/var/lib/postgresql start
  4. สร้างฐานข้อมูลชื่อ n8n เตรียมไว้:
    createdb n8n
  5. การเปิดใช้ฐานข้อมูลอัตโนมัติ: ฝังคำสั่งเปิด Postgres ไว้ใน Profile ของระบบ เพื่อให้รันตัวเองทันทีเมื่อเปิดแอป Termux:
    echo "pg_ctl -D \$PREFIX/var/lib/postgresql start" >> ~/.bashrc

ขั้นตอนที่ 4: การตรวจสอบ PostgreSQL และป้องกัน n8n สติหลุด (SQLite Error)

⚠️ กลไกสำคัญห้ามข้าม: ปัญหาหลักที่ n8n รันไม่ขึ้นแล้วฟ้อง Error SQLite package has not been found installed เกิดจาก "ฐานข้อมูล PostgreSQL ดับอยู่" ทำให้ n8n พยายามถอยกลับไปเปิด SQLite อัตโนมัติและระเบิดทันที ดังนั้นก่อนรันหรือตั้งค่าใดๆ ต้องมั่นใจว่าล้างไฟล์ล็อกเก่าและตรวจสถานะ Postgres เรียบร้อยแล้ว

พิมพ์ชุดคำสั่งนี้เพื่อเคลียร์ไฟล์ล็อกที่อาจค้างจากการปิดเครื่องกะทันหัน และบังคับสตาร์ทให้มั่นใจว่าทำงานอยู่จริง:

# 1. ลบไฟล์ล็อกเก่าที่อาจทำให้ออกคำสั่งสตาร์ทไม่ขึ้น
rm -f $PREFIX/var/lib/postgresql/postmaster.pid

# 2. บังคับสตาร์ทเอนจินฐานข้อมูลใหม่อีกครั้ง
pg_ctl -D $PREFIX/var/lib/postgresql start

*สังเกตบนหน้าจอต้องขึ้นข้อความว่า server started หรือใช้คำสั่ง pg_ctl -D $PREFIX/var/lib/postgresql status ตรวจเช็ก หากขึ้นว่า server is running แปลว่าผ่านด่านสำคัญแล้ว*

ขั้นตอนที่ 5: ติดตั้ง n8n และจัดการรันเบื้องหลังถาวรด้วย PM2

  1. ดาวน์โหลดติดตั้ง n8n โดยข้ามสคริปต์ SQLite ที่มีปัญหากับโครงสร้างแอนดรอยด์:
    npm install n8n -g --unsafe-perm --ignore-scripts
  2. ติดตั้งตัวจัดการโปรเซสเบื้องหลัง PM2:
    npm install pm2 -g
  3. ฝังตัวแปรแวดล้อมลงใน Profile ระบบหลัก: บีบบังคับให้ n8n รับรู้เฉพาะ PostgreSQL และปิดฟังก์ชันการปกป้องคุ๊กกี้สีส้มผ่านวงแลน:
    echo "export DB_TYPE=postgresdb" >> ~/.bashrc && echo "export DB_POSTGRESDB_DATABASE=n8n" >> ~/.bashrc && echo "export DB_POSTGRESDB_USER=\$(whoami)" >> ~/.bashrc && echo "export N8N_SECURE_COOKIE=false" >> ~/.bashrc && source ~/.bashrc
  4. สั่งเริ่มต้นการทำงาน n8n ผ่าน PM2 และบันทึกสถานะถาวร:
    pm2 start n8n && pm2 save

ขั้นตอนที่ 6: การตั้งค่าระบบกู้คืนและรันอัตโนมัติ 100% (Auto-Start Configuration)

เมื่อแอปพลิเคชัน Termux ถูกปิดลงอย่างสมบูรณ์ (Force Close / ปัดแอปทิ้ง) หรือเครื่องมือถือระบบ Android เกิดการรีบูต เพื่อป้องกันไม่ให้เซอร์วิสหลักหลับยาว ให้ฝังคำสั่งเปิดรันอัตโนมัติเหล่านี้ลงในไฟล์ Profile ระบบ:

  1. ตั้งค่าปลุกบริการ n8n เบื้องหลังอัตโนมัติผ่าน PM2:
    echo "pm2 resurrect" >> ~/.bashrc
  2. ตั้งค่าเปิดบริการรีโมทระยะไกล OpenSSH อัตโนมัติ:
    echo "sshd" >> ~/.bashrc
  3. โหลดค่าแวดล้อมซ้ำเพื่อให้คำสั่งเริ่มทำงานทันที:
    source ~/.bashrc
💡 ตรวจเช็กผลลัพธ์ภาพรวม (.bashrc) ของ ITSPRO:
เมื่อตั้งค่าครบทั้งหมดแล้ว สามารถเรียกดูไส้ในไฟล์คอนฟิกเริ่มต้นด้วยคำสั่ง cat ~/.bashrc ซึ่งจะต้องแสดงลำดับการสตาร์ทระบบที่สมบูรณ์แบบเรียงลงมาดังนี้:
1. สั่งเปิด PostgreSQL Base Node
2. ประกาศตัวแปรแวดล้อมฐานข้อมูลและพาสเวิร์ดระบบเข้าหา n8n
3. สั่งคำสั่ง pm2 resurrect ดึงเวิร์กโฟลว์ n8n เก่าขึ้นมาออนไลน์
4. เปิดพอร์ตบริการ sshd ต้อนรับการรีโมทจากคอมพิวเตอร์

สรุปคำสั่งลัดสำหรับการตรวจสอบหน้างานประจำวัน