Replicating the orchestrata-ultimate environment
Everything lives in the repo now (SPEC-108). Two installers, both tested end-to-end on clean Ubuntu 24.04 (2026-07-21):
Quick path
git clone git@gitlab.com:MSamy/orchestrata-ultimate-architecture.git && cd orchestrata-ultimate-architecture
bash claude-env/install.sh # ~/.claude: session CLI, hooks, commands, skills, settings
bash claude-env/install-infra.sh # detects incus AND docker; you choose the backend
uv sync --dev # Python 3.14t + patched janus-swi + FT grpcio
bash scripts/hooks/install-git-hooks.sh
cp .env.example .env # or use the generated .env.docker
git clone git@gitlab.com:MSamy/knowledge-wiki.git ~/workspace/knowledge-wiki
python scripts/bootstrap_graphs.py --all # seed canonical constraints (incl. per-worker DBs), AST graph, Memgraph content
python scripts/run_tests.py # kernel-verified full suite
Install flow
What each installer does
-
claude-env/install.sh— replicates the global~/.claudelayer (session CLI + package, autoformat/session/remember hooks, 14 slash commands, session skill, settings). Idempotent; timestamped backups; never clobbers a differingsettings.json(writessettings.json.new); installsjinja2 pydantic neo4jPEP 668-aware. Fails fast (before any mutation) on missingrsync cmp date git python3. -
claude-env/install-infra.sh— reports BOTH backends (present/absent), asks which to use (--backend ... --yesfor automation), installs Terraform either way, and finishes by installing the canonical.envpointed at the machine's own fleet:- incus (raw machine): 8-node public tier via
infra/rawmachineterraform +infra/cloud-initprovisioning onimages:debian/12/cloud— redis, neo4j primary + 3 worker replicas, 3 prolog/app nodes, all systemd-supervised and restart-durable, pinned IPs on the machine's own bridge (default10.95.0.x). Verified end-to-end in an ISOLATED VM (host fleet ACL-blocked). Overrides:ORCHESTRATA_SUBNET,ORCHESTRATA_CLOUD_IMAGE,ORCHESTRATA_READY_TIMEOUT. The orchgraph tier (PRIVATE Memgraph Enterprise fork) is added later from the private GitLab release +enroll_orchgraph.py. - docker:
infra/docker/infra-compose.yml— redis, neo4j primary + 3 workers, Memgraph community 3.11.0 stand-in (no HA); localhost port map (6379, 7687-7690, 7691).
To run the suite on the fresh fleet afterwards:
python scripts/bootstrap_graphs.py --all(the three hard seed pre-conditions — canonical constraints incl. per-worker DBs, AST code-intelligence graph, Memgraph content); everything else self-seeds. - incus (raw machine): 8-node public tier via
Key artifacts
| Artifact | Where |
|---|---|
| Spec + requirements checklist | specs/108-environment-installer/ |
| Deep guide + verification record | docs/environment-replication.md |
| Architecture diagrams (logical + physical, SVG/PNG + graphviz sources) | docs/diagrams/environment-{logical,physical}.* |
| Session state (tracked) | context.json / context.md / context.history.md |
Gotchas discovered during verification
- Clean Ubuntu ships without rsync, git, and pip — the preflights exist because all three bit during testing.
- The global tools carried 17 PEP 758
except A, B:sites — Python 3.14-only syntax; now parenthesized (works 3.10+). session_cli.py initused to require an existing project root (circular); now bootstraps from cwd.- Docker Hub has no
memgraph/memgraph:3.5— the compose pins3.11.0(the orchgraph fork's base version). - The original cloud-init files were unexercisable: terraform used
images:debian/12, which has NO cloud-init — user-data was silently ignored. The/cloudimage variant is mandatory. - A 10GiB VM root exhausts mid-provision (installer now preflights 12GiB); four parallel neo4j tarball pulls need the 1800s readiness gate.
- On constrained networks the
images:remote fetch stalls — import the image locally and setORCHESTRATA_CLOUD_IMAGEto the alias. - Mix-and-match backends (per-service) is the declared follow-up (REQ-108-013).