Domoticz Installation

From Scottworld
Jump to navigation Jump to search

Make a domoticz user to run the service

useradd --system domoticz -d /opt/domoticz/ -G dialout
mkdir /opt/domoticz
chown -R domoticz:domoticz /opt/domoticz/

Then install the development tools and libraries needed for compiling Domoticz:

sudo apt-get install build-essential nano cmake git libboost-dev libboost-thread-dev libboost-system-dev
sudo apt-get install libsqlite3-dev curl libcurl4-openssl-dev libssl-dev libusb-dev zlib1g-dev python3-dev

Get the latest Domoticz sourcecode and compile/build by running:

 su domoticz 
 cd ~
 git clone domoticz
 cd domoticz
 cmake -DCMAKE_BUILD_TYPE=Release .

To start Domoticz type:


When you open your browser at http://ip_of_your_machine:8080, you should be presented with the Domoticz web interface.

For additional parameters of the Domoticz daemon, run:

./domoticz -h

To start Domoticz automatically when the system boots follow these instructions.

Allow non-root user to access ttyUSB* ports If you don't plan on interfacing Domoticz with USB and/or serial devices, you can skip this step.

By default (at least on Ubuntu) a non-root user has no permission to access the ttyUSB* ports. So if you have Domoticz running under a separate user (which is always a good idea to make the system more secure), Domoticz isn't allowed access to your RFXCOM for example. Here are two methods of doing it. For most people the first one by adding the user to the dialout goup is enough and by far the easiest.

Adding the user to the dialout group This can be done by running the command below:

sudo usermod -a -G dialout domoticz

(Where you replace YOURUSERNAME with the user that runs Domoticz.)

Start Domoticz on startup. Open the systemd configuration file :

nano /etc/systemd/system/domoticz.service
       ExecStart=/opt/domoticz/domoticz/domoticz -www 8080 -sslwww 443
       # Give the right to open priviliged ports. This allows you to run on a port <1024 without root permissions (user/group setting abo$
       # The next line was previously working, so try this on older systems.
       # ExecStartPre=setcap 'cap_net_bind_service=+ep' /home/domoticz/domoticz/domoticz
       # The below works on ubuntu 16 LTS.

Enable the service

systemctl daemon-reload
systemctl enable domoticz.service

Start the service

systemctl start domoticz.service

Script to update almost automatically For updating almost automatically, i made this script

#! /bin/sh
cd /opt/domoticz/ \
&& sudo service domoticz stop \
&& git pull \
&& make \
&& sudo service domoticz start \

Apache Secure Reverse Proxy

To access Domoticz from securely via an Apache server, create the following in /etc/apache2/sites-available/domoticz.conf:

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>

        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/
        SSLCertificateKeyFile /etc/letsencrypt/live/
        SSLCertificateChainFile /etc/letsencrypt/live/

        ProxyPass /
        ProxyPassReverse /

If Domoticz is not running on the same server as Apache, simply updated in the two Proxy lines above to point to the appropriate IP address.

Once complete, enable proxy, site and restart Apache:

a2enmod proxy
a2enmod proxy_http
a2enmod proxy_html
a2ensite domotoicz
systemctl restart apache2.service