Skip to content
Marschux edited this page Oct 20, 2026 · 1 revision

The tab System holds Status, Changes, Logs, Backup and the base Caddyfile.

Status

Every account can open the status page. It checks the connection to Caddy and the base Caddyfile, and for each missing piece shows what to add. Details that could reveal a secret, such as Caddy's own error messages about a snippet, are shown only to accounts with the right Settings: Caddy.

Among the checks:

  • The base Caddyfile is readable (or stored, for "Network only") and imports the sites directory.
  • Each named snippet exists and stands above the import of the routes; Caddy understands each DNS snippet.
  • The ACME CA behind the TLS snippet answers.
  • The admin API is reachable, asks for a login, and its stored password is readable.
  • For an https:// admin API, the remembered CA and its check code.
  • Allowed networks see the real visitor (no trusted_proxies trusting too wide a range).
  • The root CA can be downloaded.
  • HTTPS in front of Caddyman is recognised.

The page keeps its results for 10 seconds, so a fix made by hand to the base Caddyfile can take that long to show.

Reload Caddy sends the configuration to Caddy again. With "Network only", use it after Caddy restarted without --resume, or after changing the base Caddyfile.

Recent changes

Every write is listed with time, account, route, action and whether Caddy took it: routes created, changed, switched or deleted, groups renamed, imports and reloads. Every account can see it. Times are shown in the time zone from Settings → General, or TZ.

Logs

Caddy's own log, newest first, filterable by level, with admin API requests hidden on request. Live fetches new entries every 5 seconds (every 20 with "Network only"). Older entries reads further back, including rotated and packed files. Each file can be downloaded. Needs the right Logs.

The page explains its own setup until it finds a log:

  1. Let Caddy write its log to a file, with a second logger in the global options of the base Caddyfile (the block is on the page and in the example Caddyfile). docker logs keeps working.
  2. Shared files: mount Caddy's log directory read-only into Caddyman at /var/log/caddy, and restart both containers. Network only: serve the log directory from the admin site with handle_path /caddyman-logs/* (block in the README).

Routes with Write an access log each get a file of their own, listed next to caddy.log.

Backup and import

Download backup gives one ZIP with all routes, the groups, the base Caddyfile and the settings. Not in it: the root CA, the accounts and any password. Back up your CA separately; a lost root has to be imported on every device again.

Import shows first what an archive would change, file by file: created, overwritten or unchanged. Nothing is written before you confirm. All routes go to Caddy in one reload: either the whole archive is live afterwards or none of it. Routes on disk that are not in the archive are kept.

Into an empty install, the Caddy settings, switches and mail settings come back too; that needs the rights for those settings. Export and import both need the rights Backup and import and Change routes.

Caddyfile

Shows the base Caddyfile read-only: the mounted file with "Shared files", the stored copy with "Network only". It needs the right Settings: Caddy, because snippets can hold API tokens and passwords. To change the copy for "Network only", use Settings → Caddy.

Clone this wiki locally