Skip to main content
Overlay publishes a small bootstrap script at /install.sh. It installs a Docker-backed overlayctl manager and runs prebuilt GHCR images, so operators do not need to clone or build the repository.
The installer is a short-lived privileged operation. It mounts the Docker socket, which is equivalent to host-root access. Inspect the script and image reference before running it. The installer image exposes no port and exits after writing the requested configuration or invoking Docker Compose; never run it as a persistent service.
For an inspectable install:
For controlled production installations, set OVERLAY_INSTALLER_IMAGE to a reviewed immutable GHCR digest from the release’s provenance attestation rather than relying on a mutable tag.

What It Creates

Default paths: The generated deployment uses the enterprise-private preset and is private/off by default. Browser use, sandboxes, integrations, web search, analytics, error reporting, billing, webhooks, API keys, vector search, memory, knowledge, automations, and file upload are disabled until an operator edits config and runs:
Database remains convex for v1. Set NEXT_PUBLIC_CONVEX_URL in /opt/overlay/.env, and set the matching INTERNAL_API_SECRET in the Convex deployment.

Install Options

Commands

Common Config Edits

Disable external processors:
Enable S3-compatible storage:
Then set S3 credentials in /opt/overlay/.env, not in JSON. Enable OIDC:
Set OIDC_CLIENT_SECRET in /opt/overlay/.env. Enable direct OpenAI models:
Set OPENAI_API_KEY in /opt/overlay/.env.

Troubleshooting

Run:
Common issues: The public script is intentionally small. The long-lived operator interface is overlayctl plus Docker Compose, not a privileged daemon.