Full self-hosting on AWS is in closed beta. Contact us before your first install. New to full self-hosting? Read the Overview first.
What runs in your account
AWS runs Velt’s portable stack: Kubernetes and PostgreSQL instead of Cloud Run and Firebase. Everything is served from one HTTPS host behind one Application Load Balancer, and nothing calls a Velt-owned host at runtime.
You deploy into GovCloud (
aws-us-gov) or the commercial partition (aws). The partition is asserted, never assumed: the module refuses a plan whose credentials or region disagree with it.
Check the prerequisites
- An AWS account in the target partition, and an administrator role for the install. The preflight simulates every action the module needs.
- Permission to create an Amazon Cognito user pool for console sign-in, or another OIDC provider.
- Someone who can create DNS records in the zone that holds your public host. They create the certificate’s validation record and the record that points at the load balancer. Find them before you start; nobody else can do this step.
- On-Demand vCPU quota. Persistent mode needs 12 vCPUs at rest and up to 48 at the autoscaler’s ceiling during a node-group update. Sandbox mode needs 4 at rest and up to 16.
- If the account is in an AWS Organization, know its service control policies: a region allow-list, a deny on IAM OIDC-provider actions, or a spend cap each change the install.
- Someone available to run an AI coding agent for the duration.
kubectl, cosign, oras, Node 18+, Docker, curl, python3, openssl, and jq. The agent runs the release’s preflight check before it starts. The check creates nothing and stops at the first problem.Decide your inputs
Decide these once, up front. The agent asks for all of them before it starts.
Optional features (REST API, comment attachments, advanced webhooks, console SAML sign-in and SCIM, email notifications, permission provider, FIPS mode) are off by default. You can turn each on later with a
helm upgrade. The agent instructions list every input in full.Start your agent
Copy the agent instructions from the Install guide and paste them into your AI coding agent. Then start it with a prompt like this, filled in with your inputs:The agent ends with a final report: your endpoints, your app’s config, and where every secret is stored. Keep
velt-selfhost-aws-state.json in your working directory; it lets a new session resume an interrupted install.Wire your app
Set both axes in your app’s Velt config: where the SDK bundle downloads from (Rules that break production if violated:
version and proxyConfig.cdnHost), and where the SDK talks to (selfHosted).- React / Next.js
- Other Frameworks
- Set both axes.
strict: truesilences runtime calls, but onlyproxyConfig.cdnHostandversionstop the bundle from loading fromcdn.velt.dev. - Pin
versionto the chart’ssdk.version. It defaults to the wrapper’s built-in version, and a mismatch 404s. - Never set
staging: trueordevelop: trueon a self-hosted page. Both point at a Velt host. - Serve the page from one of your configured app origins, so identify (and attachment CORS) admits it.
Confirm it is done
The deployment is complete only when all four pass:
- Console sign-in as the seeded admin lands on the dashboard.
- The app loads
velt.jsand its chunks from your host, andwindow.Velt.versionmatches the pin. - A comment created in the app is visible in the console.
- A Network audit on both the app and console sessions shows no requests to
velt.devor other Velt-owned hosts.
Troubleshooting your app
For infrastructure errors, ask your agent: the agent instructions include the full troubleshooting table.

