Cloud Platforms

This page covers what differs per provider. The deployment itself is the same everywhere — follow Docker for a single node or Kubernetes for a cluster.

Railway

One-click deployment with automatic PostgreSQL provisioning.

Deploy on Railway

After deployment, set in the Railway dashboard:

  • BETTER_AUTH_SECRET, ENCRYPTION_KEY, INTERNAL_API_SECRET (auto-generated by the template)
  • An AI provider key such as OPENAI_API_KEY
  • Your custom domain under Settings → Networking, then NEXT_PUBLIC_APP_URL to match

The Railway template deploys the app services but not the cron service, so scheduled workflows and polling triggers stay idle. Add a Railway cron service calling the endpoints in Background Jobs, or deploy with Docker Compose instead.

VPS

DigitalOcean, EC2, Azure VM, Hetzner, or any Linux box. Size it from the requirements table — 16 GB RAM is the practical floor for a team install, because memory rather than CPU is what bounds concurrent workflow executions.

Install Docker via get.docker.com, then follow the Docker guide, which covers secrets, the compose stack, and TLS.

Managed Kubernetes

EKS, AKS, and GKE each have a tuned example values file in the chart. See Kubernetes for the install and Networking for the load-balancer specifics — notably GKE's 30-second websocket timeout and its ManagedCertificate requirement.

Managed PostgreSQL

Recommended for any production deployment. The requirement is pgvector.

ServiceNotes
AWS RDS / AuroraEnable the vector extension
GCP Cloud SQLEnable the vector extension
Azure Database for PostgreSQLEnable the vector extension
Supabase / Neonpgvector available by default
DATABASE_URL="postgresql://user:pass@host:5432/simstudio?sslmode=require"

For the Helm chart, disable the bundled Postgres and use externalDatabase — see Kubernetes.

On this page