How to use Caddyfile Configuration Generator
Get the best out of Caddyfile Configuration Generator: every option explained, a worked example, and what to check when the output is not what you expected.
Updated July 31, 2026
What it does
Build production-ready Caddyfile configs for reverse proxy apps and static sites with secure defaults. It runs entirely in your browser — your input never leaves your device.
Options
Every setting this tool exposes, straight from the code that validates it.
| Option | Type | Default | What it does |
|---|---|---|---|
siteMode | one of: reverse-proxy, static | reverse-proxy | Defaults to reverse-proxy. |
domain | text | app.example.com | Defaults to app.example.com. |
email | text | ops@example.com | Defaults to ops@example.com. |
rootPath | text | /srv/www/app | Defaults to /srv/www/app. |
upstream | text | 127.0.0.1:3000 | Defaults to 127.0.0.1:3000. |
enableCompression | true / false | true | Defaults to true. |
enableSecurityHeaders | true / false | true | Defaults to true. |
enableSpaFallback | true / false | false | Defaults to false. |
Worked example
Run these settings on the tool page:
siteMode:reverse-proxydomain:app.example.comemail:ops@example.comrootPath:/srv/www/appupstream:127.0.0.1:3000enableCompression:trueenableSecurityHeaders:trueenableSpaFallback:false
You get:
app.example.com {
tls ops@example.com
encode zstd gzip
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
Permissions-Policy geolocation=(), microphone=(), camera=()
}
reverse_proxy 127.0.0.1:3000
}
Getting the result you want
Most of the control here is in the options above. If the output is not what you expected, the setting to check first is siteMode and domain — those change the shape of the output rather than the input it accepts.
Troubleshooting
- It is slow on very large input. Everything runs in your browser, so speed depends on your device. Very large inputs are best split up, or run through the API where the work happens on our servers.
Automating it
The same logic is available as a REST endpoint, so you can run it from a script, a CI job or your own app.
Bashcurl "https://api.toolsxpo.com/v1/caddyfile-generator" \ -H "Authorization: Bearer $TOOLSXPO_KEY"
It costs 1 credit per successful call. See the full endpoint reference, or try it in the playground.
Related tools
Tools covered here
Related
How to use AES Encryption
Get the best out of AES Encryption: every option explained, a worked example, and what to check when the output is not what you expected.
How to use API Mock Payload Builder
Get the best out of API Mock Payload Builder: every option explained, a worked example, and what to check when the output is not what you expected.
How to use ASCII Chart
Get the best out of ASCII Chart: every option explained, a worked example, and what to check when the output is not what you expected.
How to use ASCII to Text
Get the best out of ASCII to Text: every option explained, a worked example, and what to check when the output is not what you expected.