mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 18:39:01 +02:00
Compare commits
95 Commits
v9.0.0-bet
...
gui_for_ma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0ea8c2808 | ||
|
|
d1bbbfff58 | ||
|
|
11e30fa638 | ||
|
|
e5956c6faf | ||
|
|
feb02a7a33 | ||
|
|
3f3cfdb077 | ||
|
|
3a8e38b3ee | ||
|
|
fa9e09ed1b | ||
|
|
5c97b2a041 | ||
|
|
c6b0d307b5 | ||
|
|
59ffff608a | ||
|
|
6c34c0a081 | ||
|
|
92821ab262 | ||
|
|
2eb7f4e71f | ||
|
|
b626063647 | ||
|
|
cef5ed1ef5 | ||
|
|
68b285d55f | ||
|
|
e1910d6f3b | ||
|
|
bc483cc5f0 | ||
|
|
bf87667fc0 | ||
|
|
375d192c7c | ||
|
|
4738e035b5 | ||
|
|
814cfae657 | ||
|
|
10de4b1a55 | ||
|
|
760a36f72a | ||
|
|
55c5b44537 | ||
|
|
317264f849 | ||
|
|
4614b8c41a | ||
|
|
d4469b80d5 | ||
|
|
24d5f3c9ed | ||
|
|
f01167d513 | ||
|
|
f27a29a325 | ||
|
|
a24628e306 | ||
|
|
3553ce3a65 | ||
|
|
75f6496ffe | ||
|
|
f7de2fbad2 | ||
|
|
b56d2fad26 | ||
|
|
51306ed80d | ||
|
|
5d382d082b | ||
|
|
6ec036a577 | ||
|
|
4d86b980f9 | ||
|
|
582d604b8b | ||
|
|
483139b417 | ||
|
|
aa86db5724 | ||
|
|
7a77f18fb8 | ||
|
|
6dd6cb5c20 | ||
|
|
77831a2edd | ||
|
|
88979d48b1 | ||
|
|
e305053c26 | ||
|
|
3e1c1fa103 | ||
|
|
c6781e19e6 | ||
|
|
9eacde484a | ||
|
|
9ba748467e | ||
|
|
9da9e91453 | ||
|
|
b80e5cc26b | ||
|
|
3b3dc39bc8 | ||
|
|
117f57aa3e | ||
|
|
49f9f9ad8b | ||
|
|
36ac44fd5a | ||
|
|
3e9670b197 | ||
|
|
f3f5df4819 | ||
|
|
6bbdd0572a | ||
|
|
0c27976158 | ||
|
|
8ed0078dea | ||
|
|
a374fee273 | ||
|
|
b0493be646 | ||
|
|
c614aeb863 | ||
|
|
3117d590b6 | ||
|
|
45cae5a781 | ||
|
|
b1b779ac5d | ||
|
|
63a3491be4 | ||
|
|
f2aa915f71 | ||
|
|
2179df0893 | ||
|
|
e5bb412719 | ||
|
|
d464910e62 | ||
|
|
d59d6f5a77 | ||
|
|
a8fc42f93b | ||
|
|
ca11192265 | ||
|
|
2907a44f46 | ||
|
|
4cb4aa8cce | ||
|
|
989fe8b03b | ||
|
|
9b384a38b5 | ||
|
|
6832057596 | ||
|
|
bbf834c218 | ||
|
|
24b76d4af7 | ||
|
|
9aab0af6bd | ||
|
|
048603b685 | ||
|
|
47bccc997a | ||
|
|
788ef45134 | ||
|
|
62d4fcd0c1 | ||
|
|
a59977101b | ||
|
|
12ba15b318 | ||
|
|
3940ea9203 | ||
|
|
56134b300e | ||
|
|
ccb7d636c0 |
17
.github/ISSUE_TEMPLATE/config.yml
vendored
17
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,11 +1,14 @@
|
||||
blank_issues_enabled: true
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: ioBroker Docker image discussions
|
||||
- name: Did you read the docs? / Hast du die Doku gelesen?
|
||||
url: https://docs.buanet.de/iobroker-docker-image/docs/
|
||||
about: Please make sure you read the docs before submitting any issues. / Bitte stelle sicher, dass du die Dokumentation gelesen hast bevor du einen Fehler meldest.
|
||||
- name: Questions? / Fragen?
|
||||
url: https://github.com/buanet/ioBroker.docker/discussions
|
||||
# about: You can ask your questions here.
|
||||
about: Ask your questions here! / Stell deine Fragen hier!
|
||||
- name: ioBroker Community Forum
|
||||
url: https://forum.iobroker.net/
|
||||
- name: ioBroker Discord channel
|
||||
url: https://discord.gg/Ne3y6fUac3
|
||||
- name: ioBroker Facebook group
|
||||
url: https://www.facebook.com/groups/440499112958264/
|
||||
about: Need support? Check out our ioBroker Community Forum. / Du benötigst Unterstützung? Wirf einen Blick in unser ioBroker Community Forum.
|
||||
- name: ioBroker Discord Channel
|
||||
url: https://discord.gg/5jGWNKnpZ8
|
||||
about: Need support? Check out our ioBroker Discord channel. / Du benötigst Unterstützung? Wirf einen Blick in unseren ioBroker Discord Channel.
|
||||
|
||||
12
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
12
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
@@ -1,17 +1,17 @@
|
||||
name: Feature Request
|
||||
description: I want to request a new feature.
|
||||
name: Feature Request / Verbesserungsvorschlag
|
||||
description: Request a new feature here. / Schlage eine Verbesserung vor.
|
||||
title: "[Feature Request]: "
|
||||
labels: "enhancement"
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to give us your feedback!
|
||||
Thanks for taking the time to give us your feedback! / Vielen Dank, dass du die Zeit nimmst uns Feedback zu geben!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe your request.
|
||||
placeholder: Waht are your ideas?
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your request. / Bitte beschreibe deine Anforderung.
|
||||
placeholder: What are your ideas? / Was sind deine Ideen?
|
||||
validations:
|
||||
required: true
|
||||
|
||||
18
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
18
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
@@ -1,32 +1,32 @@
|
||||
name: Problem Report
|
||||
description: I want to report a problem.
|
||||
name: Problem Report / Fehlermeldung
|
||||
description: Report a problem here. / Melde Fehler hier.
|
||||
title: "[Problem]: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
Thanks for taking the time to fill out this bug report! / Vielen Dank, dass du dir die Zeit nimmst den Fehlerreport auszufüllen!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe your problem.
|
||||
placeholder: What happened? What did you expect?
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your problem. / Bitte beschreibe dein Problem.
|
||||
placeholder: What happened? What did you expect? / Was ist passiert? Was hast du erwartet?
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Image version
|
||||
description: Which image version do you use?
|
||||
description: Which image version do you use? / Welche Version des Images verwendest du?
|
||||
placeholder: v1.2.3
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Docker logs
|
||||
description: Please provide the full Docker log output from your Docker container startup.
|
||||
label: Docker logs / Docker Protokoll
|
||||
description: Please provide the full Docker log output from your Docker container startup. / Bitte stelle das komplette Docker Protokoll vom Start des Containers zur Verfügung.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
|
||||
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -5,4 +5,4 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
target-branch: "main"
|
||||
target-branch: "beta"
|
||||
|
||||
2
.github/dependencies/.admin-version
vendored
2
.github/dependencies/.admin-version
vendored
@@ -1 +1 @@
|
||||
6.3.5
|
||||
6.10.1
|
||||
|
||||
2
.github/dependencies/.backitup-version
vendored
2
.github/dependencies/.backitup-version
vendored
@@ -1 +1 @@
|
||||
2.6.23
|
||||
2.8.1
|
||||
|
||||
2
.github/dependencies/.js-controller-version
vendored
2
.github/dependencies/.js-controller-version
vendored
@@ -1 +1 @@
|
||||
4.0.24
|
||||
5.0.12
|
||||
|
||||
2
.github/dependencies/.nodejs-version
vendored
2
.github/dependencies/.nodejs-version
vendored
@@ -1 +1 @@
|
||||
18.16.1
|
||||
18.17.1
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
# Github action to build Docker image from main branch for iobroker/iobroker (tag: latest)
|
||||
name: Build debian latest (iobroker)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
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/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.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
tags: |
|
||||
iobroker/iobroker:latest,
|
||||
iobroker/iobroker:${{ env.majorversion }},
|
||||
iobroker/iobroker:${{ env.version }}
|
||||
|
||||
97
.github/workflows/build-debian-image-latest.yml
vendored
97
.github/workflows/build-debian-image-latest.yml
vendored
@@ -1,97 +0,0 @@
|
||||
# Github action to build Docker image from main branch (tag: latest)
|
||||
name: Build debian latest (buanet)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
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/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.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
#provenance: false
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:latest,
|
||||
buanet/iobroker:${{ env.majorversion }},
|
||||
buanet/iobroker:${{ env.version }},
|
||||
ghcr.io/buanet/iobroker:latest,
|
||||
ghcr.io/buanet/iobroker:${{ env.majorversion }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
18
.github/workflows/build-debian12-beta.yml
vendored
18
.github/workflows/build-debian12-beta.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.0.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
@@ -43,10 +43,10 @@ jobs:
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
@@ -96,7 +96,7 @@ jobs:
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.0.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
@@ -115,10 +115,10 @@ jobs:
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
@@ -142,7 +142,7 @@ jobs:
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
@@ -166,7 +166,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Delete images
|
||||
uses: actions/github-script@v6.4.1
|
||||
uses: actions/github-script@v7.0.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
|
||||
12
.github/workflows/build-debian12-dev.yml
vendored
12
.github/workflows/build-debian12-dev.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.0.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.0.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
@@ -130,11 +130,11 @@ jobs:
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.0.0
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: false
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64
|
||||
@@ -150,7 +150,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Delete images
|
||||
uses: actions/github-script@v6.4.1
|
||||
uses: actions/github-script@v7.0.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
|
||||
176
.github/workflows/build-debian12-latest.yml
vendored
Normal file
176
.github/workflows/build-debian12-latest.yml
vendored
Normal file
@@ -0,0 +1,176 @@
|
||||
# Github action to build Debian12 image (Tag: latest)
|
||||
name: Build Debian 12 Image (latest)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-for-buanet:
|
||||
name: Build latest image for buanet
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.0.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.0.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.0.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:latest,
|
||||
buanet/iobroker:${{ env.majorversion }},
|
||||
buanet/iobroker:${{ env.version }},
|
||||
ghcr.io/buanet/iobroker:latest,
|
||||
ghcr.io/buanet/iobroker:${{ env.majorversion }},
|
||||
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)
|
||||
|
||||
build-latest-for-iobroker:
|
||||
name: Build latest image for iobroker
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.0.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.0.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.1.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
iobroker/iobroker:latest,
|
||||
iobroker/iobroker:${{ env.majorversion }},
|
||||
iobroker/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)
|
||||
|
||||
delete-untagged-images:
|
||||
if: ${{ always() }}
|
||||
needs: [build-latest-for-buanet, build-latest-for-iobroker]
|
||||
name: Delete untagged images from GitHub Container Registry
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Delete images
|
||||
uses: actions/github-script@v7.0.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
2
.github/workflows/update-docker-readme.yml
vendored
2
.github/workflows/update-docker-readme.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
update-docker-readme:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.0.0
|
||||
- uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Update Docker Hub Readme (buanet)
|
||||
uses: peter-evans/dockerhub-description@v3.4.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Check ioBroker versions
|
||||
name: Version Checks
|
||||
|
||||
on:
|
||||
schedule:
|
||||
@@ -10,12 +10,26 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.0.0
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Fetch ioBroker versions
|
||||
- name: Get and write version
|
||||
id: version
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "iobroker=iobroker/iobroker:$LATESTRELEASE" >> $GITHUB_ENV
|
||||
echo "baseimage=library/debian:bookworm-slim" >> $GITHUB_ENV
|
||||
|
||||
- name: Docker Baseimage Checker
|
||||
id: baseimage
|
||||
uses: mkumatag/container-image-updater-action@v1.0.5
|
||||
with:
|
||||
base-image: '${{ env.baseimage }}'
|
||||
image: '${{ env.iobroker }}'
|
||||
|
||||
- name: Fetch ioBroker and nodejs versions
|
||||
run: |
|
||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
||||
@@ -45,18 +59,10 @@ jobs:
|
||||
git commit -am "new ioBroker versions"
|
||||
git push
|
||||
|
||||
- name: Trigger build debian latest (buanet)
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
- name: Trigger Build Debian 12 Image (latest)
|
||||
if: steps.baseimage.outputs.needs-update == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
workflow: Build debian latest (buanet)
|
||||
repo: buanet/ioBroker.docker
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Trigger build debian latest (iobroker)
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
workflow: Build debian latest (iobroker)
|
||||
workflow: Build Debian 12 Image (latest)
|
||||
repo: buanet/ioBroker.docker
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
62
CHANGELOG.md
62
CHANGELOG.md
@@ -1,16 +1,42 @@
|
||||
## Changelog
|
||||
|
||||
### v9.0.0-beta.1 (24.09.2023)
|
||||
* remove special settings script and env for zwave ([#377](https://github.com/buanet/ioBroker.docker/issues/377))
|
||||
* simplify ci/ reduce gh actions
|
||||
* ignore errors in "silent cleanup" on first start ([#369](https://github.com/buanet/ioBroker.docker/issues/369))
|
||||
* cleanup/ restructure repo
|
||||
* update nodejs setup process
|
||||
* update base image to debian 12 (bookworm)
|
||||
* improve security by avoiding root (exept startup script itself)
|
||||
* restrict iobroker commanline commands (start/ stop/ node fix)
|
||||
* integrate maintenance script into iobroker command
|
||||
* move container config files location
|
||||
### v9.1.0-beta.3 (23.11.2023)
|
||||
* add --force to restore in maintenance script
|
||||
* improve shebang in scripts for downgrade and portability
|
||||
* v9.1.0-beta.2 (06.11.2023)
|
||||
* enhance logging/ fix typos
|
||||
* add env PACKAGES_UPDATE and remove automatic package updates on first container start
|
||||
* improve setuid/setgid handling during startup ([#397](https://github.com/buanet/ioBroker.docker/issues/397))
|
||||
* move maintenance script registration to dockerfile ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* v9.1.0-beta.1 (03.11.2023)
|
||||
* improve maintenance command by symlinking ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* fix restore/ adding backup file selection ([#394](https://github.com/buanet/ioBroker.docker/issues/394))
|
||||
* fix calling iob start|stop with parameters
|
||||
* enhance logging in iobroker_startup.sh
|
||||
* add error handling for user scripts
|
||||
|
||||
### v9.0.1 (10.10.2023)
|
||||
* fix issue with avahi setup ([#384](https://github.com/buanet/ioBroker.docker/issues/384); [#385 by @z1r0](https://github.com/buanet/ioBroker.docker/pull/385))
|
||||
* add silent cleanup to setup_avahi.sh
|
||||
* add error handling for package updates/ install
|
||||
* fix calling iob in iobroker_startup.sh ([#388](https://github.com/buanet/ioBroker.docker/issues/388))
|
||||
|
||||
### v9.0.0 (09.10.2023)
|
||||
* update official docs
|
||||
* v9.0.0-beta.2 (28.09.2023)
|
||||
* fix issue with unlocking features in backitup ([#381](https://github.com/buanet/ioBroker.docker/issues/381))
|
||||
* fix issue with fresh initializing iobroker
|
||||
* v9.0.0-beta.1 (24.09.2023)
|
||||
* remove special settings script and env for zwave ([#377](https://github.com/buanet/ioBroker.docker/issues/377))
|
||||
* simplify ci/ reduce gh actions
|
||||
* ignore errors in "silent cleanup" on first start ([#369](https://github.com/buanet/ioBroker.docker/issues/369))
|
||||
* cleanup/ restructure repo
|
||||
* update nodejs setup process
|
||||
* update base image to debian 12 (bookworm)
|
||||
* improve security by avoiding root (except startup script itself)
|
||||
* restrict iobroker command line commands (start/ stop/ node fix)
|
||||
* integrate maintenance script into iobroker command
|
||||
* move container config files location
|
||||
|
||||
### v8.1.0 (15.08.2023)
|
||||
* repo cleanup
|
||||
@@ -121,7 +147,7 @@
|
||||
* v5.2.0-beta4 (2021-09-10)
|
||||
* adding iobroker user rights for "gosu"
|
||||
* adding more labels in OCI standard format
|
||||
* fixing workdir bug
|
||||
* fixing work dir bug
|
||||
* adding backitup compatibility
|
||||
* v5.2.0-beta3 (2021-09-04)
|
||||
* reducing layers in dockerfile
|
||||
@@ -147,10 +173,10 @@
|
||||
|
||||
### v5.1.0 (2020-11-05)
|
||||
* v5.0.2-beta (2020-07-28)
|
||||
* added docker tag for majorversion latest
|
||||
* extend readme.md docu
|
||||
* added docker tag for major version latest
|
||||
* extend readme.md docs
|
||||
* added maintenance script
|
||||
* added container healthcheck
|
||||
* added container health check
|
||||
* fixed configuration procedure and logging for objects and states db setup
|
||||
* v5.0.1-beta (2020-07-01)
|
||||
* fixing backup detection in startup script
|
||||
@@ -177,7 +203,7 @@
|
||||
* switching base image to buster
|
||||
* optimizing installation of packages defined by ENV "PACKAGES"
|
||||
* v4.1.3-beta (2020-02-08)
|
||||
* renamed ENV for adminport (new "IOB_ADMINPORT)")
|
||||
* renamed ENV for admin port (new "IOB_ADMINPORT)")
|
||||
* added new ENVs for "iobroker setup custom" (replacing "REDIS")
|
||||
* enhancements in startup script logging
|
||||
* v4.1.2-beta (2020-02-02)
|
||||
@@ -197,7 +223,7 @@
|
||||
* v4.0.1-beta (2019-11-25)
|
||||
* added env for iobroker admin port
|
||||
* added env for usb-devices (setting permissions)
|
||||
* updateing prerequisites for iobroker installation
|
||||
* updating prerequisites for iobroker installation
|
||||
* some small code fixes
|
||||
|
||||
### v4.0.0 (2019-10-25)
|
||||
@@ -292,7 +318,7 @@
|
||||
* added git package
|
||||
|
||||
### v0.1.0 (2017-03-08)
|
||||
* moved avahi-start.sh to seperate directory
|
||||
* moved avahi-start.sh to separate directory
|
||||
* fixed timezone issue (sets now timezone to Europe/Berlin)
|
||||
|
||||
### v0.0.2 (2017-03-06)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2022 André Germann
|
||||
Copyright (c) 2017-2023 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
15
README.md
15
README.md
@@ -4,7 +4,7 @@
|
||||
|
||||
[](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/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -47,22 +47,21 @@ You can pull the Docker image from:
|
||||
|
||||
### Where can I get help?
|
||||
|
||||
If you have any questions or need help please visit the ioBroker community:
|
||||
If you have any questions or need help take a look at the [Discussions](https://github.com/buanet/ioBroker.docker/discussions) or join the ioBroker community:
|
||||
* [ioBroker forum](https://forum.iobroker.net/)
|
||||
* [Discord channel](https://discord.gg/Ne3y6fUac3)
|
||||
* [Discord channel](https://discord.gg/5jGWNKnpZ8)
|
||||
* [Facebook group](https://www.facebook.com/groups/440499112958264/)
|
||||
* [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi)
|
||||
|
||||
### How to report an issue or request a feature?
|
||||
|
||||
If you think you found an issue let us know by opening a [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before.
|
||||
Please do not use the issues for support questions. Not every error message is worth a new report. Use [discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure.
|
||||
If you think you found an issue let us know by opening a [GitHub Issue](https://github.com/buanet/ioBroker.docker/issues).
|
||||
Please do not use the issues for support questions. Not every error message is worth a new report. Use [Discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure.
|
||||
|
||||
## :eyes: Miscellaneous
|
||||
|
||||
### Beta testing
|
||||
|
||||
If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. For more details and beta support join us at "beta testing & feedback" > "docker-image" on the [ioBroker Discord channel](https://discord.gg/Ne3y6fUac3).
|
||||
If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. For more details and beta support join us at "beta testing & feedback" > "docker-image" at the [ioBroker Discord channel](https://discord.gg/5jGWNKnpZ8).
|
||||
|
||||
### Support the project
|
||||
|
||||
@@ -79,7 +78,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2022 André Germann
|
||||
Copyright (c) 2017-2023 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -71,11 +71,14 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
&& usermod -u 1000 iobroker \
|
||||
&& groupmod -g 1000 iobroker \
|
||||
&& chown root:iobroker /usr/sbin/gosu \
|
||||
#&& chmod +s /usr/sbin/gosu \
|
||||
# Set permissions and ownership
|
||||
&& chown -R iobroker:iobroker /opt/scripts /opt/userscripts \
|
||||
&& chmod 755 /opt/scripts/*.sh \
|
||||
&& chmod 755 /opt/userscripts/*.sh \
|
||||
# register maintenance command
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maintenance \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maint \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/m \
|
||||
# Clean up installation cache
|
||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& apt-get autoclean -y \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Script checks health of running container
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# run iob fix
|
||||
iob_fix () {
|
||||
@@ -39,27 +39,48 @@ iob_diag () {
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "fix" ]; then # call iobroker fixer
|
||||
iob_fix
|
||||
elif [ "$1" = "node fix" ]; then # call iobroker node fixer
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "To fix any issues with nodejs, please pull the latest version of the Docker image and recreate your container."
|
||||
elif [ "$1" = "diag" ]; then # call iobroker diag script
|
||||
iob_diag
|
||||
elif [ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]; then # block execution of iobroker start | stop | restart
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "For more details see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/) or use the maintenance script 'maintenance --help'."
|
||||
elif [ "$1" = "m" ] || [ "$1" = "maint" ] || [ "$1" = "maintenance" ]; then # call iobroker maintenance script
|
||||
# run iobroker maintenance script
|
||||
iob_maint() {
|
||||
shift
|
||||
if [ "$(id -u)" -eq 0 ]; then # check for execution as root
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker bash /opt/scripts/maintenance.sh "$@"
|
||||
else
|
||||
bash /opt/scripts/maintenance.sh "$@"
|
||||
fi
|
||||
else # passing all other parameters to iobroker.js
|
||||
if [ "$(id -u)" -eq 0 ]; then # check for execution as root
|
||||
}
|
||||
|
||||
# pass parameters and run iobroker.js
|
||||
iob_run() {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
else
|
||||
node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "fix" ]; then
|
||||
# call iobroker fixer
|
||||
iob_fix
|
||||
elif [ "$1" = "node fix" ]; then
|
||||
# call iobroker node fixer
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "To fix any issues with nodejs, please pull the latest version of the Docker image and recreate your container."
|
||||
elif [ "$1" = "diag" ]; then
|
||||
# call iobroker diag script
|
||||
iob_diag
|
||||
elif [ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]; then
|
||||
# block execution of iobroker start | stop | restart but pass start | stop for adapters
|
||||
if [ ! "$2" ]; then
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "For more details see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/) or use the maintenance script 'maintenance --help'."
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
elif [ "$1" = "m" ] || [ "$1" = "maint" ] || [ "$1" = "maintenance" ]; then
|
||||
# call iobroker maintenance script but check for execution as root
|
||||
iob_maint "$@"
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
|
||||
@@ -17,17 +17,18 @@ offlinemode=$OFFLINE_MODE
|
||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME # new for sentinel support
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS # new for auth support
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS
|
||||
packages=$PACKAGES
|
||||
packagesupdate=$PACKAGES_UPDATE
|
||||
permissioncheck=$PERMISSION_CHECK
|
||||
setgid=$SETGID
|
||||
setuid=$SETUID
|
||||
statesdbhost=$IOB_STATESDB_HOST
|
||||
statesdbport=$IOB_STATESDB_PORT
|
||||
statesdbtype=$IOB_STATESDB_TYPE
|
||||
statesdbname=$IOB_STATESDB_NAME # new for sentinel support
|
||||
statesdbpass=$IOB_STATESDB_PASS # new for auth support
|
||||
statesdbname=$IOB_STATESDB_NAME
|
||||
statesdbpass=$IOB_STATESDB_PASS
|
||||
usbdevices=$USBDEVICES
|
||||
set -u
|
||||
|
||||
@@ -99,6 +100,7 @@ if [[ "$statesdbname" != "" ]]; then echo -n "----- " && echo
|
||||
if [[ "$statesdbpass" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PASS: "***")" && echo " -----"; fi
|
||||
if [[ "$offlinemode" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" OFFLINE_MODE: "$offlinemode")" && echo " -----"; fi
|
||||
if [[ "$packages" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: "$packages")" && echo " -----"; fi
|
||||
if [[ "$packagesupdate" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES_UPDATE: "$packagesupdate")" && echo " -----"; fi
|
||||
if [[ "$permissioncheck" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PERMISSION_CHECK: "$permissioncheck")" && echo " -----"; fi
|
||||
if [[ "$setgid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETGID: "$setgid")" && echo " -----"; fi
|
||||
if [[ "$setuid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETUID: "$setuid")" && echo " -----"; fi
|
||||
@@ -123,7 +125,7 @@ fi
|
||||
# STEP 1 - Preparing container
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 1 of 5: Preparing container -----"
|
||||
echo "----- Step 1 of 5: Preparing Container -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
@@ -132,31 +134,27 @@ if [[ -f /opt/.docker_config/.first_run ]]; then
|
||||
# Updating Linux packages
|
||||
if [[ "$offlinemode" = "true" ]]; then
|
||||
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
||||
else
|
||||
bash /opt/scripts/setup_packages.sh -update
|
||||
echo " "
|
||||
elif [[ "$packagesupdate" = "true" ]]; then
|
||||
if ! bash /opt/scripts/setup_packages.sh -update; then echo "Failed."; fi
|
||||
echo " "
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Installing packages from ENV
|
||||
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; 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"
|
||||
bash /opt/scripts/setup_packages.sh -install
|
||||
if ! bash /opt/scripts/setup_packages.sh -install; then echo "Failed."; fi
|
||||
fi
|
||||
echo " "
|
||||
# Register maintenance script
|
||||
echo -n "Registering maintenance script as command... "
|
||||
echo "alias maintenance='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "alias maint='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "alias m='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "Done."
|
||||
else
|
||||
echo "This is not the first run of this container. Skipping first run preparation."
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Setting UID and/ or GID
|
||||
if [[ "$setgid" != "$(cat /etc/group | grep 'iobroker:' | cut -d':' -f3)" || "$setuid" != "$(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3)" ]]; then
|
||||
if [[ "$setgid" != "$(id -u iobroker)" || "$setuid" != "$(id -g iobroker)" ]]; then
|
||||
echo "SETUID and/ or SETGID are set to custom values."
|
||||
echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... "
|
||||
usermod -u "$setuid" iobroker
|
||||
@@ -172,7 +170,7 @@ cd /opt/iobroker
|
||||
# STEP 2 - Detecting ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 2 of 5: Detecting ioBroker installation -----"
|
||||
echo "----- Step 2 of 5: Detecting ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
@@ -186,10 +184,10 @@ elif [[ -f /opt/iobroker/iobroker ]]; then
|
||||
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."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Backup file name: " "$(ls *_backupiobroker.tar.gz)"; fi
|
||||
echo "Since Docker Image v8, automatic initial restore is no longer supported!"
|
||||
echo "Since Docker image v8, automatic initial restore is no longer supported!"
|
||||
echo "IoBroker will start with a fresh installation, while your backup file will be copied into the backup directory."
|
||||
echo "You will be able to restore your backup file manually by using the backitup adapter or the containers maintenance script."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
echo -n "Copying backup file and restoring initial ioBroker installation... "
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
@@ -214,11 +212,11 @@ echo " "
|
||||
# STEP 3 - Checking ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 3 of 5: Checking ioBroker installation -----"
|
||||
echo "----- Step 3 of 5: Checking ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Backing up original iobroker executable to fix sudo bug with gosu
|
||||
# Backing up and replace original iobroker executable to fix sudo bug with gosu
|
||||
if [[ -n $(cmp /opt/scripts/iobroker.sh /opt/iobroker/iobroker) ]]; then
|
||||
echo -n "Replacing ioBroker executable to fix sudo bug... "
|
||||
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||
@@ -299,15 +297,16 @@ elif [[ "$multihost" == "" || "$multihost" == "false" ]]; then
|
||||
else
|
||||
echo "IOB_MULTIHOST is set, but the value is not valid. Please check your configuration."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] IOB_MULTIHOST = ""$multihost"; fi
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/#environment-variables-env)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#environment-variables-env)."
|
||||
stop_on_error
|
||||
fi
|
||||
|
||||
# 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... "
|
||||
if [[ ! -d "/opt/iobroker/log" ]]; then gosu iobroker mkdir "/opt/iobroker/log"; fi
|
||||
set +e
|
||||
bash iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
gosu iobroker iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
return=$?
|
||||
set -e
|
||||
rm -f /opt/iobroker/.fresh_install
|
||||
@@ -320,20 +319,20 @@ if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
echo -n "Checking Database connection... "
|
||||
echo -n "Checking database connection... "
|
||||
set +e
|
||||
if iob uuid &> /dev/null; then
|
||||
if gosu iobroker iob uuid &> /dev/null; then
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
errormsg=$(iob uuid 2>&1 | sed 's/^/[DEBUG] /')
|
||||
errormsg=$(gosu iobroker iob uuid 2>&1 | sed 's/^/[DEBUG] /')
|
||||
echo "Failed."
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Error message: "
|
||||
echo "$errormsg"
|
||||
fi
|
||||
echo "Please check your configuration and try again."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs)."
|
||||
stop_on_error
|
||||
fi
|
||||
set -e
|
||||
@@ -346,20 +345,20 @@ if [[ "$multihost" == "slave" ]]; then
|
||||
else
|
||||
# get admin instance and hostname
|
||||
set +e
|
||||
admininstance=$(bash iobroker list instances | grep 'enabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
admininstance=$(gosu iobroker iob list instances | grep 'enabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
adminhostname=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
set +e
|
||||
admininstance=$(bash iobroker list instances | grep 'disabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
admininstance=$(gosu iobroker iob 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": ")[^"]*')
|
||||
adminhostname=$(gosu iobroker iob 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."
|
||||
@@ -372,7 +371,7 @@ else
|
||||
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
||||
echo -n "Updating hostname to \"""$(hostname)""\"... "
|
||||
bash iobroker host "$adminhostname"
|
||||
gosu iobroker iob host "$adminhostname"
|
||||
echo "Done."
|
||||
echo " "
|
||||
elif [[ "$adminhostname" = "$(hostname)" ]]; then
|
||||
@@ -420,23 +419,23 @@ fi
|
||||
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 4 of 5: Applying special settings -----"
|
||||
echo "----- Step 4 of 5: Applying Special Settings -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
|
||||
# Checking ENV for Adminport
|
||||
if [[ "$adminport" != "" && "$multihost" != "slave" ]]; then
|
||||
adminportold=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="port": )[^,]*')
|
||||
adminportold=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="port": )[^,]*')
|
||||
admininstanceshort=$(echo "$admininstance" | grep -m 1 -o 'admin..')
|
||||
if [[ "$adminport" != "$adminportold" ]]; then
|
||||
echo "IOB_ADMINPORT is set and does not match port configured in ioBroker."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected Admin Port in ioBroker: " "$adminportold"; fi
|
||||
echo "Setting Adminport to \"""$adminport""\"... "
|
||||
bash iobroker set "$admininstanceshort" --port "$adminport"
|
||||
gosu iobroker iob set "$admininstanceshort" --port "$adminport"
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
@@ -446,6 +445,7 @@ fi
|
||||
if [[ "$backitup" == "true" ]]; then
|
||||
echo -n "IOB_BACKITUP_EXTDB is \"true\". Unlocking features..."
|
||||
echo "true" > /opt/.docker_config/.backitup
|
||||
echo "true" > /opt/scripts/.docker_config/.backitup # old path, needed until changed in backitup
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
@@ -476,7 +476,7 @@ if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||
else
|
||||
echo "Looks like the device \"""$i""\" does not exist."
|
||||
echo "Did you mount it correctly by using the \"--device\" option?"
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices)."
|
||||
stop_on_error
|
||||
fi
|
||||
done
|
||||
@@ -495,17 +495,24 @@ elif [[ -f /opt/userscripts/userscript_firststart.sh || -f /opt/userscripts/user
|
||||
echo "Userscript for first start detected and this is the first start of a new container."
|
||||
echo "Running userscript_firststart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_firststart.sh
|
||||
bash /opt/userscripts/userscript_firststart.sh
|
||||
echo "Done."
|
||||
if ! bash /opt/userscripts/userscript_firststart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_everystart.sh
|
||||
bash /opt/userscripts/userscript_everystart.sh
|
||||
echo "Done."
|
||||
if ! bash /opt/userscripts/userscript_everystart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
echo " "
|
||||
fi
|
||||
echo " "
|
||||
|
||||
|
||||
# Removing first run an fresh install markers when exists
|
||||
if [[ -f /opt/.docker_config/.first_run ]]; then rm -f /opt/.docker_config/.first_run; fi
|
||||
@@ -515,7 +522,7 @@ if [[ -f /opt/iobroker/.fresh_install ]]; then rm -f /opt/iobroker/.fresh_instal
|
||||
# STEP 5 - Starting ioBroker
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 5 of 5: ioBroker startup -----"
|
||||
echo "----- Step 5 of 5: ioBroker Startup -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
echo "Starting ioBroker... "
|
||||
|
||||
@@ -10,7 +10,7 @@ pkill_timeout=10 # timeout for stopping iobroker in seconds
|
||||
|
||||
# check for user root
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "WARNING! This script should be executed as iobroker user! Please change user and try again."
|
||||
echo "WARNING! This script should be executed as user "iobroker"! Please switch user and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -165,12 +165,12 @@ stop_iob() {
|
||||
|
||||
if [[ "$killbyname" != yes ]]; then
|
||||
# pgrep exits with status 1 when there are no matches
|
||||
while pgrep -u iobroker -f 'io.' > /dev/null; (( $? != 1 )); do
|
||||
while pgrep -u iobroker -f 'io\..' > /dev/null; (( $? != 1 )); do
|
||||
if (($(date +%s) > timeout)); then
|
||||
echo -e "\nTimeout reached. Killing remaining processes..."
|
||||
pgrep --list-full -u iobroker
|
||||
pkill --signal SIGKILL -u iobroker -f 'io.'
|
||||
echo "\nDone."
|
||||
pgrep --list-full -u iobroker -f 'io\..'
|
||||
pkill --signal SIGKILL -u iobroker -f 'io\..'
|
||||
echo "Done."
|
||||
return
|
||||
fi
|
||||
sleep 1
|
||||
@@ -184,6 +184,7 @@ stop_iob() {
|
||||
fi
|
||||
|
||||
echo -e "Done."
|
||||
echo " "
|
||||
}
|
||||
|
||||
# restart container
|
||||
@@ -218,40 +219,127 @@ 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."
|
||||
|
||||
|
||||
# check autoconfirm
|
||||
if [[ "$autoconfirm" != yes ]]; then
|
||||
local reply
|
||||
|
||||
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||
if [[ "$reply" == y || "$reply" == Y || "$reply" == yes ]]; then
|
||||
: # continue
|
||||
else
|
||||
return 1
|
||||
if [[ "$reply" != y && "$reply" != Y && "$reply" != yes ]]; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# check startup script running
|
||||
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
|
||||
|
||||
# check mainenance mode
|
||||
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."
|
||||
# list backup files
|
||||
backup_dir="/opt/iobroker/backups"
|
||||
backup_files=($(find $backup_dir -type f))
|
||||
backup_count=${#backup_files[@]}
|
||||
|
||||
if [[ $backup_count -eq 0 ]]; then
|
||||
echo "Ther are no backup files in $backup_dir."
|
||||
echo "Please check and try again."
|
||||
return 1
|
||||
elif [[ $backup_count -eq 1 ]]; then
|
||||
selected_backup=$(basename "${backup_files[0]}")
|
||||
echo "Selected backup file is \"$selected_backup\"."
|
||||
else
|
||||
# more than one backup file found, ask user to select
|
||||
echo "There are more than one backup file in \"$backup_dir\"."
|
||||
echo ' '
|
||||
echo "Please select file for restore:"
|
||||
for ((i=0; i<$backup_count; i++)); do
|
||||
echo "$i: $(basename "${backup_files[$i]}")"
|
||||
done
|
||||
echo
|
||||
|
||||
read -rp "Enter the number of the backup to restore (0-$((backup_count - 1))): " selected_number
|
||||
selected_backup=$(basename "${backup_files[$selected_number]}")
|
||||
echo ' '
|
||||
echo "Selected backup file is \"$selected_backup\"."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# extract backup.json from backup
|
||||
tar -xvzf $backup_dir/$selected_backup -C $backup_dir --strip-components=1 "backup/backup.json" > /dev/null 2>&1
|
||||
# write js-controller versions from backup.json into array
|
||||
jq_output=$(jq --arg TITLE "JS controller" -r '.objects[] | select(.value.common.title == $TITLE)' $backup_dir/backup.json)
|
||||
# remove backup.json
|
||||
rm $backup_dir/backup.json
|
||||
|
||||
result=()
|
||||
while read -r line; do
|
||||
entry=$(echo "$line" | jq -r '.value.common.installedVersion')
|
||||
result+=("$entry")
|
||||
done <<< "$(echo "$jq_output" | jq -c '.')"
|
||||
|
||||
# check for empty array
|
||||
if [[ "${#result[@]}" -eq 0 ]]; then
|
||||
echo "There was a problem detecting the js-controller version in the seclected backup file."
|
||||
return 1
|
||||
else
|
||||
# check if all found js-controller versions are equal (for multihost systems!)
|
||||
first_version=${result[0]}
|
||||
all_versions_equal=true
|
||||
for i in "${result[@]}"; do
|
||||
version=$i
|
||||
if [[ "$version" != "$first_version" ]]; then
|
||||
all_versions_equal=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$all_versions_equal" != true ]]; then
|
||||
echo "Detected different js-controller versions in the selected backup file."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# compare installed js-controller version with version from backup file
|
||||
echo -n "Checking js-controller versions... "
|
||||
installed_version=$(iob version js-controller)
|
||||
echo "Done."
|
||||
echo ' '
|
||||
echo "Installed js-controller version: $installed_version"
|
||||
echo "Backup js-controller version: $first_version"
|
||||
echo ' '
|
||||
|
||||
if [[ "$first_version" != "$installed_version" ]]; then
|
||||
echo "The installed js-controller version is different from the version in the selected backup file."
|
||||
echo "If you continue, the script will use the \"--force\" option to restore your backup."
|
||||
echo "Although this is normally safe with small version differences, you should know,"
|
||||
echo "that the recommended way is to first install the same js-controller version before restoring the backup file."
|
||||
local reply
|
||||
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||
if [[ "$reply" != y && "$reply" != Y && "$reply" != yes ]]; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Restoring ioBroker from \"$selected_backup\"... "
|
||||
|
||||
set +e
|
||||
bash iobroker restore "$selected_backup" --force > /opt/iobroker/log/restore.log 2>&1
|
||||
return_value=$?
|
||||
set -e
|
||||
|
||||
if [[ "$return_value" -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 " "
|
||||
@@ -265,8 +353,8 @@ restore_iobroker() {
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
sleep 10
|
||||
echo "Container will be stopped or restarted in 10 seconds..."
|
||||
sleep 10
|
||||
echo "stopping" > "$healthcheck"
|
||||
sleep 10
|
||||
pkill -u iobroker
|
||||
}
|
||||
|
||||
@@ -315,4 +403,4 @@ for arg in "$@"; do
|
||||
esac
|
||||
done
|
||||
|
||||
"${run[@]}"
|
||||
"${run[@]}"
|
||||
|
||||
32
debian12/scripts/maintenance_gui.sh
Normal file
32
debian12/scripts/maintenance_gui.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
welcome () {
|
||||
whiptail --title "ioBroker Docker Container Maintenance Script" --ok-button "OK" --msgbox " \
|
||||
╔═══════════════════════════════════════════════════════════════════════╗\
|
||||
\n ║ ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ██████╗ ║\
|
||||
\n ║ ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ██╔═══██╗ ██║ ██╔╝ ██╔════╝ ██╔══██╗ ║\
|
||||
\n ║ ██║ ██║ ██║ ██████╔╝ ██████╔╝ ██║ ██║ █████╔╝ █████╗ ██████╔╝ ║\
|
||||
\n ║ ██║ ██║ ██║ ██╔══██╗ ██╔══██╗ ██║ ██║ ██╔═██╗ ██╔══╝ ██╔══██╗ ║\
|
||||
\n ║ ██║ ╚██████╔╝ ██████╔╝ ██║ ██║ ╚██████╔╝ ██║ ██╗ ███████╗ ██║ ██║ ║\
|
||||
\n ║ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ║\
|
||||
\n ╚═══════════════════════════════════════════════════════════════════════╝\
|
||||
\n This script will help you to maintain your ioBroker Docker container!\
|
||||
\n" 19 79
|
||||
}
|
||||
|
||||
if welcome; then
|
||||
TO_RUN=$(whiptail --title "ioBroker Docker Container Maintenance Script" --menu "What do you want to do?" 25 78 5 \
|
||||
"maintenance" "Turn Maintenance Mode on or off" \
|
||||
"upgrade" "Upgrade js-controller" \
|
||||
"restore" "Restore ioBroker from backup" 3>&1 1>&2 2>&3)
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ $TO_RUN = "maintenance" ]]; then
|
||||
echo "You selected maintenance"
|
||||
elif [[ $TO_RUN = "upgrade" ]]; then
|
||||
echo "You selected upgrade"
|
||||
elif [[ $TO_RUN = "restore" ]]; then
|
||||
echo "You selected restore"
|
||||
fi
|
||||
@@ -1,13 +1,15 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||
then
|
||||
echo "[setup_avahi.sh] Avahi is already installed. Nothing to do here."
|
||||
else
|
||||
echo -n "[setup_avahi.sh] Avahi-daemon is NOT installed. Going to install it now... "
|
||||
apt-get update > /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get install -y --no-install-recommends libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||
rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get -q update > /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get -q -y --no-install-recommends install libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||
# Silent Cleanup
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||
echo "Done."
|
||||
echo -n "[setup_avahi.sh] Configuring avahi-daemon... "
|
||||
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
||||
@@ -32,7 +34,7 @@ echo -n "[setup_avahi.sh] Starting dbus... "
|
||||
echo "Done."
|
||||
|
||||
echo -n "[setup_avahi.sh] Starting avahi-daemon... "
|
||||
/etc/init.d/avahi-daemon start >> /opt/scripts/avahi_startup.log 2>&1
|
||||
avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 &
|
||||
echo "Done."
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# reading env
|
||||
debug=$DEBUG
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
@@ -58,7 +58,7 @@ if [[ "$1" == "-install" ]]; then
|
||||
fi
|
||||
done
|
||||
elif [[ "$1" == "-update" ]]; then
|
||||
echo -n "Updating Linux packages on first run... "
|
||||
echo -n "PACKAGES_UPDATE is set. Updating Linux packages on first run... "
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
return1=$?
|
||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](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/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -18,12 +18,12 @@
|
||||
|
||||
# Important note
|
||||
|
||||
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).
|
||||
New major image versions (e.g. v6, v7, v8) usually 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/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [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)
|
||||
@@ -35,7 +35,8 @@ New major image versions (e.g. v6, v7, v8) always include a new major version of
|
||||
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.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile)
|
||||
* [`v9.0.0`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile), [`latest-v9`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile)
|
||||
* [`v8.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile),
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.1/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
|
||||
@@ -47,7 +48,7 @@ It is highly recommended not to use the `latest` tag for production, especially
|
||||
# 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>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<br>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
@@ -114,7 +115,6 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
### 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
|
||||
|
||||
### Configure environment:
|
||||
|
||||
@@ -123,7 +123,8 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
* `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`.
|
||||
* `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container.
|
||||
* `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
|
||||
@@ -142,5 +143,5 @@ 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.
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.<br>
|
||||
See you soon. :)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[](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/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -20,12 +20,12 @@
|
||||
|
||||
# Important note
|
||||
|
||||
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).
|
||||
New major image versions (e.g. v6, v7, v8) usually 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/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [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)
|
||||
@@ -37,7 +37,8 @@ New major image versions (e.g. v6, v7, v8) always include a new major version of
|
||||
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.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile)
|
||||
* [`v9.0.0`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile), [`latest-v9`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile)
|
||||
* [`v8.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile),
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.1/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
|
||||
@@ -49,7 +50,7 @@ It is highly recommended not to use the `latest` tag for production, especially
|
||||
# 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>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<br>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
@@ -116,7 +117,6 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
### 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
|
||||
|
||||
### Configure environment:
|
||||
|
||||
@@ -125,7 +125,8 @@ You could use environment variables to auto configure your ioBroker container on
|
||||
* `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`.
|
||||
* `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container.
|
||||
* `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
|
||||
@@ -145,4 +146,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. :)
|
||||
|
||||
Reference in New Issue
Block a user