Honestly the whole application seems pretty good - but everything is focussed on more hello-world stuff, which is great for getting going on my machine - not so great for running it for real.
Whether you use environment vars or a config file, I don't mind - one benefit environment vars gives is that setting CONCOURSE_BIND_IP to the instance's IP is relatively simple, eg on AWS:
CONCOURSE_BIND_IP=$(curl http://169.254.169.254/latest/meta-data/local-ipv4)
If it's a config file then I need to update that before the application starts, which is more fiddling.