nilmrun/docs/wsgi.md

1.0 KiB

WSGI Application in Apache

Install apache2 and libapache2-mod-wsgi

We'll set up the server at URL http://myhost.com/nilmrun. The process will run as user nilm, group nilm.

First, create a WSGI script /home/nilm/nilmrun.wsgi containing:

import nilmrun.server
application = nilmrun.server.wsgi_application("/nilmrun")

The first parameter is the path part of the URL.

Then, set up Apache with a configuration like below. SSL and access control/authentication are strongly recommended since this can execute arbitrary commands.

<VirtualHost *:443>
    SSLEngine On

    WSGIScriptAlias /nilmrun /home/nilm/nilmrun.wsgi
    WSGIApplicationGroup nilmrun-appgroup
    WSGIProcessGroup nilmrun-procgroup
    WSGIDaemonProcess nilmrun-procgroup threads=32 user=nilm group=nilm

    # Access control example:
    <Location /nilmrun>
        SSLRequireSSL
        Order deny,allow
        Deny from all
        Allow from 1.2.3.4
    </Location>
</VirtualHost>