You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Type: INFO — DevOps case study / reference Source:docs/CLIENT_DEPLOYMENT_GUIDE.md (local copy for editors; this issue is the canonical published reference) Product: EngineX (Engine OSS) + optional Engine Cloud Audience: Client platform / DevOps / engineering teams Repository:EngineXV/engineX
Use this ticket as the single case study for how clients deploy and operate EngineX in their cloud — headless, dashboard, hybrid, and Engine Cloud models.
Hosted control plane — central credential vault, OAuth connector hub, org/tenant admin, SSO
EngineX vendor cloud (or your SaaS)
No — private; OSS has integration hooks only
Engine OSS is the open-source goal-driven agent runtime. Clients install it to run AI workflows as graphs of nodes (LLM steps, tools, human approval gates, timers, supervisors).
Engine OSS includes:
Agent runtime (CLI + optional web dashboard)
Workflow templates (agreement review, log monitor, support triage, supervisors, etc.)
Encrypted local credential store (~/.engine/credentials/)
Engine Cloud is optional. Most pilots use OSS only in the client's VPC. See Section 2A Engine Cloud for when Cloud is needed and how it connects to OSS runtimes.
Key point: Data and secrets stay in the client's cloud. Persistence is filesystem-based (JSON under ~/.engine/), not a separate database.
2A. Engine Cloud (optional hosted control plane)
What Engine Cloud is
Engine Cloud is the hosted management layer that sits above one or more Engine OSS runtimes. It is not required to run agents. It is required when you sell multi-customer SaaS, a central connector portal, or managed credentials across many installs.
sequenceDiagram
participant Sched as Cron / systemd / K8s
participant Eng as EngineX CLI
participant Store as ~/.engine
participant LLM as LLM API
participant Ext as Slack / Grafana / …
Sched->>Eng: ./engine run log_monitor --daemon
Eng->>Store: Load credentials + session state
loop Every timer tick
Eng->>Ext: Fetch logs / send alerts
Eng->>LLM: Triage incidents
Eng->>Store: Save checkpoints + summary
end
Monitor via logs, /api/metrics (if serve is also running), or external alerting.
6.2 Dashboard + human-in-the-loop flow
sequenceDiagram
participant User as Analyst
participant Dash as Dashboard :8787
participant Eng as EngineX runtime
participant Store as ~/.engine
User->>Dash: Start session (Agreement Analysis)
Dash->>Eng: Create session + run graph
Eng->>Store: Checkpoints after each node
Eng-->>Dash: HITL gate — review required
User->>Dash: Approve / reject with evidence
Dash->>Eng: Resume execution
Eng->>Store: Final state + audit trail
Loading
Client steps:
Build frontend + ./engine serve --host 0.0.0.0.
Put reverse proxy with TLS and SSO/VPN in front.
Connect OAuth integrations on Credentials page (one-time).
Operators use Sessions for live runs and Ops for history/alerts.
6.3 One client = one install (isolation)
flowchart TB
subgraph ClientA["Client A — AWS account"]
A1["EngineX VM"]
A2["~/.engine — Client A secrets & sessions"]
A1 --- A2
end
subgraph ClientB["Client B — GCP project"]
B1["EngineX GKE pod"]
B2["PVC → ENGINE_HOME"]
B1 --- B2
end
ClientA -.-x ClientB
Loading
OSS does not partition credentials by tenant inside one install. Each client gets a separate deployment and separate ~/.engine volume — unless you add Engine Cloud (Section 2A) for multi-tenant SaaS.
7. Shipped Workflow Templates
Template
Headless OK?
Typical inputs
agreement_analysis
Yes (prefer dashboard for HITL)
Document path / content
log_monitor
Yes — --daemon
Grafana + Slack env vars
support_triage
Yes
Support ticket JSON
invoice_review
Yes
Invoice JSON
meeting_scheduler
Yes
Meeting request + calendar MCP
hourly_tracking
Yes
Time-tracking context
deep_research
Yes (prefer dashboard for HITL)
Research topic
supervisors/*
Dashboard recommended
Delegates to worker agents
supervised_agreement_analysis
Dashboard recommended
Supervisor + worker pipeline
List and validate:
./engine validate examples/templates/<name>
./engine info examples/templates/<name>
8. Storage & Backup (no database)
Path
Contents
~/.engine/agents/<agent>/sessions/
Session state, logs, checkpoints
~/.engine/credentials/
Encrypted tokens and API keys
~/.engine/secrets/credential_key
Encryption bootstrap key
~/.engine/configuration.json
Default LLM provider/model
~/.engine/skills/
Custom skill documents
Client backup plan: snapshot or replicate the ~/.engine volume (or ENGINE_HOME mount).
9. Security Checklist for Client Cloud
Run EngineX in a private subnet; restrict inbound to dashboard port via VPN/SSO proxy
Inject secrets from cloud secret manager, not baked into images
Set ENGINE_CREDENTIAL_KEY and rotate per environment
Mount persistent encrypted volume for ~/.engine
Use separate installs per client / environment (dev vs prod)
Enable outbound-only firewall rules where possible (LLM + known integration endpoints)
10. Quick Reference — Commands
# Setup
./quickstart.sh
cp .env.example .env
# Validate before deploy
./engine validate examples/templates/<agent># Headless — single run
./engine run examples/templates/agreement_analysis --input '{"file":"contract.pdf"}' --quiet
# Headless — long-running worker
./engine run examples/templates/log_monitor --daemon --require-live
# Interactive terminal
./engine run examples/templates/agreement_analysis --tui
# Web dashboardcd core/frontend && npm ci && npm run build &&cd ../..
./engine serve --host 0.0.0.0 --port 8787
# Credentials wizard
./engine setup-credentials examples/templates/<agent>
Overview
Type: INFO — DevOps case study / reference
Source:
docs/CLIENT_DEPLOYMENT_GUIDE.md(local copy for editors; this issue is the canonical published reference)Product: EngineX (Engine OSS) + optional Engine Cloud
Audience: Client platform / DevOps / engineering teams
Repository: EngineXV/engineX
Use this ticket as the single case study for how clients deploy and operate EngineX in their cloud — headless, dashboard, hybrid, and Engine Cloud models.
Ticket metadata
Client Ticket: EngineX OSS — Deployment & Usage Guide
1. What is EngineX?
EngineX is a two-layer product:
Engine OSS is the open-source goal-driven agent runtime. Clients install it to run AI workflows as graphs of nodes (LLM steps, tools, human approval gates, timers, supervisors).
Engine OSS includes:
~/.engine/credentials/)Engine Cloud is optional. Most pilots use OSS only in the client's VPC. See Section 2A Engine Cloud for when Cloud is needed and how it connects to OSS runtimes.
2. High-Level Architecture
Key point: Data and secrets stay in the client's cloud. Persistence is filesystem-based (JSON under
~/.engine/), not a separate database.2A. Engine Cloud (optional hosted control plane)
What Engine Cloud is
Engine Cloud is the hosted management layer that sits above one or more Engine OSS runtimes. It is not required to run agents. It is required when you sell multi-customer SaaS, a central connector portal, or managed credentials across many installs.
./engine run,./engine serve~/.engine/on runtime diskCLIENT_ID/SECRET:8787)Three deployment models
~/.engineor their secret manager)Default recommendation for first pilots: Model A or B — Engine OSS only in a private VPC. No Engine Cloud build required.
How OSS runtimes connect to Engine Cloud (when enabled)
The public repo includes hooks only — not the Cloud service itself:
ENGINE_OAUTH_API_KEYCredentialStore.with_engine_sync(base_url=...)EngineCredentialClient/EngineSyncProviderengine.credentials.engine— not in public repo)HUBSPOT_CLIENT_ID,GOOGLE_CLIENT_ID, etc.Runtime behavior with Cloud configured:
If
ENGINE_OAUTH_API_KEYis unset, OSS uses local-only storage — same as Model A/B.Code reference (OSS):
core/engine/credentials/store.py→CredentialStore.with_engine_sync()When clients need Engine Cloud vs OSS only
app.you.com)What is not in the public repo today
api.*host)engine.credentials.enginesync client packageOSS ships stubs and env vars so runtimes can sync when Cloud is available; pilots do not depend on it.
Engine Cloud + client VPC (hybrid)
Common enterprise pattern:
./engine run/./engine serve3. All Ways a Client Can Use EngineX
./engine run <agent> --input '{...}'./engine run <agent> --daemon --require-live./engine run./engine run <agent> --tui./engine servethen browser:8787./engine validate <agent>./engine setup-credentials <agent>Deployment pattern comparison
4. Installation
4.1 Prerequisites (client provides)
uv)~/.engine(or setENGINE_HOME)4.2 Base install (both headless and with UI)
Or manually:
4.3 Headless install (no dashboard)
Skip the frontend build. Client only needs Python deps + agent path.
Production service example (systemd):
sudo cp examples/templates/log_monitor/deploy/engine-log-monitor.service /etc/systemd/system/ sudo systemctl enable --now engine-log-monitorService runs:
/opt/engine/engine run examples/templates/log_monitor --daemon --require-live4.4 Install with web dashboard (“head” / UI mode)
Open
http://<host>:8787(put TLS + auth proxy in front for production).Dashboard provides:
5. Inputs the Client Must Provide
5.1 Required for every deployment
ANTHROPIC_API_KEYorOPENAI_API_KEYin envexamples/templates/log_monitor~/.engineorENGINE_HOME=/data/engineOptional LLM alternative: local Ollama — configure in
~/.engine/configuration.json(no cloud API key).5.2 Recommended for production
ENGINE_CREDENTIAL_KEY~/.engine/secrets/credential_key/etc/engine/log-monitor.env5.2A Engine Cloud only (Model C — optional)
Skip this section for Model A/B (OSS-only in client VPC).
ENGINE_OAUTH_API_KEYCredentialStore.with_engine_sync(base_url=...)https://api.localhost(replace in production)Without these, OSS falls back to local-only vault (
~/.engine/credentials/).5.3 Per-agent / per-integration inputs
Clients only configure what their chosen agent uses:
GRAFANA_URL,GRAFANA_API_TOKEN,GRAFANA_DATASOURCE_UID,SLACK_WEBHOOK_URL, optional PagerDuty/Jira vars--inputor--input-file)HUBSPOT_CLIENT_ID+HUBSPOT_CLIENT_SECRET(dashboard OAuth)GOOGLE_CLIENT_ID+GOOGLE_CLIENT_SECRET(dashboard OAuth)uv sync --extra browser)Run guided setup for any agent:
5.4 Run-time inputs (when executing an agent)
--input'{"message": "help with billing"}'--input-filecase.json--modelanthropic/claude-sonnet-4-20250514--resume-sessionsession_20250614_…--checkpointcp_node_complete_…--outputresult.json--quiet6. How Clients Use EngineX — End-to-End Flows
6.1 Headless automation flow
Client steps:
/etc/engine/<agent>.env../engine validate examples/templates/log_monitor./api/metrics(if serve is also running), or external alerting.6.2 Dashboard + human-in-the-loop flow
Client steps:
./engine serve --host 0.0.0.0.6.3 One client = one install (isolation)
OSS does not partition credentials by tenant inside one install. Each client gets a separate deployment and separate
~/.enginevolume — unless you add Engine Cloud (Section 2A) for multi-tenant SaaS.7. Shipped Workflow Templates
agreement_analysislog_monitor--daemonsupport_triageinvoice_reviewmeeting_schedulerhourly_trackingdeep_researchsupervisors/*supervised_agreement_analysisList and validate:
8. Storage & Backup (no database)
~/.engine/agents/<agent>/sessions/~/.engine/credentials/~/.engine/secrets/credential_key~/.engine/configuration.json~/.engine/skills/Client backup plan: snapshot or replicate the
~/.enginevolume (orENGINE_HOMEmount).9. Security Checklist for Client Cloud
ENGINE_CREDENTIAL_KEYand rotate per environment~/.engine10. Quick Reference — Commands
11. Client Decision Tree
flowchart TD Start["Client wants EngineX"] --> Q0{"Multi-customer SaaS<br/>or central connector hub?"} Q0 -->|Yes| Cloud["Engine Cloud + OSS runtimes<br/>Model C — see Section 2A"] Q0 -->|No| Q1{"Need browser UI<br/>for ops or HITL?"} Q1 -->|No| Headless["Headless: ./engine run only<br/>No frontend build"] Q1 -->|Yes| Dashboard["Build frontend + ./engine serve"] Q1 -->|Both| Hybrid["Daemon workers + dashboard for ops"] Headless --> Q2{"Continuous or scheduled?"} Q2 -->|Continuous| Daemon["--daemon --require-live + systemd"] Q2 -->|Scheduled| Cron["cron / K8s CronJob + --input"] Dashboard --> Q3{"OAuth integrations?"} Q3 -->|Yes| OAuth["Set CLIENT_ID/SECRET<br/>Connect in Credentials UI<br/>(or Engine Cloud vault)"] Q3 -->|No| EnvOnly["Env vars + setup-credentials CLI"] Daemon --> Done["Mount ~/.engine volume<br/>Inject LLM + agent secrets"] Cron --> Done OAuth --> Done EnvOnly --> Done Hybrid --> Done Cloud --> Done12. Support / Handoff Checklist
When onboarding a client, collect:
~/.engine:8787securely (VPN/SSO proxy, or Engine Cloud SSO)13. Related Links
examples/templates/log_monitor/README.mdexamples/templates/integrations/README.mdexamples/templates/README.mdCase study usage
Document version: 2026-06-28 — EngineX OSS + Engine Cloud overview