How to use uWSGI Avahi plugin in Ubuntu

Step-by-step how-to to use uWSGI Avahi plugin for GNU/Linux (tested on Ubuntu 17.04/17.10).

images/uwsgi-avahi.svg

The Avahi uWSGI plugin (github.com/20tab/uwsgi-avahi) allows your instances to register services in your mDNS system.

$ sudo apt install uwsgi uwsgi-src libavahi-client-dev
$ cd ~
$ export PYTHON=python3.6
$ uwsgi --build-plugin https://github.com/20tab/uwsgi-avahi
$ sudo mv avahi_plugin.so /usr/lib/uwsgi/plugins/avahi_plugin.so
$ sudo chmod 644 /usr/lib/uwsgi/plugins/avahi_plugin.so

Configuring your .ini file like:

[uwsgi]
...
project_name = paulox
socket = 127.0.0.1:0
subscribe-to = 127.0.0.1:5005:%(project_name).local
plugins = avahi
avahi-register = %(project_name).local

After starting your emperor you can view some similar messages on your log:

...
Avahi Server Version: avahi 0.6.32
[uwsgi-avahi] registered record paulox.local CNAME ubuntu.local
...

 2017-07-21   1 min read      Howto   #Avahi 🐒 #Debian 🍥 #GNU/Linux 🐧 #Ubuntu 👥 #uWSGI 🇺