hundreds-twilight-32833
04/14/2026, 2:12 PMimportant-diamond-63626
04/14/2026, 2:55 PMimportant-diamond-63626
04/14/2026, 2:56 PMhundreds-twilight-32833
04/14/2026, 3:19 PMserve was pretty straightforward for me once I had Docker Desktop running. I've been using it on projects along with the CLI inside vscode. I know some folks are more interested in getting a standalone external server setup where they can load up OpenHands for a specific project. I've been using the cloud (https://app.all-hands.dev/) to do some vibe coding on the go but I also want to try getting my own instance running too.hundreds-twilight-32833
04/14/2026, 4:46 PMambitious-microphone-55463
04/15/2026, 1:16 PM--network host removes network isolation, which is a trade-off we accepted because our main blocker was VPN/DNS access from containers. Our dev machines are already inside the corporate network, so the risk profile is low for this use case. For our planned internal production deployment on Kubernetes, we expect most of these networking workarounds to be unnecessary since the cluster is already inside the corporate network with proper DNS and routing.
Setup: Docker Compose, --network host for both the main container AND sandbox (SANDBOX_USE_HOST_NETWORK=true), plus a custom Python reverse proxy between OpenHands and our LLM API.
Issues we hit:
1. DNS + VPN routing in containers: Bridge-mode containers can't resolve or route to internal corporate domains. We had to set our VPN DNS server in /etc/docker/daemon.json AND switch everything to --network host. This is probably the #1 blocker for anyone behind a corporate VPN.
2. host.docker.internal not resolved in host network mode: When sandbox runs in --network host, it can't resolve host.docker.internal (used for webhook/MCP communication back to the main container). We had to manually add 127.0.0.1 host.docker.internal to /etc/hosts. It would be great if OpenHands could fall back to localhost or 127.0.0.1 when in host network mode.
3. litellm parsing crash on token details: Our LLM gateway returns integer values in prompt_tokens_details and completion_tokens_details (specifically a cache_creation_token_details field). litellm chokes on these. We built a reverse proxy that intercepts responses and sanitizes those fields to null. This is really a litellm issue, but it bit us through OpenHands.
4. Orphaned sandboxes + port conflicts: In host network mode, all sandboxes share the same port namespace. If an old sandbox isn't cleaned up, port 8000 stays occupied and new sandboxes fail silently or with Address already in use. We added auto-cleanup of oh-agent-server-* containers to our start/stop scripts.
5. GUI overwrites settings.json: The OpenHands GUI sometimes strips critical LLM provider fields (provider, base_url, models) from settings.json, breaking the connection. We have to re-inject them manually.
6. Sandbox startup timeout: The hardcoded 15s timeout is tight. If the agent-server image isn't cached, the sandbox fails. Pre-pulling images before startup solved it.
What made our life easier:
• A Makefile wrapping everything: make setup (prerequisite checks), make init (settings template), make auth (daily token rotation), make start/stop/restart;
• Pre-pull of Docker images before docker-compose up
• Automatic cleanup of orphaned sandboxes on both start and stop
• A dedicated reverse proxy for LLM response sanitization
Feature requests that would help corporate/VPN users:
• Better documentation for --network host + VPN setups
• Fallback from host.docker.internal to localhost when in host network mode
• Configurable sandbox startup timeout
• More resilient settings.json management (GUI shouldn't strip provider fields)
Happy to share our setup scripts if useful. Overall, once we figured out the networking layer, it's been solid!hundreds-twilight-32833
04/15/2026, 1:58 PMbetter-monitor-61654
04/18/2026, 7:07 AMelegant-branch-54423
04/18/2026, 9:46 PMWhat a normal developer expects is an app that works on localhost or behind a simple reverse proxy. If this basic use case is not supported, it's clear that the company has other intentions.I think our CEO addressed this concern in this post on GitHub. It's definitely a reasonable use case to support; do you have a link to that PR we can pass along to our engineers? V1 has made some breaking changes but we're open to PRs to make sure we address any gaps like this 🙂 Thanks again for all your help and contributions!
better-monitor-61654
04/19/2026, 6:28 AM