==================================== Configure external access to Domogik ==================================== .. warning:: Security features in Domogik will be managed in a futur release. So external access to Domogik is not a good idea for security issues. You should do this only for test or demonstration purposes. First method : Apache configuration for web access using wsgi (optional) ======================================================================== .. note:: Following instructions are Debian/Ubuntu ones. Feel free to complete for your distribution. .. todo:: Add schema to understand Deploying Django with Apache and `mod_wsgi `_ is the recommended way to get Django working in production mode. *mod_wsgi* is an Apache module which can be used to host any Python application which supports the Python WSGI interface, including Django. See here for an `exhaustive description about mod_wsgi `_. Configure mod_wsgi ------------------ .. code-block:: bash $ apt-get install libapache2-mod-wsgi Then check your */usr/lib/apache2/modules* directory and make sure the file *mod_wsgi.so* is pointing to *mod_wsgi.so-2.6*. If it's not the case just do: :: $ ln -sf /usr/lib/apache2/modules/mod_wsgi.so-2.6 /usr/lib/apache2/modules/mod_wsgi.so Create your wsgi file --------------------- At the top of the django directory (i.e. where *settings.py* lives), create a subdirectory named *apache*. Create in this directory a file named *django.wsgi* with this content (eventually adapt the python path to your needs) : .. code-block:: python #!/usr/bin/python2.6 import os import site site.addsitedir('/usr/local/lib/python2.6/dist-packages') os.environ['DJANGO_SETTINGS_MODULE'] = 'domogik.ui.djangodomo.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() Add an entry to your Apache configuration file ---------------------------------------------- First enable the rewrite module : :: a2enmod rewrite Add for example a virtual host like this : :: ServerName domogik.myserver.org RewriteEngine on RewriteRule ^/$ http://domogik.myserver.org/domogik/ [R=301,L] WSGIDaemonProcess domogik user=domogik group=domogik processes=5 threads=1 WSGIProcessGroup domogik WSGIScriptAlias / /home/domogik/dmg/src/domogik/ui/djangodomo/apache/django.wsgi Order deny,allow Allow from all Please note a few things : * For *WSGIDaemonProcess*, *user* and *group* should be the ones you are using to run your domogik installation (see */etc/default/domogik*). * Adapt path for both *WSGIScriptAlias* and *Directory* directive to your needs. Finally, restart Apache: :: $ /etc/init.d/apache2 restart Second method : port binding ============================ Before doing this, don't forget that django is not made to be directly accessible over the internet : .. epigraph:: Now's a good time to note: DON'T use this server in anything resembling a production environment. It's intended only for use while developing. -- source : http://docs.djangoproject.com/en/1.2/intro/tutorial01/#intro-tutorial01 * bind Django port on your box. * bind REST port on your box. * configure */etc/domogik/domogik.cfg* file to use your public internet IP. Notice that doing this will make all your local Domogik use go through the internet.