--- layout: page title: "Installation on a Synology NAS" description: "Instructions to install Home Assistant on a Synology NAS." date: 2016-04-16 11:36 sidebar: true comments: false sharing: true footer: true redirect_from: /getting-started/installation-synology/ --- There are 2 alternatives, when using Home Assistant on Synology NAS: 1. using Docker 2. directly running on DSM Option 1 is described on the [Docker installation page](/docs/installation/docker/), whereas Option 2 is described below. The following configuration has been tested on Synology 413j running DSM 6.0-7321 Update 1. Running these commands will: - Install Home Assistant - Enable Home Assistant to be launched on [http://localhost:8123](http://localhost:8123) Using the Synology webadmin: - Install python3 using the Synology Package Center - Create homeassistant user and add to the "users" group SSH onto your synology & login as admin or root - Log in with your own administrator account - Switch to root using: ```bash $ sudo -i ``` Check the path to python3 (assumed to be /volume1/@appstore/py3k/usr/local/bin) ```bash # cd /volume1/@appstore/py3k/usr/local/bin ``` Install PIP (Python's package management system) ```bash # ./python3 -m ensurepip ``` Use PIP to install Homeassistant package ```bash # ./python3 -m pip install homeassistant ``` Create homeassistant config directory & switch to it ```bash # mkdir /volume1/homeassistant # cd /volume1/homeassistant ``` Hint: alternatively you can also create a "Shared Folder" via Synology WebUI (e.g. via "File Station") - this has the advantage that the folder is visible via "File Station". Create hass-daemon file using the following code (edit the variables in uppercase if necessary) ```bash #!/bin/sh # Package PACKAGE="homeassistant" DNAME="Home Assistant" # Others USER="homeassistant" PYTHON_DIR="/volume1/@appstore/py3k/usr/local/bin" PYTHON="$PYTHON_DIR/python3" HASS="$PYTHON_DIR/hass" INSTALL_DIR="/volume1/homeassistant" PID_FILE="$INSTALL_DIR/home-assistant.pid" FLAGS="-v --config $INSTALL_DIR --pid-file $PID_FILE --daemon" REDIRECT="> $INSTALL_DIR/home-assistant.log 2>&1" start_daemon () { sudo -u ${USER} /bin/sh -c "$PYTHON $HASS $FLAGS $REDIRECT;" } stop_daemon () { kill `cat ${PID_FILE}` wait_for_status 1 20 || kill -9 `cat ${PID_FILE}` rm -f ${PID_FILE} } daemon_status () { if [ -f ${PID_FILE} ] && kill -0 `cat ${PID_FILE}` > /dev/null 2>&1; then return fi rm -f ${PID_FILE} return 1 } wait_for_status () { counter=$2 while [ ${counter} -gt 0 ]; do daemon_status [ $? -eq $1 ] && return let counter=counter-1 sleep 1 done return 1 } case $1 in start) if daemon_status; then echo ${DNAME} is already running exit 0 else echo Starting ${DNAME} ... start_daemon exit $? fi ;; stop) if daemon_status; then echo Stopping ${DNAME} ... stop_daemon exit $? else echo ${DNAME} is not running exit 0 fi ;; restart) if daemon_status; then echo Stopping ${DNAME} ... stop_daemon echo Starting ${DNAME} ... start_daemon exit $? else echo ${DNAME} is not running echo Starting ${DNAME} ... start_daemon exit $? fi ;; status) if daemon_status; then echo ${DNAME} is running exit 0 else echo ${DNAME} is not running exit 1 fi ;; log) echo ${LOG_FILE} exit 0 ;; *) exit 1 ;; esac ``` Create links to python folders to make things easier in the future: ```bash # ln -s /volume1/@appstore/py3k/usr/local/bin python3 # ln -s /volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/homeassistant ``` Set the owner and permissions on your config folder ```bash # chown -R homeassistant:users /volume1/homeassistant # chmod -R 664 /volume1/homeassistant ``` Make the daemon file executable: ```bash # chmod 755 /volume1/homeassistant/hass-daemon ``` Update your firewall (if it is turned on the Synology device): - Go to your Synology control panel - Go to security - Go to firewall - Go to Edit Rules - Click Create - Select Custom: Destination port "TCP" - Type "8123" in port - Click on OK - Click on OK again Copy your configuration.yaml file into the config folder That's it... you're all set to go Here are some useful commands: - Start Home Assistant: ```bash $ sudo /volume1/homeassistant/hass-daemon start ``` - Stop Home Assistant: ```bash $ sudo /volume1/homeassistant/hass-daemon stop ``` - Restart Home Assistant: ```bash $ sudo /volume1/homeassistant/hass-daemon restart ``` - Upgrade Home Assistant:: ```bash $ /volume1/@appstore/py3k/usr/local/bin/python3 -m pip install --upgrade homeassistant ```