mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-18 10:59:00 +02:00
26
README.md
26
README.md
@@ -74,32 +74,32 @@ You do not have to declare every single variable when setting up your container.
|
||||
|
||||
**Important: In v4.2.0 the ENVs "ADMINPORT" and "REDIS" were renamed/ reorganized. For Details see the following table!**
|
||||
|
||||
|env|default|description|
|
||||
|ENV|Default|Description|
|
||||
|---|---|---|
|
||||
|AVAHI|false|Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false"|
|
||||
|IOB_ADMINPORT|8081|Sets ioBroker adminport on startup|
|
||||
|IOB_MULTIHOST|master|Sets ioBroker instance as "master" or "slave" for multihost (additional config for objectsdb and statesdb needed)|
|
||||
|IOB_OBJECTSDB_HOST|127.0.0.1|Sets hostname for ioBroker objects db|
|
||||
|IOB_MULTIHOST|[not set]|Sets ioBroker instance as "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)|
|
||||
|IOB_OBJECTSDB_HOST|127.0.0.1|Sets host for ioBroker objects db|
|
||||
|IOB_OBJECTSDB_PORT|9001|Sets port for ioBroker objects db|
|
||||
|IOB_OBJECTSDB_TYPE|file|Sets type of ioBroker objects db, cloud be "file", "redis" or "couch"|
|
||||
|IOB_STATESDB_HOST|127.0.0.1|Sets hostname for ioBroker states db|
|
||||
|IOB_STATESDB_HOST|127.0.0.1|Sets host for ioBroker states db|
|
||||
|IOB_STATESDB_PORT|9000|Sets port for ioBroker states db|
|
||||
|IOB_STATESDB_TYPE|file|Sets type of ioBroker states db, could be "file" or "redis"|
|
||||
|LANG|de_DE.UTF‑8|The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|
||||
|LANGUAGE|de_DE:de|The following locales are pre-generated: de_DE:de, en_US:en|
|
||||
|LC_ALL|de_DE.UTF-8|The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|
||||
|PACKAGES|vi|Installs additional packages to your container needed by some adapters, packages should be seperated by whitespace like "package1 package2 package3"|
|
||||
|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|
|
||||
|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|
|
||||
|PACKAGES|[not set]|Installs additional linux packages to your container, packages should be seperated by whitespace like this: "package1 package2 package3"|
|
||||
|SETGID|1000|For some reasons it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host|
|
||||
|SETUID|1000|For some reasons it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host|
|
||||
|TZ|Europe/Berlin|All valid Linux-timezones|
|
||||
|USBDEVICES|none|Sets relevant permissions on mounted devices like "/dev/ttyACM0", for more than one device separate with ";" like "/dev/ttyACM0;/dev/ttyACM1"|
|
||||
|USBDEVICES|none|Sets relevant permissions on mounted devices like "/dev/ttyACM0", for more than one device separate with ";" like this: "/dev/ttyACM0;/dev/ttyACM1"|
|
||||
|ZWAVE|false|Will install openzwave to support zwave-adapter, can be "true" or "false"|
|
||||
|
||||
### Mounting folder/ volume
|
||||
|
||||
It is possible to mount an empty folder to /opt/iobroker during first startup of the container. The startup script will check this folder and restore content if it is empty.
|
||||
Since v4.1.0 it is also possible mount a folder filled up with an iobroker backup file (for example created with backitup adapter) named like this: "iobroker_2020_01_06-01_09_10_backupiobroker.tar.gz".
|
||||
The startup script will detect this backup and restore it during the start of the container. Please see container logs when starting the container for more details!
|
||||
Since v4.1.0 it is also possible mount a folder filled up with an iobroker backup file created using "iobroker backup" command or backitup adapter. Please take care of the name of your backup file ending like this: "*_backupiobroker.tar.gz".
|
||||
The startup script will then detect this backup and restore it during the start of the container. Please see container logs when starting the container for more details!
|
||||
|
||||
Note: It is absolutely recommended to use a mounted folder or persistent volume for /opt/iobroker folder!
|
||||
|
||||
@@ -164,6 +164,12 @@ Thank you!
|
||||
|
||||
## Changelog
|
||||
|
||||
### v5.0.1beta (2020-07-01)
|
||||
* fixing backup detection in startup script
|
||||
* fixing permission issue on iobroker restored
|
||||
* extended Logging
|
||||
* optimize multihost support
|
||||
|
||||
### v5.0.0 (2020-06-29)
|
||||
* v4.2.4beta (2020-06-23)
|
||||
* added graceful shutdown
|
||||
|
||||
@@ -70,9 +70,6 @@ RUN apt-get update \
|
||||
WORKDIR /opt/iobroker/
|
||||
RUN npm install -g node-gyp
|
||||
|
||||
# Temporary updating js-controller to not stable version
|
||||
RUN npm install iobroker.js-controller@3.1.6
|
||||
|
||||
# Backup initial ioBroker and userscript folder
|
||||
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts
|
||||
|
||||
@@ -43,8 +43,9 @@ echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- ENV -----"
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $avahi)" && echo " -----"; fi
|
||||
if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi
|
||||
if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi
|
||||
if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi
|
||||
if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi
|
||||
@@ -114,9 +115,16 @@ then
|
||||
elif [ -f /opt/iobroker/iobroker ]
|
||||
then
|
||||
echo "Existing installation of ioBroker detected in /opt/iobroker."
|
||||
elif [ $(ls iobroker_20* 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/iobroker_20*.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
elif [ $(ls *_backupiobroker.tar.gz 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/*_backupiobroker.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
then
|
||||
echo "ioBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
if [ "$multihost" = "slave" ]
|
||||
then
|
||||
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
||||
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/docker-iobroker)."
|
||||
exit 1
|
||||
else
|
||||
echo "IoBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
tar -xf /opt/initial_iobroker.tar -C /
|
||||
mkdir /opt/iobroker/backups
|
||||
@@ -132,9 +140,10 @@ then
|
||||
echo "!!!!! This might be take a looooong time! Please be patient! !!!!!"
|
||||
echo "!!!!! You can view installation process by taking a look at ioBroker log. !!!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
fi
|
||||
else
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of iobroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and restart ioBroker container."
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and start over."
|
||||
exit 1
|
||||
fi
|
||||
echo ' '
|
||||
@@ -263,6 +272,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
||||
@@ -303,6 +313,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
||||
@@ -347,6 +358,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of objects db to \""$objectsdbtype"\"..."
|
||||
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -356,6 +368,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of objects db to \""$objectsdbhost"\"..."
|
||||
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -365,6 +378,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of objects db to \""$objectsdbport"\"..."
|
||||
jq --arg objectsdbport "$objectsdbport" '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -381,6 +395,7 @@ then
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of states db to \""$statesdbtype"\"..."
|
||||
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -390,6 +405,7 @@ then
|
||||
echo "ENV IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of states db to \""$statesdbhost"\"..."
|
||||
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -399,6 +415,7 @@ then
|
||||
echo "ENV IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of states db to \""$statesdbport"\"..."
|
||||
jq --arg statesdbport "$statesdbport" '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
|
||||
@@ -70,9 +70,6 @@ RUN apt-get update \
|
||||
WORKDIR /opt/iobroker/
|
||||
RUN npm install -g node-gyp
|
||||
|
||||
# Temporary updating js-controller to not stable version
|
||||
RUN npm install iobroker.js-controller@3.1.6
|
||||
|
||||
# Backup initial ioBroker and userscript folder
|
||||
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts
|
||||
|
||||
@@ -43,8 +43,9 @@ echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- ENV -----"
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $avahi)" && echo " -----"; fi
|
||||
if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi
|
||||
if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi
|
||||
if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi
|
||||
if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi
|
||||
@@ -114,9 +115,16 @@ then
|
||||
elif [ -f /opt/iobroker/iobroker ]
|
||||
then
|
||||
echo "Existing installation of ioBroker detected in /opt/iobroker."
|
||||
elif [ $(ls iobroker_20* 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/iobroker_20*.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
elif [ $(ls *_backupiobroker.tar.gz 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/*_backupiobroker.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
then
|
||||
echo "ioBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
if [ "$multihost" = "slave" ]
|
||||
then
|
||||
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
||||
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/docker-iobroker)."
|
||||
exit 1
|
||||
else
|
||||
echo "IoBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
tar -xf /opt/initial_iobroker.tar -C /
|
||||
mkdir /opt/iobroker/backups
|
||||
@@ -132,9 +140,10 @@ then
|
||||
echo "!!!!! This might be take a looooong time! Please be patient! !!!!!"
|
||||
echo "!!!!! You can view installation process by taking a look at ioBroker log. !!!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
fi
|
||||
else
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of iobroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and restart ioBroker container."
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and start over."
|
||||
exit 1
|
||||
fi
|
||||
echo ' '
|
||||
@@ -263,6 +272,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
||||
@@ -303,6 +313,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
||||
@@ -347,6 +358,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of objects db to \""$objectsdbtype"\"..."
|
||||
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -356,6 +368,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of objects db to \""$objectsdbhost"\"..."
|
||||
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -365,6 +378,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of objects db to \""$objectsdbport"\"..."
|
||||
jq --arg objectsdbport "$objectsdbport" '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -381,6 +395,7 @@ then
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of states db to \""$statesdbtype"\"..."
|
||||
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -390,6 +405,7 @@ then
|
||||
echo "ENV IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of states db to \""$statesdbhost"\"..."
|
||||
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -399,6 +415,7 @@ then
|
||||
echo "ENV IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of states db to \""$statesdbport"\"..."
|
||||
jq --arg statesdbport "$statesdbport" '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
|
||||
@@ -70,9 +70,6 @@ RUN apt-get update \
|
||||
WORKDIR /opt/iobroker/
|
||||
RUN npm install -g node-gyp
|
||||
|
||||
# Temporary updating js-controller to not stable version
|
||||
RUN npm install iobroker.js-controller@3.1.6
|
||||
|
||||
# Backup initial ioBroker and userscript folder
|
||||
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts
|
||||
|
||||
@@ -43,8 +43,9 @@ echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -
|
||||
echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- ENV -----"
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi
|
||||
if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $avahi)" && echo " -----"; fi
|
||||
if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi
|
||||
if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi
|
||||
if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi
|
||||
if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi
|
||||
@@ -114,9 +115,16 @@ then
|
||||
elif [ -f /opt/iobroker/iobroker ]
|
||||
then
|
||||
echo "Existing installation of ioBroker detected in /opt/iobroker."
|
||||
elif [ $(ls iobroker_20* 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/iobroker_20*.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
elif [ $(ls *_backupiobroker.tar.gz 2> /dev/null | wc -l) != "0" ] && [ $(tar -ztvf /opt/iobroker/*_backupiobroker.tar.gz "backup/backup.json" 2> /dev/null | wc -l) != "0" ]
|
||||
then
|
||||
echo "ioBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
if [ "$multihost" = "slave" ]
|
||||
then
|
||||
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
||||
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
||||
echo "For more information see readme.md on Github (https://github.com/buanet/docker-iobroker)."
|
||||
exit 1
|
||||
else
|
||||
echo "IoBroker backup file detected in /opt/iobroker. Restoring ioBroker..."
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
tar -xf /opt/initial_iobroker.tar -C /
|
||||
mkdir /opt/iobroker/backups
|
||||
@@ -132,9 +140,10 @@ then
|
||||
echo "!!!!! This might be take a looooong time! Please be patient! !!!!!"
|
||||
echo "!!!!! You can view installation process by taking a look at ioBroker log. !!!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
fi
|
||||
else
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of iobroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and restart ioBroker container."
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!"
|
||||
echo "Please check/ recreate mounted folder/ volume and start over."
|
||||
exit 1
|
||||
fi
|
||||
echo ' '
|
||||
@@ -263,6 +272,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
||||
@@ -303,6 +313,7 @@ then
|
||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
echo ' '
|
||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
||||
@@ -347,6 +358,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of objects db to \""$objectsdbtype"\"..."
|
||||
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -356,6 +368,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of objects db to \""$objectsdbhost"\"..."
|
||||
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -365,6 +378,7 @@ then
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of objects db to \""$objectsdbport"\"..."
|
||||
jq --arg objectsdbport "$objectsdbport" '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -381,6 +395,7 @@ then
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||
echo "Setting type of states db to \""$statesdbtype"\"..."
|
||||
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -390,6 +405,7 @@ then
|
||||
echo "ENV IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||
echo "Setting host of states db to \""$statesdbhost"\"..."
|
||||
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
@@ -399,6 +415,7 @@ then
|
||||
echo "ENV IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||
echo "Setting port of states db to \""$statesdbport"\"..."
|
||||
jq --arg statesdbport "$statesdbport" '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||
echo "Done."
|
||||
else
|
||||
echo "ENV IOB_STATESDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
||||
|
||||
Reference in New Issue
Block a user