Cara Install Activepieces 2026: Self-Hosted di VPS dengan Docker Compose
JAWABAN LANGSUNG: Activepieces punya 2 mode deployment - single Docker image buat personal/testing (paling cepat, 15-30 menit) dan Docker Compose buat production (5 service: postgres + redis + app + worker + Caddy auto-SSL). Hardware minimum 1GB RAM / 1 vCPU / 5GB storage (resmi), tapi buat production yang bener-bener nyaman: 2GB RAM / 2 vCPU / 20GB SSD - di 1GB, Vultr benchmark menunjukkan SWAP aktif dan “tidak nyaman”. Setup produksi: 2-4 jam, plus 2-4 jam migrasi workflow. Env vars wajib cuma 4 (AP_POSTGRES_HOST, AP_POSTGRES_PASSWORD, AP_ENCRYPTION_KEY, AP_JWT_SECRET) - semua tinggal
openssl rand -hex 16. Biaya: self-host $0 lisensi (MIT), cloud $5/active flow unlimited runs. Lisensi MIT vs n8n Sustainable Use License - krusial kalau lo software house yang mau jual “managed automation” ke klien.
1. Langkah Pertama (prasyarat + install, 15-30 menit buat testing)
Prasyarat
- VPS 1-2GB RAM (bisa mulai dari 1GB buat coba, naik ke 2GB buat production). Ubuntu 22.04/24.04 LTS disarankan.
- Docker + Docker Compose terinstall:
curl -fsSL https://get.docker.com | shlalusudo usermod -aG docker $USER. - Domain (buat production + HTTPS via Caddy auto-SSL). Buat testing lokal gak wajib.
- PostgreSQL 14+ (dipakai container, bukan install manual - jadi gak perlu install di host).
Cara paling cepat (single Docker image - testing)
docker run -d --name activepieces -p 8080:80 activepieces/activepieces:latestSetelah jalan: buka http://localhost:8080 (atau
http://IP_VPS:8080), signup admin lokal, langsung bisa buat
flow pertama. Setup + coba flow sederhana (misal webhook ke Google
Sheets) total 15-30 menit.
Cara production (Docker Compose - 5 service)
- Buat folder + file
docker-compose.yml(lihat Section 2) dan.env(lihat env vars di Section 2). - Generate secret:
openssl rand -hex 16(3x - buat AP_POSTGRES_PASSWORD, AP_ENCRYPTION_KEY, AP_JWT_SECRET). docker compose up -d-> tunggu postgres healthy -> Caddy auto-dapatkan SSL.- Buka
https://domain.com, signup admin pertama, deploy worker otomatis.
2. Semua Opsi (2 mode deployment + hardware + spec produksi + compose lengkap)
Dua mode deployment (VERIFIED dari published article + artikel internal)
| Mode | Buat | Kelebihan | Kekurangan |
|---|---|---|---|
| Single Docker image | Personal / testing | 1 baris, start < 1 menit, gak perlu config | Bukan production-grade, worker gak terpisah, gak ada auto-SSL |
| Docker Compose (production) | Production / tim / klien | 5 service terisolasi, worker terpisah, Caddy auto-SSL, backup-able | Setup lebih lama (2-4 jam), butuh domain + env vars |
Hardware (VERIFIED dari tabel resmi + benchmark 4 VPS, artikel internal)
| Resource | Minimum (resmi) | Rekomendasi (resmi) | Catatan benchmark nyata |
|---|---|---|---|
| RAM | 1 GB | 2 GB+ | 1GB = SWAP aktif, “tidak nyaman” (Vultr 1GB); 2GB+ nyaman |
| CPU | 1 vCPU | 2 vCPU | - |
| Storage | 5 GB | 20 GB SSD | Docker image ~700MB (Activepieces) vs ~1.2GB (n8n) |
| Database | PostgreSQL 14+ | PostgreSQL 16 (managed) | Container postgres:16-alpine di compose |
| Docker | - | Docker 24+ + Compose v2 | - |
Benchmark 4 VPS (Juli 2026, artikel internal - test 6 minggu):
| VPS | Spec | Activepieces idle | Activepieces load |
|---|---|---|---|
| Hetzner CAX11 | 4GB ARM | 480MB | 700-800MB (10 workflow) |
| Contabo VPS S | 8GB x86 | 510MB | 950MB (50 concurrent) |
| DigitalOcean | 4GB | 470MB | 820MB |
| Vultr 1GB | 1GB | 480MB | SWAP aktif - TIDAK nyaman |
Bandingkan n8n: idle 350-380MB (lebih ringan 100-130MB), tapi spike lebih tinggi 1.1-1.4GB saat concurrent. Activepieces lebih predictable saat load - worker pool terisolasi, scaling linear. Kesimpulan: di 1GB keduanya sesak; 2GB adalah titik nyaman sebenarnya.
Spec produksi resmi (dari dokumentasi official, via published article)
| Komponen | Spesifikasi | Jumlah |
|---|---|---|
| Worker | 0.5 vCPU / 1 GB, concurrency 1 | Satu per concurrent flow |
| App (API + UI) | 1 vCPU / 2 GB | Satu per 10 worker |
| Postgres | 2 vCPU / 4 GB (managed) | Satu, membesar bersama fleet |
| Redis | 1 vCPU / 1 GB (managed) | Satu |
| Object storage | S3 | - |
docker-compose.yml production LENGKAP (VERIFIED dari artikel internal line 264-330)
version: "3.8"
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: activepieces
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: activepieces
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U activepieces"]
interval: 10s
timeout: 5s
retries: 5
networks:
- apnet
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
volumes:
- redis_data:/data
networks:
- apnet
activepieces:
image: activepieces/activepieces:0.6.0
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
AP_POSTGRES_HOST: postgres
AP_POSTGRES_PORT: "5432"
AP_POSTGRES_USERNAME: activepieces
AP_POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
AP_POSTGRES_DATABASE: activepieces
AP_REDIS_HOST: redis
AP_REDIS_PORT: "6379"
AP_ENCRYPTION_KEY: ${AP_ENCRYPTION_KEY}
AP_JWT_SECRET: ${AP_JWT_SECRET}
AP_FRONTEND_URL: https://automate.example.com
ports:
- "127.0.0.1:8080:80"
networks:
- apnet
activepieces-worker:
image: activepieces/activepieces:0.6.0
restart: unless-stopped
depends_on:
- activepieces
command: node dist/packages/server/api/src/app/workers/flow-worker.js
environment:
# Same env as main
AP_POSTGRES_HOST: postgres
AP_POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
AP_REDIS_HOST: redis
AP_ENCRYPTION_KEY: ${AP_ENCRYPTION_KEY}
networks:
- apnet
# Caddy reverse proxy dengan auto-SSL
caddy:
image: caddy:2-alpine
restart: unless-stopped
depends_on:
- activepieces
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
networks:
- apnet
networks:
apnet:
driver: bridge
volumes:
postgres_data:
redis_data:
caddy_data:
caddy_config:Caddyfile (auto-SSL, satu file):
automate.example.com {
reverse_proxy activepieces:80
}
Environment Variables WAJIB (VERIFIED dari artikel internal line 469-491)
| Variable | Contoh | Sumber |
|---|---|---|
AP_POSTGRES_HOST |
postgres | docker service name (jangan diubah) |
AP_POSTGRES_PASSWORD |
(32+ char) | openssl rand -hex 16 |
AP_ENCRYPTION_KEY |
(32 char hex) | openssl rand -hex 16 - WAJIB stabil, jangan ganti
setelah data ada |
AP_JWT_SECRET |
(32 char hex) | openssl rand -hex 16 |
AP_FRONTEND_URL |
https://automate.example.com | URL publik yang dipakai browser |
Peringatan: AP_ENCRYPTION_KEY jangan
sampai hilang atau diganti setelah production jalan - itu dipakai untuk
encrypt credentials flow. Hilang = semua kredensial flow gak bisa
dibaca.
3. Harga & Proses (self-host $0 lisensi, tapi ada biaya server + waktu)
Harga (VERIFIED dari published article + web-verified pricing)
| Opsi | Biaya | Catatan |
|---|---|---|
| Self-host (MIT) | $0 lisensi | Cuma bayar VPS (~$4-10/bulan buat 2GB) + domain + backup S3 |
| Cloud Activepieces | $5/active flow per bulan | Unlimited runs semua tier - bukan per task, tapi per flow aktif. 1 flow = $5/bulan |
| Bandingkan: n8n Cloud | mulai ~$24-40/bulan | TCO 12 bulan: n8n Cloud ~$3.8 juta IDR vs self-host n8n ~Rp 1 juta |
Insight kunci: model “per active flow” beda dari “per task/credit” (Make, Zapier, Pipedream). Kalau flow lo jalan terus (heavy volume), Activepieces cloud jadi lebih murah karena volume gak dihitung.
Proses (estimasi waktu, VERIFIED dari artikel internal)
- Setup server + compose: 2-4 jam (VPS, Docker, compose file, env vars, domain + Caddy SSL).
- Migrasi 10 workflow: 4-8 jam (bikin ulang trigger + steps di Activepieces, tes tiap flow).
- Migrasi 50 workflow: 20-40 jam (karena perlu bikin ulang manual - gak ada import dari n8n langsung).
- Maintenance bulanan: 1-2 jam (update versi, rotasi credential, cek backup).
4. Bukti per Kekhawatiran (jawaban jujur buat concern umum)
“RAM 1GB cukup gak?” -> Vultr 1GB benchmark: SWAP aktif, TIDAK nyaman
Benchmark nyata di Vultr 1GB: Activepieces idle 480MB, begitu load -> SWAP aktif dan pengalaman “tidak nyaman”. Rekomendasi jujur: 1GB cuma buat testing singkat, production pake 2GB+. Di 50+ workflow concurrent, Activepieces lebih stabil daripada n8n karena worker pool terisolasi (scaling linear).
“Aku software house, mau jual ‘managed automation’ ke klien - legal gak?” -> MIT YA, n8n TIDAK
Ini perbedaan paling krusial. Activepieces: MIT license penuh - self-hosting internal/komersial/klien bebas, modifikasi + redistribusi bebas, jual kembali / produk turunan bebas tanpa royalti. n8n: Sustainable Use License (fair-code) - gratis self-host buat penggunaan internal, TAPI DILARANG menjual akses n8n sebagai layanan berbayar ke pihak ketiga. Kalau bisnis lo “jual automation service ke klien”, Activepieces ngilangin hambatan legal yang n8n gak bisa.
“Ekosistemnya gimana?” -> 600+ pieces, 23K stars
600+ integrasi “pieces” (Slack, Google Workspace, Notion, HubSpot, Airtable, Postgres, MySQL, MongoDB). 23K stars / 3.9K forks per Juli 2026 (vs n8n 197K+ - lebih kecil tapi aktif). Untuk kebutuhan umum, 600+ pieces udah nutup mayoritas use case.
“Butuh AI agent, bukan cuma workflow?” -> AI agents + MCP bawaan
Activepieces agent-first: AI agents & MCP servers bawaan (bukan node AI generik kayak n8n), ~400 MCP server siap pakai. TypeScript-first, editor dengan auto-complete + validasi tipe antar step - error ketauan sebelum flow dijalankan.
“Apa bedanya sama n8n buat install?” -> SAMA-SAMA Docker, AP lebih ramping
Kedua-duanya Docker. Bedanya: image Activepieces ~700MB vs n8n ~1.2GB, idle 480MB vs 350-380MB (n8n lebih ringan idle), tapi spike AP lebih rendah & predictable. n8n queue mode butuh Redis terpisah + 4GB RAM rekomendasi; AP compose 5 service dengan worker terpisah yang simpler.
5. Contingency (backup + restore + troubleshooting)
Backup otomatis dengan BorgBackup ke S3 (VERIFIED dari artikel internal line 1084-1136)
Script /usr/local/bin/backup-activepieces.sh, jalan via
cron setiap hari 02:00 (0 2 * * *):
#!/bin/bash
# /usr/local/bin/backup-activepieces.sh
# Run daily via cron: 0 2 * * * /usr/local/bin/backup-activepieces.sh
set -euo pipefail
# Config
BACKUP_DIR="/var/backups/activepieces"
BORG_REPO="s3:backup-bucket/activepieces"
POSTGRES_CONTAINER="ap-postgres-1"
# 1. Dump PostgreSQL
docker exec $POSTGRES_CONTAINER pg_dump -U activepieces -Fc activepieces > $BACKUP_DIR/ap_$(date +%F).dump
# 2. Borg create (volumes postgres + redis)
borg create --stats --compression lz4
$BORG_REPO::ap-{now}
/var/lib/docker/volumes/ap_postgres_data
/var/lib/docker/volumes/ap_redis_data
# 3. Prune retention
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 3 $BORG_REPO
# 4. Cleanup dumps lebih dari 7 hari
find $BACKUP_DIR -name '*.dump' -mtime +7 -delete
# 5. Verifikasi integritas tiap tanggal 1
if [ "$(date +%d)" = "01" ]; then
borg check --verify-data $BORG_REPO
fiRestore (DR procedure): restore volume dari borg
(borg extract), start compose, pastikan AP_ENCRYPTION_KEY
sama dengan waktu backup - kalau beda, credential flow gak kebaca.
Troubleshooting dasar
- Flow gak jalan / worker error -> cek
docker compose logs activepieces-worker- worker container harus jalan; kalau restart loop, cek AP_ENCRYPTION_KEY konsisten. - Caddy gak dapat SSL -> pastikan DNS domain nunjuk ke IP VPS, port 80/443 kebuka di firewall.
- Postgres healthcheck gagal terus -> cek
POSTGRES_PASSWORDdi.envcocok dengan yang dipakai container. - Lupa AP_ENCRYPTION_KEY -> TIDAK ADA recovery - credentials flow terenkripsi permanen. Simpan di password manager SEBELUM production.
6. Bukti Visual (Real Evidence)
Panduan di halaman ini disusun dari dokumentasi resmi Activepieces (activepieces.com/docs) dan artikel toolkuy terkait. Pengecekan nyata di server toolkuy saat halaman diterbitkan (2026-08-01):
$ podman ps -a | grep -i active || echo none
tidak ada container Activepieces yang berjalan
Catatan jujur: Activepieces belum di-deploy di VPS produksi toolkuy saat halaman ini terbit, jadi belum ada tangkapan layar dashboard dari instalasi nyata. Ikuti langkah di halaman ini untuk install sendiri; versi dan flag deployment bisa berubah — cek docs resmi.
Sumber & Validasi
- Artikel internal toolkuy (published):
n8n-vs-activepieces-mana-lebih-ringan-self-hosted,activepieces-alternatif-n8n-open-source-ringan-2026. - External: activepieces.com/docs (self-host guide), github.com/activepieces/activepieces (source + release notes), docs.docker.com/compose (referensi deployment).
- 6-element evidence structure: knowledge/BRAND/ai-seo-evidence-brief.md (internal toolkuy).
- Belum divalidasi eksternal lanjutan: versi Activepieces & flag deployment bisa berubah; verifikasi di docs resmi sebelum production.
💬 Komentar (0)
Belum ada komentar. Jadilah yang pertama! 💬