Deploy Activepieces
Activepieces: open-source Zapier alternative with 400+ automation pieces
Redis
Just deployed
/data
Activepieces
Just deployed
Just deployed
/var/lib/postgresql/data
Deploy and Host Activepieces with Railway
Activepieces is an open-source automation platform - a self-hosted alternative to Zapier and Make - with a visual flow builder, 400+ integration "pieces" (Slack, Gmail, Notion, OpenAI, Stripe, webhooks, HTTP, custom TypeScript code) and an MCP server so AI agents can use the same integrations. This template deploys the official Activepieces image pinned by digest with Postgres and Redis wired in over private networking, every secret generated for you, and a deployment healthcheck. There is nothing to fill in. After the deploy, open the public URL: the first sign-up becomes the platform admin.
Plan requirements. Measured on this exact stack after the first flow ran: the Activepieces container idles around 750 MB and peaked at 1.0 GB during sign-up, migrations and a webhook run; Postgres about 60 MB and Redis about 10 MB. Budget 2 GB or more for the app service (Hobby plan or higher). It will not fit the Free plan's 0.5 GB and is tight on Trial's 1 GB, where a flow run can push it over the limit.
About Hosting Activepieces
Activepieces runs as a single container that serves the web app, the API and the worker (AP_CONTAINER_TYPE=WORKER_AND_APP). It stores flows, runs, connections and users in Postgres and uses Redis for the job queue, so all three services must be up for flows to run. The application migrates its own database schema at startup. This template runs the worker in UNSANDBOXED mode, which is what upstream recommends for a single trusted team on a host without Docker-in-Docker; each code step still runs in its own process. Connections (API keys you add to pieces) are encrypted at rest with AP_ENCRYPTION_KEY; keep a copy of that variable - rotating it makes existing connections unreadable.
Common Use Cases
- Replace a paid Zapier or Make plan with unlimited self-hosted flows
- Catch webhooks from Stripe, GitHub, Typeform, or your own app and fan them out to Slack, email, sheets and databases
- Schedule polling and reporting jobs (RSS, HTTP APIs, SQL) without writing a service
- Give an AI agent tools through the built-in MCP server backed by your own connections
- Run TypeScript steps with npm packages inside a flow, with retries and error branches
Dependencies for Activepieces Hosting
activepieces/activepieces:0.91.0(Docker Hub, pinned by digest)ghcr.io/railwayapp-templates/postgres-ssl:18(Railway's Postgres image, pinned by digest) on a/var/lib/postgresql/datavolumeredis:8.2(Docker Official Image, pinned by digest) on a/datavolume
Deployment Dependencies
- Activepieces documentation and the environment variable reference
- Activepieces on GitHub (MIT core, with an enterprise-licensed
ee/directory) - Railway volumes and private networking
Implementation Details
First run. Open the Activepieces service's public domain. Sign up - the first account becomes the platform admin and further sign-ups are invitation-only by default. Build a flow, publish it, and it runs on the schedule or webhook you chose.
Webhooks. Each flow's catch-webhook URL is https://YOUR-DOMAIN/api/v1/webhooks/FLOW_ID. AP_FRONTEND_URL is set to your Railway public domain automatically; if you attach a custom domain, update that variable to match and redeploy.
Generated secrets. AP_ENCRYPTION_KEY (32 hex characters) and AP_JWT_SECRET are generated at deploy time, as are the Postgres and Redis passwords. Back up AP_ENCRYPTION_KEY with your database backups.
Healthcheck. Railway polls /api/v1/health before routing traffic to a new deployment, so a redeploy or upgrade only cuts over once the app has finished its migrations.
Persistence. Flows, runs and connections live in Postgres on a volume; Redis holds only the job queue. A redeploy or restart of the app keeps everything; a Postgres restart pauses runs for a few seconds and they resume when it is back.
Upgrades. The image is pinned. To upgrade, change the Activepieces service's image tag to a newer release in the service settings and redeploy; Activepieces applies its migrations on start. Read the upstream release notes first - major versions occasionally change piece versions in existing flows.
Variables you may want to change. AP_WORKER_CONCURRENCY (5) and AP_FLOW_TIMEOUT_SECONDS (600) trade throughput for memory. AP_TRIGGER_DEFAULT_POLL_INTERVAL (5 minutes) controls how often polling triggers run. AP_TELEMETRY_ENABLED is off. Add SMTP variables (AP_SMTP_*) to enable email invitations and password reset.
Risks. UNSANDBOXED code steps run with the app's permissions - only invite people you trust to build flows. Pinned images mean security fixes arrive when you upgrade, not automatically. Railway's fair-use policy applies to what you automate.
Why Deploy Activepieces on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Activepieces on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
Redis
redis:8.2Activepieces
activepieces/activepieces:0.91.0