Running the Gateway as a Container
Use this approach when you want to run the OpenShell gateway as a container instead of installing it with the system package manager. This is useful on immutable OS distributions (Fedora CoreOS, bootc-based images, Silverblue) where the standard installer is not appropriate, or anywhere you prefer a container-first workflow.
The gateway image is published at ghcr.io/nvidia/openshell/gateway.
Quick Start
This example runs the gateway locally with TLS disabled. It is suitable for development on a single machine. Binding to 127.0.0.1 prevents remote access without authentication.
Register the gateway with the CLI:
Confirm the CLI can reach the gateway:
Disabling TLS removes authentication. Binding to 127.0.0.1 limits access to the local machine. If you expose the port on 0.0.0.0, enable mTLS to prevent unauthenticated access.
Full mTLS Setup
To run the gateway with mutual TLS, generate the PKI bundle first, then start the gateway with the cert paths configured.
Bootstrap the PKI into a local state directory:
This writes the server and client certificates under ~/.local/state/openshell/tls/ and copies the client bundle to ~/.config/openshell/gateways/openshell/mtls/ so the CLI picks it up automatically.
Start the gateway with mTLS enabled:
Register the gateway with mTLS:
Docker Compose
Save the following as compose.yml. This uses the TLS-disabled configuration bound to localhost, suitable for local development.
Start the gateway:
Register the gateway with the CLI:
Using Podman
Replace docker with podman in the commands above. Mount the Podman socket instead of the Docker socket and set the driver to podman:
Next Steps
- To create your first sandbox, refer to the Quickstart.
- To control what the agent can access, refer to Policies.
- For environment variable reference, refer to Sandbox Compute Drivers.