This project is fully Docker-ready for easy deployment and local development. The provided Dockerfile and docker-compose.yml set up both the main application and its required ChromaDB vector database.
- Docker (latest stable)
- Docker Compose (v2+ recommended)
The following environment variables are used by default (can be overridden in your environment or via docker-compose.yml):
CHROMADB_URL=http://chromadb:8000
TRANSPORT=http
HTTP_PORT=3000
MCP_MEMBANK_EMBEDDING_MODEL=Xenova/all-MiniLM-L6-v2
NODE_ENV=production
NODE_OPTIONS=--max-old-space-size=4096To build and start all services:
docker-compose up --build -dThis will:
- Build the main TypeScript application (Node.js v22.13.1-slim)
- Start the app as
ts-app(listening on port 3000) - Start ChromaDB as
chromadb(listening on port 8000) - Create a persistent volume for ChromaDB data
- Set up a shared Docker network for inter-service communication
- 3000: Main application HTTP API (
ts-app) - 8000: ChromaDB vector database (
chromadb)
- ChromaDB data is persisted in the named Docker volume
chromadb-data. - Application data directory (
/app/data) is created and owned by a non-root user inside the container.
- The application requires ChromaDB to be available at the URL specified by
CHROMADB_URL(default:http://chromadb:8000). - The embedding model can be changed via the
MCP_MEMBANK_EMBEDDING_MODELenvironment variable. - If you need to customize environment variables, edit the
docker-compose.ymlor use an.envfile.