Getting started
By the end of this guide, one project will be registered with Cadder and visible from both the terminal and the TUI.
Keep the release together. Use cadder, cadderd, and the caddy shim from the same release. Cadder rejects mixed versions before changing runtime state.
-
Download Cadder.
Download the release archive and its matching SHA-256 file for your platform. Verify the archive, then extract
cadder,cadderd, and thecaddyshim into one user-owned directory.See Releases for the supported archives and upgrade path.
-
Add the Cadder directory to PATH.
Add the directory containing all three executables to your user PATH. Cadder does not change PATH for you.
-
Select the real Caddy executable.
Copy
cadder.toml.exampletocadder.tomlbeside the executables, then set one real Caddy source.Windows:
[caddy]real_path = "C:/Tools/caddy/caddy-real.exe"macOS and Linux:
[caddy]real_path = "/usr/local/bin/caddy-real"You may set
real_commandinstead ofreal_path, but never both. See Configure real Caddy for the selection order. -
Run a managed project.
Open a project that contains a Caddyfile and run the command it already uses:
caddy runThe shim starts or attaches to
cadderd, registers the project routes, and keeps the registration alive until the command exits. Start other projects the same way. -
Confirm the current state.
cadder statuscadder projects listcadder domains listThese commands show the daemon, real Caddy, registered projects, and registered domains without opening the full-screen interface.
-
Open the operator.
cadder tui --start-daemonThe option starts or attaches to
cadderdbefore the operator opens. Use Up and Down to select a project or domain. Space and Enter toggle it. Stop and Restart ask for confirmation before changing the runtime.
If the route is not working
Section titled “If the route is not working”Start with the boundary closest to the problem:
cadder caddyfile inspect ./Caddyfilecadder port inspect 3000cadder diagnosticsUse CLI and TUI for domain inspection, bounded logs, and the guarded port-owner command.