Skip to content

ArcsHealth/zep-ce

 
 

Repository files navigation

Zep Community Edition - Local Deployment Guide

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)

Prerequisites

  • Docker and Docker Compose installed.
  • Git installed.
  • An OpenAI API key (or compatible equivalent for the graphiti service).

Steps

  1. 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
  2. Configure Environment Variables: Create a file named .env in 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 the graphiti service 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.
  3. Verify Configuration Files: The project should be pre-configured, but double-check these files to ensure they use the .env variables correctly:

    • docker-compose.yaml: The zep service definition should load the .env file and pass the ZEP_API_SECRET environment 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: The api_secret field 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 ...
  4. Start the Services: From the root directory (where docker-compose.yaml is 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.

  5. 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, and zep-ce-neo4j-1. Check the STATUS column; they should indicate they are Up (and potentially healthy).

    The Zep API server will be accessible on port 5980 (e.g., http://localhost:5980). Remember to include your ZEP_API_SECRET as a Bearer token in the Authorization header for any API requests: Authorization: Bearer your_strong_random_secret_here

About

Zep | The Memory Foundation For Your AI Stack

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages