Feature Request: Add Dockerfile for managed-chatkit
The Problem
Teams evaluating ChatKit for production use hit a wall when they move past local development. There is no containerization story in the starter app, which means every team independently reverse-engineers their own Dockerfile, deployment scripts, and production configuration. This friction slows adoption at exactly the moment when a team is deciding whether to commit to ChatKit at scale.
Why This Matters for ChatKit Adoption
Enterprise and team deployments need containers. Organizations deploying internal AI assistants powered by ChatKit are running them on Cloud Run, ECS, Kubernetes, Azure Container Apps, or similar orchestration platforms. Without an official Dockerfile, each team burns hours writing their own — and many will look at competing solutions that ship production-ready from day one.
Scaling inference workloads demands containerization. Teams running ChatKit for hundreds or thousands of concurrent users need reproducible builds, horizontal scaling, health checks, and zero-downtime deployments. Containers are the standard unit of deployment for this. An official Dockerfile signals that ChatKit is production-grade and ready for real workloads, not just local demos.
Lowers the barrier from "interesting demo" to "deployed product." The starter app does a great job getting developers to a working local prototype. But the gap between npm run dev and a production deployment is where adoption stalls. A Dockerfile bridges that gap and keeps momentum going.
Proposed Addition
A multi-stage Dockerfile in managed-chatkit/ that:
- Stage 1 (frontend build) —
node:20-slim, installs dependencies, builds the Vite frontend
- Stage 2 (Python runtime) —
python:3.12-slim, installs pip dependencies, copies the FastAPI backend and built frontend assets, runs uvicorn
Design principles:
- All secrets (API keys, client secrets) passed at runtime via environment variables — never baked into the image
VITE_* build-time vars handled via ARG/ENV
- A
.dockerignore to keep the image small and secure
- Production-ready defaults (appropriate worker count, log level, port exposure)
Impact
- Reduces time-to-production from hours to minutes for new teams
- Gives ChatKit a clear deployment path on every major cloud provider
- Positions the starter app as a production reference, not just a prototype
- Removes a common reason teams stall or abandon adoption during evaluation
Happy to contribute a PR if this direction is welcomed.
Feature Request: Add Dockerfile for managed-chatkit
The Problem
Teams evaluating ChatKit for production use hit a wall when they move past local development. There is no containerization story in the starter app, which means every team independently reverse-engineers their own Dockerfile, deployment scripts, and production configuration. This friction slows adoption at exactly the moment when a team is deciding whether to commit to ChatKit at scale.
Why This Matters for ChatKit Adoption
Enterprise and team deployments need containers. Organizations deploying internal AI assistants powered by ChatKit are running them on Cloud Run, ECS, Kubernetes, Azure Container Apps, or similar orchestration platforms. Without an official Dockerfile, each team burns hours writing their own — and many will look at competing solutions that ship production-ready from day one.
Scaling inference workloads demands containerization. Teams running ChatKit for hundreds or thousands of concurrent users need reproducible builds, horizontal scaling, health checks, and zero-downtime deployments. Containers are the standard unit of deployment for this. An official Dockerfile signals that ChatKit is production-grade and ready for real workloads, not just local demos.
Lowers the barrier from "interesting demo" to "deployed product." The starter app does a great job getting developers to a working local prototype. But the gap between
npm run devand a production deployment is where adoption stalls. A Dockerfile bridges that gap and keeps momentum going.Proposed Addition
A multi-stage Dockerfile in
managed-chatkit/that:node:20-slim, installs dependencies, builds the Vite frontendpython:3.12-slim, installs pip dependencies, copies the FastAPI backend and built frontend assets, runs uvicornDesign principles:
VITE_*build-time vars handled viaARG/ENV.dockerignoreto keep the image small and secureImpact
Happy to contribute a PR if this direction is welcomed.