After some research I decided to use Caddy (https://caddyserver.com) as a reverse proxy. To be fair, the research primarily consisted of reviewing website materials, reading blog posts, and watching a number of YouTube videos about NGINX and Traefik which seem to be the two most popular products in this category. Assuming content produced on a product is a gauge of popularity. So, why did I pick Caddy Server?
- Straightforward to setup in a non-containerized environment
- First class support for non-containerized applications
- Easy configuration via a CaddyFile or JSON (and a bunch of others with the appropriate module)
- Built in support for Let’s Encrypt with multiple challenge options
- Integrated support for local, self-signed certificates
- Written in Go
- A big enough, but not overwhelming big, community
- Great documentation once you figure out how to navigate it.
I just reread the first two bullet points and they make me sound like I have something against containers. I don’t. But the truth of the matter is that applications are delivered in many forms. Broad support, with few opinions/assumptions, makes the deployment process smoother.
Hence, Caddy it is for me!