The gateway is the control plane for OpenShell. All control-plane traffic between the CLI and running sandboxes flows through it. The gateway is responsible for:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/NVIDIA/OpenShell/llms.txt
Use this file to discover all available pages before exploring further.
- Provisioning and managing sandboxes, including creation, deletion, and status monitoring.
- Storing provider credentials and delivering them to sandboxes at startup.
- Delivering network and filesystem policies to sandboxes. Enforcement happens inside each sandbox through the proxy, OPA, Landlock, and seccomp.
- Managing inference configuration and serving inference bundles.
- Providing the SSH tunnel endpoint so you can connect to sandboxes without exposing them directly.
Deploy a local gateway
Start the gateway
Deploy a gateway on your workstation. The only prerequisite is a running Docker daemon.The gateway becomes reachable at
https://127.0.0.1:8080.Deploy a remote gateway
Deploy a gateway on a remote machine accessible via SSH. The only dependency on the remote host is Docker.For DGX Spark, use your Spark’s mDNS hostname:
Register an existing gateway
Useopenshell gateway add to register a gateway that is already running.
- Cloud gateway
- Remote gateway
- Local gateway
Register a gateway behind a reverse proxy such as Cloudflare Access:This opens your browser for the proxy’s login flow. After authentication, the CLI stores a bearer token and sets the gateway as active.To give the gateway a specific name:If the token expires later, re-authenticate with:
Authentication
| Gateway type | Auth mechanism |
|---|---|
| Local | mTLS — client certificate issued by the gateway PKI |
| Remote (SSH) | mTLS over SSH tunnel |
| Cloud | Browser-based login flow; CLI stores a bearer token |
--plaintext and --disable-gateway-auth when deploying behind a TLS-terminating reverse proxy that cannot forward client certificates.
Manage multiple gateways
One gateway is always the active gateway. All CLI commands target it by default. Bothgateway start and gateway add automatically set the new gateway as active.
List all registered gateways and select the active one interactively:
-g:
Advanced start options
| Flag | Purpose |
|---|---|
--gpu | Enable NVIDIA GPU passthrough. Requires NVIDIA drivers and the Container Toolkit on the host. |
--plaintext | Listen on HTTP instead of mTLS. Use behind a TLS-terminating reverse proxy. |
--disable-gateway-auth | Skip mTLS client certificate checks. Use when a reverse proxy cannot forward client certs. |
--registry-username | Username for registry authentication. Defaults to __token__ when --registry-token is set. Also configurable with OPENSHELL_REGISTRY_USERNAME. |
--registry-token | Authentication token for pulling container images. For GHCR, a GitHub PAT with read:packages scope. Also configurable with OPENSHELL_REGISTRY_TOKEN. |
Stop and destroy
For cloud gateways,
gateway destroy removes only the local registration. It does not affect the remote deployment.Troubleshoot
Check gateway health:Next steps
Manage sandboxes
Create sandboxes, connect to them, and manage their lifecycle.
Quickstart
Install the CLI and run your first sandbox end to end.