Skip to content
Examples of local HTTPS with docker-compose + mkcert + nginx/Caddy
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
caddy-gen
caddy fix typo in caddy/caddy-gen docker-compose.yml Mar 9, 2019
nginx
.editorconfig initial commit: add nginx and caddy example Mar 7, 2019
.gitignore
LICENSE
README.md
init.sh Add Caddy example with Caddyfile using docker-gen Mar 9, 2019

README.md

Docker Compose local HTTPS

Examples of local HTTPS with docker-compose + mkcert

Prerequisites

Run mkcert -install

Run ./init.sh (creates local certificates using mkcert and copies them to where the Caddy and nginx examples expect them)

The setup

Each example has a barebones Node app running on the official Node 10 Docker image running on port 8080.

The Node code is at ./caddy/app/index.js, ./caddy-gen/app/index.js and ./nginx/app/index.js.

It also has a reverse-proxy set up using Caddy and nginx respectively which

Caddy Example with Caddyfile

Caddy is the HTTP/2 web server with automatic HTTPS.

https://caddyserver.com/

See ./caddy, uses https://github.com/abiosoft/caddy-docker Docker image.

To run it:

cd caddy
docker-compose up

Then either navigate to https://foo.test or curl https://foo.test.

Note: the nginx/Caddy examples needs to be stopped before starting this Caddy example

Caddy Example with docker-gen

Caddy is the HTTP/2 web server with automatic HTTPS.

https://caddyserver.com/

This image leverages Docker-gen to "Generate files from docker container meta-data".

Which allows us to build the configuration for the reverse proxy using labels on the target container (without a Caddyfile, that's the file generated from the labels).

See ./caddy-gen, uses https://github.com/wemake-services/caddy-gen Docker image.

cd caddy-gen
docker-compose up

Then either navigate to https://foo.test or curl https://foo.test.

Note: the nginx/other Caddy examples needs to be stopped before starting the Caddy example

nginx Example

nginx is a web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.

Wikipedia

See ./nginx, uses https://github.com/jwilder/nginx-proxy Docker image.

This image leverages Docker-gen to "Generate files from docker container meta-data".

cd nginx
docker-compose up

Then either navigate to https://foo.test or curl https://foo.test.

Note: the Caddy examples needs to be stopped before starting the nginx example

You can’t perform that action at this time.