docs: add OpenShell local Docker guide#971
Conversation
|
All PRs must reference a prior Discord discussion to ensure community alignment before implementation. Please edit the PR description to include a link like: This PR will be automatically closed in 3 days if the link is not added. |
Address reviewer feedback: - Single linear flow (providers → sandbox → policy → connect) - Clarify credential lifecycle and persistence - Add --wait flag and explain default-deny behavior
- Merge all steps into one contiguous copy-paste block - Add credential management table with revocation info - Expand port forwarding with multi-port example - BYOC section now includes full worked example with pre-built OAB - Cleanup section covers both sandbox and providers
|
LGTM ✅\n\n| # | Severity | Finding | Location |\n|---|----------|----------|----------|\n| 1 | 🟢 | The flow is now linear and much easier to follow; removing the create/delete/recreate loop is a solid improvement. | |\n| 2 | 🟢 | The credential section now clearly separates host-side provider setup from sandbox runtime behavior. | |\n| 3 | 🟢 | The policy section now states the default-deny behavior explicitly, which helps avoid misconfiguration. | |\n\nWhat This PR Does \nAdds a new OpenShell guide for running OAB in a local Docker-backed sandbox, covering providers, network policy, port forwarding, and BYOC.\n\nHow It Works \nThe doc now presents a single linear setup: create providers, create the sandbox with those providers, apply policy, connect, and run OAB. It also documents the runtime assumptions around credential injection and egress restrictions.\n\nFindings\n\n| # | Severity | Finding | Location |\n|---|----------|----------|----------|\n| 1 | 🟢 | Nice cleanup of the setup sequence; the instructions are now much more actionable. | — |\n| 2 | 🟢 | Good clarification that provider secrets are read once and persist in OpenShell state instead of living in the sandbox filesystem. | — |\n| 3 | 🟢 | Explicit and default-deny wording improves operator confidence. | — |\n\n \n \n\nFinding Details\n\n### 🟢 F1: Linear flow\nMuch better now: providers → sandbox → policy → connect. This removes the ambiguity and lifecycle churn from the earlier version.\n\n### 🟢 F2: Credential boundary clarified\nThe distinction between host env, provider creation, and sandbox runtime is now clear enough for readers to reason about secret handling.\n\n### 🟢 F3: Policy semantics clarified\nCalling out and default-deny egress makes the security posture much easier to understand at a glance.\n\n\n \n\nBaseline Check\n\n- PR opened: 2026-06-01\n- Main already has: general local-dev and config docs, but no OpenShell-specific guide\n- Net-new value: a dedicated OpenShell workflow for running OAB locally with sandboxing\n\n\n
What's Good (🟢)\n\n- Clear step-by-step structure.\n- Good security-oriented coverage.\n- BYOC section is isolated cleanly from quick start.\n\n |
- Show config.toml setup (cp example + edit channel ID) - Clarify host vs sandbox boundary with sandbox$ prefix - Add DNS note explaining hostname resolution behavior - Separate policy apply step into its own section (host terminal)
Users should download the release tarball, not compile from source.
|
LGTM ✅ — Operationally complete local Docker guide What This PR DoesAdds How It WorksPre-built binary download → credential injection via providers → network policy enforcement → port forwarding for webhooks. Includes BYOC custom image example. Findings
Review SummaryReviewers
Changes Made During Review
|
OpenAB PR ScreeningThis is auto-generated by the OpenAB project-screening flow for context collection and reviewer handoff.
Screening reportscreened PR #971 and moved the project item to `PR-Screening`.GitHub comment: #971 (comment) IntentAdd an OpenShell local Docker guide for OpenAB. It targets the operator problem of getting OAB running in an NVIDIA OpenShell sandbox with credentials, network access, webhook forwarding, and cleanup documented clearly. FeatDocs work. Adds Who It ServesDeployers and agent runtime operators evaluating OpenShell as an OpenAB sandbox/runtime environment. Rewritten PromptCreate Merge PitchThis is low code risk because it is docs-only, but it can still mislead operators if commands, network policy, or secret handling are wrong. Main reviewer concern: the PR is labeled Best-Practice ComparisonOpenClaw and Hermes Agent only lightly apply. This PR does not implement scheduling, durable jobs, delivery routing, retries, file locking, run logs, or fresh scheduled sessions. The useful lesson is to document isolation, state persistence, credentials, logs, and cleanup explicitly so OpenShell is not confused with a durable gateway-owned job system. Implementation OptionsConservative: verify the guide and merge only the new docs page. Balanced: verify commands, add the missing discussion URL, link the guide from docs/README, and add short troubleshooting notes. Ambitious: maintain an official BYOC image, example config, smoke-test checklist, and docs validation for shell snippets. RecommendationUse the balanced path. Ask for the full Discord Discussion URL and command validation first, then review the guide for safe secret handling, network accuracy, and discoverability. Keep BYOC automation and CI snippet validation as follow-ups unless OpenShell becomes an officially maintained deployment path. |
- provider create: --type generic --credential KEY=VALUE (not --env) - openab run (not serve) - sandbox exec requires -n flag for name - default-deny egress: download binaries on host, docker cp in - policy update --add-endpoint format (not YAML file) - codex OAuth headless auth flow for native agent - note about provider credential references vs raw tokens - add required endpoints table by backend
OpenShell requires: - A 'sandbox' user/group (uid/gid 1000660000) - iproute2 for network namespace creation
Add OpenShell sandbox support for running OAB in an isolated, policy-enforced container via NVIDIA OpenShell.
Changes
docs/openshell.md— full guide: prerequisites, quick start, network policy, cleanupopenshell/Dockerfile— sandbox-ready image based onopenab-native(addssandboxuser +iproute2).github/workflows/build-operator.yml— addsopenab-native-sandboxto Docker build matrix.github/workflows/docker-smoke-test.yml— adds smoke test for the sandbox imageImage
Built from
openshell/Dockerfile, extendsopenab-native:betawith OpenShell requirements:sandboxuser/group (uid/gid 1000660000)iproute2for network namespace creationUsage
Tested
Verified end-to-end on zf (Ubuntu 24.04 x86_64) with OpenShell v0.0.53 — bot connected to Discord and responded to messages.
Thread: 1511138789836456127