Installation
Install dyndns into the directory /usr/local/share/python-virtualenv/dyndns using a virtual environment.
python3 -m venv /usr/local/share/python-virtualenv/dyndns source /usr/local/share/python-virtualenv/dyndns/bin/activate pip3 install dyndns
The working directory of our flask web API is in the directory /var/www/dyndns.example.com. Create a file /var/www/dyndns.example.com/dyndns.ini.
[uwsgi] module = dyndns.webapp:app master = true processes = 5 socket = /var/www/dyndns.example.com/dyndns.sock chmod-socket = 664 uid = www-data gid = www-data vacuum = true die-on-term = true
Example configuration file for nginx: /etc/nginx/sites-available/dyndns.example.com.
server {
server_name dyndns.example.com;
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name dyndns.example.com;
ssl_certificate /etc/letsencrypt/live/dyndns.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dyndns.example.com/privkey.pem;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/dyndns.example.com/dyndns.sock;
}
}
/etc/systemd/system/dyndns-uwsgi.service
[Unit] Description=uWSGI instance to serve dyndns After=network.target [Service] User=www-data Group=www-data WorkingDirectory=/var/www/dyndns.example.com Environment="PATH=/usr/local/share/python-virtualenv/dyndns/bin" ExecStart=/usr/local/share/python-virtualenv/dyndns/bin/uwsgi --ini uwsgi.ini [Install] WantedBy=multi-user.target