|
1 | | ---- |
2 | | -title: Cloud Platforms |
3 | | -description: Provider-specific notes for running Sim on Railway, a VPS, or managed Kubernetes |
4 | | ---- |
5 | | - |
6 | | -import { Tab, Tabs } from 'fumadocs-ui/components/tabs' |
7 | | -import { Callout } from 'fumadocs-ui/components/callout' |
8 | | - |
9 | | -This page covers what differs per provider. The deployment itself is the same everywhere — follow [Docker](/platform/self-hosting/docker) for a single node or [Kubernetes](/platform/self-hosting/kubernetes) for a cluster. |
10 | | - |
11 | | -## Railway |
12 | | - |
13 | | -One-click deployment with automatic PostgreSQL provisioning. |
14 | | - |
15 | | -[](https://railway.com/new/template/sim-studio) |
16 | | - |
17 | | -After deployment, set in the Railway dashboard: |
18 | | - |
19 | | -- `BETTER_AUTH_SECRET`, `ENCRYPTION_KEY`, `INTERNAL_API_SECRET` (auto-generated by the template) |
20 | | -- An AI provider key such as `OPENAI_API_KEY` |
21 | | -- Your custom domain under **Settings → Networking**, then `NEXT_PUBLIC_APP_URL` to match |
22 | | - |
23 | | -<Callout type="warn"> |
24 | | - 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](/platform/self-hosting/background-jobs), or deploy with Docker Compose instead. |
25 | | -</Callout> |
26 | | - |
27 | | -## VPS |
28 | | - |
29 | | -DigitalOcean, EC2, Azure VM, Hetzner, or any Linux box. Size it from the [requirements table](/platform/self-hosting) — 16 GB RAM is the practical floor for a team install, because memory rather than CPU is what bounds concurrent workflow executions. |
30 | | - |
31 | | -Install Docker via [get.docker.com](https://get.docker.com), then follow the [Docker guide](/platform/self-hosting/docker), which covers secrets, the compose stack, and TLS. |
32 | | - |
33 | | -## Managed Kubernetes |
34 | | - |
35 | | -EKS, AKS, and GKE each have a tuned example values file in the chart. See [Kubernetes](/platform/self-hosting/kubernetes) for the install and [Networking](/platform/self-hosting/networking) for the load-balancer specifics — notably GKE's 30-second websocket timeout and its `ManagedCertificate` requirement. |
36 | | - |
37 | | -## Managed PostgreSQL |
38 | | - |
39 | | -Recommended for any production deployment. The requirement is **pgvector**. |
40 | | - |
41 | | -| Service | Notes | |
42 | | -|---|---| |
43 | | -| AWS RDS / Aurora | Enable the `vector` extension | |
44 | | -| GCP Cloud SQL | Enable the `vector` extension | |
45 | | -| Azure Database for PostgreSQL | Enable the `vector` extension | |
46 | | -| Supabase / Neon | pgvector available by default | |
47 | | - |
48 | | -```bash |
49 | | -DATABASE_URL="postgresql://user:pass@host:5432/simstudio?sslmode=require" |
50 | | -``` |
51 | | - |
52 | | -For the Helm chart, disable the bundled Postgres and use `externalDatabase` — see [Kubernetes](/platform/self-hosting/kubernetes#external-database). |
| 1 | +--- |
| 2 | +title: Cloud Platforms |
| 3 | +description: Provider-specific notes for running Sim on Railway, a VPS, or managed Kubernetes |
| 4 | +--- |
| 5 | + |
| 6 | +import { Tab, Tabs } from 'fumadocs-ui/components/tabs' |
| 7 | +import { Callout } from 'fumadocs-ui/components/callout' |
| 8 | + |
| 9 | +This page covers what differs per provider. The deployment itself is the same everywhere — follow [Docker](/platform/self-hosting/docker) for a single node or [Kubernetes](/platform/self-hosting/kubernetes) for a cluster. |
| 10 | + |
| 11 | +## Railway |
| 12 | + |
| 13 | +One-click deployment with automatic PostgreSQL provisioning. |
| 14 | + |
| 15 | +[](https://railway.com/new/template/sim-studio) |
| 16 | + |
| 17 | +After deployment, set in the Railway dashboard: |
| 18 | + |
| 19 | +- `BETTER_AUTH_SECRET`, `ENCRYPTION_KEY`, `INTERNAL_API_SECRET` (auto-generated by the template) |
| 20 | +- An AI provider key such as `OPENAI_API_KEY` |
| 21 | +- Your custom domain under **Settings → Networking**, then `NEXT_PUBLIC_APP_URL` to match |
| 22 | + |
| 23 | +<Callout type="warn"> |
| 24 | + The template auto-generates `ENCRYPTION_KEY` as a URL-safe secret, but Sim requires a 64-character hex string. If saving Workspace Secrets fails with `ENCRYPTION_KEY must be set to a 64-character hex string` (HTTP 500), regenerate it with `openssl rand -hex 32` and update the variable in the Railway dashboard. |
| 25 | +</Callout> |
| 26 | + |
| 27 | +<Callout type="warn"> |
| 28 | + 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](/platform/self-hosting/background-jobs), or deploy with Docker Compose instead. |
| 29 | +</Callout> |
| 30 | + |
| 31 | +## VPS |
| 32 | + |
| 33 | +DigitalOcean, EC2, Azure VM, Hetzner, or any Linux box. Size it from the [requirements table](/platform/self-hosting) — 16 GB RAM is the practical floor for a team install, because memory rather than CPU is what bounds concurrent workflow executions. |
| 34 | + |
| 35 | +Install Docker via [get.docker.com](https://get.docker.com), then follow the [Docker guide](/platform/self-hosting/docker), which covers secrets, the compose stack, and TLS. |
| 36 | + |
| 37 | +## Managed Kubernetes |
| 38 | + |
| 39 | +EKS, AKS, and GKE each have a tuned example values file in the chart. See [Kubernetes](/platform/self-hosting/kubernetes) for the install and [Networking](/platform/self-hosting/networking) for the load-balancer specifics — notably GKE's 30-second websocket timeout and its `ManagedCertificate` requirement. |
| 40 | + |
| 41 | +## Managed PostgreSQL |
| 42 | + |
| 43 | +Recommended for any production deployment. The requirement is **pgvector**. |
| 44 | + |
| 45 | +| Service | Notes | |
| 46 | +|---|---| |
| 47 | +| AWS RDS / Aurora | Enable the `vector` extension | |
| 48 | +| GCP Cloud SQL | Enable the `vector` extension | |
| 49 | +| Azure Database for PostgreSQL | Enable the `vector` extension | |
| 50 | +| Supabase / Neon | pgvector available by default | |
| 51 | + |
| 52 | +```bash |
| 53 | +DATABASE_URL="postgresql://user:pass@host:5432/simstudio?sslmode=require" |
| 54 | +``` |
| 55 | + |
| 56 | +For the Helm chart, disable the bundled Postgres and use `externalDatabase` — see [Kubernetes](/platform/self-hosting/kubernetes#external-database). |
0 commit comments