This guide provides simplified steps to run Zep Community Edition locally using Docker Compose.
(Based on the official Quickstart Guide: https://help.getzep.com/ce/quickstart)
- Docker and Docker Compose installed.
- Git installed.
- An OpenAI API key (or compatible equivalent for the
graphitiservice).
-
Clone the Repository (if you haven't already):
# Replace with your fork's URL if necessary git clone https://github.com/getzep/zep.git cd zep
-
Configure Environment Variables: Create a file named
.envin the root directory of the cloned repository. Add the following lines, replacing the placeholder values with your actual keys:# .env OPENAI_API_KEY=sk-your_openai_api_key_here ZEP_API_SECRET=your_strong_random_secret_here
OPENAI_API_KEY: Required by thegraphitiservice for its operations.ZEP_API_SECRET: A secret key you define. The Zep service requires this for authenticating API requests. Choose a strong, random string.
-
Verify Configuration Files: The project should be pre-configured, but double-check these files to ensure they use the
.envvariables correctly:-
docker-compose.yaml: Thezepservice definition should load the.envfile and pass theZEP_API_SECRETenvironment variable to the container.services: zep: # ... other service config ... env_file: - .env # Loads variables from .env file environment: - ZEP_CONFIG_FILE=zep.yaml - ZEP_API_SECRET=${ZEP_API_SECRET} # Passes the secret to the container # ... other service config ... graphiti: # ... other service config ... env_file: - .env # Also loads .env for OPENAI_API_KEY etc. # ... other service config ...
-
zep.yaml: Theapi_secretfield should be set to interpolate the environment variable provided via Docker Compose.# zep.yaml # ... other config ... # In order to authenicate API requests to the Zep service, a secret must be provided. # This secret should be kept secret between the Zep service and the client. It can be any string value. # When making requests to the Zep service, include the secret in the Authorization header. api_secret: ${ZEP_API_SECRET} # Reads value from ZEP_API_SECRET env var set by Docker Compose # ... other config ...
-
-
Start the Services: From the root directory (where
docker-compose.yamlis located), run Docker Compose in detached mode:docker compose up -d
This will download the necessary images (if not already present) and start the Zep, Graphiti, Postgres, and Neo4j containers.
-
Verify: Check the status of the containers:
docker ps
You should see four containers running with names like
zep-ce-zep-1,zep-ce-graphiti-1,zep-ce-postgres, andzep-ce-neo4j-1. Check theSTATUScolumn; they should indicate they areUp(and potentiallyhealthy).The Zep API server will be accessible on port
5980(e.g.,http://localhost:5980). Remember to include yourZEP_API_SECRETas a Bearer token in theAuthorizationheader for any API requests:Authorization: Bearer your_strong_random_secret_here