fix: update feature for current gmuxd config model#2
Merged
Conversation
Breaking changes from the gmuxd config restructure: - config.toml was renamed to host.toml - [network] section removed; bind address is now GMUXD_LISTEN env var - Port is a top-level field, not nested under [network] - gmuxd rejects unknown config keys, so the old format fails at startup Changes: - Remove config file generation entirely. Use GMUXD_LISTEN=0.0.0.0 via containerEnv instead of writing a host.toml. - Use default port 8790 (was 8791). Containers have their own network namespace so there's no conflict; VS Code auto-resolves host port conflicts when forwarding. - Simplify entrypoint: no config copy dance, just start gmuxd. - Fix gmuxd auth-link (doesn't exist) to gmuxd auth. - Fix dead link to /develop/network-listener (deleted). - Add GMUXD_TOKEN documentation for pre-provisioned tokens. - Bump version to 1.1.0.
This was referenced Apr 4, 2026
mgabor3141
added a commit
to gmuxapp/gmux
that referenced
this pull request
Apr 4, 2026
Small update to the Peer Discovery & Aggregation planned page to reflect the current state of the devcontainer feature: - Container discovery signal is `devcontainer.metadata` label (from the devcontainer spec), not a custom `gmux.peer=true` label - Feature uses `GMUXD_LISTEN=0.0.0.0` via `containerEnv`, not a config file - Document two approaches for host-side token acquisition: `GMUXD_TOKEN` for managed lifecycle, `docker exec gmuxd auth` for existing containers - Fix Tailscale capitalization Companion to gmuxapp/features#2 which fixes the feature itself.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The gmuxd config model changed (config.toml → host.toml,
[network]section removed, bind address moved toGMUXD_LISTENenv var). The feature was writing the old format, which gmuxd now rejects at startup due to strict unknown-key validation.Also fixes a port mismatch bug: the old entrypoint health-checked port 8790 but the config bound to 8791, so the "already running" check never succeeded.
Changes
Config approach: removed config file generation entirely. The bind address is now set via
containerEnvin the feature JSON (GMUXD_LISTEN=0.0.0.0), which is the proper mechanism for devcontainer features. No host.toml is written; gmuxd uses all defaults.Port: 8791 → 8790 (the default). Containers have their own network namespace, so there's no port conflict inside the container. For VS Code port forwarding, it auto-resolves conflicts if the host port is taken. Using the default port means zero config.
Entrypoint: simplified. The old entrypoint copied a bundled config file to the user's config dir on first boot. With env vars handling the bind address, the entrypoint just starts gmuxd.
Docs:
gmuxd auth-link→gmuxd auth(the command that actually exists)/develop/network-listener→/security/GMUXD_TOKENsection showing how to pre-provision a known token viacontainerEnvin devcontainer.jsonVersion: 1.0.0 → 1.1.0
Supersedes #1. The remote user handling and post-attach auth notice from that PR are worth doing but are improvements, not fixes for the broken config. They can be follow-ups.
Known limitation
gmuxd runs as root (the container's default user). In devcontainer images that use a non-root remote user (e.g.
vscode), runninggmuxd authfrom a terminal inside the container won't find the Unix socket. Browser access via port forwarding works fine, anddocker exec <container> gmuxd auth(which runs as root) also works. Running gmuxd as the remote user requires baking_REMOTE_USERinto the entrypoint at install time, which is a follow-up.