mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 10:29:00 +02:00
Compare commits
1187 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df7523d1cb | ||
|
|
04ae0f4bb6 | ||
|
|
9e50735ce5 | ||
|
|
8aa80342a0 | ||
|
|
b62c8d7ee7 | ||
|
|
d98b332d0e | ||
|
|
7b287437b9 | ||
|
|
241ca6db51 | ||
|
|
a676b37144 | ||
|
|
9197c3dee6 | ||
|
|
38c22b15dc | ||
|
|
ecc82a88be | ||
|
|
9dd5097d0d | ||
|
|
94199cba10 | ||
|
|
00d353b68f | ||
|
|
73c77f40ef | ||
|
|
34eaab679f | ||
|
|
39ab62d5f1 | ||
|
|
7e0ab2281d | ||
|
|
2eec1a46f4 | ||
|
|
7dcc948486 | ||
|
|
56b1cf9899 | ||
|
|
b9afbef087 | ||
|
|
c5a6e675e5 | ||
|
|
5191f212ad | ||
|
|
84773f966f | ||
|
|
105aec37de | ||
|
|
e0ca97ba99 | ||
|
|
f84bb008df | ||
|
|
ff8dd7cf42 | ||
|
|
12122fece5 | ||
|
|
f5c5f0c7ee | ||
|
|
9eaff1e39e | ||
|
|
8b8d71621e | ||
|
|
cc69a293cf | ||
|
|
0b945b2e05 | ||
|
|
4a9fc1095a | ||
|
|
82b8ce9463 | ||
|
|
d2e9def207 | ||
|
|
3ac6a10243 | ||
|
|
d31c8561d8 | ||
|
|
0901cad1e5 | ||
|
|
e7afea11d4 | ||
|
|
1e0078f689 | ||
|
|
a9452d5179 | ||
|
|
40f9e1aca9 | ||
|
|
7323deed6b | ||
|
|
fa6486bff8 | ||
|
|
d9a05a7fe9 | ||
|
|
a6a19f2267 | ||
|
|
97c7b79a56 | ||
|
|
0930fa137c | ||
|
|
98559888d4 | ||
|
|
16e4d165d5 | ||
|
|
d9273c5a08 | ||
|
|
93ce694e1f | ||
|
|
318e41d84c | ||
|
|
b7bb47c84a | ||
|
|
2ec8bf6c0b | ||
|
|
e9c1064028 | ||
|
|
74dcd9b0f3 | ||
|
|
e75696041e | ||
|
|
3c935e5637 | ||
|
|
e515245228 | ||
|
|
f6574bc8ad | ||
|
|
8383874542 | ||
|
|
1d25a7ee2f | ||
|
|
5835247059 | ||
|
|
822045a4ae | ||
|
|
866e9a4913 | ||
|
|
ebb0b7b046 | ||
|
|
9dd3712faa | ||
|
|
a2cc4f5246 | ||
|
|
50675a1e0e | ||
|
|
f52aa4f9db | ||
|
|
dc8347a2a7 | ||
|
|
df9a96ef8b | ||
|
|
c98a66934d | ||
|
|
798a02965f | ||
|
|
e9f12ceaab | ||
|
|
960d5249d9 | ||
|
|
adeb8fa3ff | ||
|
|
21e66aedff | ||
|
|
95dc626a02 | ||
|
|
d5acf33650 | ||
|
|
37203dc40f | ||
|
|
30fa668c09 | ||
|
|
38460ad6f4 | ||
|
|
1e035fa65d | ||
|
|
51f33f02e0 | ||
|
|
ab54eaf7f9 | ||
|
|
3b53e6a290 | ||
|
|
c146cdce4d | ||
|
|
f86f1c5941 | ||
|
|
1c367f5539 | ||
|
|
06ec941203 | ||
|
|
7c92f39b86 | ||
|
|
ecb8cb2ed6 | ||
|
|
18b13dd50f | ||
|
|
79d857dcb8 | ||
|
|
cd3510695e | ||
|
|
bf9e30d1c0 | ||
|
|
bbc88d4d5c | ||
|
|
81bea7f7a4 | ||
|
|
b439a04f2e | ||
|
|
922f77279e | ||
|
|
431343b52e | ||
|
|
2b86658af0 | ||
|
|
7252c8f5af | ||
|
|
340d8eceef | ||
|
|
016d0ead53 | ||
|
|
6d6a379fc0 | ||
|
|
9a4beb5aef | ||
|
|
10650fc23f | ||
|
|
87ce008c76 | ||
|
|
480293d372 | ||
|
|
b06f29c33e | ||
|
|
44131ab8b5 | ||
|
|
7ce89797fd | ||
|
|
60e7dff559 | ||
|
|
5d40cae941 | ||
|
|
25b893f84f | ||
|
|
adeec1699d | ||
|
|
10075ddd12 | ||
|
|
cd461e3b1f | ||
|
|
4dcb25c7ca | ||
|
|
980b0b4d8a | ||
|
|
29e1662fc1 | ||
|
|
ddc1b2e93f | ||
|
|
f9440d7c77 | ||
|
|
78c97411f0 | ||
|
|
96fe93d819 | ||
|
|
372f82dca2 | ||
|
|
a66ffffed9 | ||
|
|
567998b7c4 | ||
|
|
36dc9eba9b | ||
|
|
2df113f78a | ||
|
|
5d5e1cb3c1 | ||
|
|
1c3257a040 | ||
|
|
db689e2c10 | ||
|
|
50bd0402a8 | ||
|
|
6fe3add213 | ||
|
|
bab099260a | ||
|
|
44a9e26c69 | ||
|
|
f94ac021b5 | ||
|
|
4a4a016687 | ||
|
|
a369d928e5 | ||
|
|
a46295f806 | ||
|
|
b0fe6a8082 | ||
|
|
47ff8e6ebe | ||
|
|
d3d26d19bb | ||
|
|
ca666b1c6f | ||
|
|
14255e2cb0 | ||
|
|
2528b87e3f | ||
|
|
04ec2bf6a5 | ||
|
|
0112d893ff | ||
|
|
e5e6af6e37 | ||
|
|
4244e91b8a | ||
|
|
b4445922ca | ||
|
|
7a053f5c54 | ||
|
|
9aa7259f62 | ||
|
|
7c21ebe62e | ||
|
|
a03576ee62 | ||
|
|
7a1bdbdd45 | ||
|
|
2549003acd | ||
|
|
1799a84b55 | ||
|
|
e8566624b2 | ||
|
|
6d1c6e1d6f | ||
|
|
ccb2a51ec7 | ||
|
|
dfd330b4c4 | ||
|
|
17ec58c218 | ||
|
|
8055e12372 | ||
|
|
ceb56bb9ad | ||
|
|
37c5ca9778 | ||
|
|
1fb4b5fa66 | ||
|
|
06de6675d9 | ||
|
|
870980ccce | ||
|
|
51a25bb2db | ||
|
|
434ac84f0c | ||
|
|
7257f37b5b | ||
|
|
119367dcd9 | ||
|
|
da53a96d3c | ||
|
|
56fd73aedf | ||
|
|
4058b4098a | ||
|
|
3a22d5e146 | ||
|
|
da56dc48b3 | ||
|
|
f46849d4dd | ||
|
|
f0d8013ff6 | ||
|
|
3910a604e1 | ||
|
|
5a8d251652 | ||
|
|
b934d8bb5c | ||
|
|
2416960d6b | ||
|
|
926f5dd88f | ||
|
|
f0a8644a7d | ||
|
|
f78a2be83f | ||
|
|
d9b6141b80 | ||
|
|
28f5e54109 | ||
|
|
c933164f41 | ||
|
|
0e1ff982cf | ||
|
|
9218a316bb | ||
|
|
1891d34934 | ||
|
|
40f1fa1fd7 | ||
|
|
b5bd5ff529 | ||
|
|
4d1b79ee53 | ||
|
|
9252643fe7 | ||
|
|
776e5aa36d | ||
|
|
c5194b9701 | ||
|
|
bef837b476 | ||
|
|
6a2e6498ed | ||
|
|
801413e579 | ||
|
|
0acf0995ea | ||
|
|
b4c9e9bca1 | ||
|
|
6858374b83 | ||
|
|
3f67dbc162 | ||
|
|
5247639a66 | ||
|
|
aaeb0119f4 | ||
|
|
004b5757ea | ||
|
|
b2895098bc | ||
|
|
13cb29bed7 | ||
|
|
dc9908c3ba | ||
|
|
320a92dff4 | ||
|
|
3bc1952219 | ||
|
|
c6b49e4979 | ||
|
|
17db723eb7 | ||
|
|
1dc2a7e57e | ||
|
|
e0f403c62e | ||
|
|
c9a4a11265 | ||
|
|
7249d9e585 | ||
|
|
b7465c5665 | ||
|
|
bfe581df36 | ||
|
|
c1b43166d1 | ||
|
|
283776f511 | ||
|
|
731a01339c | ||
|
|
f575c66883 | ||
|
|
8f1fe5b986 | ||
|
|
beead83dbf | ||
|
|
026d050136 | ||
|
|
5835a0e835 | ||
|
|
ca43f24804 | ||
|
|
e171da0c4e | ||
|
|
c6a0a789f0 | ||
|
|
4fee9bf397 | ||
|
|
74e3789edd | ||
|
|
2b3421bb7a | ||
|
|
7f6bc5052f | ||
|
|
4c39600957 | ||
|
|
abb803a4ff | ||
|
|
5ca414109b | ||
|
|
05347a1eda | ||
|
|
89cd94b0b8 | ||
|
|
5c2a6e42dd | ||
|
|
649fd1e300 | ||
|
|
bb12dd4b7b | ||
|
|
21b82c4053 | ||
|
|
7f66aad03f | ||
|
|
ba1c874781 | ||
|
|
b7dd2a5ec2 | ||
|
|
222db010cc | ||
|
|
1f04cd3ab8 | ||
|
|
75e77d51e4 | ||
|
|
0a21f09e85 | ||
|
|
c6e50c9e1a | ||
|
|
6a481b9449 | ||
|
|
e24d7c5c38 | ||
|
|
3ff0cb94e3 | ||
|
|
beb310b693 | ||
|
|
2dbb5a7c76 | ||
|
|
a53b5e9ff2 | ||
|
|
c12ed1138d | ||
|
|
4924308ace | ||
|
|
04f48817a0 | ||
|
|
030ef7e7d2 | ||
|
|
f62985161f | ||
|
|
a1fff8f81c | ||
|
|
b9618d92d2 | ||
|
|
16c741733f | ||
|
|
6538b3ff99 | ||
|
|
fd504446b3 | ||
|
|
9a59347e64 | ||
|
|
e2ca6793ff | ||
|
|
c86a608537 | ||
|
|
1ca205fd4f | ||
|
|
6c06893dfe | ||
|
|
955ce164b4 | ||
|
|
3cf0fc99f0 | ||
|
|
06f65eac95 | ||
|
|
3143c9f8a8 | ||
|
|
38fbe16798 | ||
|
|
e5b55180b8 | ||
|
|
1404e8b0db | ||
|
|
0cbfd67f5a | ||
|
|
014f6e5fc8 | ||
|
|
4c83128e84 | ||
|
|
d1bbbfff58 | ||
|
|
908d242120 | ||
|
|
0aa1890b3a | ||
|
|
9f4eb7feaa | ||
|
|
7e2601b48f | ||
|
|
11e30fa638 | ||
|
|
e5956c6faf | ||
|
|
feb02a7a33 | ||
|
|
3f3cfdb077 | ||
|
|
3ca8dcde8a | ||
|
|
28928bf381 | ||
|
|
55e5bad454 | ||
|
|
3a8e38b3ee | ||
|
|
fa9e09ed1b | ||
|
|
90fe13108c | ||
|
|
5c97b2a041 | ||
|
|
05b72b1cd7 | ||
|
|
1c7d5ca328 | ||
|
|
4fc3016aab | ||
|
|
c6b0d307b5 | ||
|
|
59ffff608a | ||
|
|
6c34c0a081 | ||
|
|
92821ab262 | ||
|
|
d78cf70d11 | ||
|
|
94edda4a64 | ||
|
|
6c68940076 | ||
|
|
2eb7f4e71f | ||
|
|
b626063647 | ||
|
|
cef5ed1ef5 | ||
|
|
68b285d55f | ||
|
|
e1910d6f3b | ||
|
|
bc483cc5f0 | ||
|
|
bf87667fc0 | ||
|
|
375d192c7c | ||
|
|
ac40e5a07a | ||
|
|
ce37c61c60 | ||
|
|
726ef79216 | ||
|
|
5d683dcbb6 | ||
|
|
4738e035b5 | ||
|
|
e03c374df1 | ||
|
|
a37ddf14ec | ||
|
|
814cfae657 | ||
|
|
10de4b1a55 | ||
|
|
760a36f72a | ||
|
|
55c5b44537 | ||
|
|
317264f849 | ||
|
|
4614b8c41a | ||
|
|
d4469b80d5 | ||
|
|
24d5f3c9ed | ||
|
|
f01167d513 | ||
|
|
f27a29a325 | ||
|
|
a24628e306 | ||
|
|
3553ce3a65 | ||
|
|
75f6496ffe | ||
|
|
f7de2fbad2 | ||
|
|
b56d2fad26 | ||
|
|
51306ed80d | ||
|
|
5d382d082b | ||
|
|
6ec036a577 | ||
|
|
4d86b980f9 | ||
|
|
582d604b8b | ||
|
|
483139b417 | ||
|
|
aa86db5724 | ||
|
|
7a77f18fb8 | ||
|
|
6dd6cb5c20 | ||
|
|
77831a2edd | ||
|
|
88979d48b1 | ||
|
|
e305053c26 | ||
|
|
3e1c1fa103 | ||
|
|
c6781e19e6 | ||
|
|
9eacde484a | ||
|
|
9ba748467e | ||
|
|
9da9e91453 | ||
|
|
b80e5cc26b | ||
|
|
3b3dc39bc8 | ||
|
|
117f57aa3e | ||
|
|
49f9f9ad8b | ||
|
|
36ac44fd5a | ||
|
|
3e9670b197 | ||
|
|
f3f5df4819 | ||
|
|
6bbdd0572a | ||
|
|
0c27976158 | ||
|
|
8ed0078dea | ||
|
|
a374fee273 | ||
|
|
b0493be646 | ||
|
|
c614aeb863 | ||
|
|
3117d590b6 | ||
|
|
0de9d77859 | ||
|
|
3674f2f594 | ||
|
|
63974a3780 | ||
|
|
89a52b8eb3 | ||
|
|
4adafbdb00 | ||
|
|
837064f86b | ||
|
|
45cae5a781 | ||
|
|
b1b779ac5d | ||
|
|
63a3491be4 | ||
|
|
f2aa915f71 | ||
|
|
2179df0893 | ||
|
|
e5bb412719 | ||
|
|
d464910e62 | ||
|
|
b794e0b7d4 | ||
|
|
d59d6f5a77 | ||
|
|
a8fc42f93b | ||
|
|
50f2f9c5d1 | ||
|
|
165b3595c1 | ||
|
|
e6662f78c5 | ||
|
|
7779f985d2 | ||
|
|
a0ba10a02f | ||
|
|
96f8fe6a84 | ||
|
|
57d1dd3bb0 | ||
|
|
7027d3b3b9 | ||
|
|
9ee0738a23 | ||
|
|
40d22d0540 | ||
|
|
55c3fc5951 | ||
|
|
65ee398753 | ||
|
|
0dd20773ec | ||
|
|
58f4ac9d47 | ||
|
|
2da5640f9f | ||
|
|
e228229ec3 | ||
|
|
60b2ab1b56 | ||
|
|
4c32a3fc67 | ||
|
|
82c98eb906 | ||
|
|
af51286954 | ||
|
|
71ece920f0 | ||
|
|
82a88370d6 | ||
|
|
21cf38611c | ||
|
|
ca11192265 | ||
|
|
2907a44f46 | ||
|
|
4cb4aa8cce | ||
|
|
bbe6c2763e | ||
|
|
c4e8b87bc1 | ||
|
|
989fe8b03b | ||
|
|
9b384a38b5 | ||
|
|
6832057596 | ||
|
|
bbf834c218 | ||
|
|
24b76d4af7 | ||
|
|
9aab0af6bd | ||
|
|
048603b685 | ||
|
|
dbae1ffffe | ||
|
|
47bccc997a | ||
|
|
9fc074611f | ||
|
|
9c9c5c1ffd | ||
|
|
788ef45134 | ||
|
|
62d4fcd0c1 | ||
|
|
a59977101b | ||
|
|
12ba15b318 | ||
|
|
3940ea9203 | ||
|
|
56134b300e | ||
|
|
855ed0632b | ||
|
|
eaa1ca59d0 | ||
|
|
ccb7d636c0 | ||
|
|
192bbdad12 | ||
|
|
f4c972358e | ||
|
|
1553c37265 | ||
|
|
798516b051 | ||
|
|
fa19acc331 | ||
|
|
6af2d4879f | ||
|
|
700d7609cc | ||
|
|
3c6fc0b1b1 | ||
|
|
5c56939d01 | ||
|
|
99b7b22072 | ||
|
|
85c49cc3e7 | ||
|
|
aa58edd9e1 | ||
|
|
52306ee19a | ||
|
|
f44a433a7e | ||
|
|
ca00e38154 | ||
|
|
2359e5118c | ||
|
|
ae42123a2f | ||
|
|
4fe9c10771 | ||
|
|
3d83c7fa21 | ||
|
|
18654635ef | ||
|
|
f225536852 | ||
|
|
18b0f863bd | ||
|
|
ff6535a896 | ||
|
|
3543b10c90 | ||
|
|
b3870bdcb7 | ||
|
|
9f016f5363 | ||
|
|
800e95a5c2 | ||
|
|
0f3b59fe98 | ||
|
|
8f7f9656d8 | ||
|
|
7e291f98ea | ||
|
|
a46e29fac1 | ||
|
|
8294f8cf51 | ||
|
|
5c7dfb3d3c | ||
|
|
721c108742 | ||
|
|
7a455952dd | ||
|
|
a04f210190 | ||
|
|
0f59839695 | ||
|
|
4f15a4df23 | ||
|
|
686b391119 | ||
|
|
d5a6596070 | ||
|
|
7af5507f11 | ||
|
|
2e767eab3d | ||
|
|
97c5e4993d | ||
|
|
568bfab015 | ||
|
|
551dc98282 | ||
|
|
8c9279b867 | ||
|
|
065d0cb4df | ||
|
|
acad72922e | ||
|
|
8fe4d775f5 | ||
|
|
e283d25710 | ||
|
|
f60c87388c | ||
|
|
893908f29d | ||
|
|
16e30c392d | ||
|
|
a954b51223 | ||
|
|
6a55923669 | ||
|
|
bbac132f28 | ||
|
|
9afa6646c2 | ||
|
|
874b6d8af0 | ||
|
|
d126eb190b | ||
|
|
3a745f97bc | ||
|
|
c79d4a9fde | ||
|
|
9e8f8bfd1e | ||
|
|
f56a523e55 | ||
|
|
96d97f5b35 | ||
|
|
954557f28c | ||
|
|
e332bc0e41 | ||
|
|
1b1249eb46 | ||
|
|
d1ef726594 | ||
|
|
d907c34d6a | ||
|
|
3e2589fae9 | ||
|
|
6ddb84333f | ||
|
|
61d655b9e6 | ||
|
|
be18293a5b | ||
|
|
454287d078 | ||
|
|
619de2abc2 | ||
|
|
d160acfd1a | ||
|
|
5419ae2bf1 | ||
|
|
4a68f645f4 | ||
|
|
04805e9ce1 | ||
|
|
8ee1753ea0 | ||
|
|
c7da4e131d | ||
|
|
b4ee2b2a12 | ||
|
|
a369647e13 | ||
|
|
632c7cd87e | ||
|
|
b98b72dc9e | ||
|
|
288932d607 | ||
|
|
73225edba2 | ||
|
|
6f83191969 | ||
|
|
a17e0e4026 | ||
|
|
37c56293f6 | ||
|
|
fd0ad9e5a0 | ||
|
|
99f3b1750c | ||
|
|
f6e22cfe81 | ||
|
|
4a5a0bb92b | ||
|
|
4b94838fa1 | ||
|
|
518f43a432 | ||
|
|
a6226be96b | ||
|
|
f2cc020ce5 | ||
|
|
ded9f46c6a | ||
|
|
e5aa948688 | ||
|
|
445356cdc2 | ||
|
|
d500b0a014 | ||
|
|
bbeba1c666 | ||
|
|
151c414a76 | ||
|
|
2350ef47c1 | ||
|
|
a85da341d3 | ||
|
|
0bf4413bd5 | ||
|
|
3cc5c6b31d | ||
|
|
43cc40d5be | ||
|
|
0ef6b8d45b | ||
|
|
b6f0ce6b15 | ||
|
|
9185e21405 | ||
|
|
7b437710bf | ||
|
|
72e2ca4238 | ||
|
|
d1691aa65c | ||
|
|
8afef315a1 | ||
|
|
49369fa5c8 | ||
|
|
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 | ||
|
|
95451d052f | ||
|
|
28402a09c4 | ||
|
|
859aaf1526 | ||
|
|
f131b96a19 | ||
|
|
a8f90cab49 | ||
|
|
da63f43852 | ||
|
|
868a129397 | ||
|
|
9dd5391499 | ||
|
|
a0460749c2 | ||
|
|
5d59a618a2 | ||
|
|
6bc5c28649 | ||
|
|
c4a34b4432 | ||
|
|
744a293100 | ||
|
|
398cd5c981 | ||
|
|
6ac2e67e26 | ||
|
|
08cb2d6094 | ||
|
|
c91330e77e | ||
|
|
4b33937d27 | ||
|
|
234248fdc2 | ||
|
|
0ac3ce2786 | ||
|
|
403a181033 | ||
|
|
ed7160f9fe | ||
|
|
27f3142205 | ||
|
|
e77597a915 | ||
|
|
31fef22c61 | ||
|
|
5211ef7275 | ||
|
|
860759fb74 | ||
|
|
09bc8c0a0f | ||
|
|
507459ebd1 | ||
|
|
4ab35c860c | ||
|
|
5e7fb6312e | ||
|
|
454a3b4922 | ||
|
|
32ee0cf992 | ||
|
|
8fd9307113 | ||
|
|
daa31f2e5f | ||
|
|
14dfea0a4f | ||
|
|
f4fd69aa34 | ||
|
|
239bc41506 | ||
|
|
bf8ef09fe8 | ||
|
|
854511c118 | ||
|
|
3c65616ffd | ||
|
|
3f040e51a0 | ||
|
|
945f7d0593 | ||
|
|
39fc047610 | ||
|
|
78a335b0a4 | ||
|
|
b59627a254 | ||
|
|
c2b1f69e1e | ||
|
|
a51d2be4f7 | ||
|
|
edd9c5ec51 | ||
|
|
07d15bcf20 | ||
|
|
c798465219 | ||
|
|
d5e7f9885e | ||
|
|
01175aa825 | ||
|
|
3625cbd854 | ||
|
|
6a1a57d450 | ||
|
|
6ca8682c28 | ||
|
|
da48a32508 | ||
|
|
29ece18de5 | ||
|
|
eada80bad4 | ||
|
|
109526de16 | ||
|
|
595fff27bd | ||
|
|
4124f2828f | ||
|
|
25ccf143a2 | ||
|
|
1900afec9a | ||
|
|
0132c70508 | ||
|
|
8548508bbb | ||
|
|
847145a26d | ||
|
|
05f4ed7e17 | ||
|
|
8219326eca | ||
|
|
718c214210 | ||
|
|
5d3d75292c | ||
|
|
cf4fb97696 | ||
|
|
43cc2774d0 | ||
|
|
97ca3aa72d | ||
|
|
904058c0f5 | ||
|
|
b16e5a41aa | ||
|
|
a202d8da2e | ||
|
|
d904c7d9dd | ||
|
|
6734e3f5e1 | ||
|
|
bedf8f9eca | ||
|
|
f906b49543 | ||
|
|
1d100d2766 | ||
|
|
8e6e97d375 | ||
|
|
7af84b0822 | ||
|
|
801015cb28 | ||
|
|
0621c8d8b2 | ||
|
|
36c1695311 | ||
|
|
e0d7f82135 | ||
|
|
e7e54f794f | ||
|
|
8e0467182b | ||
|
|
91420465e7 | ||
|
|
ef3a160a7c | ||
|
|
7b1d444e5a | ||
|
|
8a7818784d | ||
|
|
97917d19fe | ||
|
|
092afecb64 | ||
|
|
66df29d28a | ||
|
|
4f66ea5285 | ||
|
|
2250cc71f2 | ||
|
|
e7ddf2f485 | ||
|
|
0aba419e24 | ||
|
|
7f31993ff6 | ||
|
|
8f66e5977e | ||
|
|
88abb143a2 | ||
|
|
d58050eaa3 | ||
|
|
9dfdcae2ca | ||
|
|
f8d9f498af | ||
|
|
6392a19cac | ||
|
|
a615fea709 | ||
|
|
efd3d16d93 | ||
|
|
5af3a70655 | ||
|
|
d4b03a1003 | ||
|
|
7ebb36e831 | ||
|
|
be4e94c9c5 | ||
|
|
58c9a19f66 | ||
|
|
a504c53dd8 | ||
|
|
a919ca0738 | ||
|
|
0c0dcbc81c | ||
|
|
9b83c34abb | ||
|
|
1e2e8957a9 | ||
|
|
fb7e3316df | ||
|
|
b36373dc3b | ||
|
|
b085f1efdf | ||
|
|
80579e59ac | ||
|
|
f39ad95b14 | ||
|
|
e12da80fce | ||
|
|
045f3b7426 | ||
|
|
a1436e08d3 | ||
|
|
abca929f80 | ||
|
|
c30b441a57 | ||
|
|
1ab6945c0d | ||
|
|
6c89d9fa7c | ||
|
|
3c8c6fcd22 | ||
|
|
8fc65e05df | ||
|
|
8a2d8c17dc | ||
|
|
e4c0c02941 | ||
|
|
f836cd1fca | ||
|
|
e6469a4255 | ||
|
|
bc4fd8349f | ||
|
|
a78610eb68 | ||
|
|
f5f7e3f1ec | ||
|
|
a2961abf67 | ||
|
|
4ec5bb207d | ||
|
|
8375ee0347 | ||
|
|
980ef553d1 | ||
|
|
2c07ddcfce | ||
|
|
c92087db97 | ||
|
|
89761ac8c4 | ||
|
|
bdf6e77364 | ||
|
|
5a23023021 | ||
|
|
04959da45d | ||
|
|
e18e74ef3d | ||
|
|
935583f1f4 | ||
|
|
6c8700b7fc | ||
|
|
c0bd56f7e5 | ||
|
|
7ecaa434ed | ||
|
|
83c10ab83b | ||
|
|
e44cccdac6 | ||
|
|
71076baae3 | ||
|
|
314590d97f | ||
|
|
397b4ea536 | ||
|
|
4b3f57b063 | ||
|
|
c80b5f9c8b | ||
|
|
52a2476034 | ||
|
|
1c7d892566 | ||
|
|
b8bddc55d4 | ||
|
|
c8836c1fca | ||
|
|
c0804b8a7d | ||
|
|
d00d734a3a | ||
|
|
773ad90893 | ||
|
|
5db7206b6e | ||
|
|
f33f5eb5b9 | ||
|
|
0b143cca5a | ||
|
|
a86082e097 | ||
|
|
3a4ae3ec55 | ||
|
|
df973abf16 | ||
|
|
3a39f16e32 | ||
|
|
b16440963d | ||
|
|
eb025350e5 | ||
|
|
d15e392acd | ||
|
|
67eef7f455 | ||
|
|
c489f77ec2 | ||
|
|
1fb5f5d861 | ||
|
|
9b8b378dd2 | ||
|
|
12264ca810 | ||
|
|
b7e9efaf40 | ||
|
|
0b705506cf | ||
|
|
66433c414f | ||
|
|
b35b6c17ad | ||
|
|
c3cd27fe34 | ||
|
|
5a0dd59c3c | ||
|
|
c81da45693 | ||
|
|
ac6709982c | ||
|
|
2838cda016 | ||
|
|
e21dfb9af8 | ||
|
|
aa71e4ee98 | ||
|
|
a9d92466a3 | ||
|
|
3641afefc6 | ||
|
|
6f7c61c234 | ||
|
|
2f35cee123 | ||
|
|
4003e50bf2 | ||
|
|
aa98ab4578 | ||
|
|
c28b840bc7 | ||
|
|
7ea7ab7725 | ||
|
|
eb6c203d53 | ||
|
|
32ef7a0194 | ||
|
|
21b4cfdd13 | ||
|
|
3aaa633fdf | ||
|
|
95862aa1fd | ||
|
|
1fb0c6c84d | ||
|
|
66ddc596c9 | ||
|
|
a657d9b82e | ||
|
|
b4e82c0f00 | ||
|
|
ef9569fba5 | ||
|
|
6319d693cb | ||
|
|
49700dc148 | ||
|
|
c291608aa0 | ||
|
|
e370671a5a | ||
|
|
dd625ac4b1 | ||
|
|
23b24e9b70 | ||
|
|
75f38266e7 | ||
|
|
f2c1e3dda5 | ||
|
|
dbce9fd0d6 | ||
|
|
71a1c78446 | ||
|
|
1ed7fe33f2 | ||
|
|
3df642f9f8 | ||
|
|
5ce1292546 | ||
|
|
39923bbb5d | ||
|
|
f2122a84bc | ||
|
|
0bc88b23d0 | ||
|
|
d53dd6beae | ||
|
|
af7b7ff6f0 | ||
|
|
c62b67c5ac | ||
|
|
9c73ec9fe9 | ||
|
|
1d4d1ff1bd | ||
|
|
f4f2dd562f | ||
|
|
c054ab4dc0 | ||
|
|
a9af03edc9 | ||
|
|
5c7c255ab9 | ||
|
|
e9481bae9f | ||
|
|
7d4eba91a1 | ||
|
|
4101fc1cab | ||
|
|
27b6c93a17 | ||
|
|
d5a1bda9b4 | ||
|
|
ce10e991f7 | ||
|
|
c3f901f04e | ||
|
|
fef9271eb4 | ||
|
|
22d6b0158c | ||
|
|
37c9046077 | ||
|
|
f1b1360264 | ||
|
|
0c1f8ed867 | ||
|
|
1492a15871 | ||
|
|
84c31002f4 | ||
|
|
a193ba36a1 | ||
|
|
e270a46ee7 | ||
|
|
027e677471 | ||
|
|
bc85322275 | ||
|
|
b560dfa840 | ||
|
|
44de2a1ec5 | ||
|
|
5319305d0b | ||
|
|
840e35d922 | ||
|
|
f6f056d0b3 | ||
|
|
4376b63981 | ||
|
|
cb1fc55235 | ||
|
|
6afd8a3f5d | ||
|
|
b3ee69b26e | ||
|
|
95af2c3acf | ||
|
|
667c3d7ea1 | ||
|
|
320717d8bc | ||
|
|
5592da4215 | ||
|
|
63b4c7edf5 | ||
|
|
983b16d461 | ||
|
|
e23b646270 | ||
|
|
4db534ef62 | ||
|
|
cd7beb5156 | ||
|
|
eda7d5ba95 | ||
|
|
b7cdabe427 | ||
|
|
64a6c35865 | ||
|
|
2175f9a4fa | ||
|
|
d30bd1de47 | ||
|
|
063b21a0d1 | ||
|
|
3f976baad7 | ||
|
|
747edf98fe | ||
|
|
19882c1eb3 | ||
|
|
f2a2e2d029 | ||
|
|
ae0fa2f06c | ||
|
|
030109f260 | ||
|
|
c5c96d9f3b | ||
|
|
6f251e8a2d | ||
|
|
cc2174285e | ||
|
|
90458ae6b7 | ||
|
|
7b0f8f5ba9 | ||
|
|
b67ca2de19 | ||
|
|
7e31f7f18a | ||
|
|
97a4d02f0d | ||
|
|
85ffcfd00a | ||
|
|
c67fe82e6f | ||
|
|
e1268aa27c | ||
|
|
abbb905616 | ||
|
|
6b4f4277ae | ||
|
|
c4c6cdf4de | ||
|
|
2d701d02f7 | ||
|
|
9035c9e9a1 | ||
|
|
122307dd38 | ||
|
|
7c05c29069 | ||
|
|
ebd7822e9a | ||
|
|
7dc1c8e74b | ||
|
|
1606dc0b97 | ||
|
|
6b14bc2617 | ||
|
|
0265e12afb | ||
|
|
012a2d2363 | ||
|
|
b0524381ce | ||
|
|
74b0f246cd | ||
|
|
78399ff13b | ||
|
|
5b083a98bb | ||
|
|
0d775350c5 | ||
|
|
575050d5a4 | ||
|
|
9eb183d206 | ||
|
|
e0c1cec14b | ||
|
|
79aa59cf69 | ||
|
|
b89ee16f44 | ||
|
|
b74cfe57c1 | ||
|
|
305a13b0b0 | ||
|
|
c80f25cca1 | ||
|
|
aed7604906 | ||
|
|
a8dd8897eb | ||
|
|
7736e05e08 | ||
|
|
2c2abee86a | ||
|
|
b28250e9f8 | ||
|
|
8bb400270d | ||
|
|
caa5a1f763 | ||
|
|
59e3c79574 | ||
|
|
0fe15e0918 | ||
|
|
a1cd12dbfd | ||
|
|
f32d26de7f | ||
|
|
38d352ac9c | ||
|
|
fdb68d7ca8 | ||
|
|
40abbca1a1 | ||
|
|
445ad691c2 | ||
|
|
525d6db3f4 | ||
|
|
5c43c56694 | ||
|
|
94fcc3b98c | ||
|
|
a34e3e0549 | ||
|
|
6d9bf4da5a | ||
|
|
9d7d4e3cd9 | ||
|
|
c109764694 | ||
|
|
6a32591da4 | ||
|
|
4321bd7bfb | ||
|
|
83f3542f68 | ||
|
|
672bca2630 | ||
|
|
bdc6570a71 | ||
|
|
4010c68e20 | ||
|
|
22ea1df41a | ||
|
|
9656527db4 | ||
|
|
13a511f875 | ||
|
|
686b517d6f | ||
|
|
610deb0974 | ||
|
|
c91be00fa7 | ||
|
|
fefe510b93 | ||
|
|
8d0bb13cf2 | ||
|
|
c6d265aa1d | ||
|
|
07c3fe7118 | ||
|
|
a9bb9aacf1 | ||
|
|
3ba390277c | ||
|
|
88eb4ca065 | ||
|
|
fd72d450f1 | ||
|
|
97b5641372 | ||
|
|
eeacc6d4fb | ||
|
|
d50d88ddd0 | ||
|
|
efee71f212 | ||
|
|
eea1c61ac5 | ||
|
|
75468e58d6 | ||
|
|
dc614879be | ||
|
|
d03ce6d24c | ||
|
|
98ad4e8666 | ||
|
|
f3cb86cb94 | ||
|
|
d5a69c506f | ||
|
|
f75043438c | ||
|
|
8e79ccfc2c | ||
|
|
4908fed871 | ||
|
|
9b6273b50f | ||
|
|
4d76a05f5d | ||
|
|
0fcccf3b42 | ||
|
|
23d8b34113 | ||
|
|
04f51a6f47 | ||
|
|
3decc2fec3 | ||
|
|
e2ccabb6e2 | ||
|
|
9b932594fa | ||
|
|
c3aef24ead | ||
|
|
9abc86ddd3 | ||
|
|
bc41f708bf | ||
|
|
fdbde6eb15 | ||
|
|
4f0d07878b | ||
|
|
beb689c33c | ||
|
|
e733f77253 | ||
|
|
1fdce0ae78 | ||
|
|
7ced614900 | ||
|
|
250acdc992 | ||
|
|
f2e6780456 | ||
|
|
2983f1f63d | ||
|
|
ddccbe7dfa | ||
|
|
e99ab6fa82 | ||
|
|
16b9d318fd | ||
|
|
13182735f8 | ||
|
|
426035fa9b | ||
|
|
5eb3e6ef1d | ||
|
|
d56fca4074 | ||
|
|
6f2eb382d5 | ||
|
|
82aa3f0062 | ||
|
|
eb72bfea00 | ||
|
|
6e8f3a1448 | ||
|
|
dc31095c1c | ||
|
|
834fd976c0 | ||
|
|
609804ea0d | ||
|
|
0f39f7ae5e | ||
|
|
fdfbed9846 | ||
|
|
b4f7ba98b1 | ||
|
|
351bfddc8d | ||
|
|
8a8ac64952 | ||
|
|
e015276fc4 | ||
|
|
4f41716e77 | ||
|
|
d301f754f4 | ||
|
|
a0adbc121e | ||
|
|
17ac1a5bcf | ||
|
|
f440613049 | ||
|
|
7a6de5b3c5 | ||
|
|
0687a2ef18 | ||
|
|
3d191b9fd9 | ||
|
|
0cc07e148d | ||
|
|
f841ccf882 | ||
|
|
b8622098b2 | ||
|
|
9aab687492 | ||
|
|
c69f7145b3 | ||
|
|
1fbbd33979 | ||
|
|
911beabb6a | ||
|
|
945c7bfbaa | ||
|
|
19a6eb74bb | ||
|
|
1713562071 | ||
|
|
a34cdfe7bf | ||
|
|
c0eb88812f | ||
|
|
d3737203dc | ||
|
|
a87286ca08 | ||
|
|
220d07cf95 | ||
|
|
0d740d4626 |
14
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
14
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Did you read the docs? / Hast du die Doku gelesen?
|
||||
url: https://docs.buanet.de/iobroker-docker-image/docs/
|
||||
about: Please make sure you read the docs before submitting any issues. / Bitte stelle sicher, dass du die Dokumentation gelesen hast bevor du einen Fehler meldest.
|
||||
- name: Questions? / Fragen?
|
||||
url: https://github.com/buanet/ioBroker.docker/discussions
|
||||
about: Ask your questions here! / Stell deine Fragen hier!
|
||||
- name: ioBroker Community Forum
|
||||
url: https://forum.iobroker.net/
|
||||
about: Need support? Check out our ioBroker Community Forum. / Du benötigst Unterstützung? Wirf einen Blick in unser ioBroker Community Forum.
|
||||
- name: ioBroker Discord Channel
|
||||
url: https://discord.gg/5jGWNKnpZ8
|
||||
about: Need support? Check out our ioBroker Discord channel. / Du benötigst Unterstützung? Wirf einen Blick in unseren ioBroker Discord Channel.
|
||||
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 / Verbesserungsvorschlag
|
||||
description: Request a new feature here. / Schlage eine Verbesserung vor.
|
||||
title: "[Feature Request]: "
|
||||
labels: "enhancement"
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to give us your feedback! / Vielen Dank, dass du die Zeit nimmst uns Feedback zu geben!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your request. / Bitte beschreibe deine Anforderung.
|
||||
placeholder: What are your ideas? / Was sind deine Ideen?
|
||||
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 / Fehlermeldung
|
||||
description: Report a problem here. / Melde Fehler hier.
|
||||
title: "[Problem]: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report! / Vielen Dank, dass du dir die Zeit nimmst den Fehlerreport auszufüllen!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your problem. / Bitte beschreibe dein Problem.
|
||||
placeholder: What happened? What did you expect? / Was ist passiert? Was hast du erwartet?
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Image version
|
||||
description: Which image version do you use? / Welche Version des Images verwendest du?
|
||||
placeholder: v1.2.3
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Docker logs / Docker Protokoll
|
||||
description: Please provide the full Docker log output from your Docker container startup. / Bitte stelle das komplette Docker Protokoll vom Start des Containers zur Verfügung.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
8
.github/dependabot.yml
vendored
Normal file
8
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
version: 2
|
||||
updates:
|
||||
# Maintain dependencies for GitHub Actions
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
target-branch: "main"
|
||||
1
.github/dependencies/.admin-version
vendored
Normal file
1
.github/dependencies/.admin-version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7.6.17
|
||||
1
.github/dependencies/.backitup-version
vendored
Normal file
1
.github/dependencies/.backitup-version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
3.3.5
|
||||
1
.github/dependencies/.discovery-version
vendored
Normal file
1
.github/dependencies/.discovery-version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
5.0.0
|
||||
1
.github/dependencies/.js-controller-version
vendored
Normal file
1
.github/dependencies/.js-controller-version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
7.0.6
|
||||
1
.github/dependencies/.latest-build
vendored
Normal file
1
.github/dependencies/.latest-build
vendored
Normal file
@@ -0,0 +1 @@
|
||||
20250716.234705
|
||||
1
.github/dependencies/.nodejs-version
vendored
Normal file
1
.github/dependencies/.nodejs-version
vendored
Normal file
@@ -0,0 +1 @@
|
||||
v20.19.4
|
||||
478
.github/workflows/build-debian12-beta_sep.yml
vendored
Normal file
478
.github/workflows/build-debian12-beta_sep.yml
vendored
Normal file
@@ -0,0 +1,478 @@
|
||||
# Github action to build Debian12 image (Tag: beta)
|
||||
name: Build Debian 12 Image (beta)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
release_tag: ${{ steps.fetch-prerelease-tag.outputs.release_tag }}
|
||||
steps:
|
||||
- name: Fetch prerelease tag
|
||||
id: fetch-prerelease-tag
|
||||
run: |
|
||||
PRERELEASE_TAG=$(curl -sL "https://api.github.com/repos/buanet/ioBroker.docker/releases" | jq -r '[.[] | select(.prerelease)][0].tag_name')
|
||||
if [ -z "$PRERELEASE_TAG" ]; then
|
||||
echo "[LOG] No prerelease found!" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "RELEASE_TAG=$PRERELEASE_TAG" >> $GITHUB_ENV
|
||||
echo "release_tag=$PRERELEASE_TAG" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Release tag: $PRERELEASE_TAG"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
build-beta-armv7-recommended-node:
|
||||
name: Build beta armv7 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
|
||||
build-beta-arm64v8-recommended-node:
|
||||
name: Build beta armv64v8 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
|
||||
build-beta-amd64-recommended-node:
|
||||
name: Build beta amd64 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
|
||||
create-multiarch-image-with-recommended-node:
|
||||
name: Create multiarch image with recommended node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-beta-armv7-recommended-node, build-beta-arm64v8-recommended-node, build-beta-amd64-recommended-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:beta buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:beta ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
### experimental node version
|
||||
|
||||
build-beta-armv7-experimental-node:
|
||||
name: Build beta armv7 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-beta-arm64v8-experimental-node:
|
||||
name: Build beta armv64v8 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-beta-amd64-experimental-node:
|
||||
name: Build beta amd64 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
create-multiarch-image-with-experimental-node:
|
||||
name: Create multiarch image with experimental node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-beta-armv7-experimental-node, build-beta-arm64v8-experimental-node, build-beta-amd64-experimental-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
446
.github/workflows/build-debian12-dev_sep.yml
vendored
Normal file
446
.github/workflows/build-debian12-dev_sep.yml
vendored
Normal file
@@ -0,0 +1,446 @@
|
||||
# Github action to build Debian12 image (Tag: dev)
|
||||
name: Build Debian 12 Image (dev)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
build-dev-armv7-recommended-node:
|
||||
name: Build dev armv7 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
|
||||
|
||||
build-dev-arm64v8-recommended-node:
|
||||
name: Build dev armv64v8 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
|
||||
|
||||
build-dev-amd64-recommended-node:
|
||||
name: Build dev amd64 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
|
||||
|
||||
create-multiarch-image-with-recommended-node:
|
||||
name: Create multiarch image with recommended node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-dev-armv7-recommended-node, build-dev-arm64v8-recommended-node, build-dev-amd64-recommended-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
|
||||
|
||||
### experimental node version
|
||||
|
||||
build-dev-armv7-experimental-node:
|
||||
name: Build dev armv7 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-dev-arm64v8-experimental-node:
|
||||
name: Build dev armv64v8 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-dev-amd64-experimental-node:
|
||||
name: Build dev amd64 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
create-multiarch-image-with-experimental-node:
|
||||
name: Create multiarch image with experimental node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-dev-armv7-experimental-node, build-dev-arm64v8-experimental-node, build-dev-amd64-experimental-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
477
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
477
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
@@ -0,0 +1,477 @@
|
||||
# Github action to build Debian12 image (Tag: latest)
|
||||
name: Build Debian 12 Image (latest)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
release_tag: ${{ steps.fetch-release-tag.outputs.release_tag }}
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
id: fetch-release-tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
if [ -z "$LATESTRELEASE" ]; then
|
||||
echo "[LOG] No prerelease found!" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
echo "release_tag=$LATESTRELEASE" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Latest release tag : $LATESTRELEASE"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "$BUILD" > .github/dependencies/.latest-build
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
- name: Commit latest release version
|
||||
run: |
|
||||
git config --global user.name 'buanet'
|
||||
git config --global user.email 'info@buanet.de'
|
||||
git checkout main
|
||||
git add .github/dependencies/.latest-build
|
||||
git commit -am "new build" || true
|
||||
git push
|
||||
|
||||
build-latest-armv7-for-buanet:
|
||||
name: Build latest armv7 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
|
||||
build-latest-arm64v8-for-buanet:
|
||||
name: Build latest armv64v8 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
|
||||
build-latest-amd64-for-buanet:
|
||||
name: Build latest amd64 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
|
||||
create-multiarch-image-for-buanet:
|
||||
name: Create multiarch image for buanet
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-latest-armv7-for-buanet, build-latest-arm64v8-for-buanet, build-latest-amd64-for-buanet, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:latest buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:latest ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.majorversion }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.majorversion }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
### build for iobroker repo
|
||||
|
||||
build-latest-armv7-for-iobroker:
|
||||
name: Build latest armv7 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7
|
||||
|
||||
build-latest-arm64v8-for-iobroker:
|
||||
name: Build latest armv64v8 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8
|
||||
|
||||
build-latest-amd64-for-iobroker:
|
||||
name: Build latest amd64 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
create-multiarch-image-for-iobroker:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-latest-armv7-for-iobroker, build-latest-arm64v8-for-iobroker, build-latest-amd64-for-iobroker, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t iobroker/iobroker:latest iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.majorversion }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.version }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.version }}-build.${{ env.build }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
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 --name iobroker buanet/iobroker:latest
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Waiting for Startup Script..."
|
||||
sleep 60
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Writing Logs..."
|
||||
docker logs iobroker >& testrun.log
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Checking Web UI..."
|
||||
docker exec iobroker curl -s http://localhost:8081 | grep -q '<title>Admin</title>' || { echo "[LOG] Fehler: Web UI nicht erreichbar."; exit 1; }
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Output testrun.log:"
|
||||
cat testrun.log
|
||||
echo ' '
|
||||
echo "[LOG] Test successful."
|
||||
echo ' '
|
||||
33
.github/workflows/update-docker-readme.yml
vendored
Normal file
33
.github/workflows/update-docker-readme.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Update Docker Hub Readme
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'docs/**'
|
||||
- '.github/workflows/update-docker-readme.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-docker-readme:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
|
||||
- name: Update Docker Hub Readme (buanet)
|
||||
uses: peter-evans/dockerhub-description@v4.0.2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
repository: buanet/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_buanet.md
|
||||
|
||||
- name: Update Docker Hub Readme (iobroker)
|
||||
uses: peter-evans/dockerhub-description@v4.0.2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
repository: iobroker/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_iobroker.md
|
||||
67
.github/workflows/version-checks.yml
vendored
Normal file
67
.github/workflows/version-checks.yml
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
name: Version Checks
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '42 23 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-and-trigger:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Docker baseimage check
|
||||
id: baseimage-check
|
||||
uses: lucacome/docker-image-update-checker@v2.0.0
|
||||
with:
|
||||
base-image: debian:bookworm-slim
|
||||
image: buanet/iobroker:latest
|
||||
|
||||
- name: Fetch ioBroker and nodejs versions
|
||||
run: |
|
||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
||||
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)"
|
||||
curl -sL https://nodejs.org/dist/index.json | \
|
||||
jq -r 'map(select(.version | startswith("v20."))) | .[0].version' > .github/dependencies/.nodejs-version
|
||||
echo "[LOG] Fetched nodejs version is $(cat .github/dependencies/.nodejs-version)"
|
||||
|
||||
- name: Check for modified files
|
||||
id: git-check
|
||||
run: echo "modified=$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")" >> $GITHUB_OUTPUT
|
||||
|
||||
- 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: Logging result
|
||||
run: |
|
||||
echo "base image updated = ${{ steps.baseimage-check.outputs.needs-updating }}"
|
||||
echo "ioBroker version updated = ${{ steps.git-check.outputs.modified }}"
|
||||
|
||||
- name: Trigger Build Debian 12 Image (latest)
|
||||
if: steps.baseimage-check.outputs.needs-updating == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
ref: 'main'
|
||||
workflow: 'Build Debian 12 Image (latest)'
|
||||
repo: 'buanet/iobroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.vscode/
|
||||
363
CHANGELOG.md
Normal file
363
CHANGELOG.md
Normal file
@@ -0,0 +1,363 @@
|
||||
## Changelog
|
||||
|
||||
### V11.0.0 (21.07.2025)
|
||||
* releasing V11.0.0 instead of V10.1.0 due to the upgrade to recommended node22
|
||||
* v10.1.0-beta.1 (24.05.2025)
|
||||
* remove restore option from maintenance script
|
||||
* restructure build process
|
||||
* add node22 tag to beta
|
||||
* update readme and docs
|
||||
* add sorted list of backups ([#530 by @Marc-Berg](https://github.com/buanet/ioBroker.docker/pull/530))
|
||||
|
||||
### v10.0.0 (08.08.2024)
|
||||
* v10.0.0-beta.2 (07.08.2024)
|
||||
* add build date to image
|
||||
* cleanup dockerfile
|
||||
* test new build process
|
||||
* v10.0.0-beta.1 (13.07.2024)
|
||||
* upgrade node version to recommended node20
|
||||
* remove dedicated node setup from dockerfile
|
||||
* improve logging for failed database check ([#411](https://github.com/buanet/ioBroker.docker/issues/411))
|
||||
* rework build process due to problems with github actions
|
||||
|
||||
### v9.1.2 (05.04.2024)
|
||||
* fix build process by updating npm to latest
|
||||
|
||||
### v9.1.1 (24.01.2024)
|
||||
* fix node js setup
|
||||
|
||||
### v9.1.0 (19.01.2024)
|
||||
* update docs and ci
|
||||
* v9.1.0-beta.4 (08.01.2024)
|
||||
* dropping arm/v7 support (temporary)
|
||||
* add trap for debugging mode ([#421](https://github.com/buanet/ioBroker.docker/issues/421))
|
||||
* fix ownership of userscripts ([#423 by @EugenMayer](https://github.com/buanet/ioBroker.docker/pull/423))
|
||||
* add strict mode to healthcheck.sh ([#424 by @EugenMayer](https://github.com/buanet/ioBroker.docker/pull/424))
|
||||
* fixes for ci process and dockerfile
|
||||
* remove deprecated files from repo
|
||||
* v9.1.0-beta.3 (23.11.2023)
|
||||
* add --force to restore in maintenance script
|
||||
* improve shebang in scripts for downgrade and portability
|
||||
* v9.1.0-beta.2 (06.11.2023)
|
||||
* enhance logging/ fix typos
|
||||
* add env PACKAGES_UPDATE and remove automatic package updates on first container start
|
||||
* improve setuid/setgid handling during startup ([#397](https://github.com/buanet/ioBroker.docker/issues/397))
|
||||
* move maintenance script registration to dockerfile ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* v9.1.0-beta.1 (03.11.2023)
|
||||
* improve maintenance command by symlinking ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* fix restore/ adding backup file selection ([#394](https://github.com/buanet/ioBroker.docker/issues/394))
|
||||
* fix calling iob start|stop with parameters
|
||||
* enhance logging in iobroker_startup.sh
|
||||
* add error handling for user scripts
|
||||
|
||||
### v9.0.1 (10.10.2023)
|
||||
* fix issue with avahi setup ([#384](https://github.com/buanet/ioBroker.docker/issues/384); [#385 by @z1r0](https://github.com/buanet/ioBroker.docker/pull/385))
|
||||
* add silent cleanup to setup_avahi.sh
|
||||
* add error handling for package updates/ install
|
||||
* fix calling iob in iobroker_startup.sh ([#388](https://github.com/buanet/ioBroker.docker/issues/388))
|
||||
|
||||
### v9.0.0 (09.10.2023)
|
||||
* update official docs
|
||||
* v9.0.0-beta.2 (28.09.2023)
|
||||
* fix issue with unlocking features in backitup ([#381](https://github.com/buanet/ioBroker.docker/issues/381))
|
||||
* fix issue with fresh initializing iobroker
|
||||
* v9.0.0-beta.1 (24.09.2023)
|
||||
* remove special settings script and env for zwave ([#377](https://github.com/buanet/ioBroker.docker/issues/377))
|
||||
* simplify ci/ reduce gh actions
|
||||
* ignore errors in "silent cleanup" on first start ([#369](https://github.com/buanet/ioBroker.docker/issues/369))
|
||||
* cleanup/ restructure repo
|
||||
* update nodejs setup process
|
||||
* update base image to debian 12 (bookworm)
|
||||
* improve security by avoiding root (except startup script itself)
|
||||
* restrict iobroker command line commands (start/ stop/ node fix)
|
||||
* integrate maintenance script into iobroker command
|
||||
* move container config files location
|
||||
|
||||
### v8.1.0 (15.08.2023)
|
||||
* repo cleanup
|
||||
* v8.1.0-beta.4 (29.07.2023)
|
||||
* fix container restart in maintenance script
|
||||
* fix running maintenance script as iobroker
|
||||
* enhance quoting ([#357 by @dontobi](https://github.com/buanet/ioBroker.docker/pull/357))
|
||||
* v8.1.0-beta.3 (05.07.2023)
|
||||
* fix permission issue for restart container as iobroker user
|
||||
* fix issue with js-controller ui upgrade
|
||||
* fix small issues in maintenance script
|
||||
* update action workflows
|
||||
* v8.1.0-beta.2 (26.04.2023)
|
||||
* prohibit restore when startup script is still running
|
||||
* extend time before restart after restore is done
|
||||
* influx data repo will be added automatically when PACKAGES contains influxdb or influxdb2-cli package
|
||||
* v8.1.0-beta.1 (14.04.2023)
|
||||
* enhance github actions
|
||||
* enhance log output of maintenance script on restore ([#333](https://github.com/buanet/ioBroker.docker/issues/333))
|
||||
* allow iobroker admin to be disabled at startup ([#332](https://github.com/buanet/ioBroker.docker/issues/332))
|
||||
* allow deletion of objects and states db password with value "none" ([#306](https://github.com/buanet/ioBroker.docker/issues/306))
|
||||
|
||||
### v8.0.1 (17.04.2023)
|
||||
* fix calling of "iob setup first" on slaves ([#335](https://github.com/buanet/ioBroker.docker/issues/335))
|
||||
|
||||
### v8.0.0 (20.03.2023)
|
||||
* update readme and docs
|
||||
* remove manifests
|
||||
* enhance dockerfile, reduce image size ([#323](https://github.com/buanet/ioBroker.docker/issues/323))
|
||||
* v8.0.0-beta.1 (20.02.2023)
|
||||
* upgrade node version to recommended node18
|
||||
* rewrite of multihost setup handling
|
||||
* rewrite of custom objects and states db setup handling
|
||||
* enhance initial packages install/ update
|
||||
* enhance logging and error handling
|
||||
* add volume instruction to dockerfile
|
||||
* add support for password protected custom objects and states db ([#306](https://github.com/buanet/ioBroker.docker/issues/306))
|
||||
* add support for redis sentinel ([#311](https://github.com/buanet/ioBroker.docker/issues/311))
|
||||
* add restore command to maintenance script
|
||||
* add database connection check at startup
|
||||
* remove initial restore feature
|
||||
|
||||
### v7.2.0 (12.12.2022)
|
||||
* update docs
|
||||
* 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)
|
||||
* move docs/ restructuring readme
|
||||
* v6.0.0-beta1 (2021-10-07)
|
||||
* upgrade node version to recommended node14
|
||||
* add beta-node16 tag for beta testing node16
|
||||
* update documentation
|
||||
* v5.3.0-beta1 (2021-10-07)
|
||||
* add check (installed) PACKAGES on startup (fixes [#201](https://github.com/buanet/ioBroker.docker/issues/201))
|
||||
* add packages for discovery adapter
|
||||
* add packages for backitup adapter
|
||||
* reorganize Dockerfile
|
||||
|
||||
### v5.2.0 (2021-09-30)
|
||||
* v5.2.0-beta4 (2021-09-10)
|
||||
* adding iobroker user rights for "gosu"
|
||||
* adding more labels in OCI standard format
|
||||
* fixing work dir bug
|
||||
* adding backitup compatibility
|
||||
* v5.2.0-beta3 (2021-09-04)
|
||||
* reducing layers in dockerfile
|
||||
* making hostname check mandatory for startup
|
||||
* enhance startup log
|
||||
* v5.2.0-beta2 (2021-08-28)
|
||||
* redesign maintenance script
|
||||
* switching amd64 base image to debian bullseye slim
|
||||
* optimizing log output
|
||||
* adding labels in OCI standard format
|
||||
* adding packages update on first start
|
||||
* adding file for docker detection by ioBroker adapters
|
||||
* adding best practice for states db migration in readme
|
||||
* removing couchdb option for states db (no longer supported)
|
||||
* v5.2.0-beta1 (2021-05-04)
|
||||
* added upgrade parameter to maintenance script
|
||||
* added expose for default admin ui port (fixes [#172](https://github.com/buanet/ioBroker.docker/issues/172))
|
||||
* added short form for maintenance script
|
||||
* v5.2.0-beta (2021-04-02)
|
||||
* some renaming to enhance automated build
|
||||
* changes in versioning
|
||||
* delete travis for automated build
|
||||
|
||||
### v5.1.0 (2020-11-05)
|
||||
* v5.0.2-beta (2020-07-28)
|
||||
* added docker tag for major version latest
|
||||
* extend readme.md docs
|
||||
* added maintenance script
|
||||
* added container health check
|
||||
* fixed configuration procedure and logging for objects and states db setup
|
||||
* v5.0.1-beta (2020-07-01)
|
||||
* fixing backup detection in startup script
|
||||
* fixing permission issue on iobroker restored
|
||||
* extended Logging
|
||||
* enhance multihost support
|
||||
|
||||
### v5.0.0 (2020-06-29)
|
||||
* v4.2.4-beta (2020-06-23)
|
||||
* added graceful shutdown
|
||||
* small fix for GID/UID handling
|
||||
* adding new ENV "IOB_MULTIHOST" for multihost support
|
||||
* small syntax fixes in iobroker_startup.sh
|
||||
* v4.2.3-beta (2020-06-05)
|
||||
* ~~updating js-controller to not stable version 3.1.5 to fix renaming issue~~ (is stable now)
|
||||
* v4.2.2-beta (2020-06-03)
|
||||
* ~~workaround for renaming issues on startup~~ (fixed in js-controller)
|
||||
* v4.2.1-beta (2020-05-10)
|
||||
* using node 12 instead of 10
|
||||
* updated documentation in readme.md
|
||||
|
||||
### v4.2.0 (2020-04-14)
|
||||
* v4.1.4-beta (2020-04-07)
|
||||
* switching base image to buster
|
||||
* optimizing installation of packages defined by ENV "PACKAGES"
|
||||
* v4.1.3-beta (2020-02-08)
|
||||
* renamed ENV for admin port (new "IOB_ADMINPORT)")
|
||||
* added new ENVs for "iobroker setup custom" (replacing "REDIS")
|
||||
* enhancements in startup script logging
|
||||
* v4.1.2-beta (2020-02-02)
|
||||
* added feature for running user defined scripts on startup
|
||||
* small fix for permissions issues on some systems
|
||||
* v4.1.1-beta (2020-01-17)
|
||||
* updated openzwave to version 1.6.1007
|
||||
|
||||
### v4.1.0 (2020-01-17)
|
||||
* improved readme.md
|
||||
* v4.0.3-beta (2020-01-06)
|
||||
* 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"
|
||||
* v4.0.2-beta (2019-12-10)
|
||||
* ~~added env for activating redis~~
|
||||
* enhancements in startup script and docker file
|
||||
* v4.0.1-beta (2019-11-25)
|
||||
* added env for iobroker admin port
|
||||
* added env for usb-devices (setting permissions)
|
||||
* updating prerequisites for iobroker installation
|
||||
* some small code fixes
|
||||
|
||||
### v4.0.0 (2019-10-25)
|
||||
* v3.1.4-beta (2019-10-23)
|
||||
* added env for zwave support
|
||||
* v3.1.3-beta (2019-10-17)
|
||||
* enhanced logging of startup-script
|
||||
* multi arch support (amd64, aarch64, armv7hf)
|
||||
* v3.1.2-beta (2019-09-03)
|
||||
* using node 10 instead of node 8
|
||||
* v3.1.1-beta (2019-09-02)
|
||||
* 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.0.3-beta (2019-08-21)
|
||||
* switching base image from "debian:latest" to "debian:stretch"
|
||||
* v3.0.2-beta (2019-06-13)
|
||||
* using gosu instead of sudo ([#26 by @SchumyHao](https://github.com/buanet/ioBroker.docker/pull/26))
|
||||
* changing output of ioBroker logging
|
||||
* v3.0.1-beta (2019-05-18)
|
||||
* ~~switching back to iobroker-daemon for startup~~
|
||||
|
||||
### v3.0.0 (2019-05-09)
|
||||
* v2.0.6-beta (2019-04-14)
|
||||
* added some additional logging
|
||||
* fixing some issues for language env
|
||||
* added permission fixing on first start
|
||||
* v2.0.5-beta (2019-02-09)
|
||||
* added ENV to docker file
|
||||
* added EXPOSE for admin
|
||||
* final testing
|
||||
* v2.0.4-beta (2019-01-28)
|
||||
* added support for env variables "avahi" and "packages"
|
||||
* moving avahi-daemon installation into avahi startup script
|
||||
* added script for installing optional packages
|
||||
* optimizing logging output
|
||||
* v2.0.3-beta (2019-01-24)
|
||||
* added support for running ioBroker under iobroker user
|
||||
* optimizing logging output
|
||||
* optimizing scripts
|
||||
* v2.0.2-beta (2019-01-23)
|
||||
* optimizing and rearranged docker file
|
||||
* changes for new ioBroker install script
|
||||
* added restoring for empty mounted /opt/iobroker folder
|
||||
* some more small fixes
|
||||
* v2.0.1-beta (2019-01-07)
|
||||
* some changes for supporting other docker-environments than synology ds
|
||||
|
||||
### v2.0.0 (2018-12-05)
|
||||
* v1.2.2-beta (2018-12-05)
|
||||
* using node8 instead of node6
|
||||
* changes for new iobroker setup
|
||||
* v1.2.1-beta (2018-09-12)
|
||||
* added support for firetv-adapter
|
||||
|
||||
### v1.2.0 (2018-08-21)
|
||||
* v1.1.3-beta (2018-08-21)
|
||||
* ~~added ffmpeg-package for yahka to support webcams~~
|
||||
* v1.1.2-beta (2018-04-04)
|
||||
* added ENV for timezone issue
|
||||
* v1.1.1-beta (2018-03-29)
|
||||
* added wget package
|
||||
* updated readme.md
|
||||
|
||||
### v1.1.0 (2017-12-10)
|
||||
* v1.0.2-beta (2017-12-10)
|
||||
* changed startup call to fix restart issue
|
||||
* fixed avahi startup issue
|
||||
* fixed hostname issue
|
||||
* added z-wave support
|
||||
* added logging to /opt/scripts/docker_iobroker_log.txt
|
||||
* v1.0.1-beta (2017-08-25)
|
||||
* fixed locales issue
|
||||
|
||||
### v1.0.0 (2017-08-22)
|
||||
* moved and renamed iobroker startup script
|
||||
* disabled iobroker daemon to (hopefully) fix restart issue
|
||||
* added some maintenance scripts
|
||||
|
||||
### v0.2.1 (2017-08-16)
|
||||
* ~~added libfontconfig package (for iobroker.phantomjs)~~
|
||||
* added gnupg2 package as prerequisite for installing node version 6
|
||||
|
||||
### v0.2.0 (2017-06-04)
|
||||
* fixed startup issue in startup.sh
|
||||
* changed node version from 4 to 6
|
||||
|
||||
### v0.1.2 (2017-03-14)
|
||||
* ~~added libpcap-dev package (for iobroker.amazon-dash)~~
|
||||
|
||||
### v0.1.1 (2017-03-10)
|
||||
* added git package
|
||||
|
||||
### v0.1.0 (2017-03-08)
|
||||
* moved avahi-start.sh to separate directory
|
||||
* fixed timezone issue (sets now timezone to Europe/Berlin)
|
||||
|
||||
### v0.0.2 (2017-03-06)
|
||||
* added support for avahi-daemon (installation and autostart)
|
||||
|
||||
### v0.0.1 (2017-01-31)
|
||||
* project started / initial release
|
||||
31
Dockerfile
31
Dockerfile
@@ -1,31 +0,0 @@
|
||||
FROM debian:latest
|
||||
|
||||
MAINTAINER Andre Germann <info@buanet.de>
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install -y apt-utils curl avahi-daemon git libpcap-dev libavahi-compat-libdnssd-dev libfontconfig gnupg2
|
||||
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash
|
||||
RUN apt-get install -y build-essential python nodejs
|
||||
RUN cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
|
||||
|
||||
RUN mkdir -p /opt/iobroker/ && chmod 777 /opt/iobroker/
|
||||
RUN mkdir -p /opt/scripts/ && chmod 777 /opt/scripts/
|
||||
|
||||
WORKDIR /opt/scripts/
|
||||
|
||||
ADD scripts/avahi_startup.sh avahi_startup.sh
|
||||
RUN chmod +x avahi_startup.sh
|
||||
RUN mkdir /var/run/dbus/
|
||||
|
||||
ADD scripts/iobroker_startup.sh iobroker_startup.sh
|
||||
RUN chmod +x iobroker_startup.sh
|
||||
|
||||
WORKDIR /opt/iobroker/
|
||||
|
||||
RUN npm install iobroker --unsafe-perm && echo $(hostname) > .install_host
|
||||
RUN update-rc.d iobroker.sh disable
|
||||
|
||||
CMD ["sh", "/opt/scripts/iobroker_startup.sh"]
|
||||
|
||||
ENV DEBIAN_FRONTEND teletype
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Andre Germann
|
||||
Copyright (c) 2017-2025 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
97
README.md
97
README.md
@@ -1,49 +1,84 @@
|
||||
# docker-iobroker
|
||||
Docker image for ioBroker (http://iobroker.net) based on debian:latest (http://hub.docker.com/_/debian/)
|
||||
# Official Docker Image for ioBroker
|
||||
|
||||
This project creates a Docker image for running ioBroker in a Docker container. It is made for and tested on a Synology disk station with DSM 6.0.2 and Docker 1.11.2. But it should also work on other systems running Docker.<br>
|
||||
Cause the container ist based on debian:latest, it acts nearly like a full virtual machine. That makes it possible to easily add some additional dependies for some ioBroker-Adapters.
|
||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||
|
||||
## Installation & Usage
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
For instructions and discussion (in german) please visit ioBroker-Forum (http://forum.iobroker.net/viewtopic.php?f=17&t=5089).
|
||||
The code provided in this repo is used to automatically generate the official Docker Image for ioBroker.
|
||||
|
||||
## Changelog
|
||||
Because this README has become more and more confusing, I decided to convert it into a full documentation and moved it to a ["better place"](https://docs.buanet.de/iobroker-docker-image/docs/).
|
||||
|
||||
### v1.0.0 (2017-08-22)
|
||||
* moved and renamed iobroker startup script
|
||||
* disabled iobroker deamon to (hopefully) fix restart issue
|
||||
* added some maintenance scripts
|
||||
## :rocket: Quick links
|
||||
|
||||
### v0.2.1 (2017-08-16)
|
||||
* added libfontconfig package (for iobroker.phantomjs)
|
||||
* added gnupg2 package as prerequisite for installing node version 6
|
||||
Don't know what's ioBroker? :arrow_right: [iobroker.net](https://www.iobroker.net)<br>
|
||||
Don't know what's Docker? :arrow_right: [docker.com](https://docker.com)<br>
|
||||
Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de/iobroker-docker-image/docs/)
|
||||
|
||||
### v0.2.0 (2017-06-04)
|
||||
* fixed startup issue in startup.sh
|
||||
* changed node version from 4 to 6
|
||||
## :question: FAQ (frequently asked questions)
|
||||
|
||||
### v0.1.2 (2017-03-14)
|
||||
* added libpcap-dev package (for iobroker.amazon-dash)
|
||||
### How to run the image?
|
||||
|
||||
### v0.1.1 (2017-03-10)
|
||||
* added git package
|
||||
You can find some basic information about the image and 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).
|
||||
|
||||
### v0.1.0 (2017-03-08)
|
||||
* moved avahi-start.sh to seperate directory
|
||||
* fixed timezone issue (sets now timezone to Europe/Berlin)
|
||||
### Is there a more detailed documentation?
|
||||
|
||||
### v0.0.2 (2017-03-06)
|
||||
* added support for avahi-daemon (installation and autostart)
|
||||
You can find a detailed documentation of the image at [docs.buanet.de](https://docs.buanet.de/iobroker-docker-image/docs/).
|
||||
|
||||
### v0.0.1 (2017-01-31)
|
||||
* project started / initial release
|
||||
### Where can I pull the image?
|
||||
|
||||
## License
|
||||
You can pull the Docker image from:
|
||||
* [Docker Hub (buanet)](https://hub.docker.com/r/buanet/iobroker)
|
||||
* [Docker Hub (iobroker)](https://hub.docker.com/r/iobroker/iobroker)
|
||||
* [GitHub Container Repo](https://github.com/buanet/ioBroker.docker/pkgs/container/iobroker)
|
||||
|
||||
### Where can I get help?
|
||||
|
||||
If you have any questions or need help take a look at the [Discussions](https://github.com/buanet/ioBroker.docker/discussions) or join the ioBroker community:
|
||||
* [ioBroker forum](https://forum.iobroker.net/)
|
||||
* [Discord channel](https://discord.gg/5jGWNKnpZ8)
|
||||
* [Facebook group](https://www.facebook.com/groups/440499112958264/)
|
||||
|
||||
### How to report an issue or request a feature?
|
||||
|
||||
If you think you found an issue let us know by opening a [GitHub Issue](https://github.com/buanet/ioBroker.docker/issues).
|
||||
Please do not use the issues for support questions. Not every error message is worth a new report. Use [Discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure.
|
||||
|
||||
## :eyes: Miscellaneous
|
||||
|
||||
### Beta testing
|
||||
|
||||
If you want to get the newest features and changes feel free to use/test the beta version of the Docker image. For more details and beta support join us at "beta testing & feedback" > "docker-image" at the [ioBroker Discord channel](https://discord.gg/5jGWNKnpZ8).
|
||||
|
||||
### Support the project
|
||||
|
||||
The easiest way to support this project is to leave me some likes/stars on Github and Docker hub!<br>
|
||||
If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!<br>
|
||||
If that doesn't work for you and you want to buy me a pizza instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
||||
Thank you!
|
||||
|
||||
## :memo: Changelog
|
||||
|
||||
Moved to [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
## :copyright: License
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 Andre Germann
|
||||
Copyright (c) 2017-2025 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -63,6 +98,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
## Credits
|
||||
## :star: Credits
|
||||
|
||||
Inspired by https://github.com/MehrCurry/docker-iobroker
|
||||
|
||||
112
debian12/Dockerfile
Normal file
112
debian12/Dockerfile
Normal file
@@ -0,0 +1,112 @@
|
||||
FROM debian:bookworm-slim
|
||||
# FROM node:20.12-bookworm-slim
|
||||
|
||||
|
||||
LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.description="Official Docker image for ioBroker smarthome software (https://www.iobroker.net)" \
|
||||
org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \
|
||||
org.opencontainers.image.authors="André Germann <info@buanet.de>" \
|
||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.base.name="debian:bookworm-slim" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.created="${DATI}"
|
||||
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
# Copy files
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
|
||||
# Set up ioBroker
|
||||
RUN apt-get update && apt-get upgrade -y \
|
||||
# Install prerequisites
|
||||
&& apt-get install -q -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
cifs-utils \
|
||||
curl \
|
||||
gnupg \
|
||||
gosu \
|
||||
iputils-ping \
|
||||
jq \
|
||||
libatomic1 \
|
||||
locales \
|
||||
nfs-common \
|
||||
procps \
|
||||
python3 \
|
||||
python3-dev \
|
||||
tar \
|
||||
tzdata \
|
||||
udev \
|
||||
wget \
|
||||
# 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 \
|
||||
# Prepare .docker_config
|
||||
&& mkdir /opt/.docker_config \
|
||||
&& echo "starting" > /opt/.docker_config/.healthcheck \
|
||||
&& echo "${VERSION}" > /opt/.docker_config/.thisisdocker \
|
||||
&& echo "${DATI}" > /opt/.docker_config/.build \
|
||||
&& echo "true" > /opt/.docker_config/.first_run \
|
||||
# Prepare old .docker_config (needed until changed in iobroker)
|
||||
&& mkdir /opt/scripts/.docker_config \
|
||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||
# Run iobroker installer
|
||||
&& curl -sL https://iobroker.net/install.sh -o install.sh \
|
||||
&& sed -i 's/NODE_MAJOR=[0-9]\+/NODE_MAJOR=${NODE}/' install.sh \
|
||||
&& sed -i 's|NODE_JS_BREW_URL=.*|NODE_JS_BREW_URL="https://nodejs.org"|' install.sh \
|
||||
&& bash install.sh \
|
||||
# Deleting UUID from build
|
||||
&& iobroker unsetup -y \
|
||||
&& echo "true" > /opt/iobroker/.fresh_install \
|
||||
# Backup initial ioBroker and userscript folder
|
||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||
# Setting up iobroker-user
|
||||
&& chsh -s /bin/bash iobroker \
|
||||
&& usermod --home /opt/iobroker iobroker \
|
||||
&& usermod -u 1000 iobroker \
|
||||
&& groupmod -g 1000 iobroker \
|
||||
&& chown root:iobroker /usr/sbin/gosu \
|
||||
# Set permissions and ownership
|
||||
&& chown -R iobroker:iobroker /opt/scripts /opt/userscripts \
|
||||
&& chmod 755 /opt/scripts/*.sh \
|
||||
&& chmod 755 /opt/userscripts/*.sh \
|
||||
# register maintenance command
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maintenance \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maint \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/m \
|
||||
# Clean up installation cache
|
||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& apt-get autoclean -y \
|
||||
&& apt-get autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /tmp/* /var/tmp/* /root/.cache/* /root/.npm/* /var/lib/apt/lists/*
|
||||
|
||||
# Default environment variables
|
||||
ENV BUILD="${BUILD}" \
|
||||
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"
|
||||
|
||||
# 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"]
|
||||
|
||||
# Volume for persistent data
|
||||
VOLUME ["/opt/iobroker"]
|
||||
|
||||
# Run startup-script
|
||||
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||
26
debian12/scripts/healthcheck.sh
Normal file
26
debian12/scripts/healthcheck.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
# Script checks health of running container
|
||||
|
||||
# bash strict mode
|
||||
set -e
|
||||
|
||||
if [ "$(cat /opt/.docker_config/.healthcheck)" == "starting" ]
|
||||
then
|
||||
echo "Health status: OK - Startup script is still running."
|
||||
exit 0
|
||||
elif [ "$(cat /opt/.docker_config/.healthcheck)" == "maintenance" ]
|
||||
then
|
||||
echo "Health status: OK - Container is running in maintenance mode."
|
||||
exit 0
|
||||
elif [ "$(ps -fe|grep "[i]obroker.js-controller"|awk '{print $2}')" != "" ]
|
||||
then
|
||||
echo "Health status: OK - Main process (js-controller) is running."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Health status: !!! NOT OK !!! - Something went wrong. Please see container logs for more details and/or try restarting the container."
|
||||
exit 1
|
||||
86
debian12/scripts/iobroker.sh
Normal file
86
debian12/scripts/iobroker.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# run iob fix
|
||||
iob_fix () {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "The ioBroker fixer script is not specifically designed to run in Docker."
|
||||
echo "Although it is generally safe to use, use it at your own risk and make sure to restart your container immediately after execution!"
|
||||
|
||||
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
|
||||
curl -sL https://iobroker.net/fix.sh | bash -
|
||||
else
|
||||
echo "Due to some limitations in Docker, you need to run the ioBroker fixer script as root."
|
||||
echo "Please connect as root user and try again."
|
||||
fi
|
||||
}
|
||||
|
||||
# run iob diag
|
||||
iob_diag () {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "The ioBroker diag script is not specifically designed to run in Docker."
|
||||
echo "Although it is generally safe to use, use it at your own risk."
|
||||
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
|
||||
curl -sLf https://iobroker.net/diag.sh --output /home/iobroker/.diag.sh && bash /home/iobroker/.diag.sh | gosu iobroker tee /home/iobroker/iob_diag.log
|
||||
else
|
||||
echo "Due to some limitations in Docker, you need to run the ioBroker fixer script as root."
|
||||
echo "Please connect as root user and try again."
|
||||
fi
|
||||
}
|
||||
|
||||
# run iobroker maintenance script
|
||||
iob_maint() {
|
||||
shift
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker bash /opt/scripts/maintenance.sh "$@"
|
||||
else
|
||||
bash /opt/scripts/maintenance.sh "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# pass parameters and run iobroker.js
|
||||
iob_run() {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
else
|
||||
node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "fix" ]; then
|
||||
# call iobroker fixer
|
||||
iob_fix
|
||||
elif [ "$1" = "node fix" ]; then
|
||||
# call iobroker node fixer
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "To fix any issues with nodejs, please pull the latest version of the Docker image and recreate your container."
|
||||
elif [ "$1" = "diag" ]; then
|
||||
# call iobroker diag script
|
||||
iob_diag
|
||||
elif [ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]; then
|
||||
# block execution of iobroker start | stop | restart but pass start | stop for adapters
|
||||
if [ ! "$2" ]; then
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "For more details see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/) or use the maintenance script 'maintenance --help'."
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
elif [ "$1" = "m" ] || [ "$1" = "maint" ] || [ "$1" = "maintenance" ]; then
|
||||
# call iobroker maintenance script but check for execution as root
|
||||
iob_maint "$@"
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
594
debian12/scripts/iobroker_startup.sh
Normal file
594
debian12/scripts/iobroker_startup.sh
Normal file
@@ -0,0 +1,594 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
# Setting healthcheck status to "starting"
|
||||
echo "starting" > /opt/.docker_config/.healthcheck
|
||||
|
||||
# Reading ENV
|
||||
set +u
|
||||
adminport=$IOB_ADMINPORT
|
||||
avahi=$AVAHI
|
||||
backitup=$IOB_BACKITUP_EXTDB
|
||||
debug=$DEBUG
|
||||
multihost=$IOB_MULTIHOST
|
||||
offlinemode=$OFFLINE_MODE
|
||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS
|
||||
packages=$PACKAGES
|
||||
packagesupdate=$PACKAGES_UPDATE
|
||||
permissioncheck=$PERMISSION_CHECK
|
||||
setgid=$SETGID
|
||||
setuid=$SETUID
|
||||
statesdbhost=$IOB_STATESDB_HOST
|
||||
statesdbport=$IOB_STATESDB_PORT
|
||||
statesdbtype=$IOB_STATESDB_TYPE
|
||||
statesdbname=$IOB_STATESDB_NAME
|
||||
statesdbpass=$IOB_STATESDB_PASS
|
||||
usbdevices=$USBDEVICES
|
||||
set -u
|
||||
|
||||
pkill_timeout=10 # timeout for iobroker shutdown in seconds
|
||||
|
||||
# Exit with error function
|
||||
exit_with_error() {
|
||||
echo " "
|
||||
echo "This Script will exit now."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Stop on error function
|
||||
stop_on_error() {
|
||||
if [[ "$debug" == "true" || "$debug" == "42" ]]; 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!"
|
||||
trap 'exit_with_error' SIGTERM SIGKILL
|
||||
tail -f /dev/null & wait
|
||||
else
|
||||
exit_with_error
|
||||
fi
|
||||
}
|
||||
|
||||
# Getting date and time for logging
|
||||
dati=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
# Logging header
|
||||
echo " "
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo -n "$(printf -- '-%.0s' {1..25})" && echo -n " ""$dati"" " && echo "$(printf -- '-%.0s' {1..25})"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- -----"
|
||||
echo "----- ██╗ ██████╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ███████╗ ██████╗ -----"
|
||||
echo "----- ██║ ██╔═══██╗ ██╔══██╗ ██╔══██╗ ██╔═══██╗ ██║ ██╔╝ ██╔════╝ ██╔══██╗ -----"
|
||||
echo "----- ██║ ██║ ██║ ██████╔╝ ██████╔╝ ██║ ██║ █████╔╝ █████╗ ██████╔╝ -----"
|
||||
echo "----- ██║ ██║ ██║ ██╔══██╗ ██╔══██╗ ██║ ██║ ██╔═██╗ ██╔══╝ ██╔══██╗ -----"
|
||||
echo "----- ██║ ╚██████╔╝ ██████╔╝ ██║ ██║ ╚██████╔╝ ██║ ██╗ ███████╗ ██║ ██║ -----"
|
||||
echo "----- ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ -----"
|
||||
echo "----- -----"
|
||||
echo "----- Welcome to your ioBroker Docker container! -----"
|
||||
echo "----- Startupscript is now running! -----"
|
||||
echo "----- Please be patient! -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- System Information -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" arch: "$(uname -m)")" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" hostname: "$(hostname)")" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- Version Information -----"
|
||||
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" node: "$(node -v)")" && echo " -----"
|
||||
echo -n "----- " && echo -n "$(printf "%-20s %-28s" npm: "$(npm -v)")" && echo " -----"
|
||||
echo "----- -----"
|
||||
echo "----- Environment Variables -----"
|
||||
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 [[ "$debug" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" DEBUG: "$debug")" && echo " -----"; fi
|
||||
if [[ "$backitup" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_BACKITUP_EXTDB: "$backitup")" && 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 [[ "$objectsdbport" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_PORT: "$objectsdbport")" && echo " -----"; fi
|
||||
if [[ "$objectsdbname" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_NAME: "$objectsdbname")" && echo " -----"; fi
|
||||
if [[ "$objectsdbpass" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_PASS: "***")" && echo " -----"; fi
|
||||
if [[ "$statesdbtype" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_TYPE: "$statesdbtype")" && 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 [[ "$statesdbname" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_NAME: "$statesdbname")" && echo " -----"; fi
|
||||
if [[ "$statesdbpass" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PASS: "***")" && echo " -----"; fi
|
||||
if [[ "$offlinemode" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" OFFLINE_MODE: "$offlinemode")" && echo " -----"; fi
|
||||
if [[ "$packages" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: "$packages")" && echo " -----"; fi
|
||||
if [[ "$packagesupdate" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES_UPDATE: "$packagesupdate")" && echo " -----"; fi
|
||||
if [[ "$permissioncheck" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PERMISSION_CHECK: "$permissioncheck")" && echo " -----"; fi
|
||||
if [[ "$setgid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETGID: "$setgid")" && echo " -----"; fi
|
||||
if [[ "$setuid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETUID: "$setuid")" && echo " -----"; fi
|
||||
if [[ "$usbdevices" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" USBDEVICES: "$usbdevices")" && echo " -----"; fi
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Debug logging notice
|
||||
if [[ "$debug" == "42" ]]; then
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo "!!!! DON'T PANIC! !!!!"
|
||||
echo "!!!! Just grab your towel. Environment variable DEBUG is set to 42. !!!!"
|
||||
echo "!!!! What looks like the answer to everything is just a undocumented value. !!!!"
|
||||
echo "!!!! Startup script will do nothing, except keeping your container running. !!!!"
|
||||
echo "!!!! This might be useful for investigating errors during startup. !!!!"
|
||||
echo "!!!! If you did this by mistake, just remove environment variable DEBUG. !!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
stop_on_error
|
||||
elif [[ "$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
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 1 of 5: Preparing Container -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Actions running on first start only
|
||||
if [[ -f /opt/.docker_config/.first_run ]]; then
|
||||
# Updating Linux packages
|
||||
if [[ "$offlinemode" = "true" ]]; then
|
||||
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
||||
echo " "
|
||||
elif [[ "$packagesupdate" = "true" ]]; then
|
||||
if ! bash /opt/scripts/setup_packages.sh -update; then echo "Failed."; fi
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Installing packages from ENV
|
||||
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then
|
||||
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
||||
elif [[ "$packages" != "" ]]; then
|
||||
echo "PACKAGES is set. Installing the following additional Linux packages: ""$packages"
|
||||
if ! bash /opt/scripts/setup_packages.sh -install; then echo "Failed."; fi
|
||||
fi
|
||||
echo " "
|
||||
else
|
||||
echo "This is not the first run of this container. Skipping first run preparation."
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Setting UID and/ or GID
|
||||
if [[ "$setgid" != "$(id -u iobroker)" || "$setuid" != "$(id -g iobroker)" ]]; then
|
||||
echo "SETUID and/ or SETGID are set to custom values."
|
||||
echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... "
|
||||
usermod -u "$setuid" iobroker
|
||||
groupmod -og "$setgid" iobroker
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Change directory for next steps
|
||||
cd /opt/iobroker
|
||||
|
||||
#####
|
||||
# STEP 2 - Detecting ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 2 of 5: Detecting ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
if [[ `find /opt/iobroker -type f | wc -l` -lt 1 ]]; then
|
||||
echo "There is no data detected in /opt/iobroker."
|
||||
echo -n "Restoring initial ioBroker installation... "
|
||||
tar -xf /opt/initial_iobroker.tar -C /
|
||||
echo "Done."
|
||||
elif [[ -f /opt/iobroker/iobroker ]]; then
|
||||
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
|
||||
echo "IoBroker backup file detected in /opt/iobroker."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Backup file name: " "$(ls *_backupiobroker.tar.gz)"; fi
|
||||
echo "Since Docker image v8, automatic initial restore is no longer supported!"
|
||||
echo "IoBroker will start with a fresh installation, while your backup file will be copied into the backup directory."
|
||||
echo "You will be able to restore your backup file manually by using the backitup adapter or the containers maintenance script."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
echo -n "Copying backup file and restoring initial ioBroker installation... "
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
tar -xf /opt/initial_iobroker.tar -C /
|
||||
mkdir /opt/iobroker/backups
|
||||
mv /opt/*.tar.gz /opt/iobroker/backups/
|
||||
# fixing permission errors during restore
|
||||
chown -R "$setuid":"$setgid" /opt/iobroker
|
||||
echo "Done."
|
||||
else
|
||||
echo "There is data detected in /opt/iobroker but it looks like it is no instance of ioBroker!"
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Detected files:"
|
||||
ls -al
|
||||
fi
|
||||
echo "Please check/ recreate mounted folder or volume and try again."
|
||||
stop_on_error
|
||||
fi
|
||||
echo " "
|
||||
|
||||
#####
|
||||
# STEP 3 - Checking ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 3 of 5: Checking ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Backing up and replace original iobroker executable to fix sudo bug with gosu
|
||||
if [[ -n $(cmp /opt/scripts/iobroker.sh /opt/iobroker/iobroker) ]]; then
|
||||
echo -n "Replacing ioBroker executable to fix sudo bug... "
|
||||
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||
cp -f /opt/scripts/iobroker.sh /opt/iobroker/iobroker
|
||||
chmod 755 /opt/iobroker/iobroker
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
|
||||
if [[ "$permissioncheck" == "false" ]]; then
|
||||
echo "PERMISSION_CHECK is set to false. Use this at your own risk!"
|
||||
else
|
||||
echo -n "(Re)setting permissions (This might take a while! Please be patient!)... "
|
||||
chown -R "$setuid":"$setgid" /opt/iobroker
|
||||
chown -R "$setuid":"$setgid" /opt/scripts
|
||||
chown -R "$setuid":"$setgid" /opt/userscripts
|
||||
chown -R "$setuid":"$setgid" /opt/.docker_config
|
||||
echo "Done."
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Checking multihost and db setup
|
||||
if [[ "$multihost" == "master" || "$multihost" == "slave" ]]; then
|
||||
# multihost enabled
|
||||
if [[ "$multihost" == "master" ]]; then
|
||||
set +e
|
||||
bash /opt/scripts/setup_iob_db.sh -master
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -ne 0 ]]; then stop_on_error; fi
|
||||
elif [[ "$multihost" == "slave" ]]; then
|
||||
set +e
|
||||
bash /opt/scripts/setup_iob_db.sh -slave
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -ne 0 ]]; then stop_on_error; fi
|
||||
fi
|
||||
elif [[ "$multihost" == "" || "$multihost" == "false" ]]; then
|
||||
# no multihost, only debug output
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Checking multihost settings... "
|
||||
echo "[DEBUG] No multihost settings detected."
|
||||
echo "[DEBUG] Done."
|
||||
echo " "
|
||||
fi
|
||||
# checking custom objects db settings
|
||||
if [[ "$objectsdbtype" != "" || "$objectsdbhost" != "" || "$objectsdbport" != "" ]]; then
|
||||
set +e
|
||||
bash /opt/scripts/setup_iob_db.sh -objectsdb
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -ne 0 ]]; then stop_on_error; fi
|
||||
else
|
||||
#no custom objects db settings, only debug output
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Checking custom objects db settings... "
|
||||
echo "[DEBUG] No custom objects db settings detected."
|
||||
echo "[DEBUG] Done."
|
||||
echo " "
|
||||
fi
|
||||
fi
|
||||
# checking custom states db settings
|
||||
if [[ "$statesdbtype" != "" || "$statesdbhost" != "" || "$statesdbport" != "" ]]; then
|
||||
set +e
|
||||
bash /opt/scripts/setup_iob_db.sh -statesdb
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -ne 0 ]]; then stop_on_error; fi
|
||||
else
|
||||
#no custom states db settings, only debug output
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Checking custom states db settings... "
|
||||
echo "[DEBUG] No custom states db settings detected."
|
||||
echo "[DEBUG] Done."
|
||||
echo " "
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "IOB_MULTIHOST is set, but the value is not valid. Please check your configuration."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] IOB_MULTIHOST = ""$multihost"; fi
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#environment-variables-env)."
|
||||
stop_on_error
|
||||
fi
|
||||
|
||||
# if restored a fresh install, running "iob setup first" for database init (but not on slaves!), otherwise check database connection
|
||||
if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||
echo -n "Initializing a fresh installation of ioBroker... "
|
||||
if [[ ! -d "/opt/iobroker/log" ]]; then gosu iobroker mkdir "/opt/iobroker/log"; fi
|
||||
set +e
|
||||
gosu iobroker iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
return=$?
|
||||
set -e
|
||||
rm -f /opt/iobroker/.fresh_install
|
||||
if [[ "$return" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/iobroker/log/iob_setup_first.log\"."
|
||||
echo "Please check your configuration and try again."
|
||||
stop_on_error
|
||||
fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
echo -n "Checking database connection... "
|
||||
set +e
|
||||
if gosu iobroker iob uuid &> /dev/null; then
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
echo "Failed."
|
||||
errormsg=$(gosu iobroker iob uuid 2>&1 | sed 's/^/[ERROR] /')
|
||||
echo "$errormsg"
|
||||
echo " "
|
||||
echo "Please check your configuration and try again."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs)."
|
||||
stop_on_error
|
||||
fi
|
||||
set -e
|
||||
fi
|
||||
|
||||
# hostname check
|
||||
if [[ "$multihost" == "slave" ]]; then
|
||||
echo "IOB_MULTIHOST is set to \"slave\". Hostname check will be skipped."
|
||||
echo " "
|
||||
else
|
||||
# get admin instance and hostname
|
||||
set +e
|
||||
admininstance=$(gosu iobroker iob list instances | grep 'enabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
set +e
|
||||
admininstance=$(gosu iobroker iob list instances | grep 'disabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is disabled."; fi
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
echo "There was a problem detecting the admin instance of your iobroker."
|
||||
echo "Make sure the ioBroker installation you use has an admin instance or try again with a fresh installation and restore your configuration."
|
||||
echo "For more details see https://docs.buanet.de/iobroker-docker-image/docs/#restore"
|
||||
stop_on_error
|
||||
fi
|
||||
fi
|
||||
# check hostname
|
||||
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
||||
echo -n "Updating hostname to \"""$(hostname)""\"... "
|
||||
gosu iobroker iob 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=("$(gosu iobroker iob list instances)")
|
||||
repos_array=("$(gosu iobroker iob repo list)")
|
||||
updates_array=("$(gosu iobroker iob update)")
|
||||
# list iob instances
|
||||
echo "[DEBUG] ##### iobroker list instances #####"
|
||||
for i in "${instances_array[@]}"
|
||||
do
|
||||
echo "$i"
|
||||
done
|
||||
echo " "
|
||||
echo "[DEBUG] ##### iobroker repo list #####"
|
||||
for i in "${repos_array[@]}"
|
||||
do
|
||||
echo "$i"
|
||||
done
|
||||
echo " "
|
||||
echo "[DEBUG] ##### iobroker update #####"
|
||||
for i in "${updates_array[@]}"
|
||||
do
|
||||
echo "$i"
|
||||
done
|
||||
echo " "
|
||||
unset IFS
|
||||
fi
|
||||
|
||||
#####
|
||||
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 4 of 5: Applying Special Settings -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
|
||||
# Checking ENV for Adminport
|
||||
if [[ "$adminport" != "" && "$multihost" != "slave" ]]; then
|
||||
adminportold=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="port": )[^,]*')
|
||||
admininstanceshort=$(echo "$admininstance" | grep -m 1 -o 'admin..')
|
||||
if [[ "$adminport" != "$adminportold" ]]; then
|
||||
echo "IOB_ADMINPORT is set and does not match port configured in ioBroker."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected Admin Port in ioBroker: " "$adminportold"; fi
|
||||
echo "Setting Adminport to \"""$adminport""\"... "
|
||||
gosu iobroker iob set "$admininstanceshort" --port "$adminport"
|
||||
echo "Done."
|
||||
echo " "
|
||||
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/.docker_config/.backitup
|
||||
echo "true" > /opt/scripts/.docker_config/.backitup # old path, needed until changed in backitup
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Checking ENV for AVAHI
|
||||
if [[ "$avahi" = "true" && "$offlinemode" = "true" ]]; then
|
||||
echo "AVAHI is \"true\", but OFFLINE_MODE is also \"true\". Skipping Avahi daemon setup."
|
||||
elif [[ "$avahi" = "true" ]]; then
|
||||
echo "AVAHI is \"true\". Running setup script... "
|
||||
chmod 755 /opt/scripts/setup_avahi.sh
|
||||
bash /opt/scripts/setup_avahi.sh
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# checking ENV for USBDEVICES
|
||||
if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||
echo "USBDEVICES is set."
|
||||
IFS=';' read -ra devicearray <<< "$usbdevices"
|
||||
for i in "${devicearray[@]}"
|
||||
do
|
||||
if [[ -e "$i" ]]; then
|
||||
echo -n "Setting permissions for \"""$i""\"... "
|
||||
chown root:dialout "$i"
|
||||
chmod g+rw "$i"
|
||||
echo "Done."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Permissions set: " "$(ls -al "$i")"; fi
|
||||
else
|
||||
echo "Looks like the device \"""$i""\" does not exist."
|
||||
echo "Did you mount it correctly by using the \"--device\" option?"
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices)."
|
||||
stop_on_error
|
||||
fi
|
||||
done
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Checking for Userscripts in /opt/userscripts
|
||||
if [[ $(find /opt/userscripts -type f | wc -l) -lt 1 ]]; then
|
||||
echo -n "There is no data detected in /opt/userscripts. Restoring exapmple userscripts... "
|
||||
tar -xf /opt/initial_userscripts.tar -C /
|
||||
chmod 755 /opt/userscripts/userscript_firststart_example.sh
|
||||
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
||||
echo "Done."
|
||||
elif [[ -f /opt/userscripts/userscript_firststart.sh || -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||
if [[ -f /opt/userscripts/userscript_firststart.sh && -f /opt/.docker_config/.first_run ]]; then
|
||||
echo "Userscript for first start detected and this is the first start of a new container."
|
||||
echo "Running userscript_firststart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_firststart.sh
|
||||
if ! bash /opt/userscripts/userscript_firststart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_everystart.sh
|
||||
if ! bash /opt/userscripts/userscript_everystart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
echo " "
|
||||
fi
|
||||
|
||||
|
||||
# Removing first run an fresh install markers when exists
|
||||
if [[ -f /opt/.docker_config/.first_run ]]; then rm -f /opt/.docker_config/.first_run; fi
|
||||
if [[ -f /opt/iobroker/.fresh_install ]]; then rm -f /opt/iobroker/.fresh_install; fi
|
||||
|
||||
#####
|
||||
# STEP 5 - Starting ioBroker
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 5 of 5: ioBroker Startup -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
echo "Starting ioBroker... "
|
||||
echo " "
|
||||
echo "##### #### ### ## # iobroker.js-controller log output # ## ### #### #####"
|
||||
|
||||
# Setting healthcheck status to "running"
|
||||
echo "running" > /opt/.docker_config/.healthcheck
|
||||
|
||||
# Function for graceful shutdown by SIGTERM signal
|
||||
shut_down() {
|
||||
echo " "
|
||||
echo "Recived termination signal (SIGTERM)."
|
||||
echo "Shutting down ioBroker... "
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
# Trap to get signal for graceful shutdown
|
||||
trap 'shut_down' SIGTERM
|
||||
|
||||
# IoBroker start
|
||||
gosu iobroker node node_modules/iobroker.js-controller/controller.js & wait
|
||||
|
||||
# Fallback process for keeping container running when ioBroker is stopped for maintenance (e.g. js-controller update)
|
||||
gosu iobroker tail -f /dev/null
|
||||
267
debian12/scripts/maintenance.sh
Normal file
267
debian12/scripts/maintenance.sh
Normal file
@@ -0,0 +1,267 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
autoconfirm= # can be set to 'yes' by command line option
|
||||
killbyname= # can be set to 'yes' by command line option (undocumented, only for use with backitup restore scripts)
|
||||
healthcheck=/opt/.docker_config/.healthcheck # path of healthcheck file
|
||||
pkill_timeout=10 # timeout for stopping iobroker in seconds
|
||||
|
||||
# check for user root
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "WARNING! This script should be executed as user "iobroker"! Please switch user and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# display help text
|
||||
display_help() {
|
||||
echo "This script helps you manage your ioBroker container!"
|
||||
echo " "
|
||||
echo "Usage: maintenance [ COMMAND ] [ OPTION ]"
|
||||
echo " maint [ COMMAND ] [ OPTION ]"
|
||||
echo " m [ COMMAND ] [ OPTION ]"
|
||||
echo " "
|
||||
echo "COMMANDS"
|
||||
echo "------------------"
|
||||
echo " status > reports the current state of maintenance mode"
|
||||
echo " on > switches mantenance mode ON"
|
||||
echo " off > switches mantenance mode OFF and stops or restarts the container"
|
||||
echo " upgrade > puts the container to maintenance mode and upgrades ioBroker"
|
||||
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 " "
|
||||
}
|
||||
|
||||
# check maintenance enabled
|
||||
maintenance_enabled() {
|
||||
[[ -f "$healthcheck" && "$(cat "$healthcheck")" == maintenance ]]
|
||||
}
|
||||
|
||||
# check status starting
|
||||
check_starting() {
|
||||
[[ -f "$healthcheck" && "$(cat "$healthcheck")" == starting ]]
|
||||
}
|
||||
|
||||
# display maintenance status
|
||||
maintenance_status() {
|
||||
if maintenance_enabled; then
|
||||
echo "Maintenance mode is turned ON."
|
||||
else
|
||||
echo "Maintenance mode is turned OFF."
|
||||
fi
|
||||
}
|
||||
|
||||
# enable maintenance mode
|
||||
enable_maintenance() {
|
||||
if maintenance_enabled; then
|
||||
echo "Maintenance mode is already turned ON."
|
||||
return
|
||||
fi
|
||||
|
||||
echo "You are now going to stop ioBroker and activate maintenance mode for this container."
|
||||
|
||||
if [[ "$killbyname" != yes ]]; then
|
||||
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
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Activating maintenance mode..."
|
||||
echo "maintenance" > "$healthcheck"
|
||||
sleep 1
|
||||
echo -n "Stopping ioBroker..."
|
||||
stop_iob
|
||||
}
|
||||
|
||||
# disable maintenance mode
|
||||
disable_maintenance() {
|
||||
if ! maintenance_enabled; then
|
||||
echo "Maintenance mode is already turned OFF."
|
||||
return
|
||||
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
|
||||
fi
|
||||
|
||||
echo "Deactivating maintenance mode and forcing container to stop or restart..."
|
||||
echo "stopping" > "$healthcheck"
|
||||
pkill -u iobroker
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
# upgrade js-controller
|
||||
upgrade_jscontroller() {
|
||||
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 "During the upgrade process, the container will automatically switch into maintenance mode and stop ioBroker."
|
||||
echo "Depending on the restart policy, your container will be stopped or restarted automatically after the upgrade."
|
||||
|
||||
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
|
||||
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 iobroker
|
||||
}
|
||||
|
||||
# stop iobroker and wait until all processes stopped or pkill_timeout is reached
|
||||
stop_iob() {
|
||||
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
|
||||
elif (( status == 1 )); then # no processes matched
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "$killbyname" != yes ]]; then
|
||||
# pgrep exits with status 1 when there are no matches
|
||||
while pgrep -u iobroker -f 'io\..' > /dev/null; (( $? != 1 )); do
|
||||
if (($(date +%s) > timeout)); then
|
||||
echo -e "\nTimeout reached. Killing remaining processes..."
|
||||
pgrep --list-full -u iobroker -f 'io\..'
|
||||
pkill --signal SIGKILL -u iobroker -f 'io\..'
|
||||
echo "Done."
|
||||
return
|
||||
fi
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
else
|
||||
for ((i=0; i<3; i++)); do
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
fi
|
||||
|
||||
echo -e "Done."
|
||||
echo " "
|
||||
}
|
||||
|
||||
# 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
|
||||
fi
|
||||
|
||||
if ! maintenance_enabled > /dev/null; then
|
||||
echo -n "Stopping ioBroker..."
|
||||
stop_iob
|
||||
fi
|
||||
|
||||
echo "Container will be stopped or restarted in 5 seconds..."
|
||||
sleep 5
|
||||
echo "stopping" > "$healthcheck"
|
||||
pkill -u iobroker
|
||||
}
|
||||
|
||||
# restore iobroker <<< Removed due to changes in backup structure and the availability of the graphical restore with backitup
|
||||
restore_iobroker() {
|
||||
echo "Due to changes in ioBroker backup structure, restoring is no longer supported by this script."
|
||||
echo "Please use the original ioBroker commands or the graphical ui of backitup adapter."
|
||||
}
|
||||
|
||||
# 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)
|
||||
run=(display_help)
|
||||
;;
|
||||
status|stat|s)
|
||||
run=(maintenance_status)
|
||||
;;
|
||||
on)
|
||||
run=(enable_maintenance)
|
||||
;;
|
||||
off)
|
||||
run=(disable_maintenance)
|
||||
;;
|
||||
upgrade|upgr|u)
|
||||
run=(upgrade_jscontroller)
|
||||
;;
|
||||
restart|rest|r)
|
||||
run=(restart_container)
|
||||
;;
|
||||
restore)
|
||||
run=(restore_iobroker)
|
||||
;;
|
||||
-y|--yes)
|
||||
autoconfirm=yes
|
||||
;;
|
||||
-kbn|--killbyname)
|
||||
killbyname=yes
|
||||
;;
|
||||
--)
|
||||
break
|
||||
;;
|
||||
*)
|
||||
>&2 echo "Unknown parameter: $arg"
|
||||
>&2 echo "Please try again or see help (help|-h|--help)."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
"${run[@]}"
|
||||
40
debian12/scripts/setup_avahi.sh
Normal file
40
debian12/scripts/setup_avahi.sh
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||
then
|
||||
echo "[setup_avahi.sh] Avahi is already installed. Nothing to do here."
|
||||
else
|
||||
echo -n "[setup_avahi.sh] Avahi-daemon is NOT installed. Going to install it now... "
|
||||
apt-get -q update > /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get -q -y --no-install-recommends install libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||
# Silent Cleanup
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||
echo "Done."
|
||||
echo -n "[setup_avahi.sh] Configuring avahi-daemon... "
|
||||
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
||||
echo "Done."
|
||||
echo -n "[setup_avahi.sh] Configuring dbus... "
|
||||
mkdir /var/run/dbus/
|
||||
echo "Done."
|
||||
fi
|
||||
|
||||
if [ -f /var/run/dbus/pid ];
|
||||
then
|
||||
rm -f /var/run/dbus/pid
|
||||
fi
|
||||
|
||||
if [ -f /var/run/avahi-daemon//pid ];
|
||||
then
|
||||
rm -f /var/run/avahi-daemon//pid
|
||||
fi
|
||||
|
||||
echo -n "[setup_avahi.sh] Starting dbus... "
|
||||
dbus-daemon --system >> /opt/scripts/avahi_startup.log 2>&1
|
||||
echo "Done."
|
||||
|
||||
echo -n "[setup_avahi.sh] Starting avahi-daemon... "
|
||||
avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 &
|
||||
echo "Done."
|
||||
|
||||
exit 0
|
||||
357
debian12/scripts/setup_iob_db.sh
Normal file
357
debian12/scripts/setup_iob_db.sh
Normal file
@@ -0,0 +1,357 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# reading env
|
||||
debug=$DEBUG
|
||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME # new for sentinel support
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS # new for auth support
|
||||
setgid=$SETGID
|
||||
setuid=$SETUID
|
||||
statesdbhost=$IOB_STATESDB_HOST
|
||||
statesdbport=$IOB_STATESDB_PORT
|
||||
statesdbtype=$IOB_STATESDB_TYPE
|
||||
statesdbname=$IOB_STATESDB_NAME # new for sentinel support
|
||||
statesdbpass=$IOB_STATESDB_PASS # new for auth support
|
||||
|
||||
# functions
|
||||
write_iobroker_json() {
|
||||
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
|
||||
}
|
||||
set_objectsdb_type() {
|
||||
if [[ "$objectsdbtype" != "$(jq -r '.objects.type' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_TYPE is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting type of objects db to \"""$objectsdbtype""\"... "
|
||||
jq --arg value "$objectsdbtype" '.objects.type = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_TYPE is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
}
|
||||
set_objectsdb_host() {
|
||||
if [[ $objectsdbhost == *","* ]]; then
|
||||
if [[ "$(jq -c -n --arg value "$objectsdbhost" '$value|split(",")')" != "$(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_HOST is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting host of objects db to \"""$objectsdbhost""\"... "
|
||||
jq --arg value "$objectsdbhost" '.objects.host = ($value|split(","))' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_HOST is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [[ $objectsdbname != "" ]]; then
|
||||
if [[ "$objectsdbname" != "$(jq -r '.objects.sentinelName' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_NAME is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting name of objects db to \"""$objectsdbname""\"... "
|
||||
jq --arg value "$objectsdbname" '.objects.sentinelName = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_NAME is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
else
|
||||
if [[ "$(jq -r '.objects.sentinelName' /opt/iobroker/iobroker-data/iobroker.json)" != "mymaster" ]]; then
|
||||
echo "IOB_OBJECTSDB_NAME is not available. Using default value \"mymaster\" instead."
|
||||
echo -n "Setting name of objects db to \"mymaster\"... "
|
||||
jq --arg value "mymaster" '.objects.sentinelName = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_NAME is not available but default value \"mymaster\" meets detected ioBroker installation.."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "$objectsdbhost" != "$(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_HOST is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting host of objects db to \"""$objectsdbhost""\"... "
|
||||
jq --arg value "$objectsdbhost" '.objects.host = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_HOST is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
set_objectsdb_port() {
|
||||
if [[ $objectsdbport == *","* ]]; then
|
||||
if [[ "$(jq -c -n --arg value "$objectsdbport" '$value|split(",")')" != "$(jq -r '.objects.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_PORT is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting port of objects db to \"""$objectsdbport""\"... "
|
||||
jq --arg value "$objectsdbport" '.objects.port = ($value|split(","))' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_PORT is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
else
|
||||
if [[ "$objectsdbport" != "$(jq -r '.objects.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_PORT is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting port of objects db to \"""$objectsdbport""\"... "
|
||||
jq --arg value "$objectsdbport" '.objects.port = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_PORT is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
set_objectsdb_pass() {
|
||||
if [[ "$objectsdbpass" == "none" ]]; then
|
||||
echo "IOB_OBJECTSDB_PASS is available but value is set to \"none\"."
|
||||
echo -n "Removing password of objects db... "
|
||||
jq '.objects.options.auth_pass = null' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
elif [[ "$objectsdbpass" != "$(jq -r '.objects.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_OBJECTSDB_PASS is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting password of objects db... "
|
||||
jq --arg value "$objectsdbpass" '.objects.options.auth_pass = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_OBJECTSDB_PASS is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
}
|
||||
set_statesdb_type() {
|
||||
if [[ "$statesdbtype" != "$(jq -r '.states.type' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_TYPE is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting type of states db to \"""$statesdbtype""\"... "
|
||||
jq --arg value "$statesdbtype" '.states.type = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_TYPE is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
}
|
||||
set_statesdb_host() {
|
||||
if [[ $statesdbhost == *","* ]]; then
|
||||
if [[ "$(jq -c -n --arg parm "$statesdbhost" '$parm|split(",")')" != "$(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_HOST is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting host of states db to \"""$statesdbhost""\"... "
|
||||
jq --arg value "$statesdbhost" '.states.host = ($value|split(","))' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_HOST is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
if [[ $statesdbname != "" ]]; then
|
||||
if [[ "$statesdbname" != "$(jq -r '.states.sentinelName' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_NAME is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting name of states db to \"""$statesdbname""\"... "
|
||||
jq --arg value "$statesdbname" '.states.sentinelName = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_NAME is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
else
|
||||
if [[ "$(jq -r '.states.sentinelName' /opt/iobroker/iobroker-data/iobroker.json)" != "mymaster" ]]; then
|
||||
echo "IOB_STATESDB_NAME is not available. Using default value \"mymaster\" instead."
|
||||
echo -n "Setting name of states db to \"mymaster\"... "
|
||||
jq --arg value "mymaster" '.states.sentinelName = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_NAME is not available but default value \"mymaster\" meets detected ioBroker installation.."
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "$statesdbhost" != "$(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_HOST is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting host of states db to \"""$statesdbhost""\"... "
|
||||
jq --arg value "$statesdbhost" '.states.host = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_HOST is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
set_statesdb_port() {
|
||||
if [[ $statesdbport == *","* ]]; then
|
||||
if [[ "$(jq -c -n --arg value "$statesdbport" '$value|split(",")')" != "$(jq -r '.states.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_PORT is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting port of states db to \"""$statesdbport""\"... "
|
||||
jq --arg value "$statesdbport" '.states.port = ($value|split(","))' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_PORT is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
else
|
||||
if [[ "$statesdbport" != "$(jq -r '.states.port' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_PORT is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting port of states db to \"""$statesdbport""\"... "
|
||||
jq --arg value "$statesdbport" '.states.port = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_PORT is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
fi
|
||||
}
|
||||
set_statesdb_pass() {
|
||||
if [[ "$statesdbpass" == "none" ]]; then
|
||||
echo "IOB_STATESDB_PASS is available but value is set to \"none\"."
|
||||
echo -n "Removing password of states db... "
|
||||
jq '.states.options.auth_pass = null' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
elif [[ "$statesdbpass" != "$(jq -r '.states.options.auth_pass' /opt/iobroker/iobroker-data/iobroker.json)" ]]; then
|
||||
echo "IOB_STATESDB_PASS is available but value is different from detected ioBroker installation."
|
||||
echo -n "Setting password of states db... "
|
||||
jq --arg value "$statesdbpass" '.states.options.auth_pass = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "IOB_STATESDB_PASS is available and value meets detected ioBroker installation."
|
||||
fi
|
||||
}
|
||||
config_error_output() {
|
||||
echo " "
|
||||
echo "Something went wrong. Looks like at least one parameter defining the custom db connection was not set properly or is missing."
|
||||
echo "Please check your configuration and try again."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
}
|
||||
|
||||
# parameter check
|
||||
if [[ "$1" == "-master" ]]; then # setup master
|
||||
echo "IOB_MULTIHOST is available and set to \"master\"."
|
||||
echo "Done."
|
||||
echo " "
|
||||
# multihost objects db
|
||||
if [[ "$objectsdbtype" != "" && "$objectsdbhost" != "" && "$objectsdbport" != "" ]]; then
|
||||
echo "Configuring custom objects db..."
|
||||
set_objectsdb_type
|
||||
set_objectsdb_host
|
||||
set_objectsdb_port
|
||||
if [[ "$objectsdbpass" != "" ]]; then set_objectsdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
elif [[ "$objectsdbtype" == "" && "$objectsdbhost" == "" && "$objectsdbport" == "" ]]; then
|
||||
echo "No custom objects db is set."
|
||||
if [[ "$(jq -r '.objects.host' /opt/iobroker/iobroker-data/iobroker.json)" != "0.0.0.0" ]]; then
|
||||
echo -n "Configuring default objects db to accept external connections... "
|
||||
jq --arg value "0.0.0.0" '.objects.host = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "Default objects db is accepting external connections."
|
||||
fi
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_OBJECTSDB_TYPE = ""$objectsdbtype"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_HOST = ""$objectsdbhost"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_PORT = ""$objectsdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
# multihost states db
|
||||
if [[ "$statesdbtype" != "" && "$statesdbhost" != "" && "$statesdbport" != "" ]]; then
|
||||
echo "Configuring custom states db..."
|
||||
set_statesdb_type
|
||||
set_statesdb_host
|
||||
set_statesdb_port
|
||||
if [[ "$statesdbpass" != "" ]]; then set_statesdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
elif [[ "$statesdbtype" == "" && "$statesdbhost" == "" && "$statesdbport" == "" ]]; then
|
||||
echo "No custom states db is set."
|
||||
if [[ "$(jq -r '.states.host' /opt/iobroker/iobroker-data/iobroker.json)" != "0.0.0.0" ]]; then
|
||||
echo -n "Configuring default states db to accept external connections... "
|
||||
jq --arg value "0.0.0.0" '.states.host = $value' /opt/iobroker/iobroker-data/iobroker.json > /opt/iobroker/iobroker-data/iobroker.json.tmp
|
||||
write_iobroker_json
|
||||
echo "Done."
|
||||
else
|
||||
echo "Default states db is accepting external connections."
|
||||
fi
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_STATESDB_TYPE = ""$statesdbtype"
|
||||
echo "[DEBUG] IOB_STATESDB_HOST = ""$statesdbhost"
|
||||
echo "[DEBUG] IOB_STATESDB_PORT = ""$statesdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
elif [[ "$1" == "-slave" ]]; then # setup slave
|
||||
echo "IOB_MULTIHOST is available and set to \"slave\"."
|
||||
echo "Done."
|
||||
echo " "
|
||||
# multihost slave objects db connection
|
||||
if [[ "$objectsdbtype" != "" && "$objectsdbhost" != "" && "$objectsdbport" != "" ]]; then
|
||||
echo "Configuring objects db connection..."
|
||||
set_objectsdb_type
|
||||
set_objectsdb_host
|
||||
set_objectsdb_port
|
||||
if [[ "$objectsdbpass" != "" ]]; then set_objectsdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_OBJECTSDB_TYPE = ""$objectsdbtype"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_HOST = ""$objectsdbhost"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_PORT = ""$objectsdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
# multihost slave states db connection
|
||||
if [[ "$statesdbtype" != "" && "$statesdbhost" != "" && "$statesdbport" != "" ]]; then
|
||||
echo "Configuring states db connection..."
|
||||
set_statesdb_type
|
||||
set_statesdb_host
|
||||
set_statesdb_port
|
||||
if [[ "$statesdbpass" != "" ]]; then set_statesdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_STATESDB_TYPE = ""$statesdbtype"
|
||||
echo "[DEBUG] IOB_STATESDB_HOST = ""$statesdbhost"
|
||||
echo "[DEBUG] IOB_STATESDB_PORT = ""$statesdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
elif [[ "$1" == "-objectsdb" ]]; then # setup objects db standalone
|
||||
if [[ "$objectsdbtype" != "" && "$objectsdbhost" != "" && "$objectsdbport" != "" ]]; then
|
||||
echo "Configuring custom objects db..."
|
||||
set_objectsdb_type
|
||||
set_objectsdb_host
|
||||
set_objectsdb_port
|
||||
if [[ "$objectsdbpass" != "" ]]; then set_objectsdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_OBJECTSDB_TYPE = ""$objectsdbtype"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_HOST = ""$objectsdbhost"
|
||||
echo "[DEBUG] IOB_OBJECTSDB_PORT = ""$objectsdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
elif [[ "$1" == "-statesdb" ]]; then # setup states db standalone
|
||||
if [[ "$statesdbtype" != "" && "$statesdbhost" != "" && "$statesdbport" != "" ]]; then
|
||||
echo "Configuring custom states db..."
|
||||
set_statesdb_type
|
||||
set_statesdb_host
|
||||
set_statesdb_port
|
||||
if [[ "$statesdbpass" != "" ]]; then set_statesdb_pass; fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] IOB_STATESDB_TYPE = ""$statesdbtype"
|
||||
echo "[DEBUG] IOB_STATESDB_HOST = ""$statesdbhost"
|
||||
echo "[DEBUG] IOB_STATESDB_PORT = ""$statesdbport"
|
||||
fi
|
||||
config_error_output
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
83
debian12/scripts/setup_packages.sh
Normal file
83
debian12/scripts/setup_packages.sh
Normal file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
# Reading ENV
|
||||
set +u
|
||||
packages=$PACKAGES
|
||||
debug=$DEBUG
|
||||
set -u
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
check_package_preq() {
|
||||
# check for influx packages
|
||||
if [[ "$i" == "influxdb" || "$i" == "influxdb2-cli" ]]; then
|
||||
# add influxdata repo keys
|
||||
wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
|
||||
echo "deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdata.list
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
fi
|
||||
}
|
||||
check_package_validity() {
|
||||
# check string for double spaces
|
||||
while echo "$packages" | grep -q ' '; do
|
||||
packages=$(echo "$packages" | sed 's/ / /g')
|
||||
done
|
||||
# remove packages when "influxdb" AND "influxdb2-cli"
|
||||
if echo "$packages" | grep -qw "influxdb" && echo "$packages" | grep -qw "influxdb2-cli"; then
|
||||
echo "PACKAGES includes influxdb AND influxdb2-cli."
|
||||
echo "As installing both packages together is not possible, they will be skipped."
|
||||
packages=$(echo "$packages" | sed 's/influxdb2-cli//g;s/influxdb//g')
|
||||
# check string for double spaces again
|
||||
while echo "$packages" | grep -q ' '; do
|
||||
packages=$(echo "$packages" | sed 's/ / /g')
|
||||
done
|
||||
if [[ $debug == "true" ]]; then echo "[DEBUG] New list of packages: ""$packages"; fi
|
||||
echo " "
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$1" == "-install" ]]; then
|
||||
echo " "
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
check_package_validity
|
||||
for i in $packages; do
|
||||
if ! dpkg -s "$i" >/dev/null 2>&1; then
|
||||
echo -n "$i is not installed. Installing... "
|
||||
check_package_preq >> /opt/scripts/setup_packages.log 2>&1
|
||||
if ! apt-get -q -y --no-install-recommends install "$i" >> /opt/scripts/setup_packages.log 2>&1; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/scripts/setup_packages.log\"."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
else
|
||||
echo "$i is already installed."
|
||||
fi
|
||||
done
|
||||
elif [[ "$1" == "-update" ]]; then
|
||||
echo -n "PACKAGES_UPDATE is set. Updating Linux packages on first run... "
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
return1=$?
|
||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||
return2=$?
|
||||
if [[ "$return1" -ne 0 || "$return2" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/scripts/setup_packages.log\"."
|
||||
echo "Make sure the container has internet access to get the latest package updates."
|
||||
echo "This has no impact to the setup process. The script will continue."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
else
|
||||
echo "No paramerter found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Silent Cleanup
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||
|
||||
exit 0
|
||||
13
debian12/userscripts/userscript_everystart_example.sh
Normal file
13
debian12/userscripts/userscript_everystart_example.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This is an example script file.
|
||||
# To run the Script on every start of the container you have to rename it to userscript_everystart.sh.
|
||||
|
||||
# You can add your advanced script code here!
|
||||
|
||||
echo " "
|
||||
echo "I'm your startscript userscript_everystart.sh. I will run on EVERY container startup."
|
||||
echo " "
|
||||
|
||||
|
||||
exit 0
|
||||
12
debian12/userscripts/userscript_firststart_example.sh
Normal file
12
debian12/userscripts/userscript_firststart_example.sh
Normal file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This is an example script file.
|
||||
# To run the Script on the first start of a new container you have to rename it to userscript_firststart.sh.
|
||||
|
||||
# You can add your advanced script code here!
|
||||
|
||||
echo " "
|
||||
echo "I'm your startscript userscript_firststart.sh. I will run only on the FIRST startup of the container."
|
||||
echo " "
|
||||
|
||||
exit 0
|
||||
155
docs/README_docker_hub_buanet.md
Normal file
155
docs/README_docker_hub_buanet.md
Normal file
@@ -0,0 +1,155 @@
|
||||
<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-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v6, v7, v8) usually include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
* Source code: [Github Repository](https://github.com/buanet/ioBroker.docker)
|
||||
* All other questions should be answered here: [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/)
|
||||
|
||||
# Supported tags
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 22 versions
|
||||
* [`v11.0.0`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest-v11`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile)
|
||||
|
||||
### Node 20 versions
|
||||
* [`v10.0.0`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest-v10`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
IoBroker is an open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
|
||||
## Quick Start (for testing)
|
||||
|
||||
To quickly try out ioBroker in Docker, simply run:
|
||||
|
||||
```
|
||||
docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker
|
||||
```
|
||||
|
||||
**Note:**
|
||||
All data and settings will be lost when the container is removed or recreated. For production use, always use persistent storage (see below).
|
||||
|
||||
## Production Setup with Docker Compose
|
||||
|
||||
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
iobroker:
|
||||
container_name: iobroker
|
||||
image: buanet/iobroker
|
||||
hostname: iobroker
|
||||
restart: always
|
||||
ports:
|
||||
- "8081:8081"
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
|
||||
volumes:
|
||||
iobrokerdata:
|
||||
```
|
||||
|
||||
**Tip:**
|
||||
Depending on your adapters, you may need to expose additional ports or use a different network mode (e.g. `network_mode: host`).
|
||||
See the [Networking section](#notes-about-docker-networks) for more details.
|
||||
|
||||
## Persistent Data
|
||||
|
||||
To keep your ioBroker configuration and data, always mount a volume or path to `/opt/iobroker`:
|
||||
|
||||
**Command-line:**
|
||||
```
|
||||
-v iobrokerdata:/opt/iobroker
|
||||
```
|
||||
**Docker Compose:**
|
||||
```yaml
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
```
|
||||
|
||||
## Configuration via Environment Variables
|
||||
|
||||
You can use environment variables to automatically configure your ioBroker container at startup.
|
||||
|
||||
### Application Configuration
|
||||
|
||||
- `IOB_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port on startup
|
||||
- `IOB_BACKITUP_EXTDB` (optional) – Set `true` to enable external database backup in the Backitup adapter ([see docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires additional config for objectsdb and statesdb)
|
||||
- `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) – Type of objects DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
|
||||
### Special Features
|
||||
|
||||
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||
|
||||
### Environment Configuration
|
||||
|
||||
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||
- `LANG` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `LANGUAGE` (optional, default: de_DE:de) – Pre-generated: de_DE:de, en_US:en
|
||||
- `LC_ALL` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||
- `TZ` (optional, default: Europe/Berlin) – Set the timezone (any valid Linux timezone)
|
||||
- `USBDEVICES` (optional) – Set permissions for mounted devices (e.g. `/dev/ttyACM0`, separate multiple devices with ";")
|
||||
|
||||
## Notes about Docker Networks
|
||||
|
||||
The above examples use Docker's default bridge network. In many cases, it is better to use a user-defined bridge network.
|
||||
See [Docker docs: bridge differences](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge).
|
||||
|
||||
A bridge network works for most adapters if you map all required ports.
|
||||
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||
In these cases, consider using [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) networking.
|
||||
|
||||
For more information, see the [official Docker networking documentation](https://docs.docker.com/network/).
|
||||
|
||||
# Support the Project
|
||||
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.<br>
|
||||
See you soon. :)
|
||||
157
docs/README_docker_hub_iobroker.md
Normal file
157
docs/README_docker_hub_iobroker.md
Normal file
@@ -0,0 +1,157 @@
|
||||
##### Note: The image provided as [iobroker/iobroker](https://hub.docker.com/r/iobroker/iobroker) is a mirror of [buanet/iobroker](https://hub.docker.com/r/buanet/iobroker)
|
||||
|
||||
<img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/iobroker_logo.png" width="600" title="ioBroker Logo">
|
||||
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v6, v7, v8) usually include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
* Source code: [Github Repository](https://github.com/buanet/ioBroker.docker)
|
||||
* All other questions should be answered here: [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/)
|
||||
|
||||
# Supported tags
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 22 versions
|
||||
* [`v11.0.0`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest-v11`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile)
|
||||
|
||||
### Node 20 versions
|
||||
* [`v10.0.0`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest-v10`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
IoBroker is an open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
|
||||
## Quick Start (for testing)
|
||||
|
||||
To quickly try out ioBroker in Docker, simply run:
|
||||
|
||||
```
|
||||
docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker
|
||||
```
|
||||
|
||||
**Note:**
|
||||
All data and settings will be lost when the container is removed or recreated. For production use, always use persistent storage (see below).
|
||||
|
||||
## Production Setup with Docker Compose
|
||||
|
||||
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
iobroker:
|
||||
container_name: iobroker
|
||||
image: buanet/iobroker
|
||||
hostname: iobroker
|
||||
restart: always
|
||||
ports:
|
||||
- "8081:8081"
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
|
||||
volumes:
|
||||
iobrokerdata:
|
||||
```
|
||||
|
||||
**Tip:**
|
||||
Depending on your adapters, you may need to expose additional ports or use a different network mode (e.g. `network_mode: host`).
|
||||
See the [Networking section](#notes-about-docker-networks) for more details.
|
||||
|
||||
## Persistent Data
|
||||
|
||||
To keep your ioBroker configuration and data, always mount a volume or path to `/opt/iobroker`:
|
||||
|
||||
**Command-line:**
|
||||
```
|
||||
-v iobrokerdata:/opt/iobroker
|
||||
```
|
||||
**Docker Compose:**
|
||||
```yaml
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
```
|
||||
|
||||
## Configuration via Environment Variables
|
||||
|
||||
You can use environment variables to automatically configure your ioBroker container at startup.
|
||||
|
||||
### Application Configuration
|
||||
|
||||
- `IOB_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port on startup
|
||||
- `IOB_BACKITUP_EXTDB` (optional) – Set `true` to enable external database backup in the Backitup adapter ([see docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires additional config for objectsdb and statesdb)
|
||||
- `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) – Type of objects DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
|
||||
### Special Features
|
||||
|
||||
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||
|
||||
### Environment Configuration
|
||||
|
||||
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||
- `LANG` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `LANGUAGE` (optional, default: de_DE:de) – Pre-generated: de_DE:de, en_US:en
|
||||
- `LC_ALL` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||
- `TZ` (optional, default: Europe/Berlin) – Set the timezone (any valid Linux timezone)
|
||||
- `USBDEVICES` (optional) – Set permissions for mounted devices (e.g. `/dev/ttyACM0`, separate multiple devices with ";")
|
||||
|
||||
## Notes about Docker Networks
|
||||
|
||||
The above examples use Docker's default bridge network. In many cases, it is better to use a user-defined bridge network.
|
||||
See [Docker docs: bridge differences](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge).
|
||||
|
||||
A bridge network works for most adapters if you map all required ports.
|
||||
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||
In these cases, consider using [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) networking.
|
||||
|
||||
For more information, see the [official Docker networking documentation](https://docs.docker.com/network/).
|
||||
|
||||
# Support the Project
|
||||
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.<br>
|
||||
See you soon. :)
|
||||
BIN
docs/img/iobroker_logo.png
Normal file
BIN
docs/img/iobroker_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
BIN
docs/img/iobroker_logo_small.png
Normal file
BIN
docs/img/iobroker_logo_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
BIN
docs/img/pp_logo.png
Normal file
BIN
docs/img/pp_logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -1,84 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Backupscript für ein (wöchentliches) Backup von ioBroker unter Docker auf einer Synology Disk Station (Sicherung des ioBroker-Verzeichnises).
|
||||
# Vorhaltezeit der letzten Backups: 90 Tage, ältere Backups werden automatisch gelöscht.
|
||||
#
|
||||
# By André Germann
|
||||
# Version 1.0 (22.03.2017)
|
||||
#
|
||||
# ACHTUNG: Dieses Script muss vorher auf die Synology Disk Station kopiert und dann auch dort ausgeführt werden!
|
||||
# Für die geplante, regelmäßige Ausführung bietet sich der Aufgabenplaner der Disk Station an.
|
||||
#
|
||||
# ACHTUNG: Dieses Script stoppt vor der Sicherung des Verzeichnises den ioBroker Container!
|
||||
# Zur Sicherheit wird empfohlen ioBroker vor dem Backup innerhalb des Containers zu stoppen.
|
||||
# Dieses kann zum Beispiel über den vorherigen Aufruf des Scripts iobroker_stop.sh aus ioBroker heraus erledigt werden.
|
||||
|
||||
|
||||
# Deklaration der Variablen. Pfade und Bezeichnungen müssen ggf. entsprechend angepasst werden.
|
||||
|
||||
iobrokerPATH='/volume1/docker/mount/iobroker' # Pfad des gemounteten ioBroker-Verzeichnises (zu sicherndes Verzeichnis) auf der Synology Disk Station
|
||||
backupPATH='/volume1/backup/Homeautomation/iobroker/backup.weekly' # Pfad zum Speichern des Backups
|
||||
iobrokerCONTAINERNAME='iobroker' # Name des ioBroker-Containers in Docker
|
||||
|
||||
|
||||
# Start Script - Ab hier muss nichts mehr geändert werden!
|
||||
|
||||
echo "#####################################################"
|
||||
echo "############## Backupscript gestartet. ##############"
|
||||
echo "#####################################################"
|
||||
|
||||
|
||||
### Backup ioBroker-Verzeichnis
|
||||
|
||||
|
||||
# ioBroker-Container stoppen
|
||||
|
||||
echo ""
|
||||
echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestoppt..."
|
||||
|
||||
docker stop $iobrokerCONTAINERNAME > /dev/null
|
||||
|
||||
echo "Container in Docker gestoppt."
|
||||
echo ""
|
||||
echo "######################################################"
|
||||
sleep 5
|
||||
|
||||
|
||||
# Backupdatei erstellen
|
||||
|
||||
echo ""
|
||||
echo "Der Ordner $iobrokerPATH wird gesichert..."
|
||||
|
||||
tar -czf "$backupPATH/backup-$(date +%d.%m.%y-%R).tar.gz" "$iobrokerPATH"
|
||||
|
||||
echo "Sicherung des Ordners erstellt."
|
||||
echo ""
|
||||
echo "######################################################"
|
||||
sleep 5
|
||||
|
||||
|
||||
# Alte Backups löschen (Löscht per "rm" alle "*.tar.gz"-Dateien im Ordner, die älter als 90 Tage sind)
|
||||
|
||||
echo ""
|
||||
echo "Entfernen alter Backups aus dem Verzeichnis $backupPATH..."
|
||||
|
||||
find -P "$backupPATH/" -maxdepth 1 -type f \( -name '*.tar.gz' \) -ctime +19 -exec rm {} \;
|
||||
|
||||
echo "Alte Backups wurden entfernt."
|
||||
echo ""
|
||||
echo "######################################################"
|
||||
sleep 5
|
||||
|
||||
|
||||
# ioBroker-Container starten
|
||||
|
||||
echo ""
|
||||
echo "Der ioBroker-Container ($iobrokerCONTAINERNAME) in Docker wird gestartet..."
|
||||
|
||||
docker start $iobrokerCONTAINERNAME > /dev/null
|
||||
|
||||
echo "Container in Docker gestartet."
|
||||
echo ""
|
||||
echo "################### Script Ende ######################"
|
||||
|
||||
exit 0
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Einfaches Script zum Stoppen von ioBroker.
|
||||
# Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker neu zu starten.
|
||||
|
||||
cd /opt/iobroker
|
||||
./iobroker stop
|
||||
sleep 5
|
||||
./iobroker start
|
||||
|
||||
exit 0
|
||||
@@ -1,9 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Einfaches Script zum Stoppen von ioBroker.
|
||||
# Kann zum Beispiel aus ioBroker heraus aufgerufen werden um ioBroker zu stoppen.
|
||||
|
||||
cd /opt/iobroker
|
||||
./iobroker stop
|
||||
|
||||
exit 0
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm /var/run/dbus/pid
|
||||
dbus-daemon --system
|
||||
|
||||
/etc/init.d/avahi-daemon stop
|
||||
sleep 5
|
||||
/etc/init.d/avahi-daemon start
|
||||
|
||||
exit 0
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -f .install_host ];
|
||||
then
|
||||
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json
|
||||
rm .install_host
|
||||
fi
|
||||
|
||||
/opt/scripts/avahi_startup.sh
|
||||
sleep 5
|
||||
cd /opt/iobroker
|
||||
./iobroker start
|
||||
cd /
|
||||
/bin/bash
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -f .install_host ];
|
||||
then
|
||||
sed -i "s/$(cat .install_host)/$(hostname)/g" iobroker-data/objects.json
|
||||
rm .install_host
|
||||
fi
|
||||
|
||||
/opt/scripts/avahi_startup.sh
|
||||
sleep 5
|
||||
./iobroker start
|
||||
cd /
|
||||
/bin/bash
|
||||
Reference in New Issue
Block a user