mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2026-01-03 22:53:04 +02:00
15
README.md
15
README.md
@@ -1,4 +1,7 @@
|
||||
# ioBroker for Docker
|
||||
|
||||
[](https://travis-ci.org/buanet/docker-iobroker)
|
||||
|
||||
Source: https://github.com/buanet/docker-iobroker
|
||||
|
||||
IoBroker for Docker is an Dockerimage for ioBroker (http://iobroker.net) smarthome software.
|
||||
@@ -12,14 +15,14 @@ Feel free to ask for more architectures by opening an github-issue.
|
||||
|
||||
The new v4 comes again with a new major node-version (node10)!
|
||||
If you are updating an existing Installation you have to perform some additional steps inside ioBroker!
|
||||
After upgrading your iobroker-container you have to call "reinstall.sh" for recompiling your installation for the use with node10!
|
||||
After upgrading your iobroker-container you have to call "reinstall.sh" for recompileing your installation for the use with node10!
|
||||
For Details see official ioBroker-documentation (http://www.iobroker.net/docu/?page_id=8323&lang=de). Make backup first!
|
||||
|
||||
## Installation & usage
|
||||
|
||||
A detailed tutorial (german, based on v3.0.0) can be found here: [https://buanet.de](https://buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/). Please notice that the old tutorial is outdated and does no longer work!
|
||||
|
||||
For discussion and support please visit [ioBroker-forum-thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) or use the comments section at the linked tutorial. Please do not contact me directly for any support-reasons. Every support-question should be answered in a public place. Thank you.
|
||||
For discussion and support please visit [ioBroker-forum-thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) or use the comments section at the linked tutorial. Please do not contact me directly for any support-reasons. Every support question should be answered in a public place. Thank you.
|
||||
|
||||
## Special settings and features
|
||||
|
||||
@@ -40,6 +43,8 @@ Since v3 is possible to set some environment variables to configure a new contai
|
||||
|SETUID|1000|for security reasons it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host|
|
||||
|SETGID|1000|for security reasons it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host|
|
||||
|ZWAVE|false|will install openzwave to support zwave-adapter|
|
||||
|ADMINPORT|8081|for setting iobroker adminport (beta feature!)|
|
||||
|USBDEVICES|none|for automatically setting permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";" (beta feature!)|
|
||||
|
||||
### Mounting Folder/ Volume
|
||||
|
||||
@@ -55,6 +60,12 @@ After some issues with permissions related to the use of a dedicated user for io
|
||||
|
||||
## Changelog
|
||||
|
||||
### v4.0.1beta (2019-11-25)
|
||||
* added env for iobroker admin port
|
||||
* added env for usb-devices (setting permissions)
|
||||
* updateing prerequisites for iobroker installation
|
||||
* some small codefixes
|
||||
|
||||
### v4.0.0 (2019-10-25)
|
||||
* v3.1.4beta (2019-10-23)
|
||||
* added env for zwave support
|
||||
|
||||
@@ -4,7 +4,7 @@ MAINTAINER Andre Germann <https://buanet.de>
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Install prerequisites
|
||||
# Install prerequisites (as listed in iobroker installer.sh)
|
||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
acl \
|
||||
apt-utils \
|
||||
@@ -12,17 +12,21 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \
|
||||
curl \
|
||||
git \
|
||||
gnupg2 \
|
||||
gosu \
|
||||
libavahi-compat-libdnssd-dev \
|
||||
libcap2-bin \
|
||||
libpam0g-dev \
|
||||
libudev-dev \
|
||||
locales \
|
||||
procps \
|
||||
pkg-config \
|
||||
procps \
|
||||
python \
|
||||
gosu \
|
||||
python-dev \
|
||||
sudo \
|
||||
unzip \
|
||||
wget \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# Install node10
|
||||
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \
|
||||
&& apt-get update && apt-get install -y \
|
||||
@@ -61,8 +65,9 @@ RUN npm install -g node-gyp
|
||||
# Backup initial ioBroker-folder
|
||||
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker
|
||||
|
||||
# Setting up iobroker-user
|
||||
RUN chsh -s /bin/bash iobroker
|
||||
# Setting up iobroker-user (shell and home directory)
|
||||
RUN chsh -s /bin/bash iobroker \
|
||||
&& usermod --home /opt/iobroker iobroker
|
||||
|
||||
# Setting up ENVs
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
@@ -70,14 +75,13 @@ ENV DEBIAN_FRONTEND="teletype" \
|
||||
LANGUAGE="de_DE:de" \
|
||||
LC_ALL="de_DE.UTF-8" \
|
||||
TZ="Europe/Berlin" \
|
||||
PACKAGES="nano" \
|
||||
PACKAGES="vi" \
|
||||
ADMINPORT=8081 \
|
||||
SETUID=1000 \
|
||||
SETGID=1000 \
|
||||
AVAHI="false" \
|
||||
SETUID=1000 \
|
||||
SETGID=1000 \
|
||||
ZWAVE="false"
|
||||
|
||||
# Setting up EXPOSE for Admin
|
||||
EXPOSE 8081/tcp
|
||||
ZWAVE="false" \
|
||||
USBDEVICES="none"
|
||||
|
||||
# Run startup-script
|
||||
ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"]
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
# Reading ENV
|
||||
packages=$PACKAGES
|
||||
avahi=$AVAHI
|
||||
adminport=$ADMINPORT
|
||||
uid=$SETUID
|
||||
gid=$SETGID
|
||||
zwave=$ZWAVE
|
||||
avahi=$AVAHI
|
||||
usbdevices=$USBDEVICES
|
||||
|
||||
# Getting date and time for logging
|
||||
dati=`date '+%Y-%m-%d %H:%M:%S'`
|
||||
@@ -34,8 +36,10 @@ echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- ENV -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $PACKAGES)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $ADMINPORT)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" ZWAVE: $ZWAVE)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----"
|
||||
echo "$(printf -- '-%.0s' {1..60})"
|
||||
@@ -125,8 +129,8 @@ if [ -f /opt/iobroker/.install_host ]
|
||||
then
|
||||
echo "Looks like this is a new and empty installation of ioBroker."
|
||||
echo "Hostname needs to be updated to " $(hostname)"..."
|
||||
sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host)
|
||||
rm -f /opt/iobroker/.install_host
|
||||
sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host)
|
||||
rm -f /opt/iobroker/.install_host
|
||||
echo 'Done.'
|
||||
echo ' '
|
||||
fi
|
||||
@@ -141,7 +145,17 @@ echo "Some adapters have special requirements which can be activated by the use
|
||||
echo "For more information take a look at readme.md"
|
||||
echo ' '
|
||||
|
||||
# Checking for and setting up avahi-daemon
|
||||
# Checking ENV for Adminport
|
||||
if [ "$adminport" != "8081" ]
|
||||
then
|
||||
echo "Adminport is set by ENV."
|
||||
echo "Setting Adminport to" $adminport"..."
|
||||
iobroker set admin.0 --port $adminport
|
||||
echo 'Done.'
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# Checking for enabled avahi-daemon
|
||||
if [ "$avahi" = "true" ]
|
||||
then
|
||||
echo "Avahi-daemon is activated by ENV."
|
||||
@@ -151,15 +165,33 @@ then
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# Checking for enabled zwave-support
|
||||
if [ "$zwave" = "true" ]
|
||||
then
|
||||
echo "ZWave is activated by ENV."
|
||||
echo "Z-Wave is activated by ENV."
|
||||
chmod 764 /opt/scripts/setup_zwave.sh
|
||||
sh /opt/scripts/setup_zwave.sh
|
||||
echo "Done."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# checking enabled usb-devices
|
||||
|
||||
if [ "$usbdevices" != "none" ]
|
||||
then
|
||||
echo "Usb-device-support is activated by ENV."
|
||||
|
||||
IFS=';' read -ra devicearray <<< "$usbdevices"
|
||||
for i in "${devicearray[@]}"
|
||||
do
|
||||
echo "Setting permissions for" $i"..."
|
||||
chown root:dialout $i
|
||||
chmod g+rw $i
|
||||
done
|
||||
echo "Done."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
|
||||
# Starting ioBroker
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
echo "Checking avahi-daemon installation state..."
|
||||
|
||||
if [ -f /usr/sbin/avahi-daemon ]
|
||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||
then
|
||||
echo "Avahi is already installed..."
|
||||
else
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
echo "Checking openzwave installation state..."
|
||||
|
||||
if [ -f /usr/local/lib64 ]
|
||||
if [ -e /usr/local/lib64 ]
|
||||
then
|
||||
echo "Openzwave is already installed..."
|
||||
else
|
||||
@@ -16,4 +16,4 @@ else
|
||||
# echo "Openzwave is now installed..."
|
||||
fi
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user