-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
62 lines (61 loc) · 2.39 KB
/
Copy pathdocker-compose.yml
File metadata and controls
62 lines (61 loc) · 2.39 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
services:
engine:
build:
context: .
dockerfile: Dockerfile
args:
ENGINE_UID: ${HOST_UID:-1000}
ENGINE_GID: ${HOST_GID:-1000}
image: curiosity-engine:latest
container_name: curiosity-engine
stdin_open: true # Required for interactive setup wizard + --review-register
tty: true
# Journal / register / bibliography files live in ./data on the host so they
# survive rebuilds. engine.toml lives in ~/.CuriosityEngine on the host.
volumes:
- ./data:/workspace
- ${HOME}/.CuriosityEngine:/home/engine/.CuriosityEngine
# Pass through API keys when they're set in the host shell instead of TOML.
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
E2B_API_KEY: ${E2B_API_KEY:-}
SEMANTIC_SCHOLAR_API_KEY: ${SEMANTIC_SCHOLAR_API_KEY:-}
# Default command shows CLI help; real runs override via `docker compose run ... --cycles 3`.
command: ["--help"]
web:
build:
context: .
dockerfile: Dockerfile
args:
ENGINE_UID: ${HOST_UID:-1000}
ENGINE_GID: ${HOST_GID:-1000}
image: curiosity-engine:latest
container_name: curiosity-engine-web
# Same volumes as the engine service — web and CLI share state.
# web/ + engine/ + top-level .py modules mounted read-only so code edits
# apply without rebuilding the image (paired with --reload below).
volumes:
- ./data:/workspace
- ${HOME}/.CuriosityEngine:/home/engine/.CuriosityEngine
- ./web:/app/web:ro
- ./engine:/app/engine:ro
- ./journal.py:/app/journal.py:ro
- ./models.py:/app/models.py:ro
- ./providers.py:/app/providers.py:ro
- ./config.py:/app/config.py:ro
- ./prompts.py:/app/prompts.py:ro
- ./register.py:/app/register.py:ro
- ./retry_utils.py:/app/retry_utils.py:ro
- ./json_utils.py:/app/json_utils.py:ro
- ./curiosity_engine.py:/app/curiosity_engine.py:ro
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
E2B_API_KEY: ${E2B_API_KEY:-}
SEMANTIC_SCHOLAR_API_KEY: ${SEMANTIC_SCHOLAR_API_KEY:-}
# Bind to localhost only — single-user, no auth.
ports:
- "127.0.0.1:8000:8000"
entrypoint: []
command: ["uvicorn", "web.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload", "--reload-dir", "/app"]