Devember - Setting Up A Domain and Networking for Self-Hosted Services

Progress!
I finally got around to adding dns records for all the hosts on my network. I’ve got a little bit more work to do to standardize hostnames and what not but it’s mostly there. I consider all this DNS work a bit of a site quest.

I read over the code that I’m using to do ddns with cloudflare from my network gateway and I had some concerns. I opened an issue on git hub:

That issue was well received and a third party contributed an improvement and then another party cleaned up that code even more with in a day or so of me opening my issue. It was great to see open source development working so well.

I then circling back around to my Linode proxy. I did some reading around and found the caddy project:

I opted to use caddy over traefik or nginx (others) because it more directly targets the features I’m looking for today:

  • reverse proxy
  • static site hosting
  • automated cert renewal/management

I didn’t need a lot of the container centric features that Traefik offers, and nginx configuration files can be a little much for me. Caddy is batteries included and that suits me.

I was able to get caddy installed to my linode proxy, and configure it as a service (and write up a script to repeat the setup). I then cloned my static site repo into the static site folder and verified it was working.

Up next:

  • Setup HTTPS for the blog with auto renewal
  • Redirect my old github page to my self hosted site
  • Use a webhook to auto deploy new versions of the blog whenever they’re pushed
  • Update any deploy scripts I was using in my blog before.
  • Reverse proxy at least one service inside my network via caddy.

If I finish that work I’ll have met my goal for Devember. I don’t think it’s that much work so some stretch goals would be:

  • Setup Pi-Hole or another like minded service
  • Intercept DNS queries on my network, and route the requests to the local ip rather than out the public and back in.
  • Clean up my Heimdall dashboard with correct dns records and maybe look into how to make it public and properly route to my private services behind a login of some sort.
  • Https All the things, including my private network traffic.
1 Like