mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-18 10:59:00 +02:00
Compare commits
184 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3b54ae427 | ||
|
|
451e29ba39 | ||
|
|
8d8379ca5a | ||
|
|
ae43a2561b | ||
|
|
d5e5ddffc9 | ||
|
|
de9db3f4d7 | ||
|
|
18458e8e0c | ||
|
|
b597178246 | ||
|
|
f609f0df8e | ||
|
|
842e120920 | ||
|
|
a8a3631665 | ||
|
|
d6ac4c2445 | ||
|
|
bf348c0c5b | ||
|
|
eb32aa20b1 | ||
|
|
2102d18299 | ||
|
|
5778c62097 | ||
|
|
b18d22ddf8 | ||
|
|
eba7e6c5f9 | ||
|
|
b0d182adfa | ||
|
|
9e74270705 | ||
|
|
0a99ad9f93 | ||
|
|
d164d9f497 | ||
|
|
6fc6b71ac6 | ||
|
|
210b99c643 | ||
|
|
c8e5a424fe | ||
|
|
b4eb36223b | ||
|
|
6223cdad53 | ||
|
|
5f40675501 | ||
|
|
2bda056f36 | ||
|
|
2ead534cfa | ||
|
|
cf175a820f | ||
|
|
3b73bdb961 | ||
|
|
2f9a19b2a9 | ||
|
|
d924e84366 | ||
|
|
183403a8b3 | ||
|
|
6b35addabe | ||
|
|
019d1c2ace | ||
|
|
6942c69ed2 | ||
|
|
8babae506a | ||
|
|
407b4227ee | ||
|
|
a2558e3a7b | ||
|
|
6674d1b098 | ||
|
|
c08b0b45f1 | ||
|
|
7c636029f9 | ||
|
|
c128a8fe29 | ||
|
|
5bfd28927d | ||
|
|
5933409df5 | ||
|
|
722a22f785 | ||
|
|
d1df4ffb1a | ||
|
|
b9d17a7bb2 | ||
|
|
c5d5d404f3 | ||
|
|
b24f70c92b | ||
|
|
3f6ff969e6 | ||
|
|
95647b0454 | ||
|
|
cd10532486 | ||
|
|
5512620c07 | ||
|
|
6064a5a5b9 | ||
|
|
08de6045dc | ||
|
|
c10bdb2d38 | ||
|
|
1cf44af683 | ||
|
|
ee94ac7572 | ||
|
|
3fd80fb374 | ||
|
|
2749c118f5 | ||
|
|
c5e1585c84 | ||
|
|
8de1363a8a | ||
|
|
ce22ec340a | ||
|
|
6d2ada6af1 | ||
|
|
58998777b7 | ||
|
|
106c38b979 | ||
|
|
3ec3c9847a | ||
|
|
74539d586a | ||
|
|
387317217b | ||
|
|
d13c18f397 | ||
|
|
d287a79e61 | ||
|
|
3e40d2acd1 | ||
|
|
15da4a272d | ||
|
|
474012f3e8 | ||
|
|
4d9bd86b05 | ||
|
|
90a778a35f | ||
|
|
a89f6cbe3d | ||
|
|
e5c301bac4 | ||
|
|
7394f516ee | ||
|
|
f73e05c3aa | ||
|
|
d1ed0a251a | ||
|
|
a1cb1253d7 | ||
|
|
efdd3d9810 | ||
|
|
b046ae3654 | ||
|
|
673a0de5fa | ||
|
|
c8a9a1e2db | ||
|
|
d4a2db3619 | ||
|
|
27aa771e28 | ||
|
|
5f8777b5a1 | ||
|
|
e393035845 | ||
|
|
2051a788aa | ||
|
|
de25659bcd | ||
|
|
42b1c65f15 | ||
|
|
acbee27896 | ||
|
|
6b20f622d3 | ||
|
|
2b3e6541cf | ||
|
|
b8c67b7149 | ||
|
|
45430bf512 | ||
|
|
7acdff7088 | ||
|
|
3b3b7923db | ||
|
|
8c143b7f0c | ||
|
|
3957414b2b | ||
|
|
77788afdb6 | ||
|
|
9c16454d10 | ||
|
|
9b1ea21b08 | ||
|
|
abf44c01f3 | ||
|
|
a96fd97474 | ||
|
|
228355c7e6 | ||
|
|
99bc528be9 | ||
|
|
9dcc767d7a | ||
|
|
842072d266 | ||
|
|
80fd966ca0 | ||
|
|
23a4196046 | ||
|
|
f22317e2e6 | ||
|
|
1daa4cf713 | ||
|
|
aca230a7f4 | ||
|
|
1bfcab7820 | ||
|
|
cef8433132 | ||
|
|
1242eb382f | ||
|
|
9eb70621ea | ||
|
|
7ed3224f50 | ||
|
|
a706d63e78 | ||
|
|
23fea30955 | ||
|
|
1ca34b5f73 | ||
|
|
6c819aac1c | ||
|
|
57c3fe2371 | ||
|
|
641be7cebe | ||
|
|
f00aff57a1 | ||
|
|
a5b0ab5b7a | ||
|
|
f312524d71 | ||
|
|
60b4b10965 | ||
|
|
2effdf5fea | ||
|
|
543343359e | ||
|
|
98bd35cc52 | ||
|
|
bf5288071b | ||
|
|
118892975a | ||
|
|
833ec7515e | ||
|
|
87137450db | ||
|
|
1a92ab16dd | ||
|
|
898c58ce7e | ||
|
|
9fd6c97559 | ||
|
|
30cfacd55f | ||
|
|
634d5ffb63 | ||
|
|
e41bc8af6c | ||
|
|
57c697587f | ||
|
|
c2707f3795 | ||
|
|
727d79fa2f | ||
|
|
15e87e08a0 | ||
|
|
5401fdf86c | ||
|
|
f888101d01 | ||
|
|
e286d168e1 | ||
|
|
2e5f8c9e22 | ||
|
|
2b4509d468 | ||
|
|
b5235be806 | ||
|
|
d73948e8d4 | ||
|
|
1337535351 | ||
|
|
8843ee2f68 | ||
|
|
432364f63d | ||
|
|
139a3beedd | ||
|
|
da3a998e04 | ||
|
|
182c78d72c | ||
|
|
b6bb7ed5ea | ||
|
|
a9d4f38bdb | ||
|
|
06d6421c4b | ||
|
|
296ff3c612 | ||
|
|
6ccf196ae2 | ||
|
|
e20f66ada6 | ||
|
|
e72353b3fa | ||
|
|
c70f27151e | ||
|
|
465a412bc2 | ||
|
|
93bcf7c8f7 | ||
|
|
c22873c7bf | ||
|
|
814298a795 | ||
|
|
10624f62f8 | ||
|
|
d4a31e2629 | ||
|
|
ebb3e831e7 | ||
|
|
f3861e8fb5 | ||
|
|
e7b859f22d | ||
|
|
f4d40df862 | ||
|
|
c4a34b4432 | ||
|
|
5211ef7275 |
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
11
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
blank_issues_enabled: true
|
||||||
|
contact_links:
|
||||||
|
- name: ioBroker Docker image discussions
|
||||||
|
url: https://github.com/buanet/ioBroker.docker/discussions
|
||||||
|
# about: You can ask your questions here.
|
||||||
|
- 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/
|
||||||
17
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: I want to request a new feature.
|
||||||
|
title: "[Feature Request]: "
|
||||||
|
labels: "enhancement"
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to give us your feedback!
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please describe your request.
|
||||||
|
placeholder: Waht are your ideas?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
32
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
Normal file
32
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: Problem Report
|
||||||
|
description: I want to report a problem.
|
||||||
|
title: "[Problem]: "
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report!
|
||||||
|
- type: textarea
|
||||||
|
id: description
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please describe your problem.
|
||||||
|
placeholder: What happened? What did you expect?
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Image version
|
||||||
|
description: Which image version do you use?
|
||||||
|
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.
|
||||||
|
render: shell
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -5,4 +5,4 @@ updates:
|
|||||||
directory: "/"
|
directory: "/"
|
||||||
schedule:
|
schedule:
|
||||||
interval: "daily"
|
interval: "daily"
|
||||||
target-branch: "dev"
|
target-branch: "main"
|
||||||
|
|||||||
1
.github/dependencies/.admin-version
vendored
Normal file
1
.github/dependencies/.admin-version
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
6.2.23
|
||||||
1
.github/dependencies/.backitup-version
vendored
Normal file
1
.github/dependencies/.backitup-version
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
2.5.4
|
||||||
1
.github/dependencies/.discovery-version
vendored
Normal file
1
.github/dependencies/.discovery-version
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
3.1.0
|
||||||
1
.github/dependencies/.js-controller-version
vendored
Normal file
1
.github/dependencies/.js-controller-version
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
4.0.23
|
||||||
@@ -1,25 +1,23 @@
|
|||||||
# Github action to build Docker image from beta branch (tag: beta)
|
# Github action to build Docker image from beta branch (tag: beta)
|
||||||
name: Build debian based image (beta-node16)
|
name: Build debian beta-node18
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
release:
|
||||||
branches:
|
types: [prereleased]
|
||||||
- beta
|
|
||||||
types:
|
|
||||||
- closed
|
|
||||||
schedule:
|
|
||||||
- cron: '42 3 * * 1'
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-beta-node16-image:
|
build-beta-node18-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (beta)
|
- name: Getting published prerelease tag
|
||||||
uses: actions/checkout@v2.4.0
|
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'beta'
|
ref: ${{ env.RELEASE_TAG }}
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Get and write version and date
|
||||||
id: version
|
id: version
|
||||||
@@ -37,80 +35,80 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||||
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (node16-amd64)
|
- name: Build Docker image (node18-amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:${{ env.version }}-node16-amd64,
|
buanet/iobroker:${{ env.version }}-node18-amd64,
|
||||||
ghcr.io/buanet/iobroker:${{ env.version }}-node16-amd64
|
ghcr.io/buanet/iobroker:${{ env.version }}-node18-amd64
|
||||||
|
|
||||||
- name: Build Docker image (node16-arm32v7)
|
- name: Build Docker image (node18-arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:${{ env.version }}-node16-arm32v7,
|
buanet/iobroker:${{ env.version }}-node18-arm32v7,
|
||||||
ghcr.io/buanet/iobroker:${{ env.version }}-node16-arm32v7
|
ghcr.io/buanet/iobroker:${{ env.version }}-node18-arm32v7
|
||||||
|
|
||||||
- name: Build Docker image (node16-arm64v8)
|
- name: Build Docker image (node18-arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:${{ env.version }}-node16-arm64v8,
|
buanet/iobroker:${{ env.version }}-node18-arm64v8,
|
||||||
ghcr.io/buanet/iobroker:${{ env.version }}-node16-arm64v8
|
ghcr.io/buanet/iobroker:${{ env.version }}-node18-arm64v8
|
||||||
|
|
||||||
- name: Create and push manifests
|
- name: Create and push manifests
|
||||||
run: |
|
run: |
|
||||||
sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/beta-node16/g" ./manifest.yml > manifest_beta-node16.yaml
|
sed -e "s/\${VERSION}/${{ env.version }}-node18/g" -e "s/\${DOCKERTAG}/beta-node18/g" ./manifest.yml > manifest_beta-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_beta-node16.yaml
|
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_beta-node18.yaml
|
||||||
sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/beta-node16/g" ./manifest_ghcr.yml > manifest_ghcr_beta-node16.yaml
|
sed -e "s/\${VERSION}/${{ env.version }}-node18/g" -e "s/\${DOCKERTAG}/beta-node18/g" ./manifest_ghcr.yml > manifest_ghcr_beta-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_beta-node16.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_beta-node18.yaml
|
||||||
sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node16/g" ./manifest.yml > manifest_version-node16.yaml
|
sed -e "s/\${VERSION}/${{ env.version }}-node18/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node18/g" ./manifest.yml > manifest_version-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_version-node16.yaml
|
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_version-node18.yaml
|
||||||
sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node16/g" ./manifest_ghcr.yml > manifest_ghcr_version-node16.yaml
|
sed -e "s/\${VERSION}/${{ env.version }}-node18/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node18/g" ./manifest_ghcr.yml > manifest_ghcr_version-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version-node16.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version-node18.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v5
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||||
script: |
|
script: |
|
||||||
50
.github/workflows/build-debian-image-beta.yml
vendored
50
.github/workflows/build-debian-image-beta.yml
vendored
@@ -1,25 +1,23 @@
|
|||||||
# Github action to build Docker image from beta branch (tag: beta)
|
# Github action to build Docker image from beta branch (tag: beta)
|
||||||
name: Build debian based image (beta)
|
name: Build debian beta
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
release:
|
||||||
|
types: [prereleased]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- beta
|
|
||||||
types:
|
|
||||||
- closed
|
|
||||||
schedule:
|
|
||||||
- cron: '42 3 * * 1'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-beta-image:
|
build-beta-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (beta)
|
- name: Getting published prerelease tag
|
||||||
uses: actions/checkout@v2.4.0
|
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'beta'
|
ref: ${{ env.RELEASE_TAG }}
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Get and write version and date
|
||||||
id: version
|
id: version
|
||||||
@@ -37,39 +35,39 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||||
mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile
|
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (amd64)
|
- name: Build Docker image (amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
@@ -77,10 +75,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:${{ env.version }}-amd64
|
ghcr.io/buanet/iobroker:${{ env.version }}-amd64
|
||||||
|
|
||||||
- name: Build Docker image (arm32v7)
|
- name: Build Docker image (arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
@@ -88,10 +86,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7
|
ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7
|
||||||
|
|
||||||
- name: Build Docker image (arm64v8)
|
- name: Build Docker image (arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
@@ -110,7 +108,7 @@ jobs:
|
|||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v5
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||||
script: |
|
script: |
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
# Github action to build Docker image from dev branch (tag: dev)
|
# Github action to build Docker image from dev branch (tag: dev)
|
||||||
name: Build debian based image (dev-node16)
|
name: Build debian dev-node18
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- dev
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-dev-node16-image:
|
build-dev-node18-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (dev)
|
- name: Checkout repo (dev)
|
||||||
uses: actions/checkout@v2.4.0
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'dev'
|
ref: 'main'
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Get and write version and date
|
||||||
id: version
|
id: version
|
||||||
@@ -33,76 +30,76 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
sed -e "s/\${VERSION}/$VERSION-dev/" -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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||||
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (node16-amd64)
|
- name: Build Docker image (node18-amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:dev-node16-amd64,
|
buanet/iobroker:dev-node18-amd64,
|
||||||
ghcr.io/buanet/iobroker:dev-node16-amd64
|
ghcr.io/buanet/iobroker:dev-node18-amd64
|
||||||
|
|
||||||
- name: Build Docker image (node16-arm32v7)
|
- name: Build Docker image (node18-arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:dev-node16-arm32v7,
|
buanet/iobroker:dev-node18-arm32v7,
|
||||||
ghcr.io/buanet/iobroker:dev-node16-arm32v7
|
ghcr.io/buanet/iobroker:dev-node18-arm32v7
|
||||||
|
|
||||||
- name: Build Docker image (node16-arm64v8)
|
- name: Build Docker image (node18-arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node16/Dockerfile
|
file: ./debian/node18/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
buanet/iobroker:dev-node16-arm64v8,
|
buanet/iobroker:dev-node18-arm64v8,
|
||||||
ghcr.io/buanet/iobroker:dev-node16-arm64v8
|
ghcr.io/buanet/iobroker:dev-node18-arm64v8
|
||||||
|
|
||||||
- name: Create and push manifests
|
- name: Create and push manifests
|
||||||
run: |
|
run: |
|
||||||
sed -e "s/\${VERSION}/dev-node16/g" -e "s/\${DOCKERTAG}/dev-node16/g" ./manifest.yml > manifest_dev-node16.yaml
|
sed -e "s/\${VERSION}/dev-node18/g" -e "s/\${DOCKERTAG}/dev-node18/g" ./manifest.yml > manifest_dev-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev-node16.yaml
|
./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev-node18.yaml
|
||||||
sed -e "s/\${VERSION}/dev-node16/g" -e "s/\${DOCKERTAG}/dev-node16/g" ./manifest_ghcr.yml > manifest_ghcr_dev-node16.yaml
|
sed -e "s/\${VERSION}/dev-node18/g" -e "s/\${DOCKERTAG}/dev-node18/g" ./manifest_ghcr.yml > manifest_ghcr_dev-node18.yaml
|
||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev-node16.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev-node18.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v5
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||||
script: |
|
script: |
|
||||||
39
.github/workflows/build-debian-image-dev.yml
vendored
39
.github/workflows/build-debian-image-dev.yml
vendored
@@ -1,21 +1,18 @@
|
|||||||
# Github action to build Docker image from dev branch (tag: dev)
|
# Github action to build Docker image from dev branch (tag: dev)
|
||||||
name: Build debian based image (dev)
|
name: Build debian dev
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- dev
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-dev-image:
|
build-dev-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (dev)
|
- name: Checkout repo (dev)
|
||||||
uses: actions/checkout@v2.4.0
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'dev'
|
# ref: 'main'
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Get and write version and date
|
||||||
id: version
|
id: version
|
||||||
@@ -33,39 +30,39 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
sed -e "s/\${VERSION}/$VERSION-dev/" -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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||||
mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile
|
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (amd64)
|
- name: Build Docker image (amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
@@ -73,10 +70,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:dev-amd64
|
ghcr.io/buanet/iobroker:dev-amd64
|
||||||
|
|
||||||
- name: Build Docker image (arm32v7)
|
- name: Build Docker image (arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
@@ -84,10 +81,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:dev-arm32v7
|
ghcr.io/buanet/iobroker:dev-arm32v7
|
||||||
|
|
||||||
- name: Build Docker image (arm64v8)
|
- name: Build Docker image (arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
@@ -102,7 +99,7 @@ jobs:
|
|||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v5
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||||
script: |
|
script: |
|
||||||
|
|||||||
@@ -1,25 +1,29 @@
|
|||||||
# Github action to build Docker image from main branch for iobroker/iobroker (tag: latest)
|
# Github action to build Docker image from main branch for iobroker/iobroker (tag: latest)
|
||||||
name: Build debian based image (latest)
|
name: Build debian latest (iobroker)
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
release:
|
release:
|
||||||
types:
|
types:
|
||||||
- published
|
- released
|
||||||
schedule:
|
workflow_dispatch:
|
||||||
- cron: '42 3 * * 5'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-latest-image:
|
build-latest-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (main)
|
- name: Fetching latest release tag
|
||||||
uses: actions/checkout@v2.4.0
|
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
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'main'
|
ref: ${{ env.RELEASE_TAG }}
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Fetching and adding version tag and date
|
||||||
id: version
|
id: version
|
||||||
run: |
|
run: |
|
||||||
VERSION="$(cat .VERSION)"
|
VERSION="$(cat .VERSION)"
|
||||||
@@ -35,52 +39,52 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||||
mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile
|
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub (iobroker)
|
- name: Login to DockerHub (iobroker)
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||||
|
|
||||||
- name: Build Docker image (amd64)
|
- name: Build Docker image (amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
iobroker/iobroker:${{ env.version }}-amd64,
|
iobroker/iobroker:${{ env.version }}-amd64,
|
||||||
|
|
||||||
- name: Build Docker image (arm32v7)
|
- name: Build Docker image (arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
iobroker/iobroker:${{ env.version }}-arm32v7,
|
iobroker/iobroker:${{ env.version }}-arm32v7,
|
||||||
|
|
||||||
- name: Build Docker image (arm64v8)
|
- name: Build Docker image (arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
@@ -1,25 +1,29 @@
|
|||||||
# Github action to build Docker image from main branch (tag: latest)
|
# Github action to build Docker image from main branch (tag: latest)
|
||||||
name: Build debian based image (latest)
|
name: Build debian latest (buanet)
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
|
||||||
release:
|
release:
|
||||||
types:
|
types:
|
||||||
- published
|
- released
|
||||||
schedule:
|
workflow_dispatch:
|
||||||
- cron: '42 3 * * 5'
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bulid-latest-image:
|
build-latest-image:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo (main)
|
- name: Fetching latest release tag
|
||||||
uses: actions/checkout@v2.4.0
|
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
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
ref: 'main'
|
ref: ${{ env.RELEASE_TAG }}
|
||||||
|
|
||||||
- name: Get and write version and date
|
- name: Fetching and adding version tag and date
|
||||||
id: version
|
id: version
|
||||||
run: |
|
run: |
|
||||||
VERSION="$(cat .VERSION)"
|
VERSION="$(cat .VERSION)"
|
||||||
@@ -35,39 +39,39 @@ jobs:
|
|||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
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
|
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||||
# amd64
|
# amd64
|
||||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp
|
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp
|
||||||
mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile
|
mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile
|
||||||
|
|
||||||
- name: Set up manifest tool
|
- name: Set up manifest tool
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool
|
wget https://github.com/estesp/manifest-tool/releases/download/v1.0.3/manifest-tool-linux-amd64 -O manifest-tool
|
||||||
chmod +x manifest-tool
|
chmod +x manifest-tool
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v1.2.0
|
uses: docker/setup-qemu-action@v2.1.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
id: buildx
|
id: buildx
|
||||||
uses: docker/setup-buildx-action@v1.6.0
|
uses: docker/setup-buildx-action@v2.2.1
|
||||||
|
|
||||||
- name: Login to DockerHub (buanet)
|
- name: Login to DockerHub (buanet)
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v1.10.0
|
uses: docker/login-action@v2.1.0
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ secrets.PACKAGES_USER }}
|
username: ${{ secrets.PACKAGES_USER }}
|
||||||
password: ${{ secrets.PACKAGES_PASS }}
|
password: ${{ secrets.PACKAGES_PASS }}
|
||||||
|
|
||||||
- name: Build Docker image (amd64)
|
- name: Build Docker image (amd64)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: |
|
tags: |
|
||||||
@@ -75,10 +79,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:${{ env.version }}-amd64
|
ghcr.io/buanet/iobroker:${{ env.version }}-amd64
|
||||||
|
|
||||||
- name: Build Docker image (arm32v7)
|
- name: Build Docker image (arm32v7)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm/v7
|
platforms: linux/arm/v7
|
||||||
tags: |
|
tags: |
|
||||||
@@ -86,10 +90,10 @@ jobs:
|
|||||||
ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7
|
ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7
|
||||||
|
|
||||||
- name: Build Docker image (arm64v8)
|
- name: Build Docker image (arm64v8)
|
||||||
uses: docker/build-push-action@v2.7.0
|
uses: docker/build-push-action@v3.2.0
|
||||||
with:
|
with:
|
||||||
context: ./debian
|
context: ./debian
|
||||||
file: ./debian/node14/Dockerfile
|
file: ./debian/node16/Dockerfile
|
||||||
push: true
|
push: true
|
||||||
platforms: linux/arm64/v8
|
platforms: linux/arm64/v8
|
||||||
tags: |
|
tags: |
|
||||||
@@ -112,7 +116,7 @@ jobs:
|
|||||||
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml
|
./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml
|
||||||
|
|
||||||
- name: Delete untagged images from GitHub packages
|
- name: Delete untagged images from GitHub packages
|
||||||
uses: actions/github-script@v5
|
uses: actions/github-script@v6
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||||
script: |
|
script: |
|
||||||
59
.github/workflows/check-iobroker-versions.yml
vendored
Normal file
59
.github/workflows/check-iobroker-versions.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
name: Check ioBroker versions
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '42 23 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-and-trigger:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: 'buanet/ioBroker.docker'
|
||||||
|
token: ${{ secrets.ACTIONS_PAT }}
|
||||||
|
|
||||||
|
- name: Fetch ioBroker versions
|
||||||
|
run: |
|
||||||
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
|
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
||||||
|
echo "[LOG] Fetched js-controller version is $(cat .github/dependencies/.js-controller-version)"
|
||||||
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
|
jq -r '."admin".version' > .github/dependencies/.admin-version
|
||||||
|
echo "[LOG] Fetched admin version is $(cat .github/dependencies/.admin-version)"
|
||||||
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
|
jq -r '."backitup".version' > .github/dependencies/.backitup-version
|
||||||
|
echo "[LOG] Fetched backitup version is $(cat .github/dependencies/.backitup-version)"
|
||||||
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
|
jq -r '."discovery".version' > .github/dependencies/.discovery-version
|
||||||
|
echo "[LOG] Fetched discovery version is $(cat .github/dependencies/.discovery-version)"
|
||||||
|
|
||||||
|
- name: Check for modified files
|
||||||
|
id: git-check
|
||||||
|
run: echo ::set-output name=modified::$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")
|
||||||
|
|
||||||
|
- name: Commit latest release version
|
||||||
|
if: steps.git-check.outputs.modified == 'true'
|
||||||
|
run: |
|
||||||
|
git config --global user.name 'buanet'
|
||||||
|
git config --global user.email 'info@buanet.de'
|
||||||
|
git commit -am "new ioBroker versions"
|
||||||
|
git push
|
||||||
|
|
||||||
|
- name: Trigger build debian latest (buanet)
|
||||||
|
if: 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)
|
||||||
|
repo: buanet/ioBroker.docker
|
||||||
|
token: ${{ secrets.ACTIONS_PAT }}
|
||||||
33
.github/workflows/testing-docker-image.yml
vendored
Normal file
33
.github/workflows/testing-docker-image.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
# Github action for testing the Docker image
|
||||||
|
name: Testing Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test-docker-image:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Testing with docker run
|
||||||
|
run: |
|
||||||
|
echo "[LOG] Starting ioBroker Container..."
|
||||||
|
docker run -d -p 8081:8081 --name iobroker -v iobrokerdata:/opt/iobroker buanet/iobroker:latest
|
||||||
|
echo "[LOG] Done."
|
||||||
|
echo ' '
|
||||||
|
echo "[LOG] Waiting for Startup Script..."
|
||||||
|
sleep 30
|
||||||
|
echo "[LOG] Done."
|
||||||
|
echo ' '
|
||||||
|
echo "[LOG] Writing Logs..."
|
||||||
|
docker logs iobroker >& testrun.log
|
||||||
|
echo "[LOG] Done."
|
||||||
|
echo ' '
|
||||||
|
echo "[LOG] Checking Web UI..."
|
||||||
|
curl --insecure http://127.0.0.1:8081 2> /dev/null | grep '<title>Admin</title>' &> /dev/null || exit 1
|
||||||
|
echo "[LOG] Done."
|
||||||
|
echo ' '
|
||||||
|
echo "[LOG] Output testrun.log:"
|
||||||
|
cat testrun.log
|
||||||
|
echo ' '
|
||||||
|
echo "[LOG] Test sucesssful."
|
||||||
|
echo ' '
|
||||||
34
.github/workflows/update-docker-readme.yml
vendored
Normal file
34
.github/workflows/update-docker-readme.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Update Docker Hub Readme
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- ./docs/README_docker_hub_buanet.md
|
||||||
|
- ./docs/README_docker_hub_iobroker.md
|
||||||
|
- .github/workflows/update-docker-readme.yml
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-docker-readme:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Update Docker Hub Readme (buanet)
|
||||||
|
uses: peter-evans/dockerhub-description@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
|
repository: buanet/iobroker
|
||||||
|
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||||
|
readme-filepath: ./docs/README_docker_hub_buanet.md
|
||||||
|
|
||||||
|
- name: Update Docker Hub Readme (iobroker)
|
||||||
|
uses: peter-evans/dockerhub-description@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||||
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||||
|
repository: iobroker/iobroker
|
||||||
|
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||||
|
readme-filepath: ./docs/README_docker_hub_iobroker.md
|
||||||
88
CHANGELOG.md
88
CHANGELOG.md
@@ -1,16 +1,68 @@
|
|||||||
## Changelog
|
## Changelog
|
||||||
|
|
||||||
|
### v7.2.0 (12.12.2022)
|
||||||
|
* update docs
|
||||||
|
* v7.2.0-beta.1 (30.11.2022)
|
||||||
|
* fix restart option in maintenance script
|
||||||
|
* add error handling for usb devices
|
||||||
|
* add aliases to maintenance script
|
||||||
|
* add env PERMISSION_CHECK ([#251](https://github.com/buanet/ioBroker.docker/issues/251))
|
||||||
|
* add some more DEBUG messages to log
|
||||||
|
* add env IOB_BACKITUP_EXTDB to unlock external db backups in backitup adapter
|
||||||
|
* reorder dockerfile steps to fulfill ioBroker Docker check
|
||||||
|
|
||||||
|
### v7.1.2 (08.11.2022)
|
||||||
|
* fix hostname check ([#293](https://github.com/buanet/ioBroker.docker/issues/293))
|
||||||
|
|
||||||
|
### v7.1.1 (01.11.2022)
|
||||||
|
* fix setting gid of iobroker group ([#289](https://github.com/buanet/ioBroker.docker/issues/289))
|
||||||
|
|
||||||
|
### v7.1.0 (31.10.2022)
|
||||||
|
* fix [build action node issue](https://forum.iobroker.net/topic/59518/docker-image-7-0-1-auf-node-js-14/14?_=1667244004952) for iobroker/iobroker repo
|
||||||
|
* v7.1.0-beta.1 (12.10.2022)
|
||||||
|
* add env DEBUG for extended debugging log
|
||||||
|
* enhance logging in iobroker-startup.sh
|
||||||
|
* enhance build process
|
||||||
|
* add restart option to maintenance script
|
||||||
|
* add strict mode for iobroker-startup.sh
|
||||||
|
* fix "unary operator expected" error
|
||||||
|
|
||||||
|
### v7.0.1 (05.07.2022)
|
||||||
|
* backitup restore patch
|
||||||
|
|
||||||
|
### v7.0.0 (21.06.2022)
|
||||||
|
* update docs & ci
|
||||||
|
* v7.0.0-beta.1 (16.06.2022)
|
||||||
|
* upgrade node version to recommended node16
|
||||||
|
* rewrite maintenance script ([#243 by @agross](https://github.com/buanet/ioBroker.docker/pull/243))
|
||||||
|
* enhance container shutdown on SIGTERM ([as requested with #264 by @buzz0r](https://github.com/buanet/ioBroker.docker/pull/264))
|
||||||
|
* enhance startup script logging
|
||||||
|
* enhance logging for avahi & zwave install scripts
|
||||||
|
* add new env for offline mode (fixes [#255](https://github.com/buanet/ioBroker.docker/issues/255))
|
||||||
|
|
||||||
|
### v6.1.0 (2022-03-01)
|
||||||
|
* v6.1.0-beta.2 (2022-02-11)
|
||||||
|
* fix -kbn option in maintenance script
|
||||||
|
* enhance shutdown/ prevent warnings on upgrade
|
||||||
|
* remove hostname check for multihost slave
|
||||||
|
* enhance startup script logging
|
||||||
|
* add breaks and enhance maintenance script (fixes [#233](https://github.com/buanet/ioBroker.docker/issues/233))
|
||||||
|
* v6.1.0-beta.1 (2021-12-23)
|
||||||
|
* some more corrections in maintenance script ([#232 by @agross](https://github.com/buanet/ioBroker.docker/pull/232))
|
||||||
|
* add auto confirm parameter to upgrade function in maintenance script ([#229 by @thost96](https://github.com/buanet/ioBroker.docker/pull/229))
|
||||||
|
* add alias "m" for maintenance script
|
||||||
|
|
||||||
### v6.0.0 (2021-12-09)
|
### v6.0.0 (2021-12-09)
|
||||||
* moving docu/ restructuring readme
|
* move docs/ restructuring readme
|
||||||
* v6.0.0-beta1 (2021-10-07)
|
* v6.0.0-beta1 (2021-10-07)
|
||||||
* upgrading node version to recommended node14
|
* upgrade node version to recommended node14
|
||||||
* adding beta-node16 tag for beta testing node16
|
* add beta-node16 tag for beta testing node16
|
||||||
* updating documentation
|
* update documentation
|
||||||
* v5.3.0-beta1 (2021-10-07)
|
* v5.3.0-beta1 (2021-10-07)
|
||||||
* adding check (installed) PACKAGES on startup (#201)
|
* add check (installed) PACKAGES on startup (fixes [#201](https://github.com/buanet/ioBroker.docker/issues/201))
|
||||||
* adding packages for discovery adapter
|
* add packages for discovery adapter
|
||||||
* adding packages for backitup adapter
|
* add packages for backitup adapter
|
||||||
* reorganizing Dockerfile
|
* reorganize Dockerfile
|
||||||
|
|
||||||
### v5.2.0 (2021-09-30)
|
### v5.2.0 (2021-09-30)
|
||||||
* v5.2.0-beta4 (2021-09-10)
|
* v5.2.0-beta4 (2021-09-10)
|
||||||
@@ -21,7 +73,7 @@
|
|||||||
* v5.2.0-beta3 (2021-09-04)
|
* v5.2.0-beta3 (2021-09-04)
|
||||||
* reducing layers in dockerfile
|
* reducing layers in dockerfile
|
||||||
* making hostname check mandatory for startup
|
* making hostname check mandatory for startup
|
||||||
* optimize startup log
|
* enhance startup log
|
||||||
* v5.2.0-beta2 (2021-08-28)
|
* v5.2.0-beta2 (2021-08-28)
|
||||||
* redesign maintenance script
|
* redesign maintenance script
|
||||||
* switching amd64 base image to debian bullseye slim
|
* switching amd64 base image to debian bullseye slim
|
||||||
@@ -29,21 +81,21 @@
|
|||||||
* adding labels in OCI standard format
|
* adding labels in OCI standard format
|
||||||
* adding packages update on first start
|
* adding packages update on first start
|
||||||
* adding file for docker detection by ioBroker adapters
|
* adding file for docker detection by ioBroker adapters
|
||||||
* adding best practice for states db migation in readme
|
* adding best practice for states db migration in readme
|
||||||
* removing couchdb option for states db (no longer supported)
|
* removing couchdb option for states db (no longer supported)
|
||||||
* v5.2.0-beta1 (2021-05-04)
|
* v5.2.0-beta1 (2021-05-04)
|
||||||
* added upgrade parameter to maintenance script
|
* added upgrade parameter to maintenance script
|
||||||
* added expose for default admin ui port (#172)
|
* added expose for default admin ui port (fixes [#172](https://github.com/buanet/ioBroker.docker/issues/172))
|
||||||
* added shortform for maintenance script
|
* added short form for maintenance script
|
||||||
* v5.2.0-beta (2021-04-02)
|
* v5.2.0-beta (2021-04-02)
|
||||||
* some renaming to optimize automated build
|
* some renaming to enhance automated build
|
||||||
* changes in versioning
|
* changes in versioning
|
||||||
* delete travis for automated build
|
* delete travis for automated build
|
||||||
|
|
||||||
### v5.1.0 (2020-11-05)
|
### v5.1.0 (2020-11-05)
|
||||||
* v5.0.2-beta (2020-07-28)
|
* v5.0.2-beta (2020-07-28)
|
||||||
* added docker tag for majorversion latest
|
* added docker tag for majorversion latest
|
||||||
* extend readme.md doku
|
* extend readme.md docu
|
||||||
* added maintenance script
|
* added maintenance script
|
||||||
* added container healthcheck
|
* added container healthcheck
|
||||||
* fixed configuration procedure and logging for objects and states db setup
|
* fixed configuration procedure and logging for objects and states db setup
|
||||||
@@ -51,7 +103,7 @@
|
|||||||
* fixing backup detection in startup script
|
* fixing backup detection in startup script
|
||||||
* fixing permission issue on iobroker restored
|
* fixing permission issue on iobroker restored
|
||||||
* extended Logging
|
* extended Logging
|
||||||
* optimize multihost support
|
* enhance multihost support
|
||||||
|
|
||||||
### v5.0.0 (2020-06-29)
|
### v5.0.0 (2020-06-29)
|
||||||
* v4.2.4-beta (2020-06-23)
|
* v4.2.4-beta (2020-06-23)
|
||||||
@@ -84,7 +136,7 @@
|
|||||||
### v4.1.0 (2020-01-17)
|
### v4.1.0 (2020-01-17)
|
||||||
* improved readme.md
|
* improved readme.md
|
||||||
* v4.0.3-beta (2020-01-06)
|
* v4.0.3-beta (2020-01-06)
|
||||||
* added support to restore backup on startup
|
* added support to restore backup on startup ([#56 by @duffbeer2000](https://github.com/buanet/ioBroker.docker/pull/56))
|
||||||
* small fixes according to "docker best practices"
|
* small fixes according to "docker best practices"
|
||||||
* v4.0.2-beta (2019-12-10)
|
* v4.0.2-beta (2019-12-10)
|
||||||
* ~~added env for activating redis~~
|
* ~~added env for activating redis~~
|
||||||
@@ -104,13 +156,13 @@
|
|||||||
* v3.1.2-beta (2019-09-03)
|
* v3.1.2-beta (2019-09-03)
|
||||||
* using node 10 instead of node 8
|
* using node 10 instead of node 8
|
||||||
* v3.1.1-beta (2019-09-02)
|
* v3.1.1-beta (2019-09-02)
|
||||||
* adding env for setting uid/ gid for iobroker-user
|
* adding env for setting uid/ gid for iobroker-user ([#33 by @mplogas](https://github.com/buanet/ioBroker.docker/pull/33))
|
||||||
|
|
||||||
### v3.1.0 (2019-08-21)
|
### v3.1.0 (2019-08-21)
|
||||||
* v3.0.3-beta (2019-08-21)
|
* v3.0.3-beta (2019-08-21)
|
||||||
* switching base image from "debian:latest" to "debian:stretch"
|
* switching base image from "debian:latest" to "debian:stretch"
|
||||||
* v3.0.2-beta (2019-06-13)
|
* v3.0.2-beta (2019-06-13)
|
||||||
* using gosu instead of sudo
|
* using gosu instead of sudo ([#26 by @SchumyHao](https://github.com/buanet/ioBroker.docker/pull/26))
|
||||||
* changing output of ioBroker logging
|
* changing output of ioBroker logging
|
||||||
* v3.0.1-beta (2019-05-18)
|
* v3.0.1-beta (2019-05-18)
|
||||||
* ~~switching back to iobroker-daemon for startup~~
|
* ~~switching back to iobroker-daemon for startup~~
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017-2021 André Germann
|
Copyright (c) 2017-2022 André Germann
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
23
README.md
23
README.md
@@ -1,15 +1,20 @@
|
|||||||
# Official Docker Image for ioBroker
|
# Official Docker Image for ioBroker
|
||||||
|
|
||||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/src/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
<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/actions/workflows/build-debian-image-latest.yml)
|
||||||
|
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||||
|
[](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)
|
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||||
[)](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml)
|
|
||||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
|
||||||
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
|
||||||
[](https://github.com/buanet/ioBroker.docker)
|
|
||||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
[](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://paypal.me/buanet)
|
[](https://paypal.me/buanet)
|
||||||
|
|
||||||
The code provided in this repo is used to automatically generate the official Docker Image for ioBroker.
|
The code provided in this repo is used to automatically generate the official Docker Image for ioBroker.
|
||||||
@@ -26,7 +31,7 @@ Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de
|
|||||||
|
|
||||||
### How to run the image?
|
### How to run the image?
|
||||||
|
|
||||||
You can find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md).
|
You can find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/docs/README_docker_hub_buanet.md).
|
||||||
|
|
||||||
### Is there a more detailed documentation?
|
### Is there a more detailed documentation?
|
||||||
|
|
||||||
@@ -55,13 +60,13 @@ Please do not use the issues for support questions. Not every error message is w
|
|||||||
|
|
||||||
### Beta testing
|
### Beta testing
|
||||||
|
|
||||||
If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. You can find the changelog for beta versions [here](https://github.com/buanet/ioBroker.docker/blob/dev/CHANGELOG.md). For more details and beta support join us at the "docker-image" chat 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" on the [ioBroker Discord channel](https://discord.gg/Ne3y6fUac3).
|
||||||
|
|
||||||
### Support the project
|
### Support the project
|
||||||
|
|
||||||
The easiest way to support this project is to leave me some likes/ stars on Github and Docker hub!<br>
|
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 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/src/img/pp_logo.png" height="15" width="15"></a><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>
|
||||||
Thank you!
|
Thank you!
|
||||||
|
|
||||||
## :memo: Changelog
|
## :memo: Changelog
|
||||||
@@ -72,7 +77,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md).
|
|||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017-2021 André Germann
|
Copyright (c) 2017-2022 André Germann
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
7
debian/node16/Dockerfile
vendored
7
debian/node16/Dockerfile
vendored
@@ -48,12 +48,13 @@ RUN chmod 777 /opt/scripts/ \
|
|||||||
&& chmod +x /opt/scripts/*.sh \
|
&& chmod +x /opt/scripts/*.sh \
|
||||||
&& chmod +x /opt/userscripts/*.sh
|
&& chmod +x /opt/userscripts/*.sh
|
||||||
|
|
||||||
# Install ioBroker
|
# Prepare and install ioBroker
|
||||||
RUN curl -sL https://iobroker.net/install.sh | bash - \
|
RUN mkdir -p /opt/scripts/.docker_config/ \
|
||||||
&& mkdir -p /opt/scripts/.docker_config/ \
|
|
||||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||||
&& echo $(hostname) > /opt/.firstrun \
|
&& echo $(hostname) > /opt/.firstrun \
|
||||||
|
# Run installer
|
||||||
|
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||||
# Deleting UUID from build
|
# Deleting UUID from build
|
||||||
&& iobroker unsetup -y \
|
&& iobroker unsetup -y \
|
||||||
# Backup initial ioBroker and userscript folder
|
# Backup initial ioBroker and userscript folder
|
||||||
|
|||||||
98
debian/node18/Dockerfile
vendored
Normal file
98
debian/node18/Dockerfile
vendored
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
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.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" \
|
||||||
|
org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \
|
||||||
|
org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \
|
||||||
|
org.opencontainers.image.version="${VERSION}" \
|
||||||
|
org.opencontainers.image.created="${DATI}"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
|
# Install prerequisites (including node) and generating locales
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
apt-utils \
|
||||||
|
cifs-utils \
|
||||||
|
curl \
|
||||||
|
gosu \
|
||||||
|
iputils-ping \
|
||||||
|
jq \
|
||||||
|
locales \
|
||||||
|
nfs-common \
|
||||||
|
procps \
|
||||||
|
python3 \
|
||||||
|
python3-dev \
|
||||||
|
sudo \
|
||||||
|
tar \
|
||||||
|
tzdata \
|
||||||
|
udev \
|
||||||
|
wget \
|
||||||
|
# Install node
|
||||||
|
&& curl -sL https://deb.nodesource.com/setup_18.x | bash \
|
||||||
|
&& apt-get update && apt-get install -y nodejs \
|
||||||
|
# Install node-gyp
|
||||||
|
&& npm install -g node-gyp \
|
||||||
|
# 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/ \
|
||||||
|
&& 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/ \
|
||||||
|
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||||
|
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||||
|
&& echo $(hostname) > /opt/.firstrun \
|
||||||
|
# Run installer
|
||||||
|
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||||
|
# Deleting UUID from build
|
||||||
|
&& iobroker unsetup -y \
|
||||||
|
# Backup initial ioBroker and userscript folder
|
||||||
|
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||||
|
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||||
|
# Setting up iobroker-user (shell, home dir and rights)
|
||||||
|
&& chsh -s /bin/bash iobroker \
|
||||||
|
&& usermod --home /opt/iobroker iobroker \
|
||||||
|
&& usermod -u 1000 iobroker \
|
||||||
|
&& groupmod -g 1000 iobroker \
|
||||||
|
&& chown root:iobroker /usr/sbin/gosu \
|
||||||
|
&& chmod +s /usr/sbin/gosu \
|
||||||
|
# Clean up installation cache
|
||||||
|
&& apt-get autoclean -y \
|
||||||
|
&& apt-get autoremove \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& rm -rf /tmp/* /var/tmp/* \
|
||||||
|
&& rm -rf /root/.cache/* /root/.npm/* \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Setting up default ENVs
|
||||||
|
ENV DEBIAN_FRONTEND="teletype" \
|
||||||
|
LANG="de_DE.UTF-8" \
|
||||||
|
LANGUAGE="de_DE:de" \
|
||||||
|
LC_ALL="de_DE.UTF-8" \
|
||||||
|
SETGID=1000 \
|
||||||
|
SETUID=1000 \
|
||||||
|
TZ="Europe/Berlin"
|
||||||
|
|
||||||
|
# Expose default admin ui port
|
||||||
|
EXPOSE 8081
|
||||||
|
|
||||||
|
# Change work dir
|
||||||
|
WORKDIR /opt/iobroker/
|
||||||
|
|
||||||
|
# Healthcheck
|
||||||
|
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||||
|
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||||
|
|
||||||
|
# Run startup-script
|
||||||
|
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||||
699
debian/scripts/iobroker_startup.sh
vendored
699
debian/scripts/iobroker_startup.sh
vendored
@@ -1,16 +1,24 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# bash strict mode
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
# Setting healthcheck status to "starting"
|
# Setting healthcheck status to "starting"
|
||||||
echo "starting" > /opt/scripts/.docker_config/.healthcheck
|
echo 'starting' > /opt/scripts/.docker_config/.healthcheck
|
||||||
|
|
||||||
# Reading ENV
|
# Reading ENV
|
||||||
|
set +u
|
||||||
adminport=$IOB_ADMINPORT
|
adminport=$IOB_ADMINPORT
|
||||||
avahi=$AVAHI
|
avahi=$AVAHI
|
||||||
|
backitup=$IOB_BACKITUP_EXTDB
|
||||||
|
debug=$DEBUG
|
||||||
multihost=$IOB_MULTIHOST
|
multihost=$IOB_MULTIHOST
|
||||||
|
offlinemode=$OFFLINE_MODE
|
||||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||||
packages=$PACKAGES
|
packages=$PACKAGES
|
||||||
|
permissioncheck=$PERMISSION_CHECK
|
||||||
setgid=$SETGID
|
setgid=$SETGID
|
||||||
setuid=$SETUID
|
setuid=$SETUID
|
||||||
statesdbhost=$IOB_STATESDB_HOST
|
statesdbhost=$IOB_STATESDB_HOST
|
||||||
@@ -18,6 +26,25 @@ statesdbport=$IOB_STATESDB_PORT
|
|||||||
statesdbtype=$IOB_STATESDB_TYPE
|
statesdbtype=$IOB_STATESDB_TYPE
|
||||||
usbdevices=$USBDEVICES
|
usbdevices=$USBDEVICES
|
||||||
zwave=$ZWAVE
|
zwave=$ZWAVE
|
||||||
|
set -u
|
||||||
|
|
||||||
|
pkill_timeout=10 # timeout for iobroker shutdown in seconds
|
||||||
|
|
||||||
|
# Stop on error function
|
||||||
|
stop_on_error() {
|
||||||
|
if [[ "$debug" == "true" ]]; then
|
||||||
|
echo ' '
|
||||||
|
echo "[DEBUG] Debug mode prevents the container from exiting on errors."
|
||||||
|
echo "[DEBUG] This enables you to investigate or fix your issue on the command line."
|
||||||
|
echo "[DEBUG] If you want to stop or restart your container you have to do it manually."
|
||||||
|
echo "[DEBUG] IoBroker is not running!"
|
||||||
|
tail -f /dev/null
|
||||||
|
else
|
||||||
|
echo ' '
|
||||||
|
echo "This Script will exit now."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Getting date and time for logging
|
# Getting date and time for logging
|
||||||
dati=`date '+%Y-%m-%d %H:%M:%S'`
|
dati=`date '+%Y-%m-%d %H:%M:%S'`
|
||||||
@@ -27,45 +54,65 @@ echo ' '
|
|||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo -n "$(printf -- '-%.0s' {1..25})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..25})"
|
echo -n "$(printf -- '-%.0s' {1..25})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..25})"
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo "----- -----"
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "----- ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ██████╗ -----"
|
||||||
echo "----- Welcome to your ioBroker-container! -----"
|
echo "----- ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ██╔═══██╗ ██║ ██╔╝ ██╔════╝ ██╔══██╗ -----"
|
||||||
echo "----- Startupscript is now running. -----"
|
echo "----- ██║ ██║ ██║ ██████╔╝ ██████╔╝ ██║ ██║ █████╔╝ █████╗ ██████╔╝ -----"
|
||||||
|
echo "----- ██║ ██║ ██║ ██╔══██╗ ██╔══██╗ ██║ ██║ ██╔═██╗ ██╔══╝ ██╔══██╗ -----"
|
||||||
|
echo "----- ██║ ╚██████╔╝ ██████╔╝ ██║ ██║ ╚██████╔╝ ██║ ██╗ ███████╗ ██║ ██║ -----"
|
||||||
|
echo "----- ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ -----"
|
||||||
|
echo "----- -----"
|
||||||
|
echo "----- Welcome to your ioBroker Docker container! -----"
|
||||||
|
echo "----- Startupscript is now running! -----"
|
||||||
echo "----- Please be patient! -----"
|
echo "----- Please be patient! -----"
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo "----- Debugging information -----"
|
echo "----- System Information -----"
|
||||||
echo "----- -----"
|
|
||||||
echo "----- System -----"
|
|
||||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" arch: $(uname -m))" && echo " -----"
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" arch: $(uname -m))" && echo " -----"
|
||||||
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" hostname: $(hostname))" && echo " -----"
|
||||||
echo "----- -----"
|
echo "----- -----"
|
||||||
echo "----- Docker-Image -----"
|
echo "----- Version Information -----"
|
||||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" image: ${VERSION})" && echo " -----"
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" image: ${VERSION})" && echo " -----"
|
||||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" build: ${BUILD})" && echo " -----"
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" build: ${BUILD})" && echo " -----"
|
||||||
echo "----- -----"
|
|
||||||
echo "----- Versions -----"
|
|
||||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" node: $(node -v))" && echo " -----"
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" node: $(node -v))" && echo " -----"
|
||||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" npm: $(npm -v))" && echo " -----"
|
echo -n "----- " && echo -n "$(printf "%-20s %-28s" npm: $(npm -v))" && echo " -----"
|
||||||
echo "----- -----"
|
echo "----- -----"
|
||||||
echo "----- ENV -----"
|
echo "----- Environment Variables -----"
|
||||||
if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi
|
if [[ "$adminport" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi
|
||||||
if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" AVAHI: $avahi)" && echo " -----"; fi
|
if [[ "$avahi" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" AVAHI: $avahi)" && echo " -----"; fi
|
||||||
if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi
|
if [[ "$debug" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" DEBUG: $debug)" && echo " -----"; fi
|
||||||
if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi
|
if [[ "$backitup" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_BACKITUP_EXTDB: $backitup)" && echo " -----"; fi
|
||||||
if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi
|
if [[ "$multihost" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi
|
||||||
if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi
|
if [[ "$objectsdbhost" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi
|
||||||
if [ "$packages" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: $packages)" && echo " -----"; fi
|
if [[ "$objectsdbport" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi
|
||||||
if [ "$setgid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETGID: $setgid)" && echo " -----"; fi
|
if [[ "$objectsdbtype" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi
|
||||||
if [ "$setuid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETUID: $setuid)" && echo " -----"; fi
|
if [[ "$statesdbhost" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_HOST: $statesdbhost)" && echo " -----"; fi
|
||||||
if [ "$statesdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_HOST: $statesdbhost)" && echo " -----"; fi
|
if [[ "$statesdbport" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PORT: $statesdbport)" && echo " -----"; fi
|
||||||
if [ "$statesdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PORT: $statesdbport)" && echo " -----"; fi
|
if [[ "$statesdbtype" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_TYPE: $statesdbtype)" && echo " -----"; fi
|
||||||
if [ "$statesdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_TYPE: $statesdbtype)" && echo " -----"; fi
|
if [[ "$offlinemode" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" OFFLINE_MODE: $offlinemode)" && echo " -----"; fi
|
||||||
if [ "$usbdevices" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" USBDEVICES: $usbdevices)" && echo " -----"; fi
|
if [[ "$packages" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: "$packages")" && echo " -----"; fi
|
||||||
if [ "$zwave" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" ZWAVE: $zwave)" && 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
|
||||||
|
if [[ "$usbdevices" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" USBDEVICES: $usbdevices)" && echo " -----"; fi
|
||||||
|
if [[ "$zwave" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" ZWAVE: $zwave)" && echo " -----"; fi
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
|
# Debug loggin notice
|
||||||
|
if [[ "$debug" == "true" ]]; then
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
echo "!!!! DEBUG LOG ACTIVE !!!!"
|
||||||
|
echo "!!!! Environment variable DEBUG is set to true. !!!!"
|
||||||
|
echo "!!!! This will extend the logging output and may slow down container start. !!!!"
|
||||||
|
echo "!!!! Please make sure to deactivate if no longer needed. !!!!"
|
||||||
|
echo "!!!! For more information see ioBroker Docker image documentation: !!!!"
|
||||||
|
echo "!!!! https://docs.buanet.de/iobroker-docker-image/docs/ !!!!"
|
||||||
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
|
echo ' '
|
||||||
|
fi
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 1 - Preparing container
|
# STEP 1 - Preparing container
|
||||||
#####
|
#####
|
||||||
@@ -74,48 +121,55 @@ echo "----- Step 1 of 5: Preparing container
|
|||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
# Installing/updating additional packages, registering maintenance script and setting uid/gid
|
# Actions running on first start only
|
||||||
if [ "$packages" != "" ] || [ $(cat /etc/group | grep 'iobroker:' | cut -d':' -f3) != $setgid ] || [ $(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3) != $setuid ] || [ -f /opt/.firstrun ]
|
if [[ -f /opt/.firstrun ]]; then
|
||||||
then
|
# Updating Linux packages
|
||||||
if [ -f /opt/.firstrun ]
|
if [[ "$offlinemode" = "true" ]]; then
|
||||||
then
|
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
||||||
echo "Updating Linux packages on first run..."
|
|
||||||
bash /opt/scripts/setup_packages.sh -update
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "Registering maintenance script as command..."
|
else
|
||||||
echo "alias maintenance=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
echo "Updating Linux packages on first run... "
|
||||||
echo "alias maint=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
bash /opt/scripts/setup_packages.sh -update
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
if [ "$packages" != "" ]
|
# Installing packages from ENV
|
||||||
then
|
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then
|
||||||
echo "Installing additional packages is set by ENV."
|
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
||||||
echo "Checking the following Packages:" $packages"..."
|
echo ' '
|
||||||
|
elif [[ "$packages" != "" ]]; then
|
||||||
|
echo "PACKAGES is set. Installing additional Linux packages."
|
||||||
|
echo "Checking the following packages:" $packages"... "
|
||||||
echo $packages > /opt/scripts/.docker_config/.packages
|
echo $packages > /opt/scripts/.docker_config/.packages
|
||||||
bash /opt/scripts/setup_packages.sh -install
|
bash /opt/scripts/setup_packages.sh -install
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
|
||||||
fi
|
|
||||||
if [ $(cat /etc/group | grep 'iobroker:' | cut -d':' -f3) != $setgid ] || [ $(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3) != $setuid ]
|
|
||||||
then
|
|
||||||
echo "Different UID and/ or GID is set by ENV."
|
|
||||||
echo "Changing UID to "$setuid" and GID to "$setgid"..."
|
|
||||||
usermod -u $setuid iobroker
|
|
||||||
groupmod -g $setgid iobroker
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
# Register maintenance script
|
||||||
|
echo -n 'Registering maintenance script as command... '
|
||||||
|
echo "alias maintenance=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
||||||
|
echo "alias maint=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
||||||
|
echo "alias m=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc
|
||||||
|
echo 'Done.'
|
||||||
|
echo ' '
|
||||||
else
|
else
|
||||||
echo "Nothing to do here."
|
echo "This is not the first run of this container. Skipping first run preparation."
|
||||||
|
echo ' '
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 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
|
||||||
|
echo "SETUID and/ or SETGID are set to individual values."
|
||||||
|
echo -n "Changing UID to "$setuid" and GID to "$setgid"... "
|
||||||
|
usermod -u $setuid iobroker
|
||||||
|
groupmod -og $setgid iobroker
|
||||||
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Change directory for next steps
|
# Change directory for next steps
|
||||||
cd /opt/iobroker
|
cd /opt/iobroker
|
||||||
|
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 2 - Detecting ioBroker-Installation
|
# STEP 2 - Detecting ioBroker-Installation
|
||||||
#####
|
#####
|
||||||
@@ -124,54 +178,54 @@ echo "----- Step 2 of 5: Detecting ioBroker installation
|
|||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
if [ `find /opt/iobroker -type f | wc -l` -lt 1 ]
|
if [[ `find /opt/iobroker -type f | wc -l` -lt 1 ]]; then
|
||||||
then
|
|
||||||
echo "There is no data detected in /opt/iobroker."
|
echo "There is no data detected in /opt/iobroker."
|
||||||
echo "Restoring initial ioBroker installation..."
|
echo -n "Restoring initial ioBroker installation... "
|
||||||
tar -xf /opt/initial_iobroker.tar -C /
|
tar -xf /opt/initial_iobroker.tar -C /
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
elif [ -f /opt/iobroker/iobroker ]
|
elif [[ -f /opt/iobroker/iobroker ]]; then
|
||||||
then
|
echo "Existing installation of ioBroker detected in \"/opt/iobroker\"."
|
||||||
echo "Existing installation of ioBroker detected in /opt/iobroker."
|
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
|
||||||
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" ]
|
if [[ "$multihost" = "slave" ]]; then
|
||||||
then
|
|
||||||
if [ "$multihost" = "slave" ]
|
|
||||||
then
|
|
||||||
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
echo "IoBroker backup file detected in /opt/iobroker. But Multihost is set to \"slave\"."
|
||||||
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
echo "Restoring a backup is not supported on Multihost slaves. Please check configuration and start over."
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "IoBroker backup file detected in /opt/iobroker."
|
echo "IoBroker backup file detected in /opt/iobroker."
|
||||||
echo "Preparing restore..."
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Backup file name: " $(ls *_backupiobroker.tar.gz); fi
|
||||||
|
echo -n "Preparing restore... "
|
||||||
mv /opt/iobroker/*.tar.gz /opt/
|
mv /opt/iobroker/*.tar.gz /opt/
|
||||||
tar -xf /opt/initial_iobroker.tar -C /
|
tar -xf /opt/initial_iobroker.tar -C /
|
||||||
mkdir /opt/iobroker/backups
|
mkdir /opt/iobroker/backups
|
||||||
mv /opt/*.tar.gz /opt/iobroker/backups/
|
mv /opt/*.tar.gz /opt/iobroker/backups/
|
||||||
# fixing permission errors during restore
|
# fixing permission errors during restore
|
||||||
chown -R $setuid:$setgid /opt/iobroker
|
chown -R $setuid:$setgid /opt/iobroker
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo "Restoring ioBroker..."
|
echo -n "Restoring ioBroker... "
|
||||||
bash iobroker restore 0 > /opt/iobroker/log/restore.log 2>&1
|
bash iobroker restore 0 > /opt/iobroker/log/restore.log 2>&1
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
echo "!!!!! IMPORTANT NOTE !!!!!"
|
echo "!!!! IMPORTANT NOTE !!!!"
|
||||||
echo "!!!!! The sartup script restored iobroker from a backup file. !!!!!"
|
echo "!!!! The startup script restored iobroker from a backup file. !!!!"
|
||||||
echo "!!!!! Check /opt/iobroker/log/restore.log to see if restore was successful. !!!!!"
|
echo "!!!! Check /opt/iobroker/log/restore.log to see if restore was successful. !!!!"
|
||||||
echo "!!!!! When ioBroker now starts it will reinstall all Adapters automatically. !!!!!"
|
echo "!!!! When ioBroker now starts it will reinstall all Adapters automatically. !!!!"
|
||||||
echo "!!!!! This might be take a looooong time! Please be patient! !!!!!"
|
echo "!!!! This might be take a looooong time! Please be patient! !!!!"
|
||||||
echo "!!!!! You can view installation process by taking a look at ioBroker log. !!!!!"
|
echo "!!!! You can view installation process by taking a look at ioBroker log. !!!!"
|
||||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!"
|
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker or a valid backup file!"
|
||||||
echo "Please check/ recreate mounted folder or volume and start over."
|
echo "Please check/ recreate mounted folder or volume and start over."
|
||||||
|
if [[ "$debug" == "true" ]]; then
|
||||||
|
echo "[DEBUG] Detected files:"
|
||||||
|
ls -al
|
||||||
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 3 - Checking ioBroker-Installation
|
# STEP 3 - Checking ioBroker-Installation
|
||||||
#####
|
#####
|
||||||
@@ -181,33 +235,94 @@ echo "$(printf -- '-%.0s' {1..80})"
|
|||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
|
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
|
||||||
echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..."
|
if [[ "$permissioncheck" == "false" ]]; then
|
||||||
chown -R $setuid:$setgid /opt/iobroker
|
echo "PERMISSION_CHECK is set to false. Use this at your own risk!"
|
||||||
chown -R $setuid:$setgid /opt/scripts
|
echo ' '
|
||||||
echo "Done."
|
else
|
||||||
echo ' '
|
echo -n "(Re)setting permissions (This might take a while! Please be patient!)... "
|
||||||
|
chown -R $setuid:$setgid /opt/iobroker
|
||||||
# Backing up original iobroker-file and changing sudo to gosu
|
chown -R $setuid:$setgid /opt/scripts
|
||||||
echo "Fixing \"sudo-bug\" by replacing sudo in iobroker with gosu..."
|
echo 'Done.'
|
||||||
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
|
||||||
chmod 755 /opt/iobroker/iobroker
|
|
||||||
sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
|
|
||||||
# checking hostname in ioBroker to match container hostname
|
|
||||||
if [ $(bash iobroker object get system.adapter.admin.0 --pretty | grep -oP '(?<="host": ")[^"]*') != $(hostname) ]
|
|
||||||
then
|
|
||||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
|
||||||
echo "Updating hostname to " $(hostname)"..."
|
|
||||||
bash iobroker host $(iobroker object get system.adapter.admin.0 --pretty | grep -oP '(?<="host": ")[^"]*')
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Backing up original iobroker-file and changing sudo to gosu
|
||||||
|
echo -n "Fixing \"sudo-bug\" by replacing sudo with gosu... "
|
||||||
|
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||||
|
chmod 755 /opt/iobroker/iobroker
|
||||||
|
sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker
|
||||||
|
echo 'Done.'
|
||||||
|
echo ' '
|
||||||
|
|
||||||
|
# hostname check
|
||||||
|
if [[ "$multihost" == "slave" ]]; then
|
||||||
|
echo "IOB_MULTIHOST ist set to \"slave\". Hostname check will be skipped."
|
||||||
|
echo ' '
|
||||||
|
else
|
||||||
|
# get admin instance and hostname
|
||||||
|
set +e
|
||||||
|
admininstance=$(bash iobroker 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": ")[^"]*')
|
||||||
|
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 start over 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
|
||||||
|
# check hostname
|
||||||
|
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
|
||||||
|
echo 'Done.'
|
||||||
|
echo ' '
|
||||||
|
elif [[ "$adminhostname" = "$(hostname)" ]]; then
|
||||||
|
echo "Hostname in ioBroker matches the hostname of this container."
|
||||||
|
echo "No action required."
|
||||||
|
echo ' '
|
||||||
|
else
|
||||||
|
echo "There was a problem checking the hostname."
|
||||||
|
stop_on_error
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# extended debug output
|
||||||
|
if [[ "$debug" == "true" && "$multihost" != "slave" ]]; then
|
||||||
|
echo "[DEBUG] Collecting some more ioBroker debug information... "
|
||||||
|
echo ' '
|
||||||
|
# get information and send to array
|
||||||
|
IFS=$'\n'
|
||||||
|
instances_array=($(iob list instances))
|
||||||
|
repos_array=($(iob repo list))
|
||||||
|
updates_array=($(iob update))
|
||||||
|
# list iob instances
|
||||||
|
echo "[DEBUG] ##### iobroker list instances #####"
|
||||||
|
for i in ${instances_array[@]}
|
||||||
|
do
|
||||||
|
echo "[DEBUG]" $i
|
||||||
|
done
|
||||||
|
echo ' '
|
||||||
|
echo "[DEBUG] ##### iobroker repo list #####"
|
||||||
|
for i in ${repos_array[@]}
|
||||||
|
do
|
||||||
|
echo "[DEBUG]" $i
|
||||||
|
done
|
||||||
|
echo ' '
|
||||||
|
echo "[DEBUG] ##### iobroker update #####"
|
||||||
|
for i in ${updates_array[@]}
|
||||||
|
do
|
||||||
|
echo "[DEBUG]" $i
|
||||||
|
done
|
||||||
|
echo ' '
|
||||||
|
unset IFS
|
||||||
|
fi
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 4 - Setting up prerequisites for some ioBroker-adapters
|
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
echo "$(printf -- '-%.0s' {1..80})"
|
||||||
echo "----- Step 4 of 5: Applying special settings -----"
|
echo "----- Step 4 of 5: Applying special settings -----"
|
||||||
@@ -215,264 +330,235 @@ echo "$(printf -- '-%.0s' {1..80})"
|
|||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
||||||
echo "For more information take a look at readme.md on Github!"
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
echo ' '
|
echo ' '
|
||||||
|
|
||||||
|
|
||||||
# Checking ENV for Adminport
|
# Checking ENV for Adminport
|
||||||
if [ "$adminport" != "" ]
|
if [[ "$adminport" != "" && "$multihost" != "slave" ]]; then
|
||||||
then
|
adminportold=$(bash iobroker object get $admininstance --pretty | grep -oP '(?<="port": )[^,]*')
|
||||||
if [ "$adminport" != $(bash iobroker object get system.adapter.admin.0 --pretty | grep -oP '(?<="port": )[^,]*') ]
|
admininstanceshort=$(echo $admininstance | grep -m 1 -o 'admin..')
|
||||||
then
|
if [[ "$adminport" != "$adminportold" ]]; then
|
||||||
echo "Adminport set by ENV does not match port configured in ioBroker installation."
|
echo "IOB_ADMINPORT is set and does not match port configured in ioBroker."
|
||||||
echo "Setting Adminport to \""$adminport"\"..."
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected Admin Port in ioBroker: " $adminportold; fi
|
||||||
bash iobroker set admin.0 --port $adminport
|
echo "Setting Adminport to \""$adminport"\"... "
|
||||||
echo "Done."
|
bash iobroker set $admininstanceshort --port $adminport
|
||||||
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Checking ENV for Backitup (external database backups)
|
||||||
|
if [[ "$backitup" == "true" ]]; then
|
||||||
|
echo -n "IOB_BACKITUP_EXTDB is \"true\". Unlocking features... "
|
||||||
|
echo 'true' > /opt/scripts/.docker_config/.backitup
|
||||||
|
echo 'Done.'
|
||||||
|
echo ' '
|
||||||
|
fi
|
||||||
|
|
||||||
# Checking ENV for AVAHI
|
# Checking ENV for AVAHI
|
||||||
if [ "$avahi" != "" ]
|
if [[ "$avahi" = "true" && "$offlinemode" = "true" ]]; then
|
||||||
then
|
echo "AVAHI is \"true\", but OFFLINE_MODE is also \"true\". Skipping Avahi daemon setup."
|
||||||
if [ "$avahi" = "true" ]
|
elif [[ "$avahi" = "true" ]]; then
|
||||||
then
|
echo "AVAHI is \"true\". Running setup script... "
|
||||||
echo "Avahi-daemon is activated by ENV."
|
chmod 755 /opt/scripts/setup_avahi.sh
|
||||||
chmod 755 /opt/scripts/setup_avahi.sh
|
bash /opt/scripts/setup_avahi.sh
|
||||||
bash /opt/scripts/setup_avahi.sh
|
echo 'Done.'
|
||||||
echo "Done."
|
echo ' '
|
||||||
echo ' '
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Checking ENV for Z-WAVE
|
# Checking ENV for Z-WAVE
|
||||||
if [ "$zwave" != "" ]
|
if [[ "$zwave" = "true" && "$offlinemode" = "true" ]]; then
|
||||||
then
|
echo "ZWAVE is \"true\", but OFFLINE_MODE is also \"true\". Skipping Z-Wave setup."
|
||||||
if [ "$zwave" = "true" ]
|
elif [[ "$zwave" = "true" ]]; then
|
||||||
then
|
echo "ZWAVE is \"true\". Running setup script... "
|
||||||
echo "Z-Wave is activated by ENV."
|
chmod 755 /opt/scripts/setup_zwave.sh
|
||||||
chmod 755 /opt/scripts/setup_zwave.sh
|
bash /opt/scripts/setup_zwave.sh
|
||||||
bash /opt/scripts/setup_zwave.sh
|
echo 'Done.'
|
||||||
echo "Done."
|
echo ' '
|
||||||
echo ' '
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# checking ENV for USBDEVICES
|
# checking ENV for USBDEVICES
|
||||||
if [ "$usbdevices" != "" ]
|
if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||||
then
|
echo "USBDEVICES is set."
|
||||||
if [ "$usbdevices" != "none" ]
|
IFS=';' read -ra devicearray <<< "$usbdevices"
|
||||||
then
|
for i in "${devicearray[@]}"
|
||||||
echo "Usb-device-support is activated by ENV."
|
do
|
||||||
IFS=';' read -ra devicearray <<< "$usbdevices"
|
if [[ -e $i ]]; then
|
||||||
for i in "${devicearray[@]}"
|
echo -n "Setting permissions for "$i"... "
|
||||||
do
|
|
||||||
echo "Setting permissions for" $i"..."
|
|
||||||
chown root:dialout $i
|
chown root:dialout $i
|
||||||
chmod g+rw $i
|
chmod g+rw $i
|
||||||
done
|
echo 'Done.'
|
||||||
echo "Done."
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Permissions set: " $(ls -al $i); fi
|
||||||
echo ' '
|
else
|
||||||
fi
|
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)."
|
||||||
|
stop_on_error
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Checking ENV for multihost setup
|
# Checking ENV for multihost setup
|
||||||
# Configuring objects db host
|
if [[ "$multihost" != "" ]]; then
|
||||||
if [ "$multihost" = "master" ] && [ "$objectsdbtype" = "" ] && [ "$objectsdbhost" = "" ] && [ "$objectsdbport" = "" ]
|
echo "Checking for multihost settings... "
|
||||||
then
|
# Configuring objects db host
|
||||||
echo "Multihost is set as \"master\" by ENV and no external objects db is set."
|
if [[ "$multihost" = "master" && "$objectsdbtype" = "" && "$objectsdbhost" = "" && "$objectsdbport" = "" ]]; then
|
||||||
echo "Setting host of objects db to \"0.0.0.0\" to allow external communication..."
|
echo "IOB_MULTIHOST is set to \"master\" and no external objects db is set."
|
||||||
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
echo -n "Setting host of objects db to \"0.0.0.0\" to allow external connections... "
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg objectsdbhost "0.0.0.0" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
|
echo 'Done.'
|
||||||
|
elif [[ "$multihost" = "master" && "$objectsdbhost" = "127.0.0.1" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"master\", but IOB_OBJECTSDB_HOST is set to \"127.0.0.1\"."
|
||||||
|
echo "This configuration will not allow slaves to connect to objects db! Please change or remove \"IOB_OBJECTSDB_HOST\" and start over!"
|
||||||
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
elif [[ "$multihost" = "master" && "$objectsdbtype" != "" && "$objectsdbhost" != "" && "$objectsdbport" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"master\" and external objects db is set."
|
||||||
|
elif ([[ "$multihost" = "slave" && "$objectsdbtype" = "" ]]) || ([[ "$multihost" = "slave" && "$objectsdbhost" = "" ]]) || ([[ "$multihost" = "slave" && "$objectsdbport" = "" ]]); then
|
||||||
|
echo "IOB_MULTIHOST is set to \"slave\", but no external objects db is set."
|
||||||
|
echo "You have to configure ENVs \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" to connect to a master objects db."
|
||||||
|
echo "Please check your settings and start over!"
|
||||||
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
elif [[ "$multihost" = "slave" && "$objectsdbtype" != "" && "$objectsdbhost" != "" && "$objectsdbport" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"slave\" and external objects db is set."
|
||||||
|
elif [[ "$multihost" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set, but it seems like some configuration is missing."
|
||||||
|
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" correctly and start over."
|
||||||
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Configuring states db host
|
||||||
|
if [[ "$multihost" = "master" && "$statesdbtype" = "" && "$statesdbhost" = "" && "$statesdbport" = "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"master\" and no external states db is set."
|
||||||
|
echo -n "Setting host of states db to \"0.0.0.0\" to allow external connections... "
|
||||||
|
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
|
echo 'Done.'
|
||||||
|
elif [[ "$multihost" = "master" && "$statesdbhost" = "127.0.0.1" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"master\", but states db host is set to \"127.0.0.1\"."
|
||||||
|
echo "This configuration will not allow slaves to connect to objects db! Please change or remove \"IOB_STATESDB_HOST\" and start over!"
|
||||||
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
elif [[ "$multihost" = "master" && "$statesdbtype" != "" && "$statesdbhost" != "" && "$statesdbport" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"master\" and external states db is set."
|
||||||
|
elif ([[ "$multihost" = "slave" && "$statesdbtype" = "" ]]) || ([[ "$multihost" = "slave" && "$statesdbhost" = "" ]]) || ([[ "$multihost" = "slave" && "$statesdbport" = "" ]]); then
|
||||||
|
echo "IOB_MULTIHOST is set to \"slave\", but no external states db is set."
|
||||||
|
echo "You have to configure ENVs \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESDB_PORT\" to connect to a maser states db."
|
||||||
|
echo "Please check your settings and start over!"
|
||||||
|
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
elif [[ "$multihost" = "slave" && "$statesdbtype" != "" && "$statesdbhost" != "" && "$statesdbport" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set to \"slave\" and external states db is set."
|
||||||
|
elif [[ "$multihost" != "" ]]; then
|
||||||
|
echo "IOB_MULTIHOST is set, but it seems like some configuration is missing."
|
||||||
|
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESTDB_PORT\" correctly and start over."
|
||||||
|
echo "For more information see ioBroker Docker image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
elif [ "$multihost" = "master" ] && [ "$objectsdbhost" = "127.0.0.1" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"master\" by ENV. But objects db host is set to \"127.0.0.1\" by ENV too."
|
|
||||||
echo "This configuration will not work! Please change or remove ENV \"IOB_OBJECTSDB_HOST\" and start over!"
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
elif [ "$multihost" = "master" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"master\" by ENV and external objects db is set."
|
|
||||||
echo "Skipping this step..."
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
elif ([ "$multihost" = "slave" ] && [ "$objectsdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$objectsdbport" = "" ])
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"slave\" by ENV. But no external objects db is set."
|
|
||||||
echo "You have to configure ENVs \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" to connect to a maser objects db."
|
|
||||||
echo "Please check your settings and start over."
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
elif [ "$multihost" = "slave" ] && [ "$objectsdbtype" != "" ] && [ "$objectsdbhost" != "" ] && [ "$objectsdbport" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"slave\" by ENV and external objects db is set."
|
|
||||||
echo "Skipping this step..."
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
elif [ "$multihost" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set but it seems like some configuration is missing."
|
|
||||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_OBJECTSDB_TYPE\", \"IOB_OBJECTSDB_HOST\" and \"IOB_OBJECTSDB_PORT\" correctly and start over."
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
#Configuring states db host
|
|
||||||
if [ "$multihost" = "master" ] && [ "$statesdbtype" = "" ] && [ "$statesdbhost" = "" ] && [ "$statesdbport" = "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"master\" by ENV and no external states db is set."
|
|
||||||
echo "Setting host of states db to \"0.0.0.0\" to allow external communication..."
|
|
||||||
jq --arg statesdbhost "0.0.0.0" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
elif [ "$multihost" = "master" ] && [ "$statesdbhost" = "127.0.0.1" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"master\" by ENV. But states db host is set to \"127.0.0.1\" by ENV too."
|
|
||||||
echo "This configuration will not work! Please change or remove ENV \"IOB_STATESDB_HOST\" and start over!"
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
elif [ "$multihost" = "master" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"master\" by ENV and external states db is set."
|
|
||||||
echo "Skipping this step..."
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
elif ([ "$multihost" = "slave" ] && [ "$statesdbtype" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbhost" = "" ]) || ([ "$multihost" = "slave" ] && [ "$statesdbport" = "" ])
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"slave\" by ENV. But no external states db is set."
|
|
||||||
echo "You have to configure ENVs \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESDB_PORT\" to connect to a maser states db."
|
|
||||||
echo "Please check your settings and start over."
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
elif [ "$multihost" = "slave" ] && [ "$statesdbtype" != "" ] && [ "$statesdbhost" != "" ] && [ "$statesdbport" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set as \"slave\" by ENV and external states db is set."
|
|
||||||
echo "Skipping this step..."
|
|
||||||
echo "Done."
|
|
||||||
echo ' '
|
|
||||||
elif [ "$multihost" != "" ]
|
|
||||||
then
|
|
||||||
echo "Multihost is set but it seems like some configuration is missing."
|
|
||||||
echo "Please checke if you have configured the ENVs \"MULTIHOST\", \"IOB_STATESDB_TYPE\", \"IOB_STATESDB_HOST\" and \"IOB_STATESTDB_PORT\" correctly and start over."
|
|
||||||
echo "For more information see readme.md on Github (https://github.com/buanet/ioBroker.docker)."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Checking ENVs for custom setup of objects db
|
# Checking ENVs for custom setup of objects db
|
||||||
if [ "$objectsdbtype" != "" ] || [ "$objectsdbhost" != "" ] || [ "$objectsdbport" != "" ]
|
if [[ "$objectsdbtype" != "" || "$objectsdbhost" != "" || "$objectsdbport" != "" ]]; then
|
||||||
then
|
echo "Checking for custom objects db settings ... "
|
||||||
if [ "$objectsdbtype" != $(jq -r '.objects.type' /opt/iobroker/iobroker-data/iobroker.json) ]
|
if [[ "$objectsdbtype" != "$(jq -r '.objects.type' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
then
|
echo "IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
||||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value is different from detected ioBroker installation."
|
echo -n "Setting type of objects db to \""$objectsdbtype"\"... "
|
||||||
echo "Setting type of objects db to \""$objectsdbtype"\"..."
|
|
||||||
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg objectsdbtype "$objectsdbtype" '.objects.type = $objectsdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_OBJECTSDB_TYPE is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
if [ "$objectsdbhost" != $(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json) ]
|
if [[ "$objectsdbhost" != "$(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
then
|
echo "IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
||||||
echo "ENV IOB_OBJECTSDB_HOST is set and value is different from detected ioBroker installation."
|
echo -n "Setting host of objects db to \""$objectsdbhost"\"... "
|
||||||
echo "Setting host of objects db to \""$objectsdbhost"\"..."
|
|
||||||
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg objectsdbhost "$objectsdbhost" '.objects.host = $objectsdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_OBJECTSDB_HOST is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
if [ "$objectsdbport" != $(jq -r '.objects.port' /opt/iobroker/iobroker-data/iobroker.json) ]
|
if [[ "$objectsdbport" != "$(jq -r '.objects.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
then
|
echo "IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
||||||
echo "ENV IOB_OBJECTSDB_PORT is set and value is different from detected ioBroker installation."
|
echo -n "Setting port of objects db to \""$objectsdbport"\"... "
|
||||||
echo "Setting port of objects db to \""$objectsdbport"\"..."
|
|
||||||
jq --arg objectsdbport $objectsdbport '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg objectsdbport $objectsdbport '.objects.port = $objectsdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_OBJECTSDB_PORT is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Checking ENVs for custom setup of states db
|
||||||
# Checking ENVs for custom setup of states db#
|
if [[ "$statesdbtype" != "" || "$statesdbhost" != "" || "$statesdbport" != "" ]]; then
|
||||||
if [ "$statesdbtype" != "" ] || [ "$statesdbhost" != "" ] || [ "$statesdbport" != "" ]
|
echo "Checking for custom states db settings... "
|
||||||
then
|
if [[ "$statesdbtype" != "$(jq -r '.states.type' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
if [ "$statesdbtype" != $(jq -r '.states.type' /opt/iobroker/iobroker-data/iobroker.json) ]
|
echo "IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
||||||
then
|
echo -n "Setting type of states db to \""$statesdbtype"\"... "
|
||||||
echo "ENV IOB_STATESDB_TYPE is set and value is different from detected ioBroker installation."
|
|
||||||
echo "Setting type of states db to \""$statesdbtype"\"..."
|
|
||||||
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg statesdbtype "$statesdbtype" '.states.type = $statesdbtype' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_STATESDB_TYPE is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_STATESDB_TYPE is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
if [ "$statesdbhost" != $(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json) ]
|
if [[ "$statesdbhost" != "$(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
then
|
echo "IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
||||||
echo "ENV IOB_STATESDB_HOST is set and value is different from detected ioBroker installation."
|
echo -n "Setting host of states db to \""$statesdbhost"\"... "
|
||||||
echo "Setting host of states db to \""$statesdbhost"\"..."
|
|
||||||
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg statesdbhost "$statesdbhost" '.states.host = $statesdbhost' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_STATESDB_HOST is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_STATESDB_HOST is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
if [ "$statesdbport" != $(jq -r '.states.port' /opt/iobroker/iobroker-data/iobroker.json) ]
|
if [[ "$statesdbport" != "$(jq -r '.states.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||||
then
|
echo "IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
||||||
echo "ENV IOB_STATESDB_PORT is set and value is different from detected ioBroker installation."
|
echo -n "Setting port of states db to \""$statesdbport"\"... "
|
||||||
echo "Setting port of states db to \""$statesdbport"\"..."
|
|
||||||
jq --arg statesdbport $statesdbport '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
jq --arg statesdbport $statesdbport '.states.port = $statesdbport' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp && mv /opt/iobroker/iobroker-data/iobroker.json.tmp /opt/iobroker/iobroker-data/iobroker.json
|
||||||
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
chown -R $setuid:$setgid /opt/iobroker/iobroker-data/iobroker.json && chmod 674 /opt/iobroker/iobroker-data/iobroker.json
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
else
|
else
|
||||||
echo "ENV IOB_STATESDB_PORT is set and value meets detected ioBroker installation. Nothing to do here."
|
echo "IOB_STATESDB_PORT is set and value meets detected ioBroker installation."
|
||||||
fi
|
fi
|
||||||
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Checking for Userscripts in /opt/userscripts
|
# Checking for Userscripts in /opt/userscripts
|
||||||
if [ `find /opt/userscripts -type f | wc -l` -lt 1 ]
|
if [[ `find /opt/userscripts -type f | wc -l` -lt 1 ]]; then
|
||||||
then
|
echo -n "There is no data detected in /opt/userscripts. Restoring exapmple userscripts... "
|
||||||
echo "There is no data detected in /opt/userscripts. Restoring exapmple userscripts..."
|
|
||||||
tar -xf /opt/initial_userscripts.tar -C /
|
tar -xf /opt/initial_userscripts.tar -C /
|
||||||
chmod 755 /opt/userscripts/userscript_firststart_example.sh
|
chmod 755 /opt/userscripts/userscript_firststart_example.sh
|
||||||
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
elif [ -f /opt/userscripts/userscript_firststart.sh ] || [ -f /opt/userscripts/userscript_everystart.sh ]
|
elif [[ -f /opt/userscripts/userscript_firststart.sh || -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||||
then
|
if [[ -f /opt/userscripts/userscript_firststart.sh && -f /opt/.firstrun ]]; then
|
||||||
if [ -f /opt/userscripts/userscript_firststart.sh ] && [ -f /opt/.firstrun ]
|
|
||||||
then
|
|
||||||
echo "Userscript for first start detected and this is the first start of a new container."
|
echo "Userscript for first start detected and this is the first start of a new container."
|
||||||
echo "Running userscript_firststart.sh..."
|
echo "Running userscript_firststart.sh... "
|
||||||
chmod 755 /opt/userscripts/userscript_firststart.sh
|
chmod 755 /opt/userscripts/userscript_firststart.sh
|
||||||
bash /opt/userscripts/userscript_firststart.sh
|
bash /opt/userscripts/userscript_firststart.sh
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
if [ -f /opt/userscripts/userscript_everystart.sh ]
|
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||||
then
|
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
||||||
echo "Userscript for every start detected. Running userscript_everystart.sh..."
|
|
||||||
chmod 755 /opt/userscripts/userscript_everystart.sh
|
chmod 755 /opt/userscripts/userscript_everystart.sh
|
||||||
bash /opt/userscripts/userscript_everystart.sh
|
bash /opt/userscripts/userscript_everystart.sh
|
||||||
echo "Done."
|
echo 'Done.'
|
||||||
echo ' '
|
echo ' '
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Removing first run marker when exists
|
# Removing first run marker when exists
|
||||||
if [ -f /opt/.firstrun ]
|
if [[ -f /opt/.firstrun ]]; then
|
||||||
then
|
rm -f /opt/.firstrun
|
||||||
rm -f /opt/.firstrun
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#####
|
#####
|
||||||
@@ -482,8 +568,9 @@ 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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "Starting ioBroker..."
|
echo "Starting ioBroker... "
|
||||||
echo ' '
|
echo ' '
|
||||||
|
echo "##### #### ### ## # iobroker.js-controller log output # ## ### #### #####"
|
||||||
|
|
||||||
# Setting healthcheck status to "running"
|
# Setting healthcheck status to "running"
|
||||||
echo "running" > /opt/scripts/.docker_config/.healthcheck
|
echo "running" > /opt/scripts/.docker_config/.healthcheck
|
||||||
@@ -492,9 +579,35 @@ echo "running" > /opt/scripts/.docker_config/.healthcheck
|
|||||||
shut_down() {
|
shut_down() {
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "Recived termination signal (SIGTERM)."
|
echo "Recived termination signal (SIGTERM)."
|
||||||
echo "Shutting down ioBroker..."
|
echo "Shutting down ioBroker... "
|
||||||
pid=$(ps -ef | awk '/[j]s.controller/{print $2}')
|
|
||||||
kill -SIGTERM "$pid"
|
local status timeout
|
||||||
|
|
||||||
|
timeout="$(date --date="now + $pkill_timeout sec" +%s)"
|
||||||
|
pkill -u iobroker -f iobroker.js-controller
|
||||||
|
status=$?
|
||||||
|
if (( status >= 2 )); then # syntax error or fatal error
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if (( status == 1 )); then # no processes matched
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# pgrep exits with status 1 when there are no matches
|
||||||
|
while pgrep -u iobroker > /dev/null; (( $? != 1 )); do
|
||||||
|
if (($(date +%s) > timeout)); then
|
||||||
|
echo -e '\nTimeout reached. Killing remaining processes... '
|
||||||
|
pkill --signal SIGKILL -u iobroker
|
||||||
|
echo 'Done. Have a nice day!'
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n '.'
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e '\nDone. Have a nice day!'
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
379
debian/scripts/maintenance.sh
vendored
379
debian/scripts/maintenance.sh
vendored
@@ -1,221 +1,262 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
############################
|
# bash strict mode
|
||||||
##### default settings #####
|
set -euo pipefail
|
||||||
############################
|
|
||||||
|
|
||||||
autoconfirm=no # could be set to true by commandline option
|
autoconfirm= # can be set to 'yes' by command line option
|
||||||
killbyname=no # could be set to true by commandline option / undocumented, only for use with backitup restore scripts
|
killbyname= # can be set to 'yes' by command line option (undocumented, only for use with backitup restore scripts)
|
||||||
|
healthcheck=/opt/scripts/.docker_config/.healthcheck # path of healthcheck file
|
||||||
####################################
|
pkill_timeout=10 # timeout for stopping iobroker in seconds
|
||||||
##### declaration of functions #####
|
|
||||||
####################################
|
|
||||||
|
|
||||||
# display help text
|
# display help text
|
||||||
display_help() {
|
display_help() {
|
||||||
echo "This script is build to manage your ioBroker container!"
|
echo 'This script helps you manage your ioBroker container!'
|
||||||
echo ''
|
echo ''
|
||||||
echo "Usage: maintenance [ COMMAND ] [ OPTION ]"
|
echo "Usage: maintenance [ COMMAND ] [ OPTION ]"
|
||||||
echo " maint [ COMMAND ] [ OPTION ]"
|
echo " maint [ COMMAND ] [ OPTION ]"
|
||||||
|
echo " m [ COMMAND ] [ OPTION ]"
|
||||||
echo ''
|
echo ''
|
||||||
echo "COMMANDS"
|
echo 'COMMANDS'
|
||||||
echo "------------------"
|
echo '------------------'
|
||||||
echo " status > gives the current state of maintenance mode"
|
echo ' status > reports the current state of maintenance mode'
|
||||||
echo " on > switches mantenance mode ON"
|
echo ' on > switches mantenance mode ON'
|
||||||
echo " off > switches mantenance mode OFF and shuts down/ restarts container"
|
echo ' off > switches mantenance mode OFF and stops or restarts the container'
|
||||||
echo " upgrade > will put container to maintenance mode and upgrade iobroker"
|
echo ' upgrade > puts the container to maintenance mode and upgrades ioBroker'
|
||||||
echo " help > shows this help"
|
echo ' restart > stops iobroker and stops or restarts the container'
|
||||||
|
echo ' help > shows this help'
|
||||||
|
echo ''
|
||||||
|
echo 'OPTIONS'
|
||||||
|
echo '------------------'
|
||||||
|
echo ' -y|--yes > confirms the used command without asking'
|
||||||
|
echo ' -h|--help > shows this help'
|
||||||
echo ''
|
echo ''
|
||||||
echo "OPTIONS"
|
|
||||||
echo "------------------"
|
|
||||||
echo " -y|--yes > confirms the used command without asking"
|
|
||||||
echo " -h|--help > shows this help"
|
|
||||||
echo ''
|
|
||||||
exit 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# checking maintenance mode status
|
# check maintenance enabled
|
||||||
check_status() {
|
maintenance_enabled() {
|
||||||
if [ $(cat /opt/scripts/.docker_config/.healthcheck) == 'maintenance' ]
|
[[ -f "$healthcheck" && "$(cat "$healthcheck")" == maintenance ]]
|
||||||
then
|
}
|
||||||
|
|
||||||
|
# display maintenance status
|
||||||
|
maintenance_status() {
|
||||||
|
if maintenance_enabled; then
|
||||||
echo 'Maintenance mode is turned ON.'
|
echo 'Maintenance mode is turned ON.'
|
||||||
elif [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ]
|
else
|
||||||
then
|
|
||||||
echo 'Maintenance mode is turned OFF.'
|
echo 'Maintenance mode is turned OFF.'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# turn maintenance mode ON
|
# enable maintenance mode
|
||||||
switch_on() {
|
enable_maintenance() {
|
||||||
if [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$killbyname" == "yes" ] # maintenance mode OFF / killbyname = yes / undocumented, only for use with backitup restore scripts
|
if maintenance_enabled; then
|
||||||
then
|
|
||||||
echo 'This command will activate maintenance mode and stop all node processes.'
|
|
||||||
echo 'Activating maintenance mode...'
|
|
||||||
echo "maintenance" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
echo 'Stopping ioBroker...'
|
|
||||||
pkill node
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
exit 0
|
|
||||||
elif [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$autoconfirm" == "no" ] # maintenance mode OFF / autoconfirm = no
|
|
||||||
then
|
|
||||||
echo 'You are now going to stop ioBroker and activating maintenance mode for this container.'
|
|
||||||
read -p 'Do you want to continue [yes/no]? ' A
|
|
||||||
if [ "$A" == "y" ] || [ "$A" == "Y" ] || [ "$A" == "yes" ]
|
|
||||||
then
|
|
||||||
echo 'Activating maintenance mode...'
|
|
||||||
echo "maintenance" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
echo 'Stopping ioBroker...'
|
|
||||||
pkill -u iobroker
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
elif [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$autoconfirm" == "yes" ] # maintenance mode OFF / autoconfirm = yes
|
|
||||||
then
|
|
||||||
echo 'You are now going to stop ioBroker and activating maintenance mode for this container.'
|
|
||||||
echo 'This command was already confirmed by -y or --yes option.'
|
|
||||||
echo 'Activating maintenance mode...'
|
|
||||||
echo "maintenance" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
echo 'Stopping ioBroker...'
|
|
||||||
pkill -u iobroker
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo 'Maintenance mode is already turned ON.'
|
echo 'Maintenance mode is already turned ON.'
|
||||||
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$killbyname" == yes ]]; then
|
||||||
|
# undocumented option, only for use with backitup restore scripts
|
||||||
|
# stops iobroker by terminating js-controller process by name (the old way)
|
||||||
|
echo 'This command will activate maintenance mode and stop js-controller.'
|
||||||
|
echo 'Activating maintenance mode...'
|
||||||
|
echo 'maintenance' > "$healthcheck"
|
||||||
|
sleep 1
|
||||||
|
echo 'Done.'
|
||||||
|
echo -n 'Stopping ioBroker...'
|
||||||
|
pkill -u iobroker -f iobroker.js-controller
|
||||||
|
sleep 5
|
||||||
|
echo 'Done.'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'You are now going to stop ioBroker and activate maintenance mode for this container.'
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'This command was already confirmed by the -y or --yes option.'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Activating maintenance mode...'
|
||||||
|
echo 'maintenance' > "$healthcheck"
|
||||||
|
sleep 1
|
||||||
|
echo 'Done.'
|
||||||
|
echo -n 'Stopping ioBroker...'
|
||||||
|
stop_iob
|
||||||
}
|
}
|
||||||
|
|
||||||
# turn maintenance mode OFF
|
# disable maintenance mode
|
||||||
switch_off() {
|
disable_maintenance() {
|
||||||
if [ $(cat /opt/scripts/.docker_config/.healthcheck) == 'maintenance' ] && [ "$autoconfirm" == "no" ] # maintenance mode ON / autoconfirm = no
|
if ! maintenance_enabled; then
|
||||||
then
|
|
||||||
echo 'You are now going to deactivate maintenance mode for this container.'
|
|
||||||
echo 'Depending on the restart policy, your container will be stopped/ restarted immediately.'
|
|
||||||
read -p 'Do you want to continue [yes/no]? ' A
|
|
||||||
if [ "$A" == "y" ] || [ "$A" == "Y" ] || [ "$A" == "yes" ]
|
|
||||||
then
|
|
||||||
echo 'Deactivating maintenance mode and forcing container to stop/ restart...'
|
|
||||||
echo "stopping" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
pkill -u root
|
|
||||||
echo 'Done.'
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
elif [ $(cat /opt/scripts/.docker_config/.healthcheck) == 'maintenance' ] && [ "$autoconfirm" == "yes" ] # maintenance mode ON / autoconfirm = yes
|
|
||||||
then
|
|
||||||
echo 'You are now going to deactivate maintenance mode for this container.'
|
|
||||||
echo 'Depending on the restart policy, your container will be stopped/ restarted immediately.'
|
|
||||||
echo 'This command was already confirmed by -y or --yes option.'
|
|
||||||
echo 'Deactivating maintenance mode and forcing container to stop/ restart...'
|
|
||||||
echo "stopping" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
pkill -u root
|
|
||||||
echo 'Done.'
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo 'Maintenance mode is already turned OFF.'
|
echo 'Maintenance mode is already turned OFF.'
|
||||||
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
echo 'You are now going to deactivate maintenance mode for this container.'
|
||||||
|
echo 'Depending on the restart policy, your container will be stopped or restarted immediately.'
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'This command was already confirmed by the -y or --yes option.'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Deactivating maintenance mode and forcing container to stop or restart...'
|
||||||
|
echo 'stopping' > "$healthcheck"
|
||||||
|
pkill -u root
|
||||||
|
echo 'Done.'
|
||||||
}
|
}
|
||||||
|
|
||||||
# upgrade js-controller
|
# upgrade js-controller
|
||||||
upgrade() {
|
upgrade_jscontroller() {
|
||||||
echo 'You are now going to upgrade your js-controller.'
|
echo 'You are now going to upgrade your js-controller.'
|
||||||
echo 'As this will change data in /opt/iobroker, make sure you have a backup!'
|
echo 'As this will change data in /opt/iobroker, make sure you have a backup!'
|
||||||
echo 'During the upgrade process the container will automatically switch into maintenance mode and stop ioBroker.'
|
echo 'During the upgrade process, the container will automatically switch into maintenance mode and stop ioBroker.'
|
||||||
echo 'Depending of the restart policy, you container will be stoped/ restarted automatically after the upgrade.'
|
echo 'Depending on the restart policy, your container will be stopped or restarted automatically after the upgrade.'
|
||||||
read -p 'Do you want to continue [yes/no]? ' A
|
|
||||||
if [ "$A" == "y" ] || [ "$A" == "Y" ] || [ "$A" == "yes" ]
|
if [[ "$autoconfirm" != yes ]]; then
|
||||||
then
|
local reply
|
||||||
echo 'Activating maintenance mode...'
|
|
||||||
echo "maintenance" > /opt/scripts/.docker_config/.healthcheck
|
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||||
sleep 1
|
if [[ "$reply" == y || "$reply" == Y || "$reply" == yes ]]; then
|
||||||
echo 'Done.'
|
: # continue
|
||||||
echo 'Stopping ioBroker...'
|
else
|
||||||
pkill -u iobroker
|
return 1
|
||||||
sleep 1
|
fi
|
||||||
echo 'Done.'
|
|
||||||
echo 'Upgrading js-controller...'
|
|
||||||
iobroker update
|
|
||||||
iobroker upgrade self
|
|
||||||
sleep 1
|
|
||||||
echo 'Done.'
|
|
||||||
echo 'Container will be stopped/ restarted in 5 seconds...'
|
|
||||||
sleep 5
|
|
||||||
echo "stopping" > /opt/scripts/.docker_config/.healthcheck
|
|
||||||
pkill -u root
|
|
||||||
exit 0
|
|
||||||
else
|
else
|
||||||
exit 0
|
echo 'This command was already confirmed by the -y or --yes option.'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! maintenance_enabled > /dev/null; then
|
||||||
|
autoconfirm=yes
|
||||||
|
enable_maintenance
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Upgrading js-controller...'
|
||||||
|
iobroker update
|
||||||
|
sleep 1
|
||||||
|
iobroker upgrade self
|
||||||
|
sleep 1
|
||||||
|
echo 'Done.'
|
||||||
|
|
||||||
|
echo 'Container will be stopped or restarted in 5 seconds...'
|
||||||
|
sleep 5
|
||||||
|
echo 'stopping' > "$healthcheck"
|
||||||
|
pkill -u root
|
||||||
}
|
}
|
||||||
|
|
||||||
########################################
|
# stop iobroker and wait until all processes stopped or pkill_timeout is reached
|
||||||
##### parsing commands and options #####
|
stop_iob() {
|
||||||
########################################
|
local status timeout
|
||||||
|
|
||||||
# reading all arguments and putting them in reverse
|
timeout="$(date --date="now + $pkill_timeout sec" +%s)"
|
||||||
reverse=
|
pkill -u iobroker -f iobroker.js-controller
|
||||||
for i in "$@"; do
|
status=$?
|
||||||
reverse="$i $reverse"
|
if (( status >= 2 )); then # syntax error or fatal error
|
||||||
done
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
# checking the arguments
|
if (( status == 1 )); then # no processes matched
|
||||||
for i in $reverse; do
|
return
|
||||||
case $i in
|
fi
|
||||||
|
|
||||||
|
# pgrep exits with status 1 when there are no matches
|
||||||
|
while pgrep -u iobroker > /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
|
||||||
|
echo 'Done.'
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n '.'
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
|
||||||
|
echo -e '\nDone.'
|
||||||
|
}
|
||||||
|
|
||||||
|
# restart container
|
||||||
|
restart_container() {
|
||||||
|
echo 'You are now going to call a restart of your container.'
|
||||||
|
echo 'Restarting will work depending on the configured restart policy.'
|
||||||
|
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'This command was already confirmed by the -y or --yes option.'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -n 'Stopping ioBroker...'
|
||||||
|
stop_iob
|
||||||
|
|
||||||
|
echo 'Container will be stopped or restarted in 5 seconds...'
|
||||||
|
sleep 5
|
||||||
|
echo 'stopping' > "$healthcheck"
|
||||||
|
pkill -u root
|
||||||
|
}
|
||||||
|
|
||||||
|
# parsing commands and options
|
||||||
|
|
||||||
|
# default command to run unless another was given
|
||||||
|
run=(display_help)
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
case $arg in
|
||||||
help|-h|--help)
|
help|-h|--help)
|
||||||
display_help # calling function to display help text
|
run=(display_help)
|
||||||
break
|
|
||||||
;;
|
;;
|
||||||
status)
|
status|stat|s)
|
||||||
check_status # calling function to check maintenance mode status
|
run=(maintenance_status)
|
||||||
break
|
|
||||||
;;
|
;;
|
||||||
on)
|
on)
|
||||||
switch_on # calling function to switch maintenance mode on
|
run=(enable_maintenance)
|
||||||
break
|
|
||||||
;;
|
;;
|
||||||
off)
|
off)
|
||||||
switch_off # calling function to switch maintenance mode off
|
run=(disable_maintenance)
|
||||||
break
|
|
||||||
;;
|
;;
|
||||||
upgrade)
|
upgrade|upgr|u)
|
||||||
upgrade # calling function to upgrade js-controller
|
run=(upgrade_jscontroller)
|
||||||
break
|
;;
|
||||||
|
restart|rest|r)
|
||||||
|
run=(restart_container)
|
||||||
;;
|
;;
|
||||||
-y|--yes)
|
-y|--yes)
|
||||||
autoconfirm=yes # setting autoconfrm option to "yes"
|
autoconfirm=yes
|
||||||
shift
|
|
||||||
;;
|
;;
|
||||||
-kbn|--killbyname)
|
-kbn|--killbyname)
|
||||||
killbyname=yes # setting killbyname option to "yes"
|
killbyname=yes
|
||||||
shift
|
|
||||||
;;
|
;;
|
||||||
-a=*|--argument=*) # dummy exaple for parsing option with value
|
--)
|
||||||
ARGUMENT="${i#*=}"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--) # End of all options.
|
|
||||||
shift
|
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
-?*|?*)
|
*)
|
||||||
echo 'WARN: Unknown parameter. Please try again or see help (-h|--help).'
|
>&2 echo "Unknown parameter: $arg"
|
||||||
break
|
>&2 echo 'Please try again or see help (help|-h|--help).'
|
||||||
;;
|
exit 1
|
||||||
*) # Default case: No more options, so break out of the loop.
|
|
||||||
break
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
exit 0
|
"${run[@]}"
|
||||||
33
debian/scripts/setup_avahi.sh
vendored
33
debian/scripts/setup_avahi.sh
vendored
@@ -1,19 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Checking avahi-daemon installation state..."
|
|
||||||
|
|
||||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||||
then
|
then
|
||||||
echo "Avahi is already installed..."
|
echo '[setup_avahi.sh] Avahi is already installed. Nothing to do here.'
|
||||||
else
|
else
|
||||||
echo "Avahi-daemon is NOT installed. Going to install it now..."
|
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 update > /opt/scripts/avahi_startup.log 2>&1
|
||||||
apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
apt-get install -y 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
|
rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1
|
||||||
echo "Configuring avahi-daemon..."
|
echo 'Done.'
|
||||||
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
echo -n '[setup_avahi.sh] Configuring avahi-daemon... '
|
||||||
echo "Configuring dbus..."
|
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
||||||
mkdir /var/run/dbus/
|
echo 'Done.'
|
||||||
|
echo -n '[setup_avahi.sh] Configuring dbus... '
|
||||||
|
mkdir /var/run/dbus/
|
||||||
|
echo 'Done.'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /var/run/dbus/pid ];
|
if [ -f /var/run/dbus/pid ];
|
||||||
@@ -26,10 +27,12 @@ then
|
|||||||
rm -f /var/run/avahi-daemon//pid
|
rm -f /var/run/avahi-daemon//pid
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Starting dbus..."
|
echo -n '[setup_avahi.sh] Starting dbus... '
|
||||||
dbus-daemon --system
|
dbus-daemon --system >> /opt/scripts/avahi_startup.log 2>&1
|
||||||
|
echo 'Done.'
|
||||||
|
|
||||||
echo "Starting avahi-daemon..."
|
echo -n '[setup_avahi.sh] Starting avahi-daemon... '
|
||||||
/etc/init.d/avahi-daemon start
|
/etc/init.d/avahi-daemon start >> /opt/scripts/avahi_startup.log 2>&1
|
||||||
|
echo 'Done.'
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
11
debian/scripts/setup_packages.sh
vendored
11
debian/scripts/setup_packages.sh
vendored
@@ -23,13 +23,8 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Cleanup
|
# Silent Cleanup
|
||||||
apt-get autoclean -y
|
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||||
apt-get autoremove
|
rm -rf /tmp/* /var/tmp/* && rm -rf /root/.cache/* && rm -rf /var/lib/apt/lists/* && rm -f /opt/scripts/.docker_config/.packages
|
||||||
apt-get 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
|
||||||
|
|||||||
20
debian/scripts/setup_zwave.sh
vendored
20
debian/scripts/setup_zwave.sh
vendored
@@ -1,19 +1,17 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
echo "Checking openzwave installation state..."
|
|
||||||
|
|
||||||
if [ -e /usr/local/lib64 ]
|
if [ -e /usr/local/lib64 ]
|
||||||
then
|
then
|
||||||
echo "Openzwave is already installed..."
|
echo '[setup_zwave.sh] Openzwave is already installed. Nothing to do here.'
|
||||||
else
|
else
|
||||||
echo "Openzwave is NOT installed. Going to install it now..."
|
echo -n '[setup_zwave.sh] Openzwave is NOT installed. Going to install it now... '
|
||||||
cd /opt
|
cd /opt
|
||||||
curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.1007.tar.gz
|
curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.1007.tar.gz
|
||||||
tar -xf openzwave-1.6.1007.tar.gz && rm openzwave-1.6.1007.tar.gz
|
tar -xf openzwave-1.6.1007.tar.gz && rm openzwave-1.6.1007.tar.gz
|
||||||
cd openzwave-1.6.1007 && make > /dev/null 2>&1 && make install > /dev/null 2>&1
|
cd openzwave-1.6.1007 && make > /dev/null 2>&1 && make install > /dev/null 2>&1
|
||||||
ldconfig /usr/local/lib64
|
ldconfig /usr/local/lib64
|
||||||
cd /opt/iobroker
|
cd /opt/iobroker
|
||||||
# echo "Openzwave is now installed..."
|
echo 'Done.'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/src/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||||
|
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
[](https://hub.docker.com/r/buanet/iobroker)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
[](https://hub.docker.com/r/buanet/iobroker)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
[](https://hub.docker.com/r/buanet/iobroker)<br>
|
||||||
[)](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml)
|
[)](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml)
|
||||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||||
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||||
[](https://paypal.me/buanet)
|
[](https://paypal.me/buanet)
|
||||||
|
|
||||||
# Important Note
|
# Important note
|
||||||
|
|
||||||
New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems 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. v4, v5, v6) always come with a new major version of node! This might lead to problems 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).
|
||||||
|
|
||||||
@@ -26,15 +26,16 @@ New major image versions (e.g. v4, v5, v6) always come with a new major version
|
|||||||
|
|
||||||
# Supported tags
|
# 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-vX` 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[X]` tag instead.
|
||||||
|
|
||||||
|
### 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.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
|
### Node 14 versions
|
||||||
* [`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), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile)
|
* [`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)
|
||||||
### Node 12 versions
|
|
||||||
* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile)
|
|
||||||
* [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile)
|
|
||||||
* [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile)
|
|
||||||
|
|
||||||
# What is ioBroker?
|
# What is ioBroker?
|
||||||
|
|
||||||
@@ -89,30 +90,34 @@ You could use environment variables to auto configure your ioBroker container on
|
|||||||
|
|
||||||
### Configure ioBroker application:
|
### Configure ioBroker application:
|
||||||
|
|
||||||
* `IOB_ADMINPORT`(optional, default: 8081) Sets ioBroker adminport on startup
|
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||||
* `IOB_MULTIHOST`(optional) Sets ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
* `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_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Sets host for ioBroker objects db
|
* `IOB_MULTIHOST` (optional) Set ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Sets port for ioBroker objects db
|
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db
|
||||||
* `IOB_OBJECTSDB_TYPE` (optional, default: file) Sets type of ioBroker objects db, cloud be "file" or "redis" ([not officially supported](https://github.com/ioBroker/ioBroker#databases)).
|
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db
|
||||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Sets host for ioBroker states 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_PORT` (optional, default: 9000) Sets port for ioBroker states db
|
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db
|
||||||
* `IOB_STATESDB_TYPE` (optional, default: file) Sets type of ioBroker states db, could be "file" or "redis"
|
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db
|
||||||
|
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||||
|
|
||||||
### Activate special features:
|
### Activate special features:
|
||||||
|
|
||||||
* `AVAHI` (optional, default: false) Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false"
|
* `AVAHI` (optional) Set "true" to install and activate avahi-daemon for supporting yahka-adapter
|
||||||
* `ZWAVE` (optional, default: false) Installs openzwave to support zwave-adapter, can be "true" or "false"
|
* `ZWAVE` (optional) Set "true" to install openzwave to support zwave-adapter
|
||||||
|
|
||||||
### Configure environment:
|
### Configure environment:
|
||||||
|
|
||||||
* `LANG` (optional, default: de_DE.UTF‑8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
* `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
|
* `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
|
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||||
* `PACKAGES` (optional) Installs 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
|
||||||
* `SETGID` (optional, 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
|
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3".
|
||||||
* `SETUID` (optional, 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
|
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone
|
* `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
|
||||||
* `USBDEVICES` (optional) Sets relevant permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";".
|
* `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 ";"
|
||||||
|
|
||||||
## Notes about Docker networks
|
## Notes about Docker networks
|
||||||
|
|
||||||
@@ -1,15 +1,17 @@
|
|||||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/src/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
###### [iobroker/iobroker](https://hub.docker.com/r/iobroker/iobroker) is an alias for [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/repository/docker/buanet/iobroker)
|
[](https://hub.docker.com/r/buanet/iobroker)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
[](https://hub.docker.com/r/buanet/iobroker)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
[](https://hub.docker.com/r/buanet/iobroker)<br>
|
||||||
[)](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml)
|
[)](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml)
|
||||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||||
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
[](https://github.com/buanet/ioBroker.docker/issues)<br>
|
||||||
[](https://github.com/buanet/ioBroker.docker)
|
[](https://github.com/buanet/ioBroker.docker)
|
||||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||||
|
|
||||||
# Important Note
|
# Important note
|
||||||
|
|
||||||
New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems 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. v4, v5, v6) always come with a new major version of node! This might lead to problems 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).
|
||||||
|
|
||||||
@@ -25,15 +27,17 @@ New major image versions (e.g. v4, v5, v6) always come with a new major version
|
|||||||
|
|
||||||
# Supported tags
|
# 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-vX` 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[X]` tag instead.
|
||||||
|
|
||||||
|
### 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.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
|
### Node 14 versions
|
||||||
* [`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), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile)
|
* [`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)
|
||||||
|
|
||||||
### Node 12 versions
|
|
||||||
* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile)
|
|
||||||
* [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile)
|
|
||||||
* [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile)
|
|
||||||
|
|
||||||
# What is ioBroker?
|
# What is ioBroker?
|
||||||
|
|
||||||
@@ -88,30 +92,34 @@ You could use environment variables to auto configure your ioBroker container on
|
|||||||
|
|
||||||
### Configure ioBroker application:
|
### Configure ioBroker application:
|
||||||
|
|
||||||
* `IOB_ADMINPORT`(optional, default: 8081) Sets ioBroker adminport on startup
|
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||||
* `IOB_MULTIHOST`(optional) Sets ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
* `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_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Sets host for ioBroker objects db
|
* `IOB_MULTIHOST` (optional) Set ioBroker "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Sets port for ioBroker objects db
|
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db
|
||||||
* `IOB_OBJECTSDB_TYPE` (optional, default: file) Sets type of ioBroker objects db, cloud be "file" or "redis" ([not officially supported](https://github.com/ioBroker/ioBroker#databases)).
|
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db
|
||||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Sets host for ioBroker states 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_PORT` (optional, default: 9000) Sets port for ioBroker states db
|
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db
|
||||||
* `IOB_STATESDB_TYPE` (optional, default: file) Sets type of ioBroker states db, could be "file" or "redis"
|
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db
|
||||||
|
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||||
|
|
||||||
### Activate special features:
|
### Activate special features:
|
||||||
|
|
||||||
* `AVAHI` (optional, default: false) Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false"
|
* `AVAHI` (optional) Set "true" to install and activate avahi-daemon for supporting yahka-adapter
|
||||||
* `ZWAVE` (optional, default: false) Installs openzwave to support zwave-adapter, can be "true" or "false"
|
* `ZWAVE` (optional) Set "true" to install openzwave to support zwave-adapter
|
||||||
|
|
||||||
### Configure environment:
|
### Configure environment:
|
||||||
|
|
||||||
* `LANG` (optional, default: de_DE.UTF‑8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
* `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
|
* `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
|
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||||
* `PACKAGES` (optional) Installs 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
|
||||||
* `SETGID` (optional, 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
|
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3".
|
||||||
* `SETUID` (optional, 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
|
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone
|
* `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
|
||||||
* `USBDEVICES` (optional) Sets relevant permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";".
|
* `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 ";"
|
||||||
|
|
||||||
## Notes about Docker networks
|
## Notes about Docker networks
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user