e5e179e541
Operator can run make bootstrap/install through S2 using nemohermes/openshell wrappers; docs and implement queue updated. No S3+ and no push.
3.7 KiB
3.7 KiB
Install
Status: Stages S0–S2 implemented. S3–S7 pending.
Stages
| Stage | Where | Outcome | Status |
|---|---|---|---|
| S0 | Human | Host per DEPLOYER_HOST.md | ✅ Procedural |
| S0b | Host script | Docker installed if missing | ✅ Implemented |
| S1 | Host script | Repo env, .env from .env.example |
✅ Implemented |
| S2 | Host script | Main + aux vision config; vision smoke | ✅ Implemented |
| S3–S5 | Host → Compose / nemohermes |
Stack, sandbox, policy, skills | ⏳ Pending |
| S6 | Host script | Doctor green | ⏳ Pending |
| S7 | Owner + operator connect helpers | Name assistant; connect their SaaS/channels | ⏳ Pending |
Platform commands (normative)
All mutations: nemohermes / openshell (see design/research/platform-notes.md).
S0: Host baselining
Follow DEPLOYER_HOST.md to prepare the host:
- Provision a Linux host (cloud VM, bare metal).
- Install OS updates.
- Create a deploy user with sudo access.
- Install
nemohermesandopenshellCLIs. - Clone this repository.
S0b: Docker bootstrap
./scripts/bootstrap.sh
# or
make bootstrap
Idempotent: if Docker is already installed and running, the script exits immediately.
What it checks:
docker infosucceeds → skip install.- OS family detection (Debian/Ubuntu or RHEL/Fedora).
- Installs Docker, adds user to
dockergroup, verifies daemon.
S1: Repository environment
./scripts/install/s1-env.sh
# or
make install-s1
What it does:
- If
.envdoes not exist, copies.env.exampleto.env. - Validates that all required keys are present and non-empty:
LUMINA_SANDBOX— sandbox name (default:hermes)LUMINA_INFERENCE_BASE_URL— inference endpoint URLLUMINA_INFERENCE_MODEL— model identifierLUMINA_VISION_MODEL— vision model identifier
- Fails with clear messages if keys are missing or empty.
Edit .env with your actual values before running S2. See .env.example for all keys and descriptions.
Never commit .env with real secrets. It is in .gitignore.
S2: Model + vision configuration
./scripts/install/s2-models.sh
# or
make install-s2
What it does:
- Loads
.envand validates required keys. - Checks that
nemohermesandopenshellCLIs are available. - Verifies the inference endpoint is reachable (
/v1/models). - If the OpenShell gateway is connected, configures the inference route via
openshell inference set. - Runs the vision smoke test:
- Probes
/v1/modelsformultimodalcapability tag. - Falls back to a minimal chat completion if capability tags are not exposed.
- Probes
- Fails loudly (non-zero exit) if vision capability cannot be confirmed.
If the gateway is not yet connected: the script validates the endpoint and skips the openshell write. S3+ will handle full gateway configuration.
Run all stages (S0b–S2)
./scripts/install.sh
# or
make install
# or
make install-s0-s2
After install (S0–S2)
- Verify
.envvalues are correct for your environment. - Continue with S3+ when implemented (compose stack, sandbox creation, policy, skills).
- See SETUP_UX.md for owner-facing setup after full install.
- See design/scenarios.md (S1–S5) for operational scenarios.
UAT host notes
This repository was tested on a live host with:
nemohermesv0.0.93,openshellv0.0.85- Sandbox:
hermes(default) - Gateway:
nemoclawathttps://127.0.0.1:8080 - Inference: OpenAI-compatible endpoint with multimodal model
- Docker: present and running
Scripts are idempotent on this configuration.