Stack Developer Platform
Stack is a self-hosted deployment platform that layers identity, networking, databases, and tooling on top of any Kubernetes cluster. Instead of wiring together operators, CRDs, and manifests by hand, you install Stack once and immediately get a PaaS-like workflow for your applications.
Looking for a deeper dive? Read the Stack architecture guide to see how the operator, CRDs, and supporting services interact.
Install Stack
-
Grab the CLI.
export STACK_VERSION=v1.0.0 curl -OL https://github.com/stack-cli/stack-cli/releases/download/${STACK_VERSION}/stack-linux \ && chmod +x ./stack-linux \ && sudo mv ./stack-linux /usr/local/bin/stack
-
Bootstrap the platform operators into your cluster.
stack init
This command installs CloudNativePG, Keycloak, ingress, the Stack controller, and custom resource definitions that describe your applications.
-
Apply a StackApp manifest.
stack install --manifest demo-stack-app.yaml
A minimal
StackApplooks like this:apiVersion: stack-cli.dev/v1 kind: StackApp metadata: name: stack-app namespace: stack-demo spec: web: image: ghcr.io/stack/demo-app:latest port: 7903 auth: jwt: "1"
The controller provisions a dedicated CloudNativePG cluster, injects connection strings into secrets, deploys your container as
stack-app, and keeps everything in sync with the manifest.
Operate and debug
stack operator --onceruns a single reconciliation loop locally so you can watch what the controller does without staying connected forever. Drop--onceto keep it running.stack status --manifest demo-stack-app.yamlprints the Keycloak admin credentials and inspects thecloudflaredpods inside the namespace defined by your manifest. When a quick tunnel is running you will see the temporary HTTPS URL here.- Need ingress from the wider internet? Follow the Cloudflare quick-tunnel guide to create either temporary or authenticated tunnels straight from your StackApp manifest.
- Curious about what
stack initinstalls? The Keycloak operator and PostgreSQL operator guides explain the shared services Stack keeps healthy for you. - Ready to ship an existing framework? See the Rails on Kubernetes and Flask on Kubernetes guides for concrete end-to-end examples.
- Want a local env? The Developers workflow page shows how to spin up k3d, patch your kubeconfig, and run the Stack CLI manually.
What's next?
stack operatorlets you run the reconciliation loop locally for rapid debugging.stack status --manifest demo-stack-app.yamlshows Cloudflare URLs, Keycloak credentials, and other platform details for that namespace.- Use the generated CRDs (
stackapps.stack-cli.dev) from your own automation pipelines to manage namespaces and applications at scale.