opendevhub

Known limitations

What opendevhub doesn't handle yet.

Ports and networking

  • forwardPorts entries that name another compose service (for example "db:5432") are not forwarded yet.
  • Forwarded ports are only open while opendevhub is running.
  • Forwarded ports go through a small relay that opendevhub starts inside the container, so apps bound to the container's localhost work too. The relay runs on the opencode binary (Bun mode) or node; if neither can run it, forwarding connects directly and only apps listening on 0.0.0.0 are reachable (the project log says so).
  • http://<project>.localhost:7777 relies on the browser resolving subdomains of localhost to loopback, as Chrome and Firefox do.
  • Containers using --network=host are not supported.
  • Host ports need the relay; when it can't run in a container, they are unavailable there (the checkout page and log say so).
  • Host ports only work while opendevhub is running; otherwise connections to them inside the container are refused.
  • A host port keeps its number: it can't be mapped to a different port, and it only reaches your machine's loopback, not other addresses like 192.168.1.10:5432.
  • Host ports are shared by all tasks of a project, so tasks using one browser can get in each other's way.

Containers and worktrees

  • Worktree folder paths containing a comma can't be mounted (Docker's --mount syntax).
  • Own containers don't support Docker Compose configs, appPort, runArgs that publish ports, host networking, or lifecycle commands that use ${containerWorkspaceFolder}; such projects run tasks in the shared container and say why.
  • A Dockerfile whose build context reaches outside .devcontainer can change without opendevhub noticing; remove the opendevhub/<project>:* images to force a rebuild.

Git and credentials

  • ssh host aliases from ~/.ssh/config (remotes like work:team/app.git) are not resolved inside containers.
  • ssh-agent forwarding needs the relay; when the relay can't run, the agent isn't forwarded (the checkout page and log say so).
  • https git credentials and commit signing (GPG or ssh) are not set up in containers.
  • The opencode password is passed through devcontainer exec --remote-env, so other users on the same machine can see it in the process list while the command runs.

On this page