Blog content is held in a Fossil repository with a running Fossil server to support content pushing.
Each component runs in a Docker container.
Caddy is an open source
HTTP/2 web server.
a plugin for Caddy enabling Docker integration - when an appropriately
configured Docker container or service is brought up, caddy-docker-proxy
generates a Caddy site specification entry for it and reloads Caddy. With
Caddy's built-in Let's Encrypt functionality, this allows the new
container/service to run over HTTPS seamlessly.
Below is my docker-compose.yml for Caddy. I built Caddy with the
caddy-docker-proxy plugin from source and named the resulting Docker image
samadhiweb/caddy. The Docker network caddynet is the private network for
Caddy and the services it is proxying. The Docker volume caddy-data is for
persistence of data such as cryptographic keys and certificates.
Here's the docker-compose.yml snippet for the blog engine:
Of interest are the caddy.* labels from which caddy-docker-proxy generates
the following in-memory Caddy site entry:
Also note the ulimits section, which sets the suggested limits for the
Pharo VM heartbeat thread. These limits must be set in the docker-compose
file or on the docker command line - copying a prepared file into
/etc/security/limits.d/pharo.conf does not work when run in a Docker