What’s the error message(s) in the logs? (You’ll need the errors directive to see them, probably. And run caddy with -log to write a process log; it catches certain transport-level errors that happen internally.)
WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with "ulimit -n 8192".
17/Jul/2017:21:04:18 +0200 [ERROR 502 /] dial tcp 0.0.0.0:8000: getsockopt: connection refused
Could have something to do with the file descriptor limit?