Known limitations
What opendevhub doesn't handle yet.
Ports and networking
forwardPortsentries 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
localhostwork too. The relay runs on the opencode binary (Bun mode) ornode; if neither can run it, forwarding connects directly and only apps listening on0.0.0.0are reachable (the project log says so). http://<project>.localhost:7777relies on the browser resolving subdomains oflocalhostto loopback, as Chrome and Firefox do.- Containers using
--network=hostare 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
--mountsyntax). - Own containers don't support Docker Compose configs,
appPort,runArgsthat 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
.devcontainercan change without opendevhub noticing; remove theopendevhub/<project>:*images to force a rebuild.
Git and credentials
- ssh host aliases from
~/.ssh/config(remotes likework: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.