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=4096
To build and start all services:
docker-compose up --build -d
This 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_MODEL
environment variable. - If you need to customize environment variables, edit the
docker-compose.yml
or use an.env
file.