เริ่มต้นกระบวนการจากสภาพแวดล้อมที่สะอาดที่สุดเพื่อป้องกันปัญหาไฟล์คอนฟิกเดิมขัดแย้งกัน
Installing bootstrap packages... สำเร็จอัปเกรดตัวจัดการแพ็กเกจ npm ให้เป็นเวอร์ชันล่าสุดเพื่อลดปัญหาแจ้งเตือนคำเตือนเหลือง (Deprecation Warn) และติดตั้ง htop ไว้เฝ้าดูระบบตั้งแต่แรก
pkg update && pkg upgrade -y
pkg install openssh nodejs build-essential htop -y
npm install -g npm@latest
passwd
whoami && ifconfig && sshd
สร้างสภาพแวดล้อมฐานข้อมูลทดแทนระบบ SQLite ดั้งเดิม เพื่อรองรับข้อมูลของ n8n ได้อย่างมีประสิทธิภาพ
pkg install postgresql -y
initdb -D $PREFIX/var/lib/postgresql
pg_ctl -D $PREFIX/var/lib/postgresql start
n8n เตรียมไว้:
createdb n8n
echo "pg_ctl -D \$PREFIX/var/lib/postgresql start" >> ~/.bashrc
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 แปลว่าผ่านด่านสำคัญแล้ว*
npm install n8n -g --unsafe-perm --ignore-scripts
npm install pm2 -g
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
pm2 start n8n && pm2 save
เมื่อแอปพลิเคชัน Termux ถูกปิดลงอย่างสมบูรณ์ (Force Close / ปัดแอปทิ้ง) หรือเครื่องมือถือระบบ Android เกิดการรีบูต เพื่อป้องกันไม่ให้เซอร์วิสหลักหลับยาว ให้ฝังคำสั่งเปิดรันอัตโนมัติเหล่านี้ลงในไฟล์ Profile ระบบ:
echo "pm2 resurrect" >> ~/.bashrc
echo "sshd" >> ~/.bashrc
source ~/.bashrc
cat ~/.bashrc ซึ่งจะต้องแสดงลำดับการสตาร์ทระบบที่สมบูรณ์แบบเรียงลงมาดังนี้:pm2 resurrect ดึงเวิร์กโฟลว์ n8n เก่าขึ้นมาออนไลน์sshd ต้อนรับการรีโมทจากคอมพิวเตอร์
htop : ตรวจดูการใช้งาน RAM และความเร็ว CPU เบื้องหลังpm2 status : เช็กสถานะการทำงานของ n8n ว่ายังออนไลน์อยู่หรือไม่pm2 logs n8n --flush --lines 15 : ตรวจอ่านรายงาน Log ล่าสุดโดยล้างขยะอดีตทิ้งไป