mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 18:39:01 +02:00
Compare commits
51 Commits
v8.0.0-bet
...
v8.1.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
721c108742 | ||
|
|
7a455952dd | ||
|
|
a04f210190 | ||
|
|
0f59839695 | ||
|
|
4f15a4df23 | ||
|
|
686b391119 | ||
|
|
d5a6596070 | ||
|
|
7af5507f11 | ||
|
|
2e767eab3d | ||
|
|
97c5e4993d | ||
|
|
568bfab015 | ||
|
|
551dc98282 | ||
|
|
8c9279b867 | ||
|
|
065d0cb4df | ||
|
|
acad72922e | ||
|
|
8fe4d775f5 | ||
|
|
e283d25710 | ||
|
|
f60c87388c | ||
|
|
893908f29d | ||
|
|
16e30c392d | ||
|
|
a954b51223 | ||
|
|
6a55923669 | ||
|
|
bbac132f28 | ||
|
|
9afa6646c2 | ||
|
|
874b6d8af0 | ||
|
|
d126eb190b | ||
|
|
3a745f97bc | ||
|
|
c79d4a9fde | ||
|
|
9e8f8bfd1e | ||
|
|
f56a523e55 | ||
|
|
96d97f5b35 | ||
|
|
954557f28c | ||
|
|
e332bc0e41 | ||
|
|
1b1249eb46 | ||
|
|
d1ef726594 | ||
|
|
d907c34d6a | ||
|
|
3e2589fae9 | ||
|
|
6ddb84333f | ||
|
|
61d655b9e6 | ||
|
|
be18293a5b | ||
|
|
454287d078 | ||
|
|
619de2abc2 | ||
|
|
d160acfd1a | ||
|
|
5419ae2bf1 | ||
|
|
4a68f645f4 | ||
|
|
04805e9ce1 | ||
|
|
8ee1753ea0 | ||
|
|
c7da4e131d | ||
|
|
b4ee2b2a12 | ||
|
|
a369647e13 | ||
|
|
632c7cd87e |
2
.github/dependencies/.backitup-version
vendored
2
.github/dependencies/.backitup-version
vendored
@@ -1 +1 @@
|
||||
2.5.12
|
||||
2.6.16
|
||||
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.1.0
|
||||
|
||||
@@ -43,7 +43,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.1.0
|
||||
@@ -64,12 +64,17 @@ jobs:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:beta,
|
||||
buanet/iobroker:${{ env.version }},
|
||||
ghcr.io/buanet/iobroker:beta,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.1.0
|
||||
|
||||
21
.github/workflows/build-debian-image-dev.yml
vendored
21
.github/workflows/build-debian-image-dev.yml
vendored
@@ -9,11 +9,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v3.5.0
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Fetching version tag and date
|
||||
- name: Fetch version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.1.0
|
||||
@@ -52,19 +52,24 @@ jobs:
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v4.0.0
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:dev,
|
||||
ghcr.io/buanet/iobroker:dev
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
- name: Delete untagged images from GitHub Container Registry
|
||||
uses: actions/github-script@v6.4.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
@@ -81,4 +86,4 @@ jobs:
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
PER_PAGE: 100
|
||||
|
||||
@@ -38,15 +38,15 @@ jobs:
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v2.1.0
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
uses: docker/build-push-action@v4.0.0
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node16/Dockerfile
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
tags: |
|
||||
|
||||
10
.github/workflows/build-debian-image-latest.yml
vendored
10
.github/workflows/build-debian-image-latest.yml
vendored
@@ -38,16 +38,15 @@ jobs:
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.4.1
|
||||
|
||||
uses: docker/setup-buildx-action@v2.5.0
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v2.1.0
|
||||
with:
|
||||
@@ -65,7 +64,8 @@ jobs:
|
||||
uses: docker/build-push-action@v4.0.0
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node16/Dockerfile
|
||||
file: ./debian/node18/Dockerfile
|
||||
#provenance: false
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
tags: |
|
||||
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.vscode/
|
||||
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"cSpell.enableFiletypes": [
|
||||
"shellscript"
|
||||
]
|
||||
}
|
||||
41
CHANGELOG.md
41
CHANGELOG.md
@@ -1,16 +1,33 @@
|
||||
## Changelog
|
||||
### v8.0.0-beta.1 (20.02.2023)
|
||||
* upgrade node version to recommended node18
|
||||
* rewrite of multihost setup handling
|
||||
* rewrite of custom objects and states db setup handling
|
||||
* enhance initial packages install/ update
|
||||
* enhance logging and error handling
|
||||
* add volume instruction to dockerfile
|
||||
* add support for password protected custom objects and states db ([#306](https://github.com/buanet/ioBroker.docker/issues/306))
|
||||
* add support for redis sentinel ([#311](https://github.com/buanet/ioBroker.docker/issues/311))
|
||||
* add restore command to maintenance script
|
||||
* add database connection check at startup
|
||||
* remove initial restore feature
|
||||
|
||||
### v8.1.0-beta.2 (coming soon)
|
||||
* prohibit restore when startup script is still running
|
||||
* extend time before restart after restore is done
|
||||
* v8.1.0-beta.1 (14.04.2023)
|
||||
* enhance github actions
|
||||
* enhance log output of maintenance script on restore ([#333](https://github.com/buanet/ioBroker.docker/issues/333))
|
||||
* allow iobroker admin to be disabled at startup ([#332](https://github.com/buanet/ioBroker.docker/issues/332))
|
||||
* allow deletion of objects and states db password with value "none" ([#306](https://github.com/buanet/ioBroker.docker/issues/306))
|
||||
|
||||
### v8.0.1 (17.04.2023)
|
||||
* fix calling of "iob setup first" on slaves ([#335](https://github.com/buanet/ioBroker.docker/issues/335))
|
||||
|
||||
### v8.0.0 (20.03.2023)
|
||||
* update readme and docs
|
||||
* remove manifests
|
||||
* enhance dockerfile, reduce image size ([#323](https://github.com/buanet/ioBroker.docker/issues/323))
|
||||
* v8.0.0-beta.1 (20.02.2023)
|
||||
* upgrade node version to recommended node18
|
||||
* rewrite of multihost setup handling
|
||||
* rewrite of custom objects and states db setup handling
|
||||
* enhance initial packages install/ update
|
||||
* enhance logging and error handling
|
||||
* add volume instruction to dockerfile
|
||||
* add support for password protected custom objects and states db ([#306](https://github.com/buanet/ioBroker.docker/issues/306))
|
||||
* add support for redis sentinel ([#311](https://github.com/buanet/ioBroker.docker/issues/311))
|
||||
* add restore command to maintenance script
|
||||
* add database connection check at startup
|
||||
* remove initial restore feature
|
||||
|
||||
### v7.2.0 (12.12.2022)
|
||||
* update docs
|
||||
|
||||
10
README.md
10
README.md
@@ -3,18 +3,19 @@
|
||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
The code provided in this repo is used to automatically generate the official Docker Image for ioBroker.
|
||||
@@ -35,7 +36,7 @@ You can find some basic information about the image amd how to run it on the [Do
|
||||
|
||||
### Is there a more detailed documentation?
|
||||
|
||||
You can find a detailed documentation of the image on the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/).
|
||||
You can find a detailed documentation of the image at [docs.buanet.de](https://docs.buanet.de/iobroker-docker-image/docs/).
|
||||
|
||||
### Where can I pull the image?
|
||||
|
||||
@@ -50,6 +51,7 @@ If you have any questions or need help please visit the ioBroker community:
|
||||
* [ioBroker forum](https://forum.iobroker.net/)
|
||||
* [Discord channel](https://discord.gg/Ne3y6fUac3)
|
||||
* [Facebook group](https://www.facebook.com/groups/440499112958264/)
|
||||
* [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi)
|
||||
|
||||
### How to report an issue or request a feature?
|
||||
|
||||
@@ -66,7 +68,7 @@ If you want to get the newest features and changes feel free to use/ test the be
|
||||
|
||||
The easiest way to support this project is to leave me some likes/ stars on Github and Docker hub!<br>
|
||||
If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!<br>
|
||||
If that doesn't work for you and you want to buy me a beer instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
||||
If that doesn't work for you and you want to buy me a pizza instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
||||
Thank you!
|
||||
|
||||
## :memo: Changelog
|
||||
|
||||
26
debian/node18/Dockerfile
vendored
26
debian/node18/Dockerfile
vendored
@@ -1,7 +1,7 @@
|
||||
FROM debian:bullseye-slim
|
||||
|
||||
LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \
|
||||
org.opencontainers.image.description="Official Docker image for ioBroker smarthome software (https://www.iobroker.net)" \
|
||||
org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \
|
||||
org.opencontainers.image.authors="André Germann <info@buanet.de>" \
|
||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||
@@ -12,6 +12,10 @@ LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Copy scripts
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
|
||||
# Install prerequisites (including node) and generating locales
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apt-utils \
|
||||
@@ -38,26 +42,22 @@ RUN apt-get update && apt-get install -y \
|
||||
# Generating locales
|
||||
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& locale-gen
|
||||
|
||||
# Create directorys and copy scripts
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
RUN chmod 777 /opt/scripts/ \
|
||||
&& locale-gen \
|
||||
# Change permissions for scripts
|
||||
&& chmod 777 /opt/scripts/ \
|
||||
&& chmod 777 /opt/userscripts/ \
|
||||
&& chmod +x /opt/scripts/*.sh \
|
||||
&& chmod +x /opt/userscripts/*.sh
|
||||
|
||||
# Prepare and install ioBroker
|
||||
RUN mkdir -p /opt/scripts/.docker_config/ \
|
||||
&& chmod +x /opt/userscripts/*.sh \
|
||||
# Prepare
|
||||
&& mkdir -p /opt/scripts/.docker_config/ \
|
||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||
&& echo "ture" > /opt/.first_run \
|
||||
&& echo "true" > /opt/.first_run \
|
||||
# Run installer
|
||||
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||
# Deleting UUID from build
|
||||
&& iobroker unsetup -y \
|
||||
&& echo "ture" > /opt/iobroker/.fresh_install \
|
||||
&& echo "true" > /opt/iobroker/.fresh_install \
|
||||
# Backup initial ioBroker and userscript folder
|
||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||
|
||||
25
debian/scripts/iobroker_startup.sh
vendored
25
debian/scripts/iobroker_startup.sh
vendored
@@ -143,9 +143,10 @@ if [[ -f /opt/.first_run ]]; then
|
||||
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
||||
elif [[ "$packages" != "" ]]; then
|
||||
echo "PACKAGES is set. Installing the following additional Linux packages: ""$packages"
|
||||
echo "$packages" > /opt/scripts/.docker_config/.packages
|
||||
# echo "$packages" > /opt/scripts/.docker_config/.packages
|
||||
bash /opt/scripts/setup_packages.sh -install
|
||||
fi
|
||||
echo ' '
|
||||
# Register maintenance script
|
||||
echo -n 'Registering maintenance script as command... '
|
||||
echo "alias maintenance=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
||||
@@ -302,8 +303,8 @@ else
|
||||
stop_on_error
|
||||
fi
|
||||
|
||||
# if restored a fresh install, runing "iob setup first" for database init, otherwise check database connection
|
||||
if [[ -f /opt/iobroker/.fresh_install ]]; then
|
||||
# if restored a fresh install, running "iob setup first" for database init (but not on slaves!), otherwise check database connection
|
||||
if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||
echo -n "Initializing a fresh installation of ioBroker... "
|
||||
set +e
|
||||
bash iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
@@ -352,10 +353,20 @@ else
|
||||
adminhostname=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
echo "There was a problem detecting the admin instance of your iobroker."
|
||||
echo "Make sure the ioBroker installation you use has an admin instance or try again with a fresh installation and restore your configuration."
|
||||
echo "For more details see https://docs.buanet.de/iobroker-docker-image/docs/#restore"
|
||||
stop_on_error
|
||||
set +e
|
||||
admininstance=$(bash iobroker list instances | grep 'disabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is disabled."; fi
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
echo "There was a problem detecting the admin instance of your iobroker."
|
||||
echo "Make sure the ioBroker installation you use has an admin instance or try again with a fresh installation and restore your configuration."
|
||||
echo "For more details see https://docs.buanet.de/iobroker-docker-image/docs/#restore"
|
||||
stop_on_error
|
||||
fi
|
||||
fi
|
||||
# check hostname
|
||||
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
||||
|
||||
34
debian/scripts/maintenance.sh
vendored
34
debian/scripts/maintenance.sh
vendored
@@ -38,6 +38,11 @@ maintenance_enabled() {
|
||||
[[ -f "$healthcheck" && "$(cat "$healthcheck")" == maintenance ]]
|
||||
}
|
||||
|
||||
# check status starting
|
||||
check_starting() {
|
||||
[[ -f "$healthcheck" && "$(cat "$healthcheck")" == starting ]]
|
||||
}
|
||||
|
||||
# display maintenance status
|
||||
maintenance_status() {
|
||||
if maintenance_enabled; then
|
||||
@@ -221,6 +226,8 @@ restart_container() {
|
||||
# restore iobroker
|
||||
restore_iobroker() {
|
||||
echo 'You are now going to perform a restore of your iobroker.'
|
||||
echo 'During the restore process, the container will automatically switch into maintenance mode and stop ioBroker.'
|
||||
echo 'Depending on the restart policy, your container will be stopped or restarted automatically after the restore.'
|
||||
|
||||
if [[ "$autoconfirm" != yes ]]; then
|
||||
local reply
|
||||
@@ -235,14 +242,29 @@ restore_iobroker() {
|
||||
echo 'This command was already confirmed by the -y or --yes option.'
|
||||
fi
|
||||
|
||||
echo -n 'Stopping ioBroker...'
|
||||
stop_iob
|
||||
if check_starting > /dev/null; then
|
||||
echo "Startup script is still running."
|
||||
echo "Please check container log and wait until ioBroker is sucessfully started."
|
||||
echo "Then try again."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# fixing permission errors during restore
|
||||
#chown -R $setuid:$setgid /opt/iobroker/backup
|
||||
if ! maintenance_enabled > /dev/null; then
|
||||
autoconfirm=yes
|
||||
enable_maintenance
|
||||
fi
|
||||
|
||||
echo -n "Restoring ioBroker... "
|
||||
set +e
|
||||
bash iobroker restore 0 > /opt/iobroker/log/restore.log 2>&1
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/iobroker/log/restore.log\"."
|
||||
echo "Please check backup file location and permissions and try again."
|
||||
return 1
|
||||
fi
|
||||
echo 'Done.'
|
||||
echo ' '
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
@@ -254,8 +276,8 @@ restore_iobroker() {
|
||||
echo "!!!! You can view installation process by taking a look at ioBroker log. !!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
sleep 10
|
||||
echo 'Container will be stopped or restarted in 5 seconds...'
|
||||
sleep 5
|
||||
echo 'Container will be stopped or restarted in 10 seconds...'
|
||||
sleep 10
|
||||
echo 'stopping' > "$healthcheck"
|
||||
pkill -u root
|
||||
}
|
||||
|
||||
16
debian/scripts/setup_iob_db.sh
vendored
16
debian/scripts/setup_iob_db.sh
vendored
@@ -99,7 +99,13 @@ set_objectsdb_port() {
|
||||
fi
|
||||
}
|
||||
set_objectsdb_pass() {
|
||||
if [[ "$objectsdbpass" != "$(jq -r '.objects.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
if [[ "$objectsdbpass" == "none" ]]; then
|
||||
echo "IOB_OBJECTSDB_PASS is available but value is set to \"none\"."
|
||||
echo -n "Removing password of objects db... "
|
||||
jq '.objects.options.auth_pass = null' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo 'Done.'
|
||||
elif [[ "$objectsdbpass" != "$(jq -r '.objects.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_PASS is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting password of objects db... "
|
||||
jq --arg value "$objectsdbpass" '.objects.options.auth_pass = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
@@ -188,7 +194,13 @@ set_statesdb_port() {
|
||||
fi
|
||||
}
|
||||
set_statesdb_pass() {
|
||||
if [[ "$statesdbpass" != "$(jq -r '.states.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
if [[ "$statesdbpass" == "none" ]]; then
|
||||
echo "IOB_STATESDB_PASS is available but value is set to \"none\"."
|
||||
echo -n "Removing password of states db... "
|
||||
jq '.states.options.auth_pass = null' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo 'Done.'
|
||||
elif [[ "$statesdbpass" != "$(jq -r '.states.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_PASS is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting password of states db... "
|
||||
jq --arg value "$statesdbpass" '.states.options.auth_pass = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
|
||||
85
debian/scripts/setup_packages.sh
vendored
85
debian/scripts/setup_packages.sh
vendored
@@ -1,36 +1,69 @@
|
||||
#!/bin/bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
# Reading ENV
|
||||
set +u
|
||||
packages=$PACKAGES
|
||||
debug=$DEBUG
|
||||
set -u
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
if [ "$1" == "-install" ]
|
||||
then
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
packages=$(cat /opt/scripts/.docker_config/.packages)
|
||||
echo ' '
|
||||
for i in $packages; do
|
||||
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ];
|
||||
then
|
||||
echo -n "$i is not installed. Installing... "
|
||||
DEBIAN_FRONTEND=noninteractive apt-get -q -y install "$i" >> /opt/scripts/setup_packages.log 2>&1
|
||||
return=$?
|
||||
if [[ "$return" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/scripts/setup_packages.log\"."
|
||||
echo ' '
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
else
|
||||
echo "$i is already installed."
|
||||
fi
|
||||
check_package_preq() {
|
||||
# check for influx packages
|
||||
if [[ "$i" == "influxdb" || "$i" == "influxdb2-cli" ]]; then
|
||||
# add influxdata repo keys
|
||||
wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
|
||||
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
fi
|
||||
}
|
||||
check_package_validity() {
|
||||
# check string for double spaces
|
||||
while echo "$packages" | grep -q ' '; do
|
||||
packages=$(echo "$packages" | sed 's/ / /g')
|
||||
done
|
||||
elif [ "$1" == "-update" ]; then
|
||||
# remove packages when "influxdb" AND "influxdb2-cli"
|
||||
if echo "$packages" | grep -qw "influxdb" && echo "$packages" | grep -qw "influxdb2-cli"; then
|
||||
echo "PACKAGES includes influxdb AND influxdb2-cli."
|
||||
echo "As installing both packages together is not possible, they will be skipped."
|
||||
packages=$(echo "$packages" | sed 's/influxdb2-cli//g;s/influxdb//g')
|
||||
# check string for double spaces again
|
||||
while echo "$packages" | grep -q ' '; do
|
||||
packages=$(echo "$packages" | sed 's/ / /g')
|
||||
done
|
||||
if [[ $debug == "true" ]]; then echo "[DEBUG] New list of packages: ""$packages"; fi
|
||||
echo ' '
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$1" == "-install" ]]; then
|
||||
echo ' '
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
check_package_validity
|
||||
for i in $packages; do
|
||||
if ! dpkg -s "$i" >/dev/null 2>&1; then
|
||||
echo -n "$i is not installed. Installing... "
|
||||
check_package_preq >> /opt/scripts/setup_packages.log 2>&1
|
||||
if ! apt-get -q -y install "$i" >> /opt/scripts/setup_packages.log 2>&1; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/scripts/setup_packages.log\"."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
else
|
||||
echo "$i is already installed."
|
||||
fi
|
||||
done
|
||||
elif [[ "$1" == "-update" ]]; then
|
||||
echo -n "Updating Linux packages on first run... "
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
return=$?
|
||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||
return1=$?
|
||||
if [[ "$return" -ne 0 || "$return1" -ne 0 ]]; then
|
||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||
return2=$?
|
||||
if [[ "$return1" -ne 0 || "$return2" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/scripts/setup_packages.log\"."
|
||||
echo "Make sure the container has internet access to get the latest package updates."
|
||||
@@ -47,4 +80,4 @@ fi
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* && rm -rf /root/.cache/* && rm -rf /var/lib/apt/lists/* && rm -f /opt/scripts/.docker_config/.packages
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
@@ -1,23 +1,29 @@
|
||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||
|
||||
[](https://hub.docker.com/r/buanet/iobroker)
|
||||
[](https://hub.docker.com/r/buanet/iobroker)
|
||||
[](https://hub.docker.com/r/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v4, v5, v6) always include a new major version of node! This might lead to issues when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
New major image versions (e.g. v6, v7, v8) always include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker Forum](https://forum.iobroker.net/), [ioBroker Discord Channel](https://discord.gg/HwUCwsH)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
@@ -26,17 +32,17 @@ New major image versions (e.g. v4, v5, v6) always include a new major version of
|
||||
|
||||
# Supported tags
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[X]` tag instead.
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 18 versions
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
|
||||
### Node 16 versions
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.1.2`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile)
|
||||
* [`v7.0.1`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile)
|
||||
|
||||
### Node 14 versions
|
||||
* [`v6.1.0`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile)
|
||||
* [`v6.0.0`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||
@@ -91,33 +97,37 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
### Configure ioBroker application:
|
||||
|
||||
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set "true" for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis" ([not officially supported](https://github.com/ioBroker/ioBroker#databases)).
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set `true` for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
||||
|
||||
### Activate special features:
|
||||
|
||||
* `AVAHI` (optional) Set "true" to install and activate avahi-daemon for supporting yahka-adapter
|
||||
* `ZWAVE` (optional) Set "true" to install openzwave to support zwave-adapter
|
||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave adapter
|
||||
|
||||
### Configure environment:
|
||||
|
||||
* `DEBUG` (optional) Set "true" to get extended logging messages on container startup
|
||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en
|
||||
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `OFFLINE_MODE` (optional) Set "true" if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3".
|
||||
* `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||
* `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
|
||||
* `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
|
||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like "/dev/ttyACM0" (inside the container), for more than one device separate with ";"
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
||||
|
||||
## Notes about Docker networks
|
||||
|
||||
|
||||
@@ -1,24 +1,31 @@
|
||||
##### The image provided as [iobroker/iobroker](https://hub.docker.com/r/iobroker/iobroker) is a duplicate of [buanet/iobroker](https://hub.docker.com/r/buanet/iobroker)
|
||||
##### Note: The image provided as [iobroker/iobroker](https://hub.docker.com/r/iobroker/iobroker) is a mirror of [buanet/iobroker](https://hub.docker.com/r/buanet/iobroker)
|
||||
|
||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||
|
||||
[](https://hub.docker.com/r/iobroker/iobroker)
|
||||
[](https://hub.docker.com/r/iobroker/iobroker)
|
||||
[](https://hub.docker.com/r/iobroker/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v4, v5, v6) always include a new major version of node! This might lead to issues when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
New major image versions (e.g. v6, v7, v8) always include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker Forum](https://forum.iobroker.net/), [ioBroker Discord Channel](https://discord.gg/HwUCwsH)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
@@ -27,17 +34,17 @@ New major image versions (e.g. v4, v5, v6) always include a new major version of
|
||||
|
||||
# Supported tags
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[X]` tag instead.
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 18 versions
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
|
||||
### Node 16 versions
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`v7.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.1.2`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile)
|
||||
* [`v7.0.1`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile)
|
||||
|
||||
### Node 14 versions
|
||||
* [`v6.1.0`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`v6.1.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.1.0/debian/node14/Dockerfile)
|
||||
* [`v6.0.0`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||
@@ -92,33 +99,37 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
### Configure ioBroker application:
|
||||
|
||||
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set "true" for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis" ([not officially supported](https://github.com/ioBroker/ioBroker#databases)).
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set `true` for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
||||
|
||||
### Activate special features:
|
||||
|
||||
* `AVAHI` (optional) Set "true" to install and activate avahi-daemon for supporting yahka-adapter
|
||||
* `ZWAVE` (optional) Set "true" to install openzwave to support zwave-adapter
|
||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave adapter
|
||||
|
||||
### Configure environment:
|
||||
|
||||
* `DEBUG` (optional) Set "true" to get extended logging messages on container startup
|
||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en
|
||||
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `OFFLINE_MODE` (optional) Set "true" if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3".
|
||||
* `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||
* `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
|
||||
* `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
|
||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like "/dev/ttyACM0" (inside the container), for more than one device separate with ";"
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
||||
|
||||
## Notes about Docker networks
|
||||
|
||||
@@ -133,4 +144,4 @@ For more information about networking with Docker please refer to the [official
|
||||
# Support the Project
|
||||
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.
|
||||
See you soon. :)
|
||||
See you soon. :)
|
||||
19
manifest.yml
19
manifest.yml
@@ -1,19 +0,0 @@
|
||||
image: buanet/iobroker:${DOCKERTAG}
|
||||
manifests:
|
||||
-
|
||||
image: buanet/iobroker:${VERSION}-amd64
|
||||
platform:
|
||||
architecture: amd64
|
||||
os: linux
|
||||
-
|
||||
image: buanet/iobroker:${VERSION}-arm64v8
|
||||
platform:
|
||||
architecture: arm64
|
||||
variant: v8
|
||||
os: linux
|
||||
-
|
||||
image: buanet/iobroker:${VERSION}-arm32v7
|
||||
platform:
|
||||
architecture: arm
|
||||
variant: v7
|
||||
os: linux
|
||||
@@ -1,19 +0,0 @@
|
||||
image: ghcr.io/buanet/iobroker:${DOCKERTAG}
|
||||
manifests:
|
||||
-
|
||||
image: ghcr.io/buanet/iobroker:${VERSION}-amd64
|
||||
platform:
|
||||
architecture: amd64
|
||||
os: linux
|
||||
-
|
||||
image: ghcr.io/buanet/iobroker:${VERSION}-arm64v8
|
||||
platform:
|
||||
architecture: arm64
|
||||
variant: v8
|
||||
os: linux
|
||||
-
|
||||
image: ghcr.io/buanet/iobroker:${VERSION}-arm32v7
|
||||
platform:
|
||||
architecture: arm
|
||||
variant: v7
|
||||
os: linux
|
||||
@@ -1,19 +0,0 @@
|
||||
image: iobroker/iobroker:${DOCKERTAG}
|
||||
manifests:
|
||||
-
|
||||
image: iobroker/iobroker:${VERSION}-amd64
|
||||
platform:
|
||||
architecture: amd64
|
||||
os: linux
|
||||
-
|
||||
image: iobroker/iobroker:${VERSION}-arm64v8
|
||||
platform:
|
||||
architecture: arm64
|
||||
variant: v8
|
||||
os: linux
|
||||
-
|
||||
image: iobroker/iobroker:${VERSION}-arm32v7
|
||||
platform:
|
||||
architecture: arm
|
||||
variant: v7
|
||||
os: linux
|
||||
Reference in New Issue
Block a user