Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Compose profile(s) the default `docker compose up` activates (#6):
# minimal = agentlens + lore (+ lore-db) — observability + memory
# governance = minimal + agentgate (approval gateway / guardrails)
# full = governance + mesh (everything)
# full = alias of governance (everything)
# Override per-command: `docker compose --profile minimal up`.
COMPOSE_PROFILES=full
#
Expand Down
7 changes: 2 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<h1 align="center">🚀 AgentKit Stack</h1>
<p align="center">
<strong>Run the full AgentKit ecosystem with a single command</strong><br>
Docker Compose setup for AgentLens, AgentGate, Lore, and Mesh.
Docker Compose setup for AgentLens, AgentGate, and Lore.
</p>
<p align="center">
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"></a>
Expand Down Expand Up @@ -43,7 +43,7 @@ Run only the slice you need with [Compose profiles](https://docs.docker.com/comp
|--------------|--------------------------------------------|-----|
| `minimal` | AgentLens, Lore (+ Lore DB) | Observability + memory |
| `governance` | `minimal` + AgentGate | Compliance: approval gateway / guardrails |
| `full` | `governance` + Mesh | Everything (the default) |
| `full` | alias of `governance` | Everything (the default) |

```bash
docker compose --profile minimal up -d # leanest
Expand All @@ -62,15 +62,13 @@ The default `docker compose up` activates `full` via `COMPOSE_PROFILES` in
| AgentGate | 3002 | [`ghcr.io/agentkitai/agentgate:latest`](https://github.com/orgs/agentkitai/packages/container/package/agentgate) | Approval gateway |
| Lore | 8765 | [`ghcr.io/agentkitai/lore:latest`](https://github.com/orgs/agentkitai/packages/container/package/lore) | Semantic memory (pgvector) |
| Lore DB | — | `pgvector/pgvector:pg16` | PostgreSQL + pgvector |
| Mesh | 8766 | [`ghcr.io/agentkitai/agentkit-mesh:latest`](https://github.com/orgs/agentkitai/packages/container/package/agentkit-mesh) | Agent discovery registry |

## Images (GHCR)

```bash
docker pull ghcr.io/agentkitai/agentlens:latest # dashboard + server
docker pull ghcr.io/agentkitai/agentgate:latest # approval gateway
docker pull ghcr.io/agentkitai/lore:latest # semantic memory
docker pull ghcr.io/agentkitai/agentkit-mesh:latest # agent discovery registry
```

## Health Checks
Expand All @@ -79,7 +77,6 @@ docker pull ghcr.io/agentkitai/agentkit-mesh:latest # agent discovery registry
curl http://localhost:3000/api/health/overview # AgentLens
curl http://localhost:3002/health # AgentGate
curl http://localhost:8765/health # Lore
curl http://localhost:8766/health # Mesh
```

## Rebuild from Source
Expand Down
40 changes: 5 additions & 35 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ services:
# dockerfile: Dockerfile
container_name: agentlens
# Profiles (#6): minimal = observability + memory; governance adds the
# approval gateway; full adds the mesh. Select with COMPOSE_PROFILES (.env)
# or `docker compose --profile <name> up`.
# approval gateway. `full` is kept as an alias of governance. Select with
# COMPOSE_PROFILES (.env) or `docker compose --profile <name> up`.
profiles: ["minimal", "governance", "full"]
ports:
- "3000:3000"
Expand All @@ -21,16 +21,14 @@ services:
- LORE_MODE=remote
- LORE_API_URL=http://lore:8765
- LORE_API_KEY=${LORE_API_KEY:?set LORE_API_KEY in .env (copy from .env.example)}
- MESH_ENABLED=true
- MESH_URL=http://mesh:8766
volumes:
- agentlens-data:/app/data
networks:
- agentkit
restart: unless-stopped
# Hard-depend only on lore (present in every profile); agentgate + mesh are
# reached via their runtime URLs (best-effort), so the leaner profiles don't
# have to pull them in. They still come up first in governance/full.
# Hard-depend only on lore (present in every profile); agentgate is reached
# via its runtime URL (best-effort), so the minimal profile doesn't have to
# pull it in. It still comes up first in governance.
depends_on:
lore:
condition: service_healthy
Expand Down Expand Up @@ -125,39 +123,11 @@ services:
limits:
memory: 128M

mesh:
image: ghcr.io/agentkitai/agentkit-mesh:latest
# build:
# context: ../agentkit-mesh
# dockerfile: Dockerfile
container_name: mesh
profiles: ["full"] # cross-agent mesh — full stack only
ports:
- "8766:8766"
environment:
- DB_PATH=/app/data/mesh.db
- NODE_ENV=production
volumes:
- mesh-data:/app/data
networks:
- agentkit
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8766/health"]
interval: 10s
timeout: 3s
retries: 3
deploy:
resources:
limits:
memory: 128M

volumes:
agentlens-data:
agentgate-data:
lore-data:
lore-db-data:
mesh-data:

networks:
agentkit:
Expand Down
Loading