Contributing
Build, test, and update devproxy and its documentation.
Repository layout
| Path | Purpose |
|---|---|
cmd/devproxy | CLI commands and child process management. |
internal/devproxy | Registration API, dashboard, lease handling, and Caddy configuration. |
caddy | Compose service and initial Caddyfile. |
skills/devproxy | Agent instructions for projects using devproxy. |
docs | This standalone Fumadocs app. |
Test the Go code
go test ./...
DEVPROXY_TEST_CADDY=1 go test ./...The second command also tests Caddy configuration and routing in Docker.
Inspect the CLI specification
The project pins usage in mise.toml. Install it with mise install, then
export or check the Cobra command specification:
just usage-spec > devproxy.usage.kdl
just usage-lint
mise exec -- usage generate markdown --file devproxy.usage.kdl > devproxy-cli.mddevproxy --usage-spec also prints the specification directly. The export is
generated from Cobra's command tree; it does not capture all runtime checks,
configuration sources, output schemas, or the required -- before a child
command in run. Keep the handwritten CLI reference and behavioral tests as
the source for those details.
Edit these docs
The documentation app uses Node.js 22 or newer. From the repository root:
cd docs
npm install
npm run devOpen http://localhost:3000/docs. Pages live in docs/content/docs; meta.json controls their sidebar order. Run npm run build before submitting docs changes. The .source directory is generated by Fumadocs and should not be edited.
Deploy docs as its own application, with docs as the hosting project's root directory. Its built in docs route is /docs. A dedicated docs subdomain can serve that route directly; a main site can also forward /docs/* to this deployment.