To use easyHAB with an openHAB running in a docker container (instead of on a separate Raspberry PI or Mac mini), the following setup of the openHAB container is required.
This example is based on Docker on a Synology DSM.
1. Create Container in Synology Docker Manager
- Search and download image “openhab/openhab (latest)”
- Launch the image as new container with “Advanced Settings”:
- Map Synology folders to store openHAB config data to container folders
- Map required container ports to FIXED local ports (esp. SSH (22) and HTTP (8080) ports.
Important: the external SSH port (922 in example below) is required in easyHAB configuration to contact the openHAB server/container.
- Map Synology folders to store openHAB config data to container folders
- Run the container (e.g. named “openhab” in this example) for first startup to create environment
- Save the following script “openhab-precheck.sh” in mapped /openhab/config folder
#!/bin/bash -x
## Log start time
date >> $HOME/laststart.log
## Check if SSH is already installed
isInstalled=`dpkg -l openssh-server | grep "<none>" | wc -l`
if [ $isInstalled -ne 0 ]
then
## install OpenSSH first
sudo apt update
sudo apt install --yes openssh-server
fi
## Set OpenHAB Password
sudo bash -c 'echo "openhab:habopen" | chpasswd openhab'
## Start sshd
sudo /etc/init.d/ssh start
true
## EOF
2. Install PreCheck Script in Container
- Update the default user password “habopen” for user openhab in precheck Script (marked red above)
- Root console into Container (Container name = “openhab”):
docker exec -ti openhab /bin/bash
- In the container console execute all lines below:
mkdir /etc/cont-init.d/
cp /openhab/conf/openhab-precheck.sh /etc/cont-init.d/
chmod 770 /etc/cont-init.d/openhab-precheck.sh
apt update
apt install --yes sudo
echo "openhab ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
- Exit from container console & restart Docker Container.
This installs & runs SSH Daemon, resets user password to the password set in the script. - Continue with easyHAB App to connect to the openHAB server in Docker container.
Required data in easyHAB App:
– Docker host IP (here: Synology IP address)
– Mapped SSH port (here: 922)
– Username “openhab”
– User password (as set in the script)