-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
65 lines (56 loc) · 3.23 KB
/
Copy pathdocker-compose.yml
File metadata and controls
65 lines (56 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Grackle — user-facing Docker Compose for the published GHCR image.
# Copy this file and .env.example to your deployment directory, then:
# cp .env.example .env # edit as needed
# docker compose up -d
#
# For the developer compose file (builds from source), see docker/docker-compose.yml.
services:
grackle:
image: ghcr.io/nick-pape/grackle:${GRACKLE_VERSION:-latest}
container_name: grackle
ports:
- "${GRACKLE_WEB_PORT:-3000}:3000" # Web UI + WebSocket
# MCP HTTP endpoint — used by @grackle-ai/mcp-stdio and any Bearer-token MCP client.
# The API key gates access, but this binding exposes the port on all interfaces.
# On multi-tenant hosts, restrict to loopback: "127.0.0.1:${GRACKLE_MCP_PORT:-7435}:7435"
- "${GRACKLE_MCP_PORT:-7435}:7435" # MCP HTTP (Streamable HTTP + API-key auth)
volumes:
- grackle-data:/data # Persistent DB, Neo4j, API key
# ── Docker adapter (DooD) ──────────────────────────────────
# Uncomment to let Grackle spawn sibling Docker containers for environments.
# WARNING: Grants root-equivalent access to the host Docker daemon.
# Also uncomment the networks section below and the GRACKLE_DOCKER_* env vars.
# - /var/run/docker.sock:/var/run/docker.sock
# ── Agent credential mounts ────────────────────────────────
# Uncomment the mounts for runtimes you use. As an alternative, you can
# set auth via env vars (ANTHROPIC_API_KEY, OPENAI_API_KEY, GH_TOKEN).
# - "${HOME}/.claude:/home/node/.claude:ro" # Claude Code
# - "${HOME}/.copilot:/home/node/.copilot" # GitHub Copilot
# - "${HOME}/.codex:/home/node/.codex" # OpenAI Codex
environment:
# GitHub CLI token (for Codespace adapter and private repos):
- GH_TOKEN=${GH_TOKEN:-}
# ── Docker adapter networking ──────────────────────────────
# Uncomment if you enabled the Docker socket mount above.
# Sibling containers join this network so the server can reach them.
# - GRACKLE_DOCKER_NETWORK=grackle
# - GRACKLE_DOCKER_HOST=grackle
# ── Knowledge graph ────────────────────────────────────────
# Neo4j runs inside the container by default. Uncomment to use an external Neo4j:
# - GRACKLE_NEO4J_URL=bolt://your-neo4j:7687
# - GRACKLE_NEO4J_USER=neo4j
# - GRACKLE_NEO4J_PASSWORD=your-password
# - GRACKLE_NEO4J_DATABASE=neo4j
# To disable the knowledge graph entirely:
# - GRACKLE_KNOWLEDGE_ENABLED=false
# ── Docker adapter network ─────────────────────────────────
# Uncomment if you enabled the Docker socket mount and GRACKLE_DOCKER_NETWORK above.
# networks:
# - grackle
restart: unless-stopped
# Uncomment if using the Docker adapter (DooD):
# networks:
# grackle:
# name: grackle
volumes:
grackle-data: