Publish CNAMEs pointing to the local host over Avahi/mDNS
This service/library publishes CNAME records pointing to the local host over multicast DNS using the Avahi daemon found in all major Linux distributions. Useful as a poor-man’s service discovery or as a helper for named virtual-hosts in development environments.
Since Avahi is compatible with Apple’s Bonjour, these names are usable from MacOS X and Windows too.
Besides a running Avahi daemon, this service requires the dbus-python bindings which, in turn, requires the development packages for D-Bus and D-Bus Glib (eg. dbus-devel and dbus-glib-devel in CentOS 7).
This package can be installed from source by running:
python setup.py build python setup.py install
Or, you can install the latest stable release from PyPI:
pip install mdns-publisher
Note: If you’re using Python 2.7 and you get errors installing dbus-python, you may need to upgrade your pip version:
pip install --upgrade pip
Pass (one or more) CNAMEs as command-line arguments to mdns-publish-cname:
mdns-publish-cname name01.local name02.local
Names must use the .local domain but can have arbitrary sub-domains:
mdns-publish-cname name01.local name02.local name03.mysubdomain.local
If the server running mdns-publish-cname is being announced over mDNS as myserver.local, all of these names will be answered by Avahi as CNAMEs for myserver.local, regardless of any sub-domains they might have. They remain available as long as mdns-publish-cname is running.
Run mdns-publish-cname with no arguments to find out about the available options.
Note: You can find a sample mdns-publish-cname.service file for systemd in the source repository.
The AvahiPublisher class in the mpublisher module can be integrated into your application to have it publish its own CNAMEs.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.