Deployment terms
If desktops have internet access and Den is private, start with Private network deployment. If you need to inventory domains, use Outbound network access. If TLS inspection or private roots are involved, use Certificate trust and proxies.
Full isolation checklist
Use this checklist only when the goal is a fully isolated OpenWork deployment, not just private Den or internal installer delivery.Deployment artifacts
- Mirror the GHCR Helm chart into an internal OCI registry.
- Mirror all enabled images into an internal registry, including
openwork-den-api,openwork-den-web, andopenwork-inferenceif inference is enabled. - Configure Helm image repositories and chart installation to use the internal registry. The public
ghcr.iopath is only needed when you are not mirroring the chart and images.
Installer artifacts
- Mount the standard release installer files into Den and set
OPENWORK_INSTALLER_ARTIFACTS_DIRto that mount path. - Use
OPENWORK_INSTALLER_RELEASE_TAGto select the expected standard filenames. The version inside each filename is the tag without a leadingv. - Use
OPENWORK_INSTALLER_RELEASE_REPOonly for the GitHub redirect path when mounted artifacts are not present; it is not an internal artifact registry override. - Mount the same read-only installer artifact PVC across every Den API replica. Den streams the mounted file; it does not fetch, cache, rewrap, or ZIP installer bytes.
Desktop runtime dependencies
- Point
OPENCODE_MODELS_URLat an internal mirror of the model catalog. The default catalog ishttps://models.openworklabs.com/. - The packaged desktop can start the UI-control MCP with
npx -y openwork-ui-mcp. In a fully isolated environment, provide an internal npm registry or npm mirror that can serve that package tonpx. OpenWork does not currently document a separate OpenWork-specific registry override for this package; use standard npm configuration for the runtime account. - Disable, mirror, or manage desktop updates and GitHub release assets through your internal release process. Do not assume a built-in updater mirror setting unless it has been verified for the desktop release you ship.
Feature dependencies
- Optional providers, MCP servers, OAuth identity providers, and email services are unavailable unless they are internally reachable and approved. Examples include Google Workspace, Microsoft 365, GitHub plugin import, OpenRouter/OpenAI, Slack/Notion/Linear/Sentry/Stripe MCP presets, SMTP, and Resend.
- If you enable the GitHub connector, approve the exact GitHub API/webhook paths or mirror the workflow it needs. Start with the GitHub connector Helm guide.
- If you enable internal MCP URLs, review the private-network SSRF policy in Private network deployment. Enabling private MCP URLs is a trust decision, not an air-gap requirement.
Security and diagnostics
- Install private roots and proxy configuration for the correct trust surface: desktop Electron/Chromium, spawned local runtimes, Den containers, and MySQL TLS do not all use the same store. See Certificate trust and proxies.
- Use Network diagnostics to separate desktop DNS/TLS/proxy issues from Den outbound checks.
- Helm already disables the external breached-password lookup by default for isolated self-hosted installs. Enable it only if your security team approves the external Have I Been Pwned range API path.