Inspired by everyone here, I’ve spent the past few months playing with hosting my own instances of various open source projects. I just use them on my local network, and love the automatic mDNS my_machine_name.local
addresses.
I also love Traefik’s use of Docker Compose labels as a source of hostname configuration (docs), so I thought it would be nice to automatically publish these too!
If this sounds interesting, you can find usage instructions and technical details on GitHub. This is my first published project, so I apologize for any rough edges, but I’ll try my best to accommodate feedback :)
I know some are vehemently against the use of
.local
for a home network. It would be nice to be able to set a custom TLD like.home
or.lan
(these don’t have any special meaning or usage as of now).This project uses mDNS, which is specific to the
.local
TLD. The whole reason that people are against the use of.local
is because it would break mDNS. So you can set a custom TLD, but it doesn’t matter because this is actually the correct context for.local
to be used, and changing the TLD will actually break things for a lot of clients.I’ve switched over to using a publicly resolvable domain name, but with a
lan
prefix (e.g.lan.mystuff.dev
) so that I can do DNS challenge let’s encrypt certs.Paired with PowerDNS that acts as an authority for the
lan.mystuff.dev
domain, I can go to a legit certificate/SSL protectedhttps://sonarr.lan.mystuff.dev
url. If I wanted to, I could add cloudflare records for the same services exposed through my router (Like forvpn.lan.mystuff.dev
) so that both internal and external resolution is possible.If you prefer, I think Avahi is able to publish other TLDs, but I played around with it just now and couldn’t get it to work. If you have any luck, let me know what worked for you and I’ll try to add support :)
This is what I tried, but it fails with
Failed to add address: Not supported
:# Set domain-name=lan and enable-wide-area=no nano /etc/avahi/avahi-daemon.conf sudo avahi-daemon --reload sudo avahi-publish-address -R example.lan 192.168.1.123