Docker

Run Memchentic with Docker Compose: the app plus Postgres with vector search.

Image: ghcr.io/memchentic/memchentic:latest (version tags are also published; latest moves with each release)

What you need

Piece

Notes

Memchentic image

From GHCR as above

Postgres 16 with pgvector

pgvector/pgvector:pg16 works

Secrets

Strong ADMIN_PASSWORD and ADMIN_API_KEY (16+ characters each)

The first start prepares the database automatically.

Ready-made Compose in the repo

The Memchentic repository includes a Compose stack under docker/ (docker-compose.yaml and .env.example). Use that as-is, or copy the shape into your own project.

From a clone:

cd docker
cp .env.example .env
# set strong ADMIN_PASSWORD and ADMIN_API_KEY (16+ characters each)
docker compose up -d

Default ports on the host:

Port env

Default

Use

GUI_PORT

18080

Web UI

API_PORT

18081

HTTP API

MCP_PORT

18082

Agent / MCP connection

Set BASE_URL and CORS_ORIGINS to the URL people open in the browser (for example http://your-host:18080).

Bring your own Compose

services:
  memchentic-db:
    image: pgvector/pgvector:pg16
    environment:
      POSTGRES_USER: memchentic
      POSTGRES_PASSWORD: replace-me-db-password
      POSTGRES_DB: memchentic
    volumes:
      - memchentic-db-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U memchentic -d memchentic"]
      interval: 5s
      timeout: 5s
      retries: 10

  memchentic:
    image: ghcr.io/memchentic/memchentic:latest
    depends_on:
      memchentic-db:
        condition: service_healthy
    ports:
      - "18080:8080"   # web UI
      - "18081:8080"   # HTTP API
      - "18082:8080"   # agents / MCP
    environment:
      BASE_URL: http://your-host:18080
      CORS_ORIGINS: http://your-host:18080
      OAUTH_PROVIDER: internal
      ADMIN_EMAIL: admin@example.com
      ADMIN_DISPLAY_NAME: Admin
      ADMIN_PASSWORD: replace-me-admin-password
      ADMIN_API_KEY: replace-me-admin-api-key
      POSTGRES_USER: memchentic
      POSTGRES_PASSWORD: replace-me-db-password
      POSTGRES_HOSTNAME: memchentic-db
      POSTGRES_PORT: "5432"
      POSTGRES_DB: memchentic

volumes:
  memchentic-db-data:

You can expose a single public port instead and let a reverse proxy send web UI, API, and agent traffic to Memchentic.

Existing Postgres

Skip the database service. Point POSTGRES_HOSTNAME (and user / password / database name) at a Postgres that supports the vector extension.

Full settings list: Environment Variables. For Kubernetes, see Helm.