feat(resources): add [orch] package extras, cf-orch entry point, Docker compose

This commit is contained in:
pyr0ball 2026-03-30 22:34:40 -07:00
parent 5fb3a2b41e
commit 1f296c0cdb
3 changed files with 63 additions and 1 deletions

4
.gitignore vendored
View file

@ -4,3 +4,7 @@ __pycache__/
*.egg-info/
dist/
.pytest_cache/
.superpowers/
# cf-orch private profiles (commit on personal/heimdall branch only)
circuitforge_core/resources/profiles/private/

View file

@ -0,0 +1,44 @@
# circuitforge_core/resources/compose.yml
# One-command cf-orch deployment for Docker self-hosters:
# docker compose -f path/to/compose.yml up cf-orch-coordinator
services:
cf-orch-coordinator:
image: python:3.12-slim
command: >
sh -c "pip install 'circuitforge-core[orch]' &&
cf-orch start --host 0.0.0.0 --port 7700"
ports:
- "7700:7700"
volumes:
- /run/docker.sock:/var/run/docker.sock:ro
- cf-orch-data:/data
environment:
- CFORCH_PROFILE=${CFORCH_PROFILE:-}
restart: unless-stopped
devices:
- /dev/nvidia0:/dev/nvidia0
- /dev/nvidiactl:/dev/nvidiactl
runtime: nvidia
cf-orch-agent:
image: python:3.12-slim
command: >
sh -c "pip install 'circuitforge-core[orch]' &&
cf-orch agent --coordinator http://cf-orch-coordinator:7700
--node-id ${CFORCH_NODE_ID:-local}
--host 0.0.0.0 --port 7701"
ports:
- "7701:7701"
depends_on:
- cf-orch-coordinator
environment:
- CFORCH_NODE_ID=${CFORCH_NODE_ID:-local}
restart: unless-stopped
devices:
- /dev/nvidia0:/dev/nvidia0
- /dev/nvidiactl:/dev/nvidiactl
runtime: nvidia
volumes:
cf-orch-data:

View file

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "circuitforge-core"
version = "0.1.0"
version = "0.2.0"
description = "Shared scaffold for CircuitForge products"
requires-python = ">=3.11"
dependencies = [
@ -13,6 +13,20 @@ dependencies = [
"openai>=1.0",
]
[project.optional-dependencies]
orch = [
"fastapi>=0.110",
"uvicorn[standard]>=0.29",
"httpx>=0.27",
"pydantic>=2.0",
"typer[all]>=0.12",
"psutil>=5.9",
"pytest-asyncio>=0.23",
]
[project.scripts]
cf-orch = "circuitforge_core.resources.cli:app"
[tool.setuptools.packages.find]
where = ["."]
include = ["circuitforge_core*"]