Why self-host Activepieces on a VPS
SaaS automation platforms bill by the number of executed tasks and cap quickly: 1,000 or 5,000 operations per month, then the bill climbs. By deploying Activepieces on your own VPS, you turn this variable cost into a fixed, predictable one. Above all, your webhooks, your third-party API keys and the data flowing through your workflows stay on a machine you control, which changes everything for agencies handling client data. Activepieces provides more than 280 connectors (pieces) and a visual editor based on branches and loops, all under the MIT license for its core. A Cloud VPS is the ideal environment: it runs 24/7, has a fixed IP to receive webhooks, and scales on demand as your automations grow in volume.
Concrete benefits of self-hosting
- Unlimited executions: no more monthly quota or per-task billing, only the VPS counts.
- Sovereign data: webhooks, OAuth tokens and payloads never leave your server.
- Custom connectors: build your own pieces in TypeScript for your internal APIs.
- Fixed IP and 24/7 availability, essential for receiving reliable webhooks.
- Controlled updates: you pin the version that suits you, with no imposed changes.
- Predictable cost: a single VPS replaces a subscription that explodes with volume.
Technical requirements
Activepieces remains reasonable on resources. Plan for a VPS with 2 vCPU and 4 GB of RAM for comfortable production use with a few dozen active flows; 2 GB is enough to get started in testing. Allow 20 GB of disk, Docker and Docker Compose installed, a domain name (for example automation.yourdomain.com) pointing to the VPS IP, and ports 80/443 open. Activepieces needs a PostgreSQL database and a Redis: both are provided in the official docker-compose, no need to install them separately.
Deploy Activepieces with Docker
Prepare the VPS and Docker
Connect over SSH, update the system then install Docker: curl -fsSL https://get.docker.com | sh. Check with docker compose version. Create a dedicated folder mkdir -p /opt/activepieces && cd /opt/activepieces.
Fetch the official docker-compose
Download the reference file: curl -O https://raw.githubusercontent.com/activepieces/activepieces/main/docker-compose.yml along with the .env. This compose bundles Activepieces, PostgreSQL and Redis.
Configure the environment variables
In the .env, set AP_FRONTEND_URL=https://automation.yourdomain.com, generate AP_ENCRYPTION_KEY (32 hex characters) and AP_JWT_SECRET with openssl rand -hex 16. Define the PostgreSQL password and AP_QUEUE_MODE=REDIS.
Launch the stack
Start the whole thing in the background with docker compose up -d. Follow the startup via docker compose logs -f activepieces until you see the server listening on internal port 80.
Set up a reverse proxy and SSL
Place Caddy or Nginx Proxy Manager in front of the container. With Caddy, two lines are enough: automation.yourdomain.com { reverse_proxy localhost:8080 }. Caddy automatically obtains a Let's Encrypt certificate over HTTPS.
Create the admin account and test
Open https://automation.yourdomain.com, create the first user (who becomes admin), then build a test flow triggered by a webhook to confirm that the public IP does receive incoming calls.
Enable the separate worker mode in production: set AP_EXECUTION_MODE=SANDBOXED and launch one or more dedicated worker containers pointing to the same Redis. You thus isolate flow execution from the web server, which prevents a heavy workflow from slowing down the interface, and you can scale horizontally by simply adding workers as the execution volume grows.
The official documentation
For advanced configuration and tool-specific options, refer to the official Activepieces documentation. This guide covers going live on a VPS; the vendor documentation remains the reference for fine-tuning, major updates and specific use cases.