Domains
This article is currently out of date and needs to be re-written. This is being kept around as reference for an updated article
Given that multiple services will be run on the same network it seemed obvious to me that setting up a domain would keep everything easily separated and accessible on the web. So the domain hardware-maraduing.space was purchased for this use. I also purchased the domain true-strange.com for use with my public web app service for use with the MMO EVE Online (see Wanderer).
Subdomains
Since I want all my services to be pretty easy to find, I decided to separate each service to a different subdomain. My Portfolio for example is run by Vercel. A completely different IP from my home lab, but I want it to be accessible from the same domain as everything else.
To set up my subdomains correctly, SRV and CNAME DNS records are used. This is just a work around of using a reverse proxy (mostly due to time constraints).
Setting up DDNS with DuckDNS and CloudFlare
I'm pretty cheap, so I will not be paying for a static IP address. However, I do need to point my domains to somewhere so they can reach my servers. The best way to do this is by using dynamic DNS. I have two Domain registry/management services, GoDaddy and CloudFlare. For the GoDaddy domain I use DuckDNS, and for CloudFlare I use PFSENSE's functionality for CloudFlare API.
For DuckDNS I have a cron job running on Proxmox to update the cached IP every 5 minutes. The CNAME record points to the DuckDNS domain name I have and then resolves the IP.
