memeX · Documentation

Run memeX as a Docker daemon

Run memeX as a long-lived HTTP daemon in Docker. Best for Python-less machines, team servers, or shared editor sessions. Multi-arch images, cosign-signed.

multi-archcosign-signedCycloneDX SBOM attestedamd64 + arm64

Run memeX as a long-lived HTTP daemon in Docker. Best for: machines without Python, team servers, CI environments, or when you want all your editors to share the same memeX without each spawning its own process.

One-liner

docker run -d --name memex 
  -v $HOME/.memex:/data 
  -p 127.0.0.1:7777:7777 
  quefly/memex:latest

This binds only to localhost (the 127.0.0.1: prefix on -p). To share across machines, see the auth section.

docker-compose

services:
  memex:
    image: quefly/memex:latest
    restart: unless-stopped
    volumes:
      - ./memex-data:/data
    ports:
      - "127.0.0.1:7777:7777"
    environment:
      - MEMEX_DATA_DIR=/data

Bring it up:

docker compose up -d

Verify

curl http://127.0.0.1:7777/health

Bootstrap with skills

TOKEN=$(docker exec memex cat /data/daemon.token)

curl -X POST http://127.0.0.1:7777/skills/install 
  -H "Authorization: Bearer $TOKEN" 
  -H 'Content-Type: application/json' 
  -d '{"name": "using-memex"}'

curl -X POST http://127.0.0.1:7777/skills/install 
  -H "Authorization: Bearer $TOKEN" 
  -H 'Content-Type: application/json' 
  -d '{"name": "core-validations"}'

Wire editors at the daemon

For Claude Code with a long-running daemon (instead of spawning per-session), run a small MCP-stdio shim that proxies to the HTTP daemon. For now, point HTTP-capable tools directly at the daemon — see HTTP recipes.

Expose on a team server

Binding to 0.0.0.0 requires an auth token — the daemon refuses to start otherwise.

services:
  memex:
    image: quefly/memex:latest
    restart: unless-stopped
    volumes:
      - ./memex-data:/data
    ports:
      - "0.0.0.0:7777:7777"
    environment:
      - MEMEX_DATA_DIR=/data
      - MEMEX_AUTH_TOKEN=${MEMEX_AUTH_TOKEN:?set MEMEX_AUTH_TOKEN}
    command: ["daemon", "--listen", "0.0.0.0:7777"]

Generate a token: openssl rand -hex 32. Distribute to authorized clients via your secrets manager.

Image signing

Images on Docker Hub (quefly/memex) are signed with cosign keyless via GitHub OIDC. Verify before deployment:

cosign verify quefly/memex:1.0.0 
  --certificate-identity-regexp "https://github.com/queflyhq/memex/.+" 
  --certificate-oidc-issuer https://token.actions.githubusercontent.com