* Use single server example as default frontend
This just works out of the box
* Refactor Dockerfile
- Remove the asset dir since it's embedded in the executable anyway
- Use the code in the current directory to build instead of downloading.
Makes local testing very easy.
- Cache Go dependencies
- Run without root privileges. Note that using a BoltDB database
requires mounting a volume with the correct permissions. The default
database has thus been changed to memory so that starting the image
just works.
* Automatically publish images
* Support systemd socket activation
If the process has been started with systemd socket activation
configured, then serve requests on the passed-in socket instead of
attempting to bind to an address.
* Add example systemd unit files.
Add example systemd unit files which make use of systemd's security
facilities, and also allow binding to port 80 whilst running as an
unpriviliged process (using systemd socket activation).