-
Notifications
You must be signed in to change notification settings - Fork 1
Runbook
Operational guide for the COMSTAR terminal (Phase 1).
Hardware baseline: Baselines. Dev workflow: Dev Loop.

| Path | Purpose |
|---|---|
/opt/comstar/src |
Deployed git tree (rsync target) |
/opt/comstar/src/config/comstar.yaml |
Production config (not in git) |
/opt/comstar/src/models/ |
Wake-word ONNX, avatar GLB |
| SSH | Host comstar (key auth) — see baselines for IP |
| Local STT/TTS | Optional fallback :8090 / :8091
|
~/.config/systemd/user/ |
comstar-bridge, comstar-audio, comstar-kiosk, comstar-stt, comstar-tts
|
make deploy
# or: bash deploy/deploy.sh-
Plymouth — COMSTAR artwork during early boot. Once:
sudo bash /opt/comstar/src/scripts/install-plymouth-comstar.sh -
comstar-labwcsession — LightDM autologin into labwc without--merge-config(nopcmanfm/wf-panel). Darkswaybg, then Chromium. Once:bash /opt/comstar/src/scripts/install-pi-session.shormake pi-session. -
Chromium splash —
:8769spinner → live kiosk when bridge is ready.
Restore Pi desktop for debugging:
sudo cp /etc/lightdm/lightdm.conf.pre-comstar /etc/lightdm/lightdm.conf
sudo systemctl restart lightdm./scripts/enroll_face.sh <userid>
curl -sS -X POST http://10.0.10.16:32168/v1/vision/face/list | jq .systemctl --user enable --now comstar-bridge comstar-audio comstar-kiosk
systemctl --user status comstar-bridge comstar-audio comstar-kioskPrefer Reach speech when Ada advertises hello.speech. Local STT/TTS units are optional fallback.
cp config/comstar.mac.env.example config/comstar.mac.env
set -a && source config/comstar.mac.env && set +a
make stt-dev
export COMSTAR_STT_URL=http://127.0.0.1:8090
COMSTAR_ENV=dev make bridge-dev
make kiosk-dev
# Chrome: http://127.0.0.1:5173/?bridge=ws://127.0.0.1:8777/kioskNotes:
- Kiosk has no camera preview — bridge owns the camera.
- Overlay paths are cwd-relative — start bridge from repo root or set absolute
overlay_root.
COMSTAR_ENV=dev make bridge-dev
make kiosk-dev
make audio-sync # on Pi side of the loop→ Dev Loop
→ Speech
Confirm bridge logs speech_reach vs speech_fallback.
Full page: Admin Console.
Heal / liveness (no token):
curl -sS http://127.0.0.1:8781/admin/health
# alias: http://127.0.0.1:8781/healthOps UI: make admin → http://127.0.0.1:8781/admin/ (needs
LocalForward 8781). LAN: http://<pi-ip>:8781/admin/?token=<token>.
When COMSTAR_ENV=dev, inject via POST /admin/inject:
curl -sS -X POST http://127.0.0.1:8781/admin/inject \
-H 'content-type: application/json' \
-H 'X-Comstar-Lan-Token: <token>' \
-d '{"event": "TranscriptReady", "text": "What time is it?"}'Supported: PersonDetected, PersonAbsent, FaceRecognized, FaceUnknown, WakeWord, SpeechStart, SpeechEnd, TranscriptReady, ResponseReady, PlaybackEnded, Tick, AttentionError, VisionDegraded, VisionRecovered.
Injected events log src: injected.

Ada serves HTTPS + client certs on :8765. After deploy:
- Mint a one-time enroll token on Ada.
- Admin → Ops → AO pairing, or headless:
make ao-mtls-enroll TOKEN=<one-time> # on the Pi / via SSH- Confirm
orchestration.base_url: https://10.0.10.16:8765andorchestration.mtls.enabled: true. - Restart bridge; sessions should log mTLS on open.
Material: ~/.local/share/comstar/ao-mtls/ — never commit. Server cert must
include an IP SAN when connecting by address. Details: ADR 0013,
Admin Console.
If the Pi has no ethernet and no Wi‑Fi client, SoftAP COMSTAR-<hostname>
comes up at 10.87.65.1. Join that SSID, then open Admin via the kiosk QR
(or http://10.87.65.1:8781/admin/?token=…). Disable: COMSTAR_HOTSPOT=0.
ADR 0014.
Symlinked releases (Dev Loop § Deploy layout):
ssh comstar 'ln -sfn /opt/comstar/releases/PREVIOUS /opt/comstar/current && \
systemctl --user restart comstar-bridge comstar-audio comstar-kiosk'Or redeploy a known-good commit: git checkout <sha> && make deploy.
systemctl --user stop comstar-bridge comstar-audio comstar-kiosk comstar-stt comstar-ttsmake doctor
make test
make logs| Service | Default | Check |
|---|---|---|
| Bridge WS (kiosk) | 127.0.0.1:8777 |
kiosk connects, ready logged |
| Bridge WS (audio) | 127.0.0.1:8778 |
audio connects |
| Admin + OAuth | 127.0.0.1:8781 |
GET /admin/health; UI at /admin/; OAuth at /oauth/google/*
|
| Dev inject | 127.0.0.1:8781/admin/inject |
COMSTAR_ENV=dev only |
| STT | Ada :8090 or local |
/health; log speech_reach vs speech_fallback
|
| TTS | Ada :8091 or local |
/health or POST /v1/audio/speech
|
| AO Reach | https://10.0.10.16:8765 |
mTLS enrolled; Admin AO pairing probe / GET /admin/api/ao_mtls
|
| CodeProject.AI | 10.0.10.16:32168 |
scripts/verify_cpai.sh |
COMSTAR AI — Not a mystical AI. A tool you engineered — transparent, hackable, fast.
Home · Architecture · Admin Console · Runbook · Contracts
Apache-2.0 · Pre-alpha · Raspberry Pi 4 terminal + local AI server
COMSTAR AI
Start here
Product
Build & configure
Interfaces
- Contracts Overview
- Bridge ↔ Kiosk
- Bridge ↔ Audio
- CodeProject.AI
- AO Reach
- MCP Tools
- Attention State Machine
Features
- Speech (STT/TTS)
- Vision & Face Enrollment
- Directory Identity
- Wake Word
- MCP Topology
- Terminal Control
- Google Workspace
Decisions (ADRs)
- ADR Index
- 0001 Audio Routing
- 0002 Render Path
- 0003 Speech on Ada
- 0004 Terminal Control
- 0005 LDAP Identity
- 0006 House Presence
- 0007 Full-Duplex AEC
- 0008 TTS Engine
- 0009 Proactivity
- 0010 Text Channel
- 0011 Road VPN
- 0012 Admin Network
- 0013 AO mTLS
- 0014 Fallback Hotspot
Operate
Plan
Meta