Các dịch vụ tự động hóa dạng hosted tính phí theo tác vụ, và đồng hồ vẫn chạy cả với những thứ chẳng phải công việc. Một flow kiểm tra feed năm phút một lần đã là 8.640 lượt chạy mỗi tháng trước khi nó làm được việc gì hữu ích. Chạy cùng flow đó trên máy chủ của bạn, và hóa đơn chỉ là máy chủ.
Activepieces là công cụ tự động hóa mã nguồn mở: trigger, các bước, nhánh rẽ, vài trăm tích hợp có sẵn, cùng bước code khi những thứ có sẵn không đủ. Bản community dùng giấy phép MIT và chạy ổn trên một máy chủ nhỏ với Docker Compose.
Chọn gói nào
Chúng tôi cài nó lên máy chủ thử nghiệm và đo. File compose mặc định chạy ứng dụng và năm worker: khoảng 2,6–3 GB RAM tính cả Postgres và Redis. Giảm xuống một worker thì còn khoảng 1,6 GB.
| Bạn chạy gì | Gói |
|---|---|
| Vài flow cá nhân, một worker | Micro-IP: 2 vCPU, 2 GB, 25 GB ($10/tháng), thêm swap |
| Cấu hình mặc định: năm worker, flow của nhóm, webhook | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/tháng) |
| Nhiều lượt chạy cùng lúc, bước code nặng | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/tháng) |
Hãy chọn gói có IPv4 riêng. Webhook là lý do chính để tự host công cụ này, và các dịch vụ gọi chúng phải tới được cổng 80 và 443; trên gói NAT, từ bên ngoài chỉ vào được cổng SSH. Có hai vị trí là Đức và Phần Lan; tình trạng còn chỗ hiển thị khi đặt hàng. Có thể thanh toán bằng crypto, không cần KYC.
Cài đặt
Trước tiên trỏ một tên miền — ví dụ flows.example.com — về máy chủ. Sau đó, với quyền root trên Ubuntu 24.04 hoặc 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 sao chép .env.example thành .env và điền các bí mật ngẫu nhiên. Trước lần khởi động đầu tiên, đổi hai dòng trong .env và một dòng trong file 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
Dòng đầu tiên mới là dòng quan trọng. AP_FRONTEND_URL không chỉ dùng cho liên kết trong giao diện: các worker kết nối tới ứng dụng thông qua nó. Để nguyên http://localhost:8080 thì mỗi container worker sẽ tìm ứng dụng bên trong chính nó, không thấy, và flow của bạn không bao giờ được xuất bản. Chúng tôi gặp đúng như vậy: «Socket.IO connection error» trong log của worker, yêu cầu xuất bản bị treo và webhook trả về 404. Với tên miền thật, cùng flow đó đã xuất bản và webhook chạy được.
Lệnh sed trên docker-compose.yml giữ cổng 8080 ở localhost. Các cổng Docker công bố sẽ đi vòng qua ufw, nên nếu thiếu dòng này, ứng dụng sẽ mở trên một cổng trần ngay cạnh HTTPS của bạn.
Trên Micro-IP, giảm luôn xuống một worker:
sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml
Giờ là HTTPS và khởi động:
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
Chờ khoảng nửa phút, mở https://flows.example.com và tạo tài khoản ngay. Người đăng ký đầu tiên sở hữu nền tảng; sau đó chỉ có thể đăng ký qua lời mời.
Kiểm tra webhook hoạt động
Tạo một flow với trigger Webhook (Catch Webhook), thêm một bước bất kỳ rồi xuất bản. Bảng trigger hiển thị URL. Gửi một sự kiện thử tới đó:
curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
-H 'content-type: application/json' \
-d '{"event":"payment.paid","amount":16}'
Bạn sẽ nhận được 200, và lượt chạy xuất hiện trong Runs với trạng thái thành công. Nếu nhận 404, hãy quay lại kiểm tra AP_FRONTEND_URL.
Vận hành lâu dài
- Cập nhật. File compose ghim một phiên bản cụ thể (
0.92.2vào thời điểm viết bài). Đổi tag trongdocker-compose.yml, sau đó chạydocker compose -p activepieces pull && docker compose -p activepieces up -d. Hãy lướt release notes trước; các công cụ tự động hóa rất thích đổi tên mọi thứ. - Sao lưu. Flow, kết nối và lịch sử chạy nằm trong volume của Postgres. Dump theo lịch và giữ bản sao ngoài máy chủ — các kết nối chứa token API của bạn cho những dịch vụ khác.
- Bước code không chạy trong sandbox ở cấu hình này (
AP_EXECUTION_MODE=UNSANDBOXED). Máy chủ của bạn, flow của bạn, nên vẫn chấp nhận được. Nó không còn chấp nhận được ngay khi bạn cho những người bạn không tin tưởng xây dựng flow.
Nếu bạn đã biết n8n thì ý tưởng cũng vậy — xem VPS cho n8n. Hãy chọn trình soạn thảo mà bạn thấy dễ suy nghĩ hơn; cả hai đều chạy tốt trên cùng các gói.
Liên quan
- VPS cho n8n: công cụ tự động hóa tự host lớn còn lại
- Nhiều dịch vụ trên một VPS: Activepieces cạnh ứng dụng của bạn và một dashboard, một IP
- VPS cho Docker
- Cách thêm swap trên VPS
- Cách cấu hình tường lửa ufw
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.