Tutorial

Cara Install Activepieces 2026 - Panduan Self-Hosted (Docker Compose, VPS)

Cara Install Activepieces 2026 - Panduan Self-Hosted (Docker Compose, VPS)

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

  1. VPS 1-2GB RAM (bisa mulai dari 1GB buat coba, naik ke 2GB buat production). Ubuntu 22.04/24.04 LTS disarankan.
  2. Docker + Docker Compose terinstall: curl -fsSL https://get.docker.com | sh lalu sudo usermod -aG docker $USER.
  3. Domain (buat production + HTTPS via Caddy auto-SSL). Buat testing lokal gak wajib.
  4. 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:latest

Setelah 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)

  1. Buat folder + file docker-compose.yml (lihat Section 2) dan .env (lihat env vars di Section 2).
  2. Generate secret: openssl rand -hex 16 (3x - buat AP_POSTGRES_PASSWORD, AP_ENCRYPTION_KEY, AP_JWT_SECRET).
  3. docker compose up -d -> tunggu postgres healthy -> Caddy auto-dapatkan SSL.
  4. 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)

  1. Setup server + compose: 2-4 jam (VPS, Docker, compose file, env vars, domain + Caddy SSL).
  2. Migrasi 10 workflow: 4-8 jam (bikin ulang trigger + steps di Activepieces, tes tiap flow).
  3. Migrasi 50 workflow: 20-40 jam (karena perlu bikin ulang manual - gak ada import dari n8n langsung).
  4. 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).

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
fi

Restore (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

  1. Flow gak jalan / worker error -> cek docker compose logs activepieces-worker - worker container harus jalan; kalau restart loop, cek AP_ENCRYPTION_KEY konsisten.
  2. Caddy gak dapat SSL -> pastikan DNS domain nunjuk ke IP VPS, port 80/443 kebuka di firewall.
  3. Postgres healthcheck gagal terus -> cek POSTGRES_PASSWORD di .env cocok dengan yang dipakai container.
  4. 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! 💬

Komentar akan muncul setelah moderasi.