Skip to content

Deploy Prompter

Prompter runs in production on the Cratis UpCloud Kubernetes cluster that also hosts Studio (decision D-11). This page is the map; the step-by-step runbook - workflows, Pulumi, secrets, backups - is DEPLOYMENT.md, which is the source of truth.

Because the bot dials out to Discord (see the gateway mechanics in Set up the Discord app), it needs no public IP or ingress and runs identically from a laptop or a cluster. The artifacts are the same at every stage, so nothing is throwaway:

StageWhereGood for
Laptopdocker compose up -d plus dotnet runTrying it end to end on a test server, all bot development
Simple VM (optional)Smallest UpCloud VM, Docker ComposeAn always-on beta before the cluster work lands
ClusterStudio’s UpCloud UKS via PulumiProduction: automated deploys, observability, backups

Prompter is a single-replica Kubernetes Deployment - the Discord gateway wants exactly one connection - alongside an in-cluster Postgres with pgvector, in the Norway region. Keeping stored data on EU-jurisdiction infrastructure strengthens the privacy posture. It exposes GET /healthz for probes and POST /reindex (shared secret) for documentation refreshes. The full topology, deploy flow, and one-time setup live in DEPLOYMENT.md.

App deploys are for code changes only. When the documentation changes, nothing is redeployed - the Documentation build calls POST /reindex and the corpus updates in place. See Configuration for the endpoints and Grounded answers for how freshness works.