Well, you may not want to steal my config, since I’m having trouble with my local CA at the moment But my public sites are running fine, so if you have a public domain name available, stealing my config should work.
All of the server config responsible for producing sunrisemovement.dev (and a few other test sites) is available on Github in this Ansible role. Specifically you can see my production Caddyfile (in the form of a Jinja2 template that replaces a couple of variables) here: devops/Caddyfile.j2 at master · sunrisemovement/devops · GitHub
UPDATE: Actually it’s possible that the Caddy storage for my production server is currently misconfigured as well, it just hasn’t caused obvious problems yet. But simply leaving out the storage directive in my Caddyfile and using the default storage location (as you do in your Caddyfile) should be sufficient to avoid that issue.