Files
Maven/deploy/ecosystem/docker-compose.yml
kami 5fe8f228c1 feat(mavweb): /ecosystem page consuming Nexus/Praxis/Hexis + shell fixes
Add a read-only /ecosystem page that consumes the sibling services'
JSON APIs (Nexus entities, Praxis attention, Hexis capabilities),
fetched concurrently with honest per-panel error states. Siblings stay
headless — mavweb is their human surface (arch §16). Wired via mavweb
-nexus/-praxis/-hexis flags; mavweb joins the ecosystem compose network.

Fix mobile horizontal overflow across all pages: .content is a flex
child with default min-width:auto, so it refused to shrink below the
tables' intrinsic width. min-width:0 lets wide tables pan inside .scroll
instead of dragging the page sideways. Verified via CDP geometry check
(scrollWidth === clientWidth at 430px).

Also includes in-progress Ethos UI redesign, ecosystem deploy compose,
and planning docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 22:04:23 +04:00

55 lines
1.9 KiB
YAML

# Nexus / Praxis / Hexis — the three sibling services Maven coordinates.
# One container each, built from the sibling repos (siblings of the Maven repo
# on the same mount). HTTP is published to 127.0.0.1 so the host nginx can
# reverse-proxy the *.subdomains; container-to-container (Maven → sibling) goes
# over the shared `ecosystem` network by service name, no host round-trip.
#
# docker compose -f deploy/ecosystem/docker-compose.yml up -d --build
#
# Maven's own compose joins this same network (add `ecosystem` as an external
# network there) to reach nexus:9740 / praxis:8989 / hexis:9741 directly.
name: ecosystem
services:
nexus:
build: ../../../nexus
restart: unless-stopped
ports: ["127.0.0.1:9740:9740"] # host nginx → nexus.<domain>
volumes:
- nexus-data:/data
- sockets:/run/ecosystem # nexus.sock, shared with Maven
networks: [ecosystem]
praxis:
build: ../../../praxis
restart: unless-stopped
ports: ["127.0.0.1:8989:8989"] # host nginx → praxis.<domain>
volumes:
- praxis-data:/data
networks: [ecosystem]
hexis:
build: ../../../hexis
restart: unless-stopped
ports: ["127.0.0.1:9741:9741"] # host nginx → hexis.<domain> (MCP moved off hexis.*)
environment:
# hexis fronts the workspace MCP; point at wherever it listens on the
# host/network. Empty ⇒ workspace provider disabled (systemd-only).
- WORKSPACE_MCP_URL=${WORKSPACE_MCP_URL:-http://192.168.1.104:9930}
volumes:
- hexis-data:/data
- sockets:/run/ecosystem
# required when WORKSPACE_MCP_URL is set — hexisd fatals without it.
- ../../../hexis/etc/workspace-allowlist.yaml:/data/workspace-allowlist.yaml:ro
networks: [ecosystem]
volumes:
nexus-data:
praxis-data:
hexis-data:
sockets:
networks:
ecosystem:
name: ecosystem # stable name so Maven's compose can reference it as external