บริการระบบอัตโนมัติแบบโฮสต์คิดเงินตามงาน และมิเตอร์ก็หมุนแม้กับสิ่งที่แทบไม่ใช่งาน flow ที่เช็ก feed ทุกห้านาทีคือ 8,640 ครั้งต่อเดือน ก่อนที่มันจะทำอะไรที่เป็นประโยชน์ด้วยซ้ำ ลองรัน flow เดียวกันบนเซิร์ฟเวอร์ของคุณเอง แล้วค่าใช้จ่ายก็คือตัวเซิร์ฟเวอร์
Activepieces คือเครื่องมือสร้างระบบอัตโนมัติแบบโอเพนซอร์ส มีทั้ง trigger ขั้นตอน การแตกแขนง integration สำเร็จรูปหลายร้อยตัว และขั้นตอนที่เขียนโค้ดได้เมื่อของสำเร็จรูปไม่พอ รุ่น community ใช้สัญญาอนุญาต MIT และรันบนเซิร์ฟเวอร์เล็ก ๆ เครื่องเดียวด้วย Docker Compose ได้สบาย
เลือกแพ็กเกจไหน
เราติดตั้งบนเซิร์ฟเวอร์ทดสอบแล้ววัดผล ไฟล์ compose ที่ให้มาจะรันแอปและ worker ห้า ตัว รวมกับ Postgres และ Redis ใช้ RAM ราว 2.6–3 GB ถ้าลดเหลือ worker ตัวเดียวจะลงมาราว 1.6 GB
| สิ่งที่คุณรัน | แพ็กเกจ |
|---|---|
| flow ส่วนตัวไม่กี่ตัว worker หนึ่งตัว | Micro-IP: 2 vCPU, 2 GB, 25 GB ($10/เดือน) เพิ่ม swap |
| ค่าเริ่มต้น: worker ห้าตัว flow ของทีม webhook | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/เดือน) |
| รันพร้อมกันจำนวนมาก ขั้นตอนโค้ดหนัก ๆ | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/เดือน) |
เลือกแพ็กเกจที่มี IPv4 ของตัวเอง webhook คือเหตุผลหลักที่ควรโฮสต์เอง และบริการที่เรียกมันต้องเข้าถึงพอร์ต 80 และ 443 ได้ บนแพ็กเกจ NAT ภายนอกเข้าได้แค่พอร์ต SSH มีสองตำแหน่งคือเยอรมนีและฟินแลนด์ ดูได้ว่าว่างหรือไม่ตอนสั่งซื้อ จ่ายด้วยคริปโตได้ ไม่ต้องทำ KYC
การติดตั้ง
ชี้โดเมน เช่น flows.example.com ไปที่เซิร์ฟเวอร์ก่อน จากนั้นในฐานะ root บน Ubuntu 24.04 หรือ Debian 12:
curl -fsSL https://get.docker.com | sh
git clone --depth 1 https://github.com/activepieces/activepieces.git
cd activepieces
sh tools/deploy.sh
deploy.sh จะคัดลอก .env.example เป็น .env และเติมค่าลับแบบสุ่มให้ ก่อนเริ่มครั้งแรก ให้แก้สองบรรทัดใน .env และหนึ่งบรรทัดในไฟล์ compose:
sed -i 's|^AP_FRONTEND_URL=.*|AP_FRONTEND_URL=https://flows.example.com|; s|^AP_TELEMETRY_ENABLED=.*|AP_TELEMETRY_ENABLED=false|' .env
sed -i "s|- '8080:80'|- '127.0.0.1:8080:80'|" docker-compose.yml
บรรทัดแรกคือบรรทัดที่สำคัญ AP_FRONTEND_URL ไม่ได้มีไว้แค่ลิงก์ในหน้าจอ worker ยังเชื่อมต่อแอปผ่านค่านี้ด้วย ถ้าปล่อยเป็น http://localhost:8080 คอนเทนเนอร์ worker ทุกตัวจะหาแอปในตัวเอง หาไม่เจอ และ flow ของคุณจะไม่ถูกเผยแพร่เลย เราเจอแบบนี้จริง ๆ คือ «Socket.IO connection error» ใน log ของ worker คำขอเผยแพร่ค้าง และ webhook ตอบ 404 เมื่อใส่โดเมนจริง flow เดิมก็เผยแพร่ได้และ webhook ทำงาน
คำสั่ง sed บน docker-compose.yml ทำให้พอร์ต 8080 อยู่แค่บน localhost พอร์ตที่ Docker เปิดจะข้าม ufw ไป ถ้าไม่มีบรรทัดนี้ แอปจะเปิดอยู่บนพอร์ตดิบข้าง ๆ HTTPS ของคุณ
บน Micro-IP ให้ลดเหลือ worker ตัวเดียวด้วย:
sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml
ต่อไปคือ HTTPS และการเริ่มระบบ:
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
flows.example.com {
reverse_proxy 127.0.0.1:8080
}
EOF
systemctl reload caddy
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enable
docker compose -p activepieces up -d
รอครึ่งนาที เปิด https://flows.example.com แล้วสร้างบัญชีทันที คนที่สมัครคนแรกเป็นเจ้าของแพลตฟอร์ม หลังจากนั้นสมัครได้เฉพาะผ่านคำเชิญ
ตรวจว่า webhook ใช้งานได้
สร้าง flow ที่ใช้ trigger Webhook (Catch Webhook) เพิ่มขั้นตอนอะไรก็ได้ แล้วเผยแพร่ แผง trigger จะแสดง URL ส่ง event ทดสอบไปที่นั่น:
curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
-H 'content-type: application/json' \
-d '{"event":"payment.paid","amount":16}'
คุณควรได้ 200 และการรันจะปรากฏใน Runs ว่าสำเร็จ ถ้าได้ 404 แทน ให้กลับไปตรวจ AP_FRONTEND_URL
การดูแลในระยะยาว
- การอัปเดต ไฟล์ compose ตรึงเวอร์ชันที่แน่นอนไว้ (
0.92.2ตอนที่เขียน) เปลี่ยนแท็กในdocker-compose.ymlแล้วรันdocker compose -p activepieces pull && docker compose -p activepieces up -dอ่าน release notes คร่าว ๆ ก่อน เพราะเครื่องมืออัตโนมัติชอบเปลี่ยนชื่อสิ่งต่าง ๆ - สำรองข้อมูล flow การเชื่อมต่อ และประวัติการรันอยู่ใน volume ของ Postgres ทำ dump ตามกำหนดเวลาและเก็บสำเนาไว้นอกเซิร์ฟเวอร์ เพราะการเชื่อมต่อเก็บ API token ของคุณสำหรับบริการอื่น ๆ
- ขั้นตอนโค้ดไม่ได้อยู่ใน sandbox ในการตั้งค่านี้ (
AP_EXECUTION_MODE=UNSANDBOXED) เซิร์ฟเวอร์และ flow เป็นของคุณ จึงยอมรับได้ แต่จะยอมรับไม่ได้ทันทีที่คุณปล่อยให้คนที่คุณไม่ไว้ใจสร้าง flow
ถ้าคุณรู้จัก n8n อยู่แล้ว แนวคิดก็เหมือนกัน ดู VPS สำหรับ n8n เลือกตัวแก้ไขที่คุณคิดงานได้ง่ายกว่า ทั้งสองตัวรันได้ดีบนแพ็กเกจเดียวกัน
ที่เกี่ยวข้อง
- VPS สำหรับ n8n: เครื่องมืออัตโนมัติแบบโฮสต์เองตัวใหญ่อีกตัว
- หลายบริการบน VPS เครื่องเดียว: Activepieces ข้างแอปของคุณและแดชบอร์ด ใช้ IP เดียว
- VPS สำหรับ Docker
- วิธีเพิ่ม swap บน VPS
- วิธีตั้งค่าไฟร์วอลล์ ufw
ความคิดเห็น
ยังไม่มีความคิดเห็น เป็นคนแรกสิ