This page is about Caddy 2, which is currently in beta. Click here for the old Caddy 1 site. Thank you for your patience as we transition!
Documentation

Caddyfile Quick-start

Create a new text file named Caddyfile (no extension).

The first thing to type in a Caddyfile is your site's address:

localhost

Then hit enter and type what you want it to do, so it looks like this:

localhost

respond "Hello, world!"

Save this and run Caddy from the same folder that contains your Caddyfile:

caddy start

You will probably be asked for your password, because Caddy serves all sites -- even local ones -- over HTTPS by default. (The password prompt should only happen the first time!)

Either open your browser to localhost or curl it:

curl https://localhost
Hello, world!

You can define multiple sites in a Caddyfile by wrapping them in curly braces { }. Change your Caddyfile to be:

localhost {
	respond "Hello, world!"
}

localhost:2016 {
	respond "Goodbye, world!"
}

You can give Caddy the updated configuration two ways, either with the API directly:

curl localhost:2019/load \
	-X POST \
	-H "Content-Type: text/caddyfile" \
	--data-binary @Caddyfile

or with the reload command, which does the same API request for you:

caddy reload

Try out your new "goodbye" endpoint in your browser or with curl to make sure it works:

curl https://localhost:2016
Goodbye, world!

When you are done with Caddy, make sure to stop it:

caddy stop

Further reading