Platforms

Deploying to Kubernetes

Deploy your RivetKit app to any Kubernetes cluster.

Steps

Prerequisites

Package Your App

Create a Dockerfile in your project root:

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
ENV PORT=8080
CMD ["node", "server.js"]
Dockerfile

Build and Push the Image

docker build -t registry.example.com/your-team/rivetkit-app:latest .
docker push registry.example.com/your-team/rivetkit-app:latest
Command Line

Replace registry.example.com/your-team with your registry path. Auth with docker login first if needed.

Set Environment Variables

After creating your project on the Rivet dashboard, select Kubernetes as your provider. You’ll be provided RIVET_ENDPOINT and RIVET_PUBLIC_ENDPOINT environment variables.

Create a rivetkit-secrets.yaml for your environment variables:

apiVersion: v1
kind: Secret
metadata:
  name: rivetkit-secrets
type: Opaque
stringData:
  RIVET_ENDPOINT: <your-rivet-endpoint>
  RIVET_PUBLIC_ENDPOINT: <your-rivet-public-endpoint>
YAML

Deploy to Kubernetes

Create a deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rivetkit-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rivetkit-app
  template:
    metadata:
      labels:
        app: rivetkit-app
    spec:
      containers:
        - name: rivetkit-app
          image: registry.example.com/your-team/rivetkit-app:latest
          envFrom:
            - secretRef:
                name: rivetkit-secrets
YAML

Apply both manifests:

kubectl apply -f rivetkit-secrets.yaml
kubectl apply -f deployment.yaml
Command Line

Connect to Rivet

  1. Add a Service and Ingress to expose your app externally (e.g. my-app.example.com)
  2. On the Rivet dashboard, paste your domain with the /api/rivet path into the connect form (e.g. https://my-app.example.com/api/rivet)
  3. Click “Done”

Verify

Check that the pod is running:

kubectl get pods -l app=rivetkit-app
Command Line

Your app should appear as connected on the Rivet dashboard once the pod is ready.