Production-ready, Dockerized, full-stack LLM chat app.
- Docker + docker-compose
- Set your OpenAI API key in
.env(required for chats to work):OPENAI_API_KEY=...- Optional:
OPENAI_MODEL(defaults togpt-4o-mini)
- Vector memory uses Qdrant + MongoDB (provided by docker-compose).
If you want to override defaults, you can also set:
MONGODB_URI,MONGODB_DBQDRANT_URLOPENAI_EMBEDDING_MODEL,EMBEDDING_DIMENSION
docker-compose up --buildAfter containers are up:
- Frontend: http://localhost:3000
- Backend: Socket.IO endpoint at
http://localhost:4000/ws(Socket.IO path/ws)
The frontend connects to that Socket.IO endpoint directly; Docker is configured so localhost:4000 routes to the backend container.
frontend/(Next.js App Router, no Next API routes) connects to the backend via Socket.IO.backend/(Express +socket.io) calls OpenAI with streaming enabled and forwards streamed tokens over Socket.IO events.