Skip to content

Add Dockerfile for managed-chatkit #119

Description

@John-Jepsen

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:

  1. Stage 1 (frontend build)node:20-slim, installs dependencies, builds the Vite frontend
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions