Layanan otomasi ter-hosting menagih per tugas, dan argonya tetap berjalan untuk hal-hal yang sebenarnya bukan pekerjaan. Flow yang memeriksa feed setiap lima menit sudah 8.640 kali jalan per bulan sebelum melakukan apa pun yang berguna. Jalankan flow yang sama di server sendiri, dan tagihannya adalah server itu.
Activepieces adalah pembuat otomasi open source: trigger, langkah, percabangan, beberapa ratus integrasi siap pakai, plus langkah kode saat yang siap pakai tidak cukup. Edisi community berlisensi MIT dan berjalan lancar di satu server kecil dengan Docker Compose.
Paket yang mana
Kami memasangnya di server uji dan mengukur. File compose bawaan menjalankan aplikasi dan lima worker: sekitar 2,6–3 GB RAM bersama Postgres dan Redis. Dengan satu worker turun ke sekitar 1,6 GB.
| Yang Anda jalankan | Paket |
|---|---|
| Beberapa flow pribadi, satu worker | Micro-IP: 2 vCPU, 2 GB, 25 GB ($10/bln), tambah swap |
| Konfigurasi bawaan: lima worker, flow tim, webhook | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/bln) |
| Banyak run sekaligus, langkah kode yang berat | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/bln) |
Pilih paket dengan IPv4 sendiri. Webhook adalah alasan utama meng-host ini sendiri, dan layanan yang memanggilnya harus menjangkau port 80 dan 443; di paket NAT hanya port SSH yang bisa dijangkau dari luar. Lokasinya Jerman dan Finlandia; ketersediaan terlihat saat memesan. Bisa bayar dengan kripto, tanpa KYC.
Instalasi
Arahkan dulu domain — misalnya flows.example.com — ke server. Lalu, sebagai root di Ubuntu 24.04 atau 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 menyalin .env.example ke .env dan mengisi rahasia acak. Sebelum start pertama, ubah dua baris di .env dan satu di 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
Baris pertama yang penting. AP_FRONTEND_URL bukan hanya untuk tautan di antarmuka: worker terhubung ke aplikasi lewat alamat ini. Biarkan http://localhost:8080 dan setiap kontainer worker mencari aplikasi di dalam dirinya sendiri, tidak menemukannya, dan flow Anda tidak pernah terbit. Itulah yang kami alami: «Socket.IO connection error» di log worker, permintaan publish yang macet, dan webhook yang membalas 404. Dengan domain asli, flow yang sama terbit dan webhook berjalan.
sed pada docker-compose.yml menahan port 8080 di localhost. Port yang dipublikasikan Docker melewati ufw, jadi tanpa ini aplikasi akan terbuka di port mentah di samping HTTPS Anda.
Di Micro-IP, turunkan juga ke satu worker:
sed -i 's/replicas: 5/replicas: 1/' docker-compose.yml
Sekarang HTTPS dan start:
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
Tunggu setengah menit, buka https://flows.example.com, dan langsung buat akun Anda. Pendaftar pertama memiliki platform; setelah itu, pendaftaran hanya lewat undangan.
Pastikan webhook berfungsi
Buat flow dengan trigger Webhook (Catch Webhook), tambahkan langkah apa saja, lalu terbitkan. Panel trigger menampilkan URL-nya. Kirim event uji ke sana:
curl -X POST https://flows.example.com/api/v1/webhooks/YOUR_FLOW_ID \
-H 'content-type: application/json' \
-d '{"event":"payment.paid","amount":16}'
Anda seharusnya mendapat 200, dan run muncul di Runs sebagai berhasil. Jika malah 404, kembali dan periksa AP_FRONTEND_URL.
Untuk seterusnya
- Pembaruan. File compose mengunci versi tepat (
0.92.2saat tulisan ini dibuat). Ganti tag didocker-compose.yml, laludocker compose -p activepieces pull && docker compose -p activepieces up -d. Baca sekilas catatan rilis dulu; alat otomasi senang mengganti nama sesuatu. - Cadangan. Flow, koneksi, dan riwayat run tersimpan di volume Postgres. Buat dump secara terjadwal dan simpan salinannya di luar server — koneksi menyimpan token API Anda untuk layanan lain.
- Langkah kode tidak di-sandbox dalam konfigurasi ini (
AP_EXECUTION_MODE=UNSANDBOXED). Ini server Anda dan flow Anda, jadi masih bisa diterima. Tidak lagi bisa diterima begitu Anda membiarkan orang yang tidak Anda percaya membuat flow.
Kalau Anda sudah mengenal n8n, idenya sama — lihat VPS untuk n8n. Pilih editor yang paling mudah untuk Anda pakai berpikir; keduanya nyaman di paket yang sama.
Terkait
- VPS untuk n8n: alat otomasi self-hosted besar lainnya
- Beberapa layanan di satu VPS: Activepieces di samping aplikasi Anda dan dasbor, satu IP
- VPS untuk Docker
- Cara menambah swap di VPS
- Cara mengonfigurasi firewall ufw
Komentar
Belum ada komentar. Jadilah yang pertama.