As 2020 seems like a good year to get stuff done that has otherwise been neglected, I finally migrated my setup off a very old DigitalOcean droplet. It had been a steady host for years, but my initial plans to migrate from Ubuntu to CentOS7 a while back were never really completed. Centos8 is the new goodness, and I must say it was mostly a real pleasure to set up via DigitalOcean.

In my work at Varnish Software I liked to “dogfood” our products and technology, to learn and constantly flex some configuration muscles. So the old stack on denis.no was influenced by this and consisted of:

      ---------
      | Hitch |     (TLS termination)
      ---------
          |
     -----------
     | Varnish |    (Caching and routing)
     -----------
          |
      ---------
      | Nginx |     (File serving)
      ---------

In addition to Nginx, I had a bunch of smaller daemons that were directly fronted by Varnish, including Gitea, Filebin and other misc services.

As the need for dogfooding isn’t there anymore, and convenience outweighs most other factors these days, I’ve now reduced that stack to:

     ----------
     | Caddy2 |    (TLS termination, file serving and routing)
     ----------

I still have a couple of smaller services left which are set up with reverse_proxy in Caddy. Installing Caddy2 was almost too easy, and it involved ditching hundreds of lines of configuration for a very neat and consise Caddyfile.

The documentation for Caddy2 was pretty good, and made the process of migrating relatively quick and painless. I always wanted the super-neat LetsEncrypt cert integration, and that worked out just as well as I expected.