:3000 Stable addresses for every local app.
Cadder coordinates Caddy across your local projects. Caddy is the reverse proxy that connects each local address to the port where an app is running. With Cadder, routes from different repositories are served together by one Caddy process.
npx cadder tui --start-daemon Caddy is required. Install it on this machine and make sure caddy
is available in your shell. Install Caddy
Projects keep their own Caddyfiles.
:4000 Cadder combines active routes into one synchronized configuration.
- combines active routes
- rejects conflicts
- tracks ownership
Caddy serves the combined routes and forwards each request to the right app.
- serves active routes
- receives local requests
- forwards requests to apps
See every route in one place.
Section titled “See every route in one place.”cadder tui shows which project owns each address, where requests go, and whether Cadder and Caddy are running. Select a project or route to enable or disable it without touching the others.
What Cadder adds around Caddy.
Section titled “What Cadder adds around Caddy.”Keep projects independent.
Each project keeps its own Caddyfile. caddy run registers it with Cadder.
Reject collisions.
Cadder checks route ownership and blocks conflicting active addresses before applying a change.
See the complete picture.
Cadder connects projects, local addresses, ports, logs, and Caddy state in one view.
Change one route at a time.
Enable or disable one domain while unrelated local routes stay active.
How to start.
Section titled “How to start.”Each project can define its own reverse-proxy route. Cadder combines the active routes and keeps one shared Caddy process synchronized.
The Caddyfile format belongs to Caddy: Caddy defines it and turns it into server configuration. Cadder reads that result only to coordinate the local address with the right app port.
shop.localhost {
reverse_proxy localhost:3000
}Then run this command inside that project:
caddy runThe route appears in cadder tui, where you can inspect its owner, target, and activation state.