├── .github
└── workflows
│ └── flowzone.yml
├── .gitignore
├── .versionbot
└── CHANGELOG.yml
├── CHANGELOG.md
├── Dockerfile
├── LICENSE
├── README.md
├── VERSION
├── bin
└── balena-mdns-publisher
├── config
├── confd
│ ├── conf.d
│ │ └── env.toml
│ └── templates
│ │ └── env.tmpl
└── services
│ └── balena-mdns-publisher.service
├── docker-hc
├── package-lock.json
├── package.json
├── repo.yml
├── src
└── app.ts
├── tsconfig.json
└── typings
└── dbus-native.d.ts
/.github/workflows/flowzone.yml:
--------------------------------------------------------------------------------
1 | name: Flowzone
2 | on:
3 | pull_request:
4 | types: [opened, synchronize, closed]
5 | branches:
6 | - "main"
7 | - "master"
8 | jobs:
9 | flowzone:
10 | name: Flowzone
11 | uses: product-os/flowzone/.github/workflows/flowzone.yml@master
12 | secrets: inherit
13 | with:
14 | docker_images: balena/balena-mdns-publisher
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Numerous always-ignore extensions
2 | *.diff
3 | *.err
4 | *.orig
5 | *.log
6 | *.rej
7 | *.swo
8 | *.swp
9 | *.zip
10 | *.vi
11 | *~
12 | *.sass-cache
13 | .#*
14 |
15 | # OS or Editor folders
16 | .DS_Store
17 | ._*
18 | Thumbs.db
19 | .cache
20 | .project
21 | .settings
22 | .tmproj
23 | *.esproj
24 | nbproject
25 | *.sublime-project
26 | *.sublime-workspace
27 |
28 | # Komodo
29 | *.komodoproject
30 | .komodotools
31 |
32 | # Folders to ignore
33 | .hg
34 | .svn
35 | .CVS
36 | .idea
37 | node_modules
38 | dist/
39 | build/
40 |
41 | config/env
42 | Procfile
43 | deployment/
44 |
45 | src/**/*.js
46 | src/**/*.js.map
47 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to this project will be documented in this file
4 | automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
5 | This project adheres to [Semantic Versioning](http://semver.org/).
6 |
7 | # v1.27.192
8 | ## (2025-01-21)
9 |
10 |
11 |
12 | Update balena/open-balena-base Docker tag to v18.0.24 [balena-renovate[bot]]
13 |
14 | > ## open-balena-base-18.0.24
15 | > ### (2025-01-21)
16 | >
17 | > * Update dependency node to v22.13.1 [Self-hosted Renovate Bot]
18 | >
19 |
20 |
21 |
22 | # v1.27.191
23 | ## (2025-01-07)
24 |
25 |
26 |
27 | Update balena/open-balena-base Docker tag to v18.0.23 [balena-renovate[bot]]
28 |
29 | > ## open-balena-base-18.0.23
30 | > ### (2025-01-07)
31 | >
32 | > * Update dependency node to v22.13.0 [Self-hosted Renovate Bot]
33 | >
34 |
35 |
36 |
37 | # v1.27.190
38 | ## (2025-01-06)
39 |
40 |
41 |
42 | Update balena/open-balena-base Docker tag to v18.0.22 [balena-renovate[bot]]
43 |
44 | > ## open-balena-base-18.0.22
45 | > ### (2025-01-06)
46 | >
47 | > * Update dependency npm to v11 [Self-hosted Renovate Bot]
48 | >
49 |
50 |
51 |
52 | # v1.27.189
53 | ## (2024-12-05)
54 |
55 |
56 |
57 | Update balena/open-balena-base Docker tag to v18.0.21 [balena-renovate[bot]]
58 |
59 | > ## open-balena-base-18.0.21
60 | > ### (2024-12-04)
61 | >
62 | > * Update dependency npm to v10.9.2 [Self-hosted Renovate Bot]
63 | >
64 |
65 |
66 |
67 | # v1.27.188
68 | ## (2024-12-03)
69 |
70 |
71 |
72 | Update balena/open-balena-base Docker tag to v18.0.20 [balena-renovate[bot]]
73 |
74 | > ## open-balena-base-18.0.20
75 | > ### (2024-12-03)
76 | >
77 | > * Update dependency node to v22.12.0 [Self-hosted Renovate Bot]
78 | >
79 |
80 |
81 |
82 | # v1.27.187
83 | ## (2024-12-02)
84 |
85 | * Lock file maintenance [balena-renovate[bot]]
86 |
87 | # v1.27.186
88 | ## (2024-12-02)
89 |
90 | * Lock file maintenance [balena-renovate[bot]]
91 |
92 | # v1.27.185
93 | ## (2024-11-25)
94 |
95 | * Lock file maintenance [balena-renovate[bot]]
96 |
97 | # v1.27.184
98 | ## (2024-11-21)
99 |
100 |
101 |
102 | Update balena/open-balena-base Docker tag to v18.0.19 [balena-renovate[bot]]
103 |
104 | > ## open-balena-base-18.0.19
105 | > ### (2024-11-21)
106 | >
107 | > * Update dependency npm to v10.9.1 [Self-hosted Renovate Bot]
108 | >
109 |
110 |
111 |
112 | # v1.27.183
113 | ## (2024-11-18)
114 |
115 |
116 |
117 | Update balena/open-balena-base Docker tag to v18.0.18 [balena-renovate[bot]]
118 |
119 | > ## open-balena-base-18.0.18
120 | > ### (2024-11-18)
121 | >
122 | > * Update ghcr.io/balena-io-modules/confd-releases Docker tag to v0.0.6 [Self-hosted Renovate Bot]
123 | >
124 |
125 |
126 |
127 | # v1.27.182
128 | ## (2024-11-18)
129 |
130 | * Lock file maintenance [balena-renovate[bot]]
131 |
132 | # v1.27.181
133 | ## (2024-11-11)
134 |
135 | * Lock file maintenance [balena-renovate[bot]]
136 |
137 | # v1.27.180
138 | ## (2024-11-04)
139 |
140 |
141 |
142 | Update balena/open-balena-base Docker tag to v18.0.17 [balena-renovate[bot]]
143 |
144 | > ## open-balena-base-18.0.17
145 | > ### (2024-11-04)
146 | >
147 | > * Update dependency node to v22.11.0 [Self-hosted Renovate Bot]
148 | >
149 |
150 |
151 |
152 | # v1.27.179
153 | ## (2024-11-04)
154 |
155 | * Lock file maintenance [balena-renovate[bot]]
156 |
157 | # v1.27.178
158 | ## (2024-11-03)
159 |
160 | * Update dependency @types/node to v22 [balena-renovate[bot]]
161 |
162 | # v1.27.177
163 | ## (2024-11-03)
164 |
165 | * Update Node.js to v22 [balena-renovate[bot]]
166 |
167 | # v1.27.176
168 | ## (2024-10-28)
169 |
170 | * Lock file maintenance [Self-hosted Renovate Bot]
171 |
172 | # v1.27.175
173 | ## (2024-10-21)
174 |
175 | * Update dependency @balena/lint to v9 [Self-hosted Renovate Bot]
176 |
177 | # v1.27.174
178 | ## (2024-10-21)
179 |
180 | * Lock file maintenance [Self-hosted Renovate Bot]
181 |
182 | # v1.27.173
183 | ## (2024-10-16)
184 |
185 |
186 |
187 | Update balena/open-balena-base Docker tag to v18.0.16 [Self-hosted Renovate Bot]
188 |
189 | > ## open-balena-base-18.0.16
190 | > ### (2024-10-16)
191 | >
192 | > * Update dependency node to v22.10.0 [Self-hosted Renovate Bot]
193 | >
194 |
195 |
196 |
197 | # v1.27.172
198 | ## (2024-10-14)
199 |
200 | * Lock file maintenance [Self-hosted Renovate Bot]
201 |
202 | # v1.27.171
203 | ## (2024-10-07)
204 |
205 | * Lock file maintenance [Self-hosted Renovate Bot]
206 |
207 | # v1.27.170
208 | ## (2024-10-03)
209 |
210 |
211 |
212 | Update balena/open-balena-base Docker tag to v18.0.15 [Self-hosted Renovate Bot]
213 |
214 | > ## open-balena-base-18.0.15
215 | > ### (2024-10-03)
216 | >
217 | > * Update dependency npm to v10.9.0 [Self-hosted Renovate Bot]
218 | >
219 |
220 |
221 |
222 | # v1.27.169
223 | ## (2024-09-30)
224 |
225 | * Lock file maintenance [Self-hosted Renovate Bot]
226 |
227 | # v1.27.168
228 | ## (2024-09-23)
229 |
230 | * Lock file maintenance [Self-hosted Renovate Bot]
231 |
232 | # v1.27.167
233 | ## (2024-09-17)
234 |
235 |
236 |
237 | Update balena/open-balena-base Docker tag to v18.0.14 [Self-hosted Renovate Bot]
238 |
239 | > ## open-balena-base-18.0.14
240 | > ### (2024-09-17)
241 | >
242 | > * Update dependency node to v22.9.0 [Self-hosted Renovate Bot]
243 | >
244 |
245 |
246 |
247 | # v1.27.166
248 | ## (2024-09-16)
249 |
250 | * Optimize finding which devices to publish & unpublish [Thodoris Greasidis]
251 |
252 | # v1.27.165
253 | ## (2024-09-16)
254 |
255 | * Optimize the API request to fetch only the uuid & of only the accessible devices [Thodoris Greasidis]
256 |
257 | # v1.27.164
258 | ## (2024-09-16)
259 |
260 | * Update dependency balena-sdk to v20 [Self-hosted Renovate Bot]
261 |
262 | # v1.27.163
263 | ## (2024-09-16)
264 |
265 | * Lock file maintenance [Self-hosted Renovate Bot]
266 |
267 | # v1.27.162
268 | ## (2024-09-09)
269 |
270 | * Lock file maintenance [Self-hosted Renovate Bot]
271 |
272 | # v1.27.161
273 | ## (2024-09-03)
274 |
275 |
276 |
277 | Update balena/open-balena-base Docker tag to v18.0.13 [Self-hosted Renovate Bot]
278 |
279 | > ## open-balena-base-18.0.13
280 | > ### (2024-09-03)
281 | >
282 | > * Update dependency node to v22.8.0 [Self-hosted Renovate Bot]
283 | >
284 |
285 |
286 |
287 | # v1.27.160
288 | ## (2024-09-02)
289 |
290 | * Lock file maintenance [Self-hosted Renovate Bot]
291 |
292 | # v1.27.159
293 | ## (2024-08-28)
294 |
295 |
296 |
297 | Update balena/open-balena-base Docker tag to v18.0.12 [Self-hosted Renovate Bot]
298 |
299 | > ## open-balena-base-18.0.12
300 | > ### (2024-08-28)
301 | >
302 | > * Update dependency npm to v10.8.3 [Self-hosted Renovate Bot]
303 | >
304 |
305 |
306 |
307 | # v1.27.158
308 | ## (2024-08-26)
309 |
310 | * Lock file maintenance [Self-hosted Renovate Bot]
311 |
312 | # v1.27.157
313 | ## (2024-08-22)
314 |
315 |
316 |
317 | Update balena/open-balena-base Docker tag to v18.0.11 [Self-hosted Renovate Bot]
318 |
319 | > ## open-balena-base-18.0.11
320 | > ### (2024-08-22)
321 | >
322 | > * Update dependency node to v22.7.0 [Self-hosted Renovate Bot]
323 | >
324 |
325 |
326 |
327 | # v1.27.156
328 | ## (2024-08-19)
329 |
330 | * Lock file maintenance [Self-hosted Renovate Bot]
331 |
332 | # v1.27.155
333 | ## (2024-08-19)
334 |
335 | * Lock file maintenance [Self-hosted Renovate Bot]
336 |
337 | # v1.27.154
338 | ## (2024-08-12)
339 |
340 | * Lock file maintenance [Self-hosted Renovate Bot]
341 |
342 | # v1.27.153
343 | ## (2024-08-06)
344 |
345 |
346 |
347 | Update balena/open-balena-base Docker tag to v18.0.10 [Self-hosted Renovate Bot]
348 |
349 | > ## open-balena-base-18.0.10
350 | > ### (2024-08-06)
351 | >
352 | > * Update dependency node to v22.6.0 [Self-hosted Renovate Bot]
353 | >
354 | > ## open-balena-base-18.0.9
355 | > ### (2024-07-23)
356 | >
357 | > * Update ghcr.io/balena-io-modules/confd-releases Docker tag to v0.0.5 [Self-hosted Renovate Bot]
358 | >
359 |
360 |
361 |
362 | # v1.27.152
363 | ## (2024-08-05)
364 |
365 | * Lock file maintenance [Self-hosted Renovate Bot]
366 |
367 | # v1.27.151
368 | ## (2024-07-29)
369 |
370 | * Lock file maintenance [Self-hosted Renovate Bot]
371 |
372 | # v1.27.150
373 | ## (2024-07-23)
374 |
375 |
376 |
377 | Update balena/open-balena-base Docker tag to v18.0.8 [Self-hosted Renovate Bot]
378 |
379 | > ## open-balena-base-18.0.8
380 | > ### (2024-07-23)
381 | >
382 | > * Switch to self-hosted [Anton Belodedenko]
383 | >
384 |
385 |
386 |
387 | # v1.27.149
388 | ## (2024-07-22)
389 |
390 | * Lock file maintenance [Self-hosted Renovate Bot]
391 |
392 | # v1.27.148
393 | ## (2024-07-19)
394 |
395 |
396 |
397 | Update balena/open-balena-base Docker tag to v18.0.7 [Self-hosted Renovate Bot]
398 |
399 | > ## open-balena-base-18.0.7
400 | > ### (2024-07-19)
401 | >
402 | > * Update dependency node to v22.5.1 [Self-hosted Renovate Bot]
403 | >
404 |
405 |
406 |
407 | # v1.27.147
408 | ## (2024-07-15)
409 |
410 | * Lock file maintenance [Self-hosted Renovate Bot]
411 |
412 | # v1.27.146
413 | ## (2024-07-10)
414 |
415 |
416 |
417 | Update balena/open-balena-base Docker tag to v18.0.6 [Self-hosted Renovate Bot]
418 |
419 | > ## open-balena-base-18.0.6
420 | > ### (2024-07-10)
421 | >
422 | > * Update dependency npm to v10.8.2 [Self-hosted Renovate Bot]
423 | >
424 |
425 |
426 |
427 | # v1.27.145
428 | ## (2024-07-08)
429 |
430 |
431 |
432 | Update balena/open-balena-base Docker tag to v18.0.5 [Self-hosted Renovate Bot]
433 |
434 | > ## open-balena-base-18.0.5
435 | > ### (2024-07-08)
436 | >
437 | > * Update dependency node to v22.4.1 [Self-hosted Renovate Bot]
438 | >
439 |
440 |
441 |
442 | # v1.27.144
443 | ## (2024-07-08)
444 |
445 | * Lock file maintenance [Self-hosted Renovate Bot]
446 |
447 | # v1.27.143
448 | ## (2024-07-02)
449 |
450 |
451 |
452 | Update balena/open-balena-base Docker tag to v18.0.4 [Self-hosted Renovate Bot]
453 |
454 | > ## open-balena-base-18.0.4
455 | > ### (2024-07-02)
456 | >
457 | > * Update dependency node to v22.4.0 [Self-hosted Renovate Bot]
458 | >
459 |
460 |
461 |
462 | # v1.27.142
463 | ## (2024-07-01)
464 |
465 |
466 |
467 | Update balena/open-balena-base Docker tag to v18.0.3 [Self-hosted Renovate Bot]
468 |
469 | > ## open-balena-base-18.0.3
470 | > ### (2024-07-01)
471 | >
472 | > * Empty commit to rebuild open-balena-base to fix CVE-2024-6387. [Carlo Miguel F. Cruz]
473 | >
474 |
475 |
476 |
477 | # v1.27.141
478 | ## (2024-07-01)
479 |
480 | * Lock file maintenance [Self-hosted Renovate Bot]
481 |
482 | # v1.27.140
483 | ## (2024-06-24)
484 |
485 | * Lock file maintenance [Self-hosted Renovate Bot]
486 |
487 | # v1.27.139
488 | ## (2024-06-17)
489 |
490 | * Lock file maintenance [Self-hosted Renovate Bot]
491 |
492 | # v1.27.138
493 | ## (2024-06-11)
494 |
495 |
496 |
497 | Update balena/open-balena-base Docker tag to v18.0.2 [Self-hosted Renovate Bot]
498 |
499 | > ## open-balena-base-18.0.2
500 | > ### (2024-06-11)
501 | >
502 | > * Update dependency node to v22.3.0 [Self-hosted Renovate Bot]
503 | >
504 |
505 |
506 |
507 | # v1.27.137
508 | ## (2024-06-10)
509 |
510 | * Lock file maintenance [Self-hosted Renovate Bot]
511 |
512 | # v1.27.136
513 | ## (2024-06-03)
514 |
515 | * Lock file maintenance [Self-hosted Renovate Bot]
516 |
517 | # v1.27.135
518 | ## (2024-05-29)
519 |
520 |
521 |
522 | Update balena/open-balena-base Docker tag to v18.0.1 [Self-hosted Renovate Bot]
523 |
524 | > ## open-balena-base-18.0.1
525 | > ### (2024-05-29)
526 | >
527 | > * Update dependency npm to v10.8.1 [Self-hosted Renovate Bot]
528 | >
529 |
530 |
531 |
532 | # v1.27.134
533 | ## (2024-05-28)
534 |
535 | * Use caret ranges for dependencies for more flexibility [Pagan Gazzard]
536 |
537 | # v1.27.133
538 | ## (2024-05-28)
539 |
540 |
541 |
542 | Update balena/open-balena-base Docker tag to v18 [Self-hosted Renovate Bot]
543 |
544 | > ## open-balena-base-18.0.0
545 | > ### (2024-05-28)
546 | >
547 | > * Update to nodejs 22.2.0 [Pagan Gazzard]
548 | >
549 |
550 |
551 |
552 | # v1.27.132
553 | ## (2024-05-28)
554 |
555 | * Update dependency lint-staged to v15.2.5 [Self-hosted Renovate Bot]
556 |
557 | # v1.27.131
558 | ## (2024-05-27)
559 |
560 | * Lock file maintenance [Self-hosted Renovate Bot]
561 |
562 | # v1.27.130
563 | ## (2024-05-24)
564 |
565 | * Update dependency lint-staged to v15.2.4 [Self-hosted Renovate Bot]
566 |
567 | # v1.27.129
568 | ## (2024-05-20)
569 |
570 | * Update dependency @types/lodash to v4.17.4 [Self-hosted Renovate Bot]
571 |
572 | # v1.27.128
573 | ## (2024-05-20)
574 |
575 | * Lock file maintenance [Self-hosted Renovate Bot]
576 |
577 | # v1.27.127
578 | ## (2024-05-19)
579 |
580 | * Update dependency @types/lodash to v4.17.3 [Self-hosted Renovate Bot]
581 |
582 | # v1.27.126
583 | ## (2024-05-19)
584 |
585 | * Update dependency @types/lodash to v4.17.2 [Self-hosted Renovate Bot]
586 |
587 | # v1.27.125
588 | ## (2024-05-15)
589 |
590 |
591 |
592 | Update balena/open-balena-base Docker tag to v17.0.20 [Self-hosted Renovate Bot]
593 |
594 | > ## open-balena-base-17.0.20
595 | > ### (2024-05-15)
596 | >
597 | > * Update dependency npm to v10.8.0 [Self-hosted Renovate Bot]
598 | >
599 |
600 |
601 |
602 | # v1.27.124
603 | ## (2024-05-13)
604 |
605 | * Lock file maintenance [Self-hosted Renovate Bot]
606 |
607 | # v1.27.123
608 | ## (2024-05-09)
609 |
610 |
611 |
612 | Update balena/open-balena-base Docker tag to v17.0.19 [Self-hosted Renovate Bot]
613 |
614 | > ## open-balena-base-17.0.19
615 | > ### (2024-05-09)
616 | >
617 | > * Update ghcr.io/balena-io-modules/confd-releases Docker tag to v0.0.4 [Self-hosted Renovate Bot]
618 | >
619 |
620 |
621 |
622 | # v1.27.122
623 | ## (2024-05-07)
624 |
625 | * Update dependency @types/lodash to v4.17.1 [Self-hosted Renovate Bot]
626 |
627 | # v1.27.121
628 | ## (2024-05-06)
629 |
630 | * Lock file maintenance [Self-hosted Renovate Bot]
631 |
632 | # v1.27.120
633 | ## (2024-05-01)
634 |
635 |
636 |
637 | Update balena/open-balena-base Docker tag to v17.0.18 [Self-hosted Renovate Bot]
638 |
639 | > ## open-balena-base-17.0.18
640 | > ### (2024-05-01)
641 | >
642 | > * Update ghcr.io/balena-io-modules/confd-releases Docker tag to v0.0.3 [Self-hosted Renovate Bot]
643 | >
644 |
645 |
646 |
647 | # v1.27.119
648 | ## (2024-05-01)
649 |
650 |
651 |
652 | Update balena/open-balena-base Docker tag to v17.0.17 [Self-hosted Renovate Bot]
653 |
654 | > ## open-balena-base-17.0.17
655 | > ### (2024-05-01)
656 | >
657 | > * Install confd from pre-packaged OCI [Kyle Harding]
658 | >
659 |
660 |
661 |
662 | # v1.27.118
663 | ## (2024-04-30)
664 |
665 |
666 |
667 | Update balena/open-balena-base Docker tag to v17.0.16 [Self-hosted Renovate Bot]
668 |
669 | > ## open-balena-base-17.0.16
670 | > ### (Invalid date)
671 | >
672 | > * Update dependency npm to v10.7.0 [Self-hosted Renovate Bot]
673 | >
674 |
675 |
676 |
677 | # v1.27.117
678 | ## (2024-04-29)
679 |
680 | * Lock file maintenance [Self-hosted Renovate Bot]
681 |
682 | # v1.27.116
683 | ## (2024-04-25)
684 |
685 |
686 |
687 | Update balena/open-balena-base Docker tag to v17.0.15 [Self-hosted Renovate Bot]
688 |
689 | > ## open-balena-base-17.0.15
690 | > ### (2024-04-25)
691 | >
692 | > * Update dependency npm to v10.6.0 [Self-hosted Renovate Bot]
693 | >
694 |
695 |
696 |
697 | # v1.27.115
698 | ## (2024-04-22)
699 |
700 | * Update dependency @balena/lint to v8.0.2 [Self-hosted Renovate Bot]
701 |
702 | # v1.27.114
703 | ## (2024-04-22)
704 |
705 | * Lock file maintenance [Self-hosted Renovate Bot]
706 |
707 | # v1.27.113
708 | ## (2024-04-15)
709 |
710 | * Lock file maintenance [Self-hosted Renovate Bot]
711 |
712 | # v1.27.112
713 | ## (2024-04-12)
714 |
715 | * Update dependency typescript to v5.4.5 [Self-hosted Renovate Bot]
716 |
717 | # v1.27.111
718 | ## (2024-04-12)
719 |
720 | * Update dependency @balena/lint to v8 [Self-hosted Renovate Bot]
721 |
722 | # v1.27.110
723 | ## (2024-04-10)
724 |
725 |
726 |
727 | Update balena/open-balena-base Docker tag to v17.0.14 [Self-hosted Renovate Bot]
728 |
729 | > ## open-balena-base-17.0.14
730 | > ### (2024-04-10)
731 | >
732 | > * Update dependency npm to v10.5.2 [Self-hosted Renovate Bot]
733 | >
734 |
735 |
736 |
737 | # v1.27.109
738 | ## (2024-04-10)
739 |
740 |
741 |
742 | Update balena/open-balena-base Docker tag to v17.0.13 [Self-hosted Renovate Bot]
743 |
744 | > ## open-balena-base-17.0.13
745 | > ### (2024-04-10)
746 | >
747 | > * Update dependency node to v21.7.3 [Self-hosted Renovate Bot]
748 | >
749 |
750 |
751 |
752 | # v1.27.108
753 | ## (2024-04-08)
754 |
755 | * Lock file maintenance [Self-hosted Renovate Bot]
756 |
757 | # v1.27.107
758 | ## (2024-04-07)
759 |
760 | * Update dependency typescript to v5.4.4 [Self-hosted Renovate Bot]
761 |
762 | # v1.27.106
763 | ## (2024-04-03)
764 |
765 |
766 |
767 | Update balena/open-balena-base Docker tag to v17.0.12 [Self-hosted Renovate Bot]
768 |
769 | > ## open-balena-base-17.0.12
770 | > ### (2024-04-03)
771 | >
772 | > * Update dependency node to v21.7.2 [Self-hosted Renovate Bot]
773 | >
774 |
775 |
776 |
777 | # v1.27.105
778 | ## (2024-04-03)
779 |
780 |
781 |
782 | Update balena/open-balena-base Docker tag to v17.0.11 [Self-hosted Renovate Bot]
783 |
784 | > ## open-balena-base-17.0.11
785 | > ### (2024-04-03)
786 | >
787 | > * Update dependency npm to v10.5.1 [Self-hosted Renovate Bot]
788 | >
789 |
790 |
791 |
792 | # v1.27.104
793 | ## (2024-04-01)
794 |
795 | * Update dependency balena-sdk to v19.5.10 [Self-hosted Renovate Bot]
796 |
797 | # v1.27.103
798 | ## (2024-04-01)
799 |
800 | * Update dependency balena-sdk to v19.5.9 [Self-hosted Renovate Bot]
801 |
802 | # v1.27.102
803 | ## (2024-04-01)
804 |
805 | * Lock file maintenance [Self-hosted Renovate Bot]
806 |
807 | # v1.27.101
808 | ## (2024-03-25)
809 |
810 | * Lock file maintenance [Self-hosted Renovate Bot]
811 |
812 | # v1.27.100
813 | ## (2024-03-23)
814 |
815 | * Update dependency typescript to v5.4.3 [Self-hosted Renovate Bot]
816 |
817 | # v1.27.99
818 | ## (2024-03-21)
819 |
820 | * Update dependency balena-sdk to v19.5.8 [Self-hosted Renovate Bot]
821 |
822 | # v1.27.98
823 | ## (2024-03-18)
824 |
825 | * Lock file maintenance [Self-hosted Renovate Bot]
826 |
827 | # v1.27.97
828 | ## (2024-03-18)
829 |
830 | * Lock file maintenance [Self-hosted Renovate Bot]
831 |
832 | # v1.27.96
833 | ## (2024-03-15)
834 |
835 | * Update dependency @types/lodash to v4.17.0 [Self-hosted Renovate Bot]
836 |
837 | # v1.27.95
838 | ## (2024-03-11)
839 |
840 | * Update dependency balena-sdk to v19.5.7 [Self-hosted Renovate Bot]
841 |
842 | # v1.27.94
843 | ## (2024-03-11)
844 |
845 | * Lock file maintenance [Self-hosted Renovate Bot]
846 |
847 | # v1.27.93
848 | ## (2024-03-10)
849 |
850 | * Update dependency balena-sdk to v19.5.6 [Self-hosted Renovate Bot]
851 |
852 | # v1.27.92
853 | ## (2024-03-09)
854 |
855 | * Update dependency typescript to v5.4.2 [Self-hosted Renovate Bot]
856 |
857 | # v1.27.91
858 | ## (2024-03-08)
859 |
860 |
861 |
862 | Update balena/open-balena-base Docker tag to v17.0.10 [Self-hosted Renovate Bot]
863 |
864 | > ## open-balena-base-17.0.10
865 | > ### (2024-03-08)
866 | >
867 | > * Update dependency node to v21.7.1 [Self-hosted Renovate Bot]
868 | >
869 |
870 |
871 |
872 | # v1.27.90
873 | ## (2024-03-06)
874 |
875 |
876 |
877 | Update balena/open-balena-base Docker tag to v17.0.9 [Self-hosted Renovate Bot]
878 |
879 | > ## open-balena-base-17.0.9
880 | > ### (2024-03-06)
881 | >
882 | > * Update dependency node to v21.7.0 [Self-hosted Renovate Bot]
883 | >
884 |
885 |
886 |
887 | # v1.27.89
888 | ## (2024-03-04)
889 |
890 | * Lock file maintenance [Self-hosted Renovate Bot]
891 |
892 | # v1.27.88
893 | ## (2024-02-29)
894 |
895 | * Update dependency balena-sdk to v19.5.5 [Self-hosted Renovate Bot]
896 |
897 | # v1.27.87
898 | ## (2024-02-28)
899 |
900 |
901 |
902 | Update balena/open-balena-base Docker tag to v17.0.8 [Self-hosted Renovate Bot]
903 |
904 | > ## open-balena-base-17.0.8
905 | > ### (2024-02-28)
906 | >
907 | > * Update dependency npm to v10.5.0 [Self-hosted Renovate Bot]
908 | >
909 |
910 |
911 |
912 | # v1.27.86
913 | ## (2024-02-27)
914 |
915 |
916 |
917 | Update balena/open-balena-base Docker tag to v17.0.7 [Self-hosted Renovate Bot]
918 |
919 | > ## open-balena-base-17.0.7
920 | > ### (2024-02-27)
921 | >
922 | > * Fix docker cache-from for no-system variants [Kyle Harding]
923 | >
924 |
925 |
926 |
927 | # v1.27.85
928 | ## (2024-02-27)
929 |
930 |
931 |
932 | Update balena/open-balena-base Docker tag to v17.0.6 [Self-hosted Renovate Bot]
933 |
934 | > ## open-balena-base-17.0.6
935 | > ### (2024-02-27)
936 | >
937 | > * Move the no-systemd compatibility tag to a suffix [Kyle Harding]
938 | >
939 |
940 |
941 |
942 | # v1.27.84
943 | ## (2024-02-26)
944 |
945 | * Lock file maintenance [Self-hosted Renovate Bot]
946 |
947 | # v1.27.83
948 | ## (2024-02-26)
949 |
950 | * Lock file maintenance [Self-hosted Renovate Bot]
951 |
952 | # v1.27.82
953 | ## (2024-02-22)
954 |
955 | * Update dependency husky to v9 [Self-hosted Renovate Bot]
956 |
957 | # v1.27.81
958 | ## (2024-02-19)
959 |
960 | * Lock file maintenance [Self-hosted Renovate Bot]
961 |
962 | # v1.27.80
963 | ## (2024-02-17)
964 |
965 | * Update dependency balena-sdk to v19.5.4 [Self-hosted Renovate Bot]
966 |
967 | # v1.27.79
968 | ## (2024-02-17)
969 |
970 | * Update dependency balena-sdk to v19.5.3 [Self-hosted Renovate Bot]
971 |
972 | # v1.27.78
973 | ## (2024-02-16)
974 |
975 | * Update dependency balena-sdk to v19.5.2 [Self-hosted Renovate Bot]
976 |
977 | # v1.27.77
978 | ## (2024-02-14)
979 |
980 |
981 |
982 | Update balena/open-balena-base Docker tag to v17.0.5 [Self-hosted Renovate Bot]
983 |
984 | > ## open-balena-base-17.0.5
985 | > ### (2024-02-14)
986 | >
987 | > * Update dependency node to v21.6.2 [Self-hosted Renovate Bot]
988 | >
989 |
990 |
991 |
992 | # v1.27.76
993 | ## (2024-02-12)
994 |
995 | * Lock file maintenance [Self-hosted Renovate Bot]
996 |
997 | # v1.27.75
998 | ## (2024-02-08)
999 |
1000 | * Update dependency lint-staged to v15.2.2 [Self-hosted Renovate Bot]
1001 |
1002 | # v1.27.74
1003 | ## (2024-02-05)
1004 |
1005 | * Update dependency balena-sdk to v19.5.1 [Self-hosted Renovate Bot]
1006 |
1007 | # v1.27.73
1008 | ## (2024-02-05)
1009 |
1010 | * Update dependency @balena/lint to v7.3.0 [Self-hosted Renovate Bot]
1011 |
1012 | # v1.27.72
1013 | ## (2024-02-05)
1014 |
1015 | * Lock file maintenance [Self-hosted Renovate Bot]
1016 |
1017 | # v1.27.71
1018 | ## (2024-02-03)
1019 |
1020 | * Update dependency lint-staged to v15.2.1 [Self-hosted Renovate Bot]
1021 |
1022 | # v1.27.70
1023 | ## (2024-02-02)
1024 |
1025 | * Update dependency @balena/lint to v7.2.6 [Self-hosted Renovate Bot]
1026 |
1027 | # v1.27.69
1028 | ## (2024-02-02)
1029 |
1030 | * Update dependency @balena/lint to v7.2.5 [Self-hosted Renovate Bot]
1031 |
1032 | # v1.27.68
1033 | ## (2024-01-29)
1034 |
1035 | * Update dependency balena-sdk to v19.5.0 [Self-hosted Renovate Bot]
1036 |
1037 | # v1.27.67
1038 | ## (2024-01-29)
1039 |
1040 | * Lock file maintenance [Self-hosted Renovate Bot]
1041 |
1042 | # v1.27.66
1043 | ## (2024-01-26)
1044 |
1045 | * Update dependency balena-sdk to v19.4.0 [Self-hosted Renovate Bot]
1046 |
1047 | # v1.27.65
1048 | ## (2024-01-24)
1049 |
1050 |
1051 |
1052 | Update balena/open-balena-base Docker tag to v17.0.4 [Self-hosted Renovate Bot]
1053 |
1054 | > ## open-balena-base-17.0.4
1055 | > ### (2024-01-24)
1056 | >
1057 | > * Update dependency npm to v10.4.0 [Self-hosted Renovate Bot]
1058 | >
1059 |
1060 |
1061 |
1062 | # v1.27.64
1063 | ## (2024-01-22)
1064 |
1065 |
1066 |
1067 | Update balena/open-balena-base Docker tag to v17.0.3 [Self-hosted Renovate Bot]
1068 |
1069 | > ## open-balena-base-17.0.3
1070 | > ### (2024-01-22)
1071 | >
1072 | > * Update dependency node to v21.6.1 [Self-hosted Renovate Bot]
1073 | >
1074 |
1075 |
1076 |
1077 | # v1.27.63
1078 | ## (2024-01-22)
1079 |
1080 | * Lock file maintenance [Self-hosted Renovate Bot]
1081 |
1082 | # v1.27.62
1083 | ## (2024-01-15)
1084 |
1085 |
1086 |
1087 | Update balena/open-balena-base Docker tag to v17.0.2 [Self-hosted Renovate Bot]
1088 |
1089 | > ## open-balena-base-17.0.2
1090 | > ### (2024-01-15)
1091 | >
1092 | > * Update dependency node to v21.6.0 [Self-hosted Renovate Bot]
1093 | >
1094 |
1095 |
1096 |
1097 | # v1.27.61
1098 | ## (2024-01-15)
1099 |
1100 | * Lock file maintenance [Self-hosted Renovate Bot]
1101 |
1102 | # v1.27.60
1103 | ## (2024-01-10)
1104 |
1105 |
1106 |
1107 | Update balena/open-balena-base Docker tag to v17.0.1 [Self-hosted Renovate Bot]
1108 |
1109 | > ## open-balena-base-17.0.1
1110 | > ### (2024-01-10)
1111 | >
1112 | > * Update dependency npm to v10.3.0 [Self-hosted Renovate Bot]
1113 | >
1114 |
1115 |
1116 |
1117 | # v1.27.59
1118 | ## (2024-01-08)
1119 |
1120 | * Lock file maintenance [Self-hosted Renovate Bot]
1121 |
1122 | # v1.27.58
1123 | ## (2024-01-08)
1124 |
1125 | * Lock file maintenance [Self-hosted Renovate Bot]
1126 |
1127 | # v1.27.57
1128 | ## (2024-01-03)
1129 |
1130 | * Update dependency balena-sdk to v19.3.5 [Self-hosted Renovate Bot]
1131 |
1132 | # v1.27.56
1133 | ## (2024-01-03)
1134 |
1135 | * Bump balena-sdk to latest [Otávio Jacobi]
1136 | * Update dependency balena-sdk to v19 [Self-hosted Renovate Bot]
1137 |
1138 | # v1.27.55
1139 | ## (2024-01-02)
1140 |
1141 |
1142 |
1143 | Update balena/open-balena-base Docker tag to v17 [Self-hosted Renovate Bot]
1144 |
1145 | > ## open-balena-base-17.0.0
1146 | > ### (2023-12-20)
1147 | >
1148 | > * Update nodejs to 21.4.0 [Pagan Gazzard]
1149 | >
1150 |
1151 |
1152 |
1153 | # v1.27.54
1154 | ## (2024-01-01)
1155 |
1156 | * Lock file maintenance [Self-hosted Renovate Bot]
1157 |
1158 | # v1.27.53
1159 | ## (2023-12-25)
1160 |
1161 | * Lock file maintenance [Self-hosted Renovate Bot]
1162 |
1163 | # v1.27.52
1164 | ## (2023-12-19)
1165 |
1166 | * Remove repo config from flowzone.yml [Kyle Harding]
1167 |
1168 | # v1.27.51
1169 | ## (2023-12-18)
1170 |
1171 | * Lock file maintenance [Self-hosted Renovate Bot]
1172 |
1173 | # v1.27.50
1174 | ## (2023-12-13)
1175 |
1176 |
1177 |
1178 | Update balena/open-balena-base Docker tag to v16.0.18 [Self-hosted Renovate Bot]
1179 |
1180 | > ## open-balena-base-16.0.18
1181 | > ### (2023-12-13)
1182 | >
1183 | > * add missing data. host [ab77]
1184 | >
1185 |
1186 |
1187 |
1188 | # v1.27.49
1189 | ## (2023-12-13)
1190 |
1191 | * deprecate registry hostname [ab77]
1192 |
1193 | # v1.27.48
1194 | ## (2023-12-11)
1195 |
1196 | * Lock file maintenance [Self-hosted Renovate Bot]
1197 |
1198 | # v1.27.47
1199 | ## (2023-12-09)
1200 |
1201 | * Update dependency typescript to v5.3.3 [Self-hosted Renovate Bot]
1202 |
1203 | # v1.27.46
1204 | ## (2023-12-06)
1205 |
1206 |
1207 |
1208 | Update balena/open-balena-base Docker tag to v16.0.17 [Self-hosted Renovate Bot]
1209 |
1210 | > ## open-balena-base-16.0.17
1211 | > ### (2023-12-06)
1212 | >
1213 | > * Update dependency npm to v10.2.5 [Self-hosted Renovate Bot]
1214 | >
1215 |
1216 |
1217 |
1218 | # v1.27.45
1219 | ## (2023-12-06)
1220 |
1221 | * Update dependency lint-staged to v15.2.0 [Self-hosted Renovate Bot]
1222 |
1223 | # v1.27.44
1224 | ## (2023-12-05)
1225 |
1226 |
1227 |
1228 | Update balena/open-balena-base Docker tag to v16.0.16 [Self-hosted Renovate Bot]
1229 |
1230 | > ## open-balena-base-16.0.16
1231 | > ### (2023-12-05)
1232 | >
1233 | > * remove self-hosted Sentry config [ab77]
1234 | >
1235 |
1236 |
1237 |
1238 | # v1.27.43
1239 | ## (2023-12-04)
1240 |
1241 | * Lock file maintenance [Self-hosted Renovate Bot]
1242 |
1243 | # v1.27.42
1244 | ## (2023-11-28)
1245 |
1246 | * Update dependency lint-staged to v15 [Self-hosted Renovate Bot]
1247 |
1248 | # v1.27.41
1249 | ## (2023-11-27)
1250 |
1251 | * Lock file maintenance [Self-hosted Renovate Bot]
1252 |
1253 | # v1.27.40
1254 | ## (2023-11-24)
1255 |
1256 | * Update dependency @types/lodash to v4.14.202 [Self-hosted Renovate Bot]
1257 |
1258 | # v1.27.39
1259 | ## (2023-11-23)
1260 |
1261 | * Update dependency typescript to v5.3.2 [Self-hosted Renovate Bot]
1262 |
1263 | # v1.27.38
1264 | ## (2023-11-22)
1265 |
1266 |
1267 |
1268 | Update balena/open-balena-base Docker tag to v16.0.15 [Self-hosted Renovate Bot]
1269 |
1270 | > ## open-balena-base-16.0.15
1271 | > ### (2023-11-22)
1272 | >
1273 | > * Update dependency node to v20.10.0 [Self-hosted Renovate Bot]
1274 | >
1275 |
1276 |
1277 |
1278 | # v1.27.37
1279 | ## (2023-11-20)
1280 |
1281 | * Lock file maintenance [Self-hosted Renovate Bot]
1282 |
1283 | # v1.27.36
1284 | ## (2023-11-15)
1285 |
1286 |
1287 |
1288 | Update balena/open-balena-base Docker tag to v16.0.14 [Self-hosted Renovate Bot]
1289 |
1290 | > ## open-balena-base-16.0.14
1291 | > ### (2023-11-15)
1292 | >
1293 | > * Update dependency npm to v10.2.4 [Self-hosted Renovate Bot]
1294 | >
1295 |
1296 |
1297 |
1298 | # v1.27.35
1299 | ## (2023-11-13)
1300 |
1301 | * Update dependency @balena/lint to v7.2.4 [Self-hosted Renovate Bot]
1302 |
1303 | # v1.27.34
1304 | ## (2023-11-13)
1305 |
1306 | * Lock file maintenance [Self-hosted Renovate Bot]
1307 |
1308 | # v1.27.33
1309 | ## (2023-11-13)
1310 |
1311 | * Lock file maintenance [Self-hosted Renovate Bot]
1312 |
1313 | # v1.27.32
1314 | ## (2023-11-12)
1315 |
1316 | * Update dependency @balena/lint to v7.2.3 [Self-hosted Renovate Bot]
1317 |
1318 | # v1.27.31
1319 | ## (2023-11-12)
1320 |
1321 | * Update dependency @balena/lint to v7.2.2 [Self-hosted Renovate Bot]
1322 |
1323 | # v1.27.30
1324 | ## (2023-11-10)
1325 |
1326 | * Update dependency @types/lodash to v4.14.201 [Self-hosted Renovate Bot]
1327 |
1328 | # v1.27.29
1329 | ## (2023-11-10)
1330 |
1331 | * Update dependency @types/request-promise to v4.1.51 [Self-hosted Renovate Bot]
1332 |
1333 | # v1.27.28
1334 | ## (2023-11-06)
1335 |
1336 | * Lock file maintenance [Self-hosted Renovate Bot]
1337 |
1338 | # v1.27.27
1339 | ## (2023-11-02)
1340 |
1341 |
1342 |
1343 | Update balena/open-balena-base Docker tag to v16.0.13 [Self-hosted Renovate Bot]
1344 |
1345 | > ## open-balena-base-16.0.13
1346 | > ### (2023-11-02)
1347 | >
1348 | > * Update dependency npm to v10.2.3 [Self-hosted Renovate Bot]
1349 | >
1350 |
1351 |
1352 |
1353 | # v1.27.26
1354 | ## (2023-10-31)
1355 |
1356 |
1357 |
1358 | Update balena/open-balena-base Docker tag to v16.0.12 [Self-hosted Renovate Bot]
1359 |
1360 | > ## open-balena-base-16.0.12
1361 | > ### (2023-11-01)
1362 | >
1363 | > * Update dependency node to v20.9.0 [Self-hosted Renovate Bot]
1364 | >
1365 |
1366 |
1367 |
1368 | # v1.27.25
1369 | ## (2023-10-31)
1370 |
1371 |
1372 |
1373 | Update balena/open-balena-base Docker tag to v16.0.11 [Self-hosted Renovate Bot]
1374 |
1375 | > ## open-balena-base-16.0.11
1376 | > ### (2023-11-01)
1377 | >
1378 | > * Update dependency npm to v10.2.2 [Self-hosted Renovate Bot]
1379 | >
1380 |
1381 |
1382 |
1383 | # v1.27.24
1384 | ## (2023-10-30)
1385 |
1386 | * Lock file maintenance [Self-hosted Renovate Bot]
1387 |
1388 | # v1.27.23
1389 | ## (2023-10-23)
1390 |
1391 | * Lock file maintenance [Self-hosted Renovate Bot]
1392 |
1393 | # v1.27.22
1394 | ## (2023-10-21)
1395 |
1396 | * Update dependency @types/request-promise to v4.1.50 [Self-hosted Renovate Bot]
1397 |
1398 | # v1.27.21
1399 | ## (2023-10-21)
1400 |
1401 | * Update dependency @balena/lint to v7.2.1 [Self-hosted Renovate Bot]
1402 |
1403 | # v1.27.20
1404 | ## (2023-10-21)
1405 |
1406 | * Update dependency @types/lodash to v4.14.200 [Self-hosted Renovate Bot]
1407 |
1408 | # v1.27.19
1409 | ## (2023-10-18)
1410 |
1411 |
1412 |
1413 | Update balena/open-balena-base Docker tag to v16.0.10 [Self-hosted Renovate Bot]
1414 |
1415 | > ## open-balena-base-16.0.10
1416 | > ### (2023-10-18)
1417 | >
1418 | > * Update dependency node to v20.8.1 [Self-hosted Renovate Bot]
1419 | >
1420 |
1421 |
1422 |
1423 | # v1.27.18
1424 | ## (2023-10-18)
1425 |
1426 |
1427 |
1428 | Update balena/open-balena-base Docker tag to v16.0.9 [Self-hosted Renovate Bot]
1429 |
1430 | > ## open-balena-base-16.0.9
1431 | > ### (2023-10-18)
1432 | >
1433 | > * Update dependency npm to v10.2.1 [Self-hosted Renovate Bot]
1434 | >
1435 |
1436 |
1437 |
1438 | # v1.27.17
1439 | ## (2023-10-03)
1440 |
1441 |
1442 |
1443 | Update balena/open-balena-base Docker tag to v16.0.8 [Self-hosted Renovate Bot]
1444 |
1445 | > ## open-balena-base-16.0.8
1446 | > ### (2023-10-03)
1447 | >
1448 | > * Update dependency npm to v10.2.0 [Self-hosted Renovate Bot]
1449 | >
1450 |
1451 |
1452 |
1453 | # v1.27.16
1454 | ## (2023-10-02)
1455 |
1456 | * Update dependency @types/request-promise to v4.1.49 [Self-hosted Renovate Bot]
1457 |
1458 | # v1.27.15
1459 | ## (2023-10-02)
1460 |
1461 | * Update dependency @types/lodash to v4.14.199 [Self-hosted Renovate Bot]
1462 |
1463 | # v1.27.14
1464 | ## (2023-10-02)
1465 |
1466 | * Update dependency typescript to v5 [Self-hosted Renovate Bot]
1467 |
1468 | # v1.27.13
1469 | ## (2023-10-02)
1470 |
1471 | * Update balena/open-balena-base from 16.0.0 to 16.0.7 [Anton Belodedenko]
1472 |
1473 | # v1.27.12
1474 | ## (2023-10-02)
1475 |
1476 | * Update dependency @balena/lint to v7 [Self-hosted Renovate Bot]
1477 |
1478 | # v1.27.11
1479 | ## (2023-09-21)
1480 |
1481 | * Update repo.yml [Kyle Harding]
1482 |
1483 | # v1.27.10
1484 | ## (2023-09-11)
1485 |
1486 | * Update open-balena-base package.json to specify nodejs 20 [Pagan Gazzard]
1487 |
1488 | # v1.27.9
1489 | ## (2023-09-11)
1490 |
1491 |
1492 |
1493 | Update open-balena-base to 16.0.0 [Pagan Gazzard]
1494 |
1495 | > ## open-balena-base-16.0.0
1496 | > ### (2023-09-11)
1497 | >
1498 | > * Update nodejs to 20.6.1 and npm to 10.1.0 [Pagan Gazzard]
1499 | >
1500 | > ## open-balena-base-15.1.1
1501 | > ### (2023-09-07)
1502 | >
1503 | > * fix env var resolution from token map [ab77]
1504 | >
1505 |
1506 |
1507 |
1508 | # v1.27.8
1509 | ## (2023-09-07)
1510 |
1511 | * Update balena/open-balena-base Docker tag to v15.1.0 [Self-hosted Renovate Bot]
1512 |
1513 | # v1.27.7
1514 | ## (2023-09-07)
1515 |
1516 | * Update balena/open-balena-base Docker tag to v15.0.5 [Self-hosted Renovate Bot]
1517 |
1518 | # v1.27.6
1519 | ## (2023-08-18)
1520 |
1521 | * Update dependency lint-staged to v13.3.0 [Self-hosted Renovate Bot]
1522 |
1523 | # v1.27.5
1524 | ## (2023-08-17)
1525 |
1526 | * Update dependency @types/lodash to v4.14.197 [Self-hosted Renovate Bot]
1527 |
1528 | # v1.27.4
1529 | ## (2023-08-17)
1530 |
1531 | * Update balena/open-balena-base Docker tag to v15.0.3 [Self-hosted Renovate Bot]
1532 |
1533 | # v1.27.3
1534 | ## (2023-07-10)
1535 |
1536 |
1537 |
1538 | Update open-balena-base to 15.0.0 [Pagan Gazzard]
1539 |
1540 | > ## open-balena-base-15.0.0
1541 | > ### (2023-07-06)
1542 | >
1543 | > * Upgrade to debian bookworm [Pagan Gazzard]
1544 | >
1545 | > ## open-balena-base-14.11.1
1546 | > ### (2023-07-05)
1547 | >
1548 | > * Update Node.js to v18.16.1 [Self-hosted Renovate Bot]
1549 | >
1550 | > ## open-balena-base-14.11.0
1551 | > ### (2023-07-05)
1552 | >
1553 | > * Update dependency npm to v9.8.0 [Self-hosted Renovate Bot]
1554 | >
1555 | > ## open-balena-base-14.10.2
1556 | > ### (2023-06-21)
1557 | >
1558 | > * Update dependency npm to v9.7.2 [Self-hosted Renovate Bot]
1559 | >
1560 | > ## open-balena-base-14.10.1
1561 | > ### (2023-06-21)
1562 | >
1563 | > * Update dependency node to v18.16.1 [Self-hosted Renovate Bot]
1564 | >
1565 | > ## open-balena-base-14.10.0
1566 | > ### (2023-06-07)
1567 | >
1568 | > * Update dependency npm to v9.7.1 [Self-hosted Renovate Bot]
1569 | >
1570 | > ## open-balena-base-14.9.4
1571 | > ### (2023-06-01)
1572 | >
1573 | > * Set systemd stopsignal to SIGRTMIN+3 [Pagan Gazzard]
1574 | >
1575 |
1576 |
1577 |
1578 | # v1.27.2
1579 | ## (2023-05-30)
1580 |
1581 | * Update dependency @types/lodash to v4.14.195 [Self-hosted Renovate Bot]
1582 |
1583 | # v1.27.1
1584 | ## (2023-05-22)
1585 |
1586 | * Update balena/open-balena-base Docker tag to v14.9.3 [Renovate Bot]
1587 |
1588 | # v1.27.0
1589 | ## (2023-05-01)
1590 |
1591 | * Update dependency lint-staged to v13.2.2 [Renovate Bot]
1592 |
1593 | # v1.26.0
1594 | ## (2023-05-01)
1595 |
1596 | * Update balena/open-balena-base Docker tag to v14.9.1 [Renovate Bot]
1597 |
1598 | # v1.25.2
1599 | ## (2023-05-01)
1600 |
1601 | * Update dependency @types/lodash to v4.14.194 [Renovate Bot]
1602 |
1603 | # v1.25.1
1604 | ## (2023-05-01)
1605 |
1606 | * Update dependency @balena/lint to v6.2.2 [Renovate Bot]
1607 |
1608 | # v1.25.0
1609 | ## (2023-03-22)
1610 |
1611 |
1612 |
1613 | Update open-balena-base to 14.7.2 [Pagan Gazzard]
1614 |
1615 | > ## open-balena-base-14.7.2
1616 | > ### (2023-03-22)
1617 | >
1618 | > * Maintain legacy docker tags behaviour [Kyle Harding]
1619 | >
1620 | > ## open-balena-base-14.7.1
1621 | > ### (2023-03-20)
1622 | >
1623 | > * Update dependency npm to v9.6.2 [Renovate Bot]
1624 | >
1625 | > ## open-balena-base-14.7.0
1626 | > ### (2023-03-20)
1627 | >
1628 | > * Update dependency node [Renovate Bot]
1629 | >
1630 | > ## open-balena-base-14.6.1
1631 | > ### (2023-03-14)
1632 | >
1633 | > * Restart confd if it fails to start [Anton Belodedenko]
1634 | >
1635 | > ## open-balena-base-14.6.0
1636 | > ### (2023-03-02)
1637 | >
1638 | > * Update dependency npm to 9.6.0 [Renovate Bot]
1639 | >
1640 |
1641 |
1642 |
1643 | # v1.24.4
1644 | ## (2023-02-23)
1645 |
1646 | * Update balena/open-balena-base Docker tag to v14.5.4 [Renovate Bot]
1647 |
1648 | # v1.24.3
1649 | ## (2023-02-22)
1650 |
1651 | * Update balena/open-balena-base Docker tag to v14.5.3 [Renovate Bot]
1652 |
1653 | # v1.24.2
1654 | ## (2023-02-21)
1655 |
1656 | * Update balena/open-balena-base Docker tag to v14.5.2 [Renovate Bot]
1657 |
1658 | # v1.24.1
1659 | ## (2023-02-20)
1660 |
1661 | * Update balena/open-balena-base Docker tag to v14.5.1 [Renovate Bot]
1662 |
1663 | # v1.24.0
1664 | ## (2023-02-17)
1665 |
1666 | * Update balena/open-balena-base Docker tag to v14.5.0 [Renovate Bot]
1667 |
1668 | # v1.23.3
1669 | ## (2023-02-17)
1670 |
1671 | * Update balena/open-balena-base Docker tag to v14.4.2 [Renovate Bot]
1672 |
1673 | # v1.23.2
1674 | ## (2023-02-13)
1675 |
1676 | * Update dependency lint-staged to 13.1.2 [Renovate Bot]
1677 |
1678 | # v1.23.1
1679 | ## (2023-02-07)
1680 |
1681 | * Update dependency lint-staged to 13.1.1 [Renovate Bot]
1682 |
1683 | # v1.23.0
1684 | ## (2023-02-06)
1685 |
1686 | * Update engines entry to specify npm 9 [Pagan Gazzard]
1687 |
1688 | # v1.22.0
1689 | ## (2023-02-03)
1690 |
1691 | * Update balena/open-balena-base Docker tag to v14.4.1 [Renovate Bot]
1692 |
1693 | # v1.21.1
1694 | ## (2023-01-30)
1695 |
1696 | * Update dependency typescript to 4.9.5 [Renovate Bot]
1697 |
1698 | # v1.21.0
1699 | ## (2023-01-09)
1700 |
1701 | * Update balena/open-balena-base Docker tag to v14.2.0 [Renovate Bot]
1702 |
1703 | # v1.20.6
1704 | ## (2022-12-14)
1705 |
1706 | * Update balena/open-balena-base Docker tag to v14.1.4 [Renovate Bot]
1707 |
1708 | # v1.20.5
1709 | ## (2022-12-09)
1710 |
1711 | * Update dependency lint-staged to 13.1.0 [Renovate Bot]
1712 |
1713 | # v1.20.4
1714 | ## (2022-12-08)
1715 |
1716 | * Update dependency typescript to 4.9.4 [Renovate Bot]
1717 |
1718 | # v1.20.3
1719 | ## (2022-12-08)
1720 |
1721 | * Update dependency @types/lodash to 4.14.191 [Renovate Bot]
1722 |
1723 | # v1.20.2
1724 | ## (2022-12-08)
1725 |
1726 | * Update balena/open-balena-base Docker tag to v14.1.3 [Renovate Bot]
1727 |
1728 | # v1.20.1
1729 | ## (2022-11-25)
1730 |
1731 | * Update dependency lint-staged to 13.0.4 [Renovate Bot]
1732 |
1733 | # v1.20.0
1734 | ## (2022-11-24)
1735 |
1736 | * Update balena/open-balena-base Docker tag to v14.1.0 [Renovate Bot]
1737 |
1738 | # v1.19.3
1739 | ## (2022-11-23)
1740 |
1741 | * Update dependency @types/lodash to 4.14.190 [Renovate Bot]
1742 |
1743 | # v1.19.2
1744 | ## (2022-11-17)
1745 |
1746 | * Update dependency typescript to 4.9.3 [Renovate Bot]
1747 |
1748 | # v1.19.1
1749 | ## (2022-11-17)
1750 |
1751 | * Update dependency @types/lodash to 4.14.189 [Renovate Bot]
1752 |
1753 | # v1.19.0
1754 | ## (2022-11-17)
1755 |
1756 | * Update npm to 9.1.1 [Renovate Bot]
1757 |
1758 | # v1.18.4
1759 | ## (2022-11-09)
1760 |
1761 | * Update balena/open-balena-base Docker tag to v14.0.1 [Renovate Bot]
1762 |
1763 | # v1.18.3
1764 | ## (2022-11-07)
1765 |
1766 | * Update dependency @balena/lint to 6.2.1 [Renovate Bot]
1767 |
1768 | # v1.18.2
1769 | ## (2022-11-04)
1770 |
1771 | * Update dependency @types/lodash to 4.14.188 [Renovate Bot]
1772 |
1773 | # v1.18.1
1774 | ## (2022-11-01)
1775 |
1776 | * Update dependency @types/lodash to 4.14.187 [Renovate Bot]
1777 |
1778 | # v1.18.0
1779 | ## (2022-10-27)
1780 |
1781 |
1782 |
1783 | Update open-balena-base to 14.0.0 [Pagan Gazzard]
1784 |
1785 | > ## open-balena-base-14.0.0
1786 | > ### (2022-10-27)
1787 | >
1788 | > * Update to nodejs 18 [Pagan Gazzard]
1789 | >
1790 |
1791 |
1792 | # v1.17.4
1793 | ## (2022-10-24)
1794 |
1795 | * Update balena/open-balena-base Docker tag to v13.6.1 [Renovate Bot]
1796 |
1797 | # v1.17.3
1798 | ## (2022-10-23)
1799 |
1800 | * Update dependency @types/node to 16.18.0 [Renovate Bot]
1801 |
1802 | # v1.17.2
1803 | ## (2022-10-18)
1804 |
1805 | * Update dependency @types/node to 16.11.67 [Renovate Bot]
1806 |
1807 | # v1.17.1
1808 | ## (2022-10-15)
1809 |
1810 | * Update dependency @types/node to 16.11.66 [Renovate Bot]
1811 |
1812 | # v1.17.0
1813 | ## (2022-10-14)
1814 |
1815 | * Update balena/open-balena-base Docker tag to v13.6.0 [Renovate Bot]
1816 |
1817 | # v1.16.15
1818 | ## (2022-10-14)
1819 |
1820 | * Update balena/open-balena-base Docker tag to v13.5.3 [Renovate Bot]
1821 |
1822 | # v1.16.14
1823 | ## (2022-10-10)
1824 |
1825 | * Update dependency @types/node to 16.11.65 [Renovate Bot]
1826 |
1827 | # v1.16.13
1828 | ## (2022-10-06)
1829 |
1830 | * Update dependency typescript to 4.8.4 [Renovate Bot]
1831 |
1832 | # v1.16.12
1833 | ## (2022-10-06)
1834 |
1835 | * Update dependency @types/node to 16.11.64 [Renovate Bot]
1836 |
1837 | # v1.16.11
1838 | ## (2022-10-06)
1839 |
1840 | * Update dependency @types/lodash to 4.14.186 [Renovate Bot]
1841 |
1842 | # v1.16.10
1843 | ## (2022-10-06)
1844 |
1845 | * Update balena/open-balena-base Docker tag to v13.5.2 [Renovate Bot]
1846 |
1847 | # v1.16.9
1848 | ## (2022-10-06)
1849 |
1850 | * Switch to Flowzone [ab77]
1851 |
1852 | # v1.16.8
1853 | ## (2022-09-26)
1854 |
1855 | * Update dependency @types/node to 16.11.62 [Renovate Bot]
1856 |
1857 | # v1.16.7
1858 | ## (2022-09-23)
1859 |
1860 | * Update dependency @types/node to 16.11.60 [Renovate Bot]
1861 |
1862 | # v1.16.6
1863 | ## (2022-09-13)
1864 |
1865 | * Update dependency @types/node to 16.11.59 [Renovate Bot]
1866 |
1867 | # v1.16.5
1868 | ## (2022-09-11)
1869 |
1870 | * Update dependency @types/lodash to 4.14.185 [Renovate Bot]
1871 |
1872 | # v1.16.4
1873 | ## (2022-09-08)
1874 |
1875 | * Update dependency @types/node to 16.11.58 [Renovate Bot]
1876 |
1877 | # v1.16.3
1878 | ## (2022-09-08)
1879 |
1880 | * Update dependency typescript to 4.8.3 [Renovate Bot]
1881 |
1882 | # v1.16.2
1883 | ## (2022-08-24)
1884 |
1885 | * Update dependency @types/node to 16.11.56 [Renovate Bot]
1886 |
1887 | # v1.16.1
1888 | ## (2022-08-24)
1889 |
1890 | * Update dependency @types/node to 16.11.55 [Renovate Bot]
1891 |
1892 | # v1.16.0
1893 | ## (2022-08-24)
1894 |
1895 | * Update balena/open-balena-base Docker tag to v13.5.1 [Renovate Bot]
1896 |
1897 | # v1.15.16
1898 | ## (2022-08-19)
1899 |
1900 | * Update dependency @types/lodash to 4.14.184 [Renovate Bot]
1901 |
1902 | # v1.15.15
1903 | ## (2022-08-19)
1904 |
1905 | * Update dependency @types/node to 16.11.50 [Renovate Bot]
1906 |
1907 | # v1.15.14
1908 | ## (2022-08-18)
1909 |
1910 | * Update dependency @types/lodash to 4.14.183 [Renovate Bot]
1911 |
1912 | # v1.15.13
1913 | ## (2022-07-12)
1914 |
1915 |
1916 |
1917 | Update open-balena-base to 13.4.0 [Pagan Gazzard]
1918 |
1919 | > ## open-balena-base-13.4.0
1920 | > ### (2022-07-09)
1921 | >
1922 | > * Update nodejs to 16.16.0 and npm to 8.13.2 [Pagan Gazzard]
1923 | >
1924 |
1925 |
1926 | # v1.15.12
1927 | ## (2022-07-12)
1928 |
1929 | * Update dependency typescript to 4.7.4 [Renovate Bot]
1930 |
1931 | # v1.15.11
1932 | ## (2022-07-12)
1933 |
1934 | * Update dependency lint-staged to 13.0.3 [Renovate Bot]
1935 |
1936 | # v1.15.10
1937 | ## (2022-07-12)
1938 |
1939 | * Update dependency @types/node to 16.11.43 [Renovate Bot]
1940 |
1941 | # v1.15.9
1942 | ## (2022-06-13)
1943 |
1944 | * Update @balena/lint from 6.1.1 to 6.2.0 [Renovate Bot]
1945 |
1946 | # v1.15.8
1947 | ## (2022-06-13)
1948 |
1949 | * Update lint-staged from 11.2.6 to 13.0.1 [Renovate Bot]
1950 |
1951 | # v1.15.7
1952 | ## (2022-06-13)
1953 |
1954 | * Update typescript from 4.4.4 to 4.7.3 [Renovate Bot]
1955 |
1956 | # v1.15.6
1957 | ## (2022-06-13)
1958 |
1959 | * Update husky from 4.3.8 to 8.0.1 [Renovate Bot]
1960 |
1961 | # v1.15.5
1962 | ## (2022-06-13)
1963 |
1964 | * Update @types/node from 16.11.6 to 16.11.39 [Renovate Bot]
1965 |
1966 | # v1.15.4
1967 | ## (2022-06-13)
1968 |
1969 | * Update @types/lodash from 4.14.176 to 4.14.182 [Renovate Bot]
1970 |
1971 | # v1.15.3
1972 | ## (2022-06-13)
1973 |
1974 | * Update balena/open-balena-base from v13.3.1 to v13.3.2 [Renovate Bot]
1975 | * Update Pin dependencies [Renovate Bot]
1976 |
1977 | # v1.15.2
1978 | ## (2022-05-05)
1979 |
1980 |
1981 |
1982 | Update open-balena-base to 13.3.1 [Pagan Gazzard]
1983 |
1984 | > ## open-balena-base-13.3.1
1985 | > ### (2022-05-05)
1986 | >
1987 | > * Add SystemMaxUse for journald.conf [Pagan Gazzard]
1988 | >
1989 |
1990 |
1991 | # v1.15.1
1992 | ## (2022-05-03)
1993 |
1994 |
1995 |
1996 | Update open-balena-base to 13.3.0 [Pagan Gazzard]
1997 |
1998 | > ## open-balena-base-13.3.0
1999 | > ### (2022-05-02)
2000 | >
2001 | > * Update nodejs to 16.15.0 and npm to 8.8.0 [Pagan Gazzard]
2002 | >
2003 |
2004 |
2005 | # v1.15.0
2006 | ## (2022-04-08)
2007 |
2008 | * Update open-balena-base to 13.2.3 Update open-balena-base from 13.2.1 to 13.2.3 [ab77]
2009 |
2010 | # v1.14.8
2011 | ## (2022-03-21)
2012 |
2013 |
2014 |
2015 | Update open-balena-base to 13.2.1 [Pagan Gazzard]
2016 |
2017 | > ## open-balena-base-13.2.1
2018 | > ### (2022-03-21)
2019 | >
2020 | > * Update nodejs to 16.14.2 and npm to 8.5.5 [Pagan Gazzard]
2021 | >
2022 | > ## open-balena-base-13.2.0
2023 | > ### (2022-02-22)
2024 | >
2025 | > * Consistent SENTRY environment names [ab77]
2026 | >
2027 |
2028 |
2029 | # v1.14.7
2030 | ## (2022-02-24)
2031 |
2032 | * Check for non-zero file instead [ab77]
2033 |
2034 | # v1.14.6
2035 | ## (2022-02-24)
2036 |
2037 | * Fix health-check to work with public DNS configs [ab77]
2038 |
2039 | # v1.14.5
2040 | ## (2022-02-21)
2041 |
2042 |
2043 |
2044 | Update open-balena-base to 13.1.0 [Pagan Gazzard]
2045 |
2046 | > ## open-balena-base-13.1.0
2047 | > ### (2022-02-21)
2048 | >
2049 | > * Update nodejs to 16.14.0 and npm to 8.5.1 [Pagan Gazzard]
2050 | >
2051 | > ## open-balena-base-13.0.7
2052 | > ### (2022-02-16)
2053 | >
2054 | > * Avoid cryptic names and rename bcr to registry-proxy [Kyle Harding]
2055 | >
2056 | > ## open-balena-base-13.0.6
2057 | > ### (2022-02-15)
2058 | >
2059 | > * Add new balena container registry (bcr) host [Kyle Harding]
2060 | >
2061 | > ## open-balena-base-13.0.5
2062 | > ### (2022-02-01)
2063 | >
2064 | > * Refactor ROOT_CA handling/resolution [ab77]
2065 | >
2066 |
2067 |
2068 | # v1.14.4
2069 | ## (2022-01-25)
2070 |
2071 | * Use local IP for HC [ab77]
2072 |
2073 | # v1.14.3
2074 | ## (2022-01-13)
2075 |
2076 |
2077 |
2078 | Update open-balena-base to 13.0.4 [Pagan Gazzard]
2079 |
2080 | > ## open-balena-base-13.0.4
2081 | > ### (2022-01-11)
2082 | >
2083 | > * Update to nodejs 16.13.2 and npm 8.3.0 [Pagan Gazzard]
2084 | >
2085 |
2086 |
2087 | # v1.14.2
2088 | ## (2021-12-10)
2089 |
2090 | * More specific healthcheck [ab77]
2091 |
2092 | # v1.14.1
2093 | ## (2021-12-09)
2094 |
2095 |
2096 |
2097 | Update open-balena-base to 13.0.3 [Pagan Gazzard]
2098 |
2099 | > ## open-balena-base-13.0.3
2100 | > ### (2021-12-08)
2101 | >
2102 | > * Update to nodejs 16.13.1 and npm 8.2.0 [Pagan Gazzard]
2103 | >
2104 |
2105 |
2106 | # v1.14.0
2107 | ## (2021-11-24)
2108 |
2109 |
2110 |
2111 | Update open-balena-base to 13.0.2 [ab77]
2112 |
2113 | > ## open-balena-base-13.0.2
2114 | > ### (2021-11-19)
2115 | >
2116 | > * Stage stack global environment [ab77]
2117 | >
2118 | > ## open-balena-base-13.0.1
2119 | > ### (2021-11-01)
2120 | >
2121 | > * Install python3 for node-gyp 8.x which is used by npm 8 [Pagan Gazzard]
2122 | >
2123 |
2124 |
2125 | # v1.13.0
2126 | ## (2021-11-01)
2127 |
2128 |
2129 |
2130 | Update open-balena-base to 13.0.0 [Pagan Gazzard]
2131 |
2132 | > ## open-balena-base-13.0.0
2133 | > ### (2021-10-30)
2134 | >
2135 | > * Update nodejs to 16.13.0 and npm 8.1.1 [Pagan Gazzard]
2136 | >
2137 | > ## open-balena-base-12.2.0
2138 | > ### (2021-10-18)
2139 | >
2140 | > * Update nodejs to 14.18.1 and npm to 6.14.15 [Pagan Gazzard]
2141 | >
2142 |
2143 |
2144 | # v1.12.1
2145 | ## (2021-10-14)
2146 |
2147 |
2148 |
2149 | Update open-balena-base to 12.1.1 [Akis Kesoglou]
2150 |
2151 | > ## open-balena-base-12.1.1
2152 | > ### (2021-10-14)
2153 | >
2154 | > * Simplify config by baking the device UUID into the DNS_TLD if available [Akis Kesoglou]
2155 | > * Fix configuration for non-BoB deployments [Akis Kesoglou]
2156 | >
2157 |
2158 |
2159 | # v1.12.0
2160 | ## (2021-09-24)
2161 |
2162 |
2163 |
2164 | Update open-balena-base to 12.1.0 [ab77]
2165 |
2166 | > ## open-balena-base-12.1.0
2167 | > ### (2021-09-24)
2168 | >
2169 | > * Auto-configure balenaMachine(bob) [ab77]
2170 | >
2171 | > ## open-balena-base-12.0.3
2172 | > ### (2021-09-01)
2173 | >
2174 | > * Attempt to load root CA certificate bundle from file [ab77]
2175 | >
2176 |
2177 |
2178 | # v1.11.4
2179 | ## (2021-09-01)
2180 |
2181 |
2182 |
2183 | Insert BALENA_DEVICE_UUID if running on balenaOS [ab77]
2184 |
2185 | > ## open-balena-base-12.0.3
2186 | > ### (2021-09-01)
2187 | >
2188 | > * Attempt to load root CA certificate bundle from file [ab77]
2189 | >
2190 |
2191 |
2192 | # v1.11.3
2193 | ## (2021-08-25)
2194 |
2195 | * Refactor MDNS_SUBDOMAINS handling [ab77]
2196 |
2197 | # v1.11.2
2198 | ## (2021-08-24)
2199 |
2200 |
2201 |
2202 | Update open-balena-base to 12.0.2 [Pagan Gazzard]
2203 |
2204 | > ## open-balena-base-12.0.2
2205 | > ### (2021-08-24)
2206 | >
2207 | > * Use multi-user.target as the default target [Pagan Gazzard]
2208 | >
2209 |
2210 |
2211 | # v1.11.1
2212 | ## (2021-08-24)
2213 |
2214 | * patch: Revert "switch to open-balena-base:no-systemd" [Thomas Manning]
2215 |
2216 | # v1.11.0
2217 | ## (2021-08-23)
2218 |
2219 | * minor: switch to open-balena-base:no-systemd. removed system service file, update readme. [Thomas Manning]
2220 |
2221 | # v1.10.1
2222 | ## (2021-08-19)
2223 |
2224 |
2225 |
2226 | Add avahi-utils package [ab77]
2227 |
2228 | > ## open-balena-base-12.0.1
2229 | > ### (2021-08-19)
2230 | >
2231 | > * Use basic.target as the default target [Pagan Gazzard]
2232 | >
2233 |
2234 |
2235 | # v1.10.0
2236 | ## (2021-08-19)
2237 |
2238 |
2239 |
2240 | Update open-balena-base to 12.0.0 [Pagan Gazzard]
2241 |
2242 | > ## open-balena-base-12.0.0
2243 | > ### (2021-08-17)
2244 | >
2245 | > * Update to debian bullseye [Pagan Gazzard]
2246 | >
2247 |
2248 |
2249 | # v1.9.16
2250 | ## (2021-08-18)
2251 |
2252 | * Correctly handle cases with no IPv6 connectivity [ab77]
2253 |
2254 | # v1.9.15
2255 | ## (2021-08-18)
2256 |
2257 |
2258 |
2259 | Add IPv6 support [ab77]
2260 |
2261 | > ## open-balena-base-11.3.12
2262 | > ### (2021-08-13)
2263 | >
2264 | > * Add hosts [ab77]
2265 | >
2266 | > ## open-balena-base-11.3.11
2267 | > ### (2021-08-13)
2268 | >
2269 | > * Remove deprecated etcd config [ab77]
2270 | >
2271 | > ## open-balena-base-11.3.10
2272 | > ### (2021-08-13)
2273 | >
2274 | > * Add missing init script [ab77]
2275 | >
2276 |
2277 |
2278 | # v1.9.14
2279 | ## (2021-08-13)
2280 |
2281 |
2282 |
2283 | Update open-balena-base to 11.3.9 [Pagan Gazzard]
2284 |
2285 | > ## open-balena-base-11.3.9
2286 | > ### (2021-08-13)
2287 | >
2288 | > * Update no-systemd variant [ab77]
2289 | >
2290 |
2291 |
2292 | # v1.9.13
2293 | ## (2021-08-12)
2294 |
2295 |
2296 |
2297 | Update open-balena-base to 11.3.8 [Pagan Gazzard]
2298 |
2299 | > ## open-balena-base-11.3.8
2300 | > ### (2021-08-12)
2301 | >
2302 | > * Update nodejs to 14.17.5 [Pagan Gazzard]
2303 | >
2304 |
2305 |
2306 | # v1.9.12
2307 | ## (2021-07-30)
2308 |
2309 | * Update open-balena-base to 11.3.7 Update open-balena-base from 11.3.3 to 11.3.7 [ab77]
2310 |
2311 | # v1.9.11
2312 | ## (2021-07-29)
2313 |
2314 |
2315 |
2316 | Update open-balena-base to 11.3.3 [Pagan Gazzard]
2317 |
2318 | > ## open-balena-base-11.3.3
2319 | > ### (2021-07-29)
2320 | >
2321 | > * Add parallel HOSTs and env vars [ab77]
2322 | >
2323 |
2324 |
2325 | # v1.9.10
2326 | ## (2021-07-05)
2327 |
2328 |
2329 |
2330 | Update open-balena-base to 11.3.2 [Pagan Gazzard]
2331 |
2332 | > ## open-balena-base-11.3.2
2333 | > ### (2021-07-02)
2334 | >
2335 | > * Update nodejs to 14.17.2 [Pagan Gazzard]
2336 | >
2337 | > ## open-balena-base-11.3.1
2338 | > ### (2021-06-30)
2339 | >
2340 | > * Delete .github directory [dfunckt]
2341 | >
2342 | > ## open-balena-base-11.3.0
2343 | > ### (2021-06-30)
2344 | >
2345 | > * Update nodejs to 14.17.1 [Trong Nghia Nguyen]
2346 | >
2347 |
2348 |
2349 | # v1.9.9
2350 | ## (2021-07-01)
2351 |
2352 | * Delete .github directory [dfunckt]
2353 |
2354 | # v1.9.8
2355 | ## (2021-05-14)
2356 |
2357 |
2358 |
2359 | Update open-balena-base to 11.2.0 [Pagan Gazzard]
2360 |
2361 | > ## open-balena-base-11.2.0
2362 | > ### (2021-05-14)
2363 | >
2364 | > * Update nodejs to 14.17.0 and npm to 6.14.13 [Pagan Gazzard]
2365 | >
2366 |
2367 |
2368 | # v1.9.7
2369 | ## (2021-04-09)
2370 |
2371 |
2372 |
2373 | Update open-balena-base to 11.1.2 [Pagan Gazzard]
2374 |
2375 | > ## open-balena-base-11.1.2
2376 | > ### (2021-04-08)
2377 | >
2378 | > * Update nodejs to 14.16.1 and npm to 6.14.12 [Pagan Gazzard]
2379 | >
2380 | > ## open-balena-base-11.1.1
2381 | > ### (2021-03-17)
2382 | >
2383 | > * Drop CircleCI [ab77]
2384 | >
2385 |
2386 |
2387 | # v1.9.6
2388 | ## (2021-02-24)
2389 |
2390 |
2391 |
2392 | Update open-balena-base to 11.1.0 [Pagan Gazzard]
2393 |
2394 | > ## open-balena-base-11.1.0
2395 | > ### (2021-02-24)
2396 | >
2397 | > * Update nodejs to 14.16.0 [Pagan Gazzard]
2398 | >
2399 |
2400 |
2401 | # v1.9.5
2402 | ## (2021-02-17)
2403 |
2404 |
2405 |
2406 | Update open-balena-base to 11.0.5 [Pagan Gazzard]
2407 |
2408 | > ## open-balena-base-11.0.5
2409 | > ### (2021-02-15)
2410 | >
2411 | > * Update nodejs to 14.15.5 and npm to 6.14.11 [Pagan Gazzard]
2412 | >
2413 |
2414 |
2415 | # v1.9.4
2416 | ## (2021-01-29)
2417 |
2418 | * Remove Hedley and Will from CODEOWNERS [dfunckt]
2419 |
2420 | # v1.9.3
2421 | ## (2021-01-29)
2422 |
2423 | * Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]
2424 |
2425 | # v1.9.2
2426 | ## (2021-01-13)
2427 |
2428 |
2429 |
2430 | Update open-balena-base to 11.0.4 [Pagan Gazzard]
2431 |
2432 | > ## open-balena-base-11.0.4
2433 | > ### (2021-01-08)
2434 | >
2435 | > * Update nodejs to 14.15.4 and npm to 6.14.10 [Pagan Gazzard]
2436 | >
2437 |
2438 |
2439 | # v1.9.1
2440 | ## (2020-12-23)
2441 |
2442 |
2443 |
2444 | Update open-balena-base to 11.0.3 [Pagan Gazzard]
2445 |
2446 | > ## open-balena-base-11.0.3
2447 | > ### (2020-12-18)
2448 | >
2449 | > * Update nodejs to 14.15.3 and npm to 6.14.9 [Pagan Gazzard]
2450 | >
2451 |
2452 |
2453 | # v1.9.0
2454 | ## (2020-11-20)
2455 |
2456 | * Update open-balena-base to 11.0.2 [Pagan Gazzard]
2457 |
2458 | # v1.8.0
2459 | ## (2020-10-28)
2460 |
2461 |
2462 |
2463 | Update open-balena-base to 11.0.0 [Pagan Gazzard]
2464 |
2465 | > ## open-balena-base-11.0.0
2466 | > ### (2020-10-27)
2467 | >
2468 | > * Update to nodejs 14 [Pagan Gazzard]
2469 | >
2470 | > ## open-balena-base-10.1.1
2471 | > ### (2020-10-09)
2472 | >
2473 | > * Fix no-systemd nodejs version [Pagan Gazzard]
2474 | >
2475 |
2476 |
2477 | # v1.7.9
2478 | ## (2020-07-28)
2479 |
2480 | * Update dependencies [Pagan Gazzard]
2481 |
2482 | # v1.7.8
2483 | ## (2020-07-27)
2484 |
2485 |
2486 |
2487 | Update open-balena-base to 9.4.3 [Pagan Gazzard]
2488 |
2489 | > ## open-balena-base-9.4.3
2490 | > ### (2020-07-24)
2491 | >
2492 | > * Update nodejs to 12.18.3 and npm to 6.14.7 [Pagan Gazzard]
2493 | >
2494 |
2495 |
2496 | # v1.7.7
2497 | ## (2020-07-02)
2498 |
2499 |
2500 |
2501 | Update open-balena-base to 9.4.2 [Pagan Gazzard]
2502 |
2503 | > ## open-balena-base-9.4.2
2504 | > ### (2020-06-30)
2505 | >
2506 | > * Update nodejs to 12.18.2 [Pagan Gazzard]
2507 |
2508 | > ## open-balena-base-9.4.1
2509 | > ### (2020-06-19)
2510 | >
2511 | > * Update nodejs to 12.18.1 [Pagan Gazzard]
2512 |
2513 | > ## open-balena-base-9.4.0
2514 | > ### (2020-06-08)
2515 | >
2516 | > * Update nodejs to 12.18.0 [Pagan Gazzard]
2517 |
2518 | > ## open-balena-base-9.3.0
2519 | > ### (2020-05-29)
2520 | >
2521 | > * Update nodejs to 12.17.0 and npm to 6.14.5 [Pagan Gazzard]
2522 |
2523 |
2524 | # v1.7.6
2525 | ## (2020-05-01)
2526 |
2527 |
2528 |
2529 | Update open-balena-base to 9.2.4 [Pagan Gazzard]
2530 |
2531 | > ## open-balena-base-9.2.4
2532 | > ### (2020-04-30)
2533 | >
2534 | > * Update nodejs to 12.16.3 [Pagan Gazzard]
2535 |
2536 | > ## open-balena-base-9.2.3
2537 | > ### (2020-04-15)
2538 | >
2539 | > * Forward log from journald to console by default [Trong Nghia Nguyen]
2540 |
2541 |
2542 | # v1.7.5
2543 | ## (2020-04-09)
2544 |
2545 |
2546 |
2547 | Update open-balena-base to 9.2.2 [Pagan Gazzard]
2548 |
2549 | > ## open-balena-base-9.2.2
2550 | > ### (2020-04-09)
2551 | >
2552 | > * Update nodejs to 12.16.2, npm to 6.14.4 [Pagan Gazzard]
2553 |
2554 |
2555 | # v1.7.4
2556 | ## (2020-02-20)
2557 |
2558 |
2559 |
2560 | Update open-balena-base to 9.2.1 [Pagan Gazzard]
2561 |
2562 | > ## open-balena-base-9.2.1
2563 | > ### (2020-02-20)
2564 | >
2565 | > * Update nodejs to 12.16.1 [Pagan Gazzard]
2566 |
2567 |
2568 | # v1.7.3
2569 | ## (2020-02-13)
2570 |
2571 |
2572 |
2573 | Update open-balena-base to 9.2.0 [Pagan Gazzard]
2574 |
2575 | > ## open-balena-base-9.2.0
2576 | > ### (2020-02-11)
2577 | >
2578 | > * Update nodejs to 12.16.0 [Pagan Gazzard]
2579 |
2580 | > ## open-balena-base-9.1.0
2581 | > ### (2020-02-06)
2582 | >
2583 | > * Update nodejs to 12.15.0 and npm to 6.13.7 [Pagan Gazzard]
2584 |
2585 |
2586 | # v1.7.2
2587 | ## (2020-01-20)
2588 |
2589 |
2590 |
2591 | Update open-balena-base to 9.0.5 [Pagan Gazzard]
2592 |
2593 | > ## open-balena-base-9.0.5
2594 | > ### (2020-01-10)
2595 | >
2596 | > * Update nodejs to 12.14.1 and npm to 6.13.6 [Pagan Gazzard]
2597 |
2598 | > ## open-balena-base-9.0.4
2599 | > ### (2020-01-07)
2600 | >
2601 | > * Mask apt-daily-upgrade.timer [Pagan Gazzard]
2602 |
2603 |
2604 | # v1.7.1
2605 | ## (2019-12-24)
2606 |
2607 |
2608 |
2609 | Update open-balena-base to 9.0.3 [Pagan Gazzard]
2610 |
2611 | > ## open-balena-base-9.0.3
2612 | > ### (2019-12-24)
2613 | >
2614 | > * Update nodejs to 12.14.0 and npm to 6.13.4 [Pagan Gazzard]
2615 |
2616 | > ## open-balena-base-9.0.2
2617 | > ### (2019-12-20)
2618 | >
2619 | > * Don't use UID used in node archive when unpacking as root [Federico Fissore]
2620 |
2621 | > ## open-balena-base-9.0.1
2622 | > ### (2019-11-15)
2623 | >
2624 | > * Update node to 12 in no systemd variant [Roman Mazur]
2625 |
2626 |
2627 | # v1.7.0
2628 | ## (2019-10-21)
2629 |
2630 |
2631 |
2632 | Update open-balena-base to 9.0.0 [Pagan Gazzard]
2633 |
2634 | > ## open-balena-base-9.0.0
2635 | > ### (2019-10-21)
2636 | >
2637 | > * Update to nodejs 12 [Pagan Gazzard]
2638 |
2639 | > ## open-balena-base-8.1.0
2640 | > ### (2019-09-24)
2641 | >
2642 | > * Respect BALENA_TLD env variable in nosystemd variant [Roman Mazur]
2643 | > * Optimize for caching [Roman Mazur]
2644 | > * Use balena node base image [Roman Mazur]
2645 | > * Add a base image without systemd [Roman Mazur]
2646 |
2647 |
2648 | # v1.6.6
2649 | ## (2019-08-20)
2650 |
2651 |
2652 |
2653 | Update open-balena-base to 8.0.3 [Pagan Gazzard]
2654 |
2655 | > ## open-balena-base-8.0.3
2656 | > ### (2019-08-16)
2657 | >
2658 | > * 🔒: Update Node to 10.16.3 and NPM to 6.10.3 [Andreas Fitzek]
2659 |
2660 |
2661 | # v1.6.5
2662 | ## (2019-08-13)
2663 |
2664 | * npm: Fix audit vulnerabilities [Heds Simons]
2665 |
2666 | # v1.6.4
2667 | ## (2019-08-07)
2668 |
2669 | * gitignore: start ignoring stuff [Matthew McGinn]
2670 |
2671 | # v1.6.3
2672 | ## (2019-08-06)
2673 |
2674 |
2675 |
2676 | Update open-balena-base to 8.0.2 [Pagan Gazzard]
2677 |
2678 | > ## open-balena-base-8.0.2
2679 | > ### (2019-08-06)
2680 | >
2681 | > * Update nodejs to 10.16.1 and npm to 6.10.2 [Pagan Gazzard]
2682 |
2683 |
2684 | # v1.6.2
2685 | ## (2019-07-23)
2686 |
2687 | * cleanup: Clean up code/README/LICENSE for public exposure [Heds Simons]
2688 |
2689 | # v1.6.1
2690 | ## (2019-07-17)
2691 |
2692 |
2693 |
2694 | Update open-balena-base to 8.0.1 [Pagan Gazzard]
2695 |
2696 | > ## open-balena-base-8.0.1
2697 | > ### (2019-07-17)
2698 | >
2699 | > * mdns: Ensure multipart subdomains are allowed [Heds Simons]
2700 |
2701 |
2702 | # v1.6.0
2703 | ## (2019-07-08)
2704 |
2705 |
2706 |
2707 | Update open-balena-base to 8.0.0 [Pagan Gazzard]
2708 |
2709 | > ## open-balena-base-8.0.0
2710 | > ### (2019-07-08)
2711 | >
2712 | > * Upgrade to debian buster [Pagan Gazzard]
2713 |
2714 |
2715 | # v1.5.0
2716 | ## (2019-06-24)
2717 |
2718 | * devices: Publish/unpublish public device URL [Heds Simons]
2719 |
2720 | # v1.4.1
2721 | ## (2019-06-20)
2722 |
2723 | * Update open-balena-base to 7.2.2 [Pagan Gazzard]
2724 |
2725 |
2726 | View details
2727 |
2728 | ## open-balena-base-7.2.2
2729 | ### (2019-06-19)
2730 |
2731 | * systemd: move StartLimitIntervalSec to proper conf section [Matthew McGinn]
2732 |
2733 |
2734 | # v1.4.0
2735 | ## (2019-06-07)
2736 |
2737 | * Update open-balena-base to 7.2.1 [Pagan Gazzard]
2738 |
2739 |
2740 | View details
2741 |
2742 | ## open-balena-base-7.2.1
2743 | ### (2019-06-03)
2744 |
2745 | * Fix adding htoprc [Pagan Gazzard]
2746 |
2747 | ## open-balena-base-7.2.0
2748 | ### (2019-05-29)
2749 |
2750 | * Add default htop settings to hide threads and use a tree view [Pagan Gazzard]
2751 |
2752 | ## open-balena-base-7.1.0
2753 | ### (2019-05-29)
2754 |
2755 | * Update nodejs to 10.16.0 and npm to 6.9.0 [Pagan Gazzard]
2756 |
2757 | ## open-balena-base-7.0.2
2758 | ### (2019-05-06)
2759 |
2760 | * Disable the apt daily timer [Pagan Gazzard]
2761 |
2762 | ## open-balena-base-7.0.1
2763 | ### (2019-05-06)
2764 |
2765 | * Disable start limit for confd.service [Pagan Gazzard]
2766 |
2767 |
2768 | ## 1.3.2 - 2019-04-30
2769 |
2770 | * Networking: Allow the use of non-host networking [Heds Simons]
2771 |
2772 | ## 1.3.1 - 2019-04-29
2773 |
2774 | * Build: Empty commit to bump MS build correctly [Heds Simons]
2775 |
2776 | ## 1.3.0 - 2019-04-18
2777 |
2778 | * Typescript: Move publisher to TypeScript [Heds Simons]
2779 |
2780 | ## 1.2.1 - 2019-04-03
2781 |
2782 | * Subdomains: Allow list of advertised subdomains via envvar [Heds Simons]
2783 |
2784 | ## 1.2.0 - 2019-03-14
2785 |
2786 | * Open-balena-base: Update open-balena-base to v7.0.0 [Heds Simons]
2787 |
2788 | ## 1.1.0 - 2019-03-12
2789 |
2790 | * Open-balena-base: Update open-balena-base to v6.0.0 [Heds Simons]
2791 |
2792 | ## 1.0.6 - 2019-03-11
2793 |
2794 | * Codeowners: Add @hedss, @wrboyce and @Page- [Heds Simons]
2795 |
2796 | ## 1.0.5 - 2019-01-14
2797 |
2798 | * Addresses: Add the `resin-image-maker.img` prefix [Heds Simons]
2799 |
2800 | ## v1.0.4 - 2018-10-25
2801 |
2802 | * Base: Update base to v4.5.0 of `open-balena-base` [Heds Simons]
2803 |
2804 | ## v1.0.3 - 2018-09-28
2805 |
2806 | * Dns: Ensure DNS is prioritised over MDNS [Heds Simons]
2807 |
2808 | ## v1.0.2 - 2018-09-24
2809 |
2810 | * Logging: Enable logging output to also go to console [Heds Simons]
2811 |
2812 | ## v1.0.1 - 2018-09-18
2813 |
2814 | * Npm: Add `package-lock.json` file [Heds Simons]
2815 |
2816 | ## v1.0.0 - 2018-08-29
2817 |
2818 | * Initial commit of project. [Heds Simons]
2819 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM balena/open-balena-base:18.0.24 as base
2 |
3 | RUN apt-get update && \
4 | apt-get install -yq --no-install-recommends \
5 | libdbus-glib-1-dev \
6 | avahi-utils \
7 | && apt-get clean && rm -rf /var/lib/apt/lists/*
8 |
9 | WORKDIR /usr/src/app
10 |
11 | # Copies the package.json first for better cache on later pushes
12 | COPY package.json package-lock.json /usr/src/app/
13 |
14 | # Install the publisher
15 | RUN JOBS=MAX npm ci --unsafe-perm --production && npm cache clean --force && rm -rf /tmp/*
16 |
17 | # Copy and enable the service
18 | COPY config/services /etc/systemd/system
19 | RUN systemctl enable balena-mdns-publisher.service
20 |
21 | # Build service
22 | FROM base as build
23 |
24 | RUN JOBS=MAX npm ci
25 |
26 | COPY . /usr/src/app/
27 |
28 | RUN JOBS=MAX npm run build
29 |
30 | # Final image
31 | FROM base
32 |
33 | # Copy built code
34 | COPY --from=build /usr/src/app/build /usr/src/app/build
35 | COPY --from=build /usr/src/app/bin /usr/src/app/bin
36 | COPY --from=build /usr/src/app/config /usr/src/app/config
37 | COPY --from=base /usr/src/app/node_modules /usr/src/app/node_modules
38 |
39 | COPY docker-hc /usr/src/app/
40 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU AFFERO GENERAL PUBLIC LICENSE
2 | Version 3, 19 November 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU Affero General Public License is a free, copyleft license for
11 | software and other kinds of works, specifically designed to ensure
12 | cooperation with the community in the case of network server software.
13 |
14 | The licenses for most software and other practical works are designed
15 | to take away your freedom to share and change the works. By contrast,
16 | our General Public Licenses are intended to guarantee your freedom to
17 | share and change all versions of a program--to make sure it remains free
18 | software for all its users.
19 |
20 | When we speak of free software, we are referring to freedom, not
21 | price. Our General Public Licenses are designed to make sure that you
22 | have the freedom to distribute copies of free software (and charge for
23 | them if you wish), that you receive source code or can get it if you
24 | want it, that you can change the software or use pieces of it in new
25 | free programs, and that you know you can do these things.
26 |
27 | Developers that use our General Public Licenses protect your rights
28 | with two steps: (1) assert copyright on the software, and (2) offer
29 | you this License which gives you legal permission to copy, distribute
30 | and/or modify the software.
31 |
32 | A secondary benefit of defending all users' freedom is that
33 | improvements made in alternate versions of the program, if they
34 | receive widespread use, become available for other developers to
35 | incorporate. Many developers of free software are heartened and
36 | encouraged by the resulting cooperation. However, in the case of
37 | software used on network servers, this result may fail to come about.
38 | The GNU General Public License permits making a modified version and
39 | letting the public access it on a server without ever releasing its
40 | source code to the public.
41 |
42 | The GNU Affero General Public License is designed specifically to
43 | ensure that, in such cases, the modified source code becomes available
44 | to the community. It requires the operator of a network server to
45 | provide the source code of the modified version running there to the
46 | users of that server. Therefore, public use of a modified version, on
47 | a publicly accessible server, gives the public access to the source
48 | code of the modified version.
49 |
50 | An older license, called the Affero General Public License and
51 | published by Affero, was designed to accomplish similar goals. This is
52 | a different license, not a version of the Affero GPL, but Affero has
53 | released a new version of the Affero GPL which permits relicensing under
54 | this license.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | TERMS AND CONDITIONS
60 |
61 | 0. Definitions.
62 |
63 | "This License" refers to version 3 of the GNU Affero General Public License.
64 |
65 | "Copyright" also means copyright-like laws that apply to other kinds of
66 | works, such as semiconductor masks.
67 |
68 | "The Program" refers to any copyrightable work licensed under this
69 | License. Each licensee is addressed as "you". "Licensees" and
70 | "recipients" may be individuals or organizations.
71 |
72 | To "modify" a work means to copy from or adapt all or part of the work
73 | in a fashion requiring copyright permission, other than the making of an
74 | exact copy. The resulting work is called a "modified version" of the
75 | earlier work or a work "based on" the earlier work.
76 |
77 | A "covered work" means either the unmodified Program or a work based
78 | on the Program.
79 |
80 | To "propagate" a work means to do anything with it that, without
81 | permission, would make you directly or secondarily liable for
82 | infringement under applicable copyright law, except executing it on a
83 | computer or modifying a private copy. Propagation includes copying,
84 | distribution (with or without modification), making available to the
85 | public, and in some countries other activities as well.
86 |
87 | To "convey" a work means any kind of propagation that enables other
88 | parties to make or receive copies. Mere interaction with a user through
89 | a computer network, with no transfer of a copy, is not conveying.
90 |
91 | An interactive user interface displays "Appropriate Legal Notices"
92 | to the extent that it includes a convenient and prominently visible
93 | feature that (1) displays an appropriate copyright notice, and (2)
94 | tells the user that there is no warranty for the work (except to the
95 | extent that warranties are provided), that licensees may convey the
96 | work under this License, and how to view a copy of this License. If
97 | the interface presents a list of user commands or options, such as a
98 | menu, a prominent item in the list meets this criterion.
99 |
100 | 1. Source Code.
101 |
102 | The "source code" for a work means the preferred form of the work
103 | for making modifications to it. "Object code" means any non-source
104 | form of a work.
105 |
106 | A "Standard Interface" means an interface that either is an official
107 | standard defined by a recognized standards body, or, in the case of
108 | interfaces specified for a particular programming language, one that
109 | is widely used among developers working in that language.
110 |
111 | The "System Libraries" of an executable work include anything, other
112 | than the work as a whole, that (a) is included in the normal form of
113 | packaging a Major Component, but which is not part of that Major
114 | Component, and (b) serves only to enable use of the work with that
115 | Major Component, or to implement a Standard Interface for which an
116 | implementation is available to the public in source code form. A
117 | "Major Component", in this context, means a major essential component
118 | (kernel, window system, and so on) of the specific operating system
119 | (if any) on which the executable work runs, or a compiler used to
120 | produce the work, or an object code interpreter used to run it.
121 |
122 | The "Corresponding Source" for a work in object code form means all
123 | the source code needed to generate, install, and (for an executable
124 | work) run the object code and to modify the work, including scripts to
125 | control those activities. However, it does not include the work's
126 | System Libraries, or general-purpose tools or generally available free
127 | programs which are used unmodified in performing those activities but
128 | which are not part of the work. For example, Corresponding Source
129 | includes interface definition files associated with source files for
130 | the work, and the source code for shared libraries and dynamically
131 | linked subprograms that the work is specifically designed to require,
132 | such as by intimate data communication or control flow between those
133 | subprograms and other parts of the work.
134 |
135 | The Corresponding Source need not include anything that users
136 | can regenerate automatically from other parts of the Corresponding
137 | Source.
138 |
139 | The Corresponding Source for a work in source code form is that
140 | same work.
141 |
142 | 2. Basic Permissions.
143 |
144 | All rights granted under this License are granted for the term of
145 | copyright on the Program, and are irrevocable provided the stated
146 | conditions are met. This License explicitly affirms your unlimited
147 | permission to run the unmodified Program. The output from running a
148 | covered work is covered by this License only if the output, given its
149 | content, constitutes a covered work. This License acknowledges your
150 | rights of fair use or other equivalent, as provided by copyright law.
151 |
152 | You may make, run and propagate covered works that you do not
153 | convey, without conditions so long as your license otherwise remains
154 | in force. You may convey covered works to others for the sole purpose
155 | of having them make modifications exclusively for you, or provide you
156 | with facilities for running those works, provided that you comply with
157 | the terms of this License in conveying all material for which you do
158 | not control copyright. Those thus making or running the covered works
159 | for you must do so exclusively on your behalf, under your direction
160 | and control, on terms that prohibit them from making any copies of
161 | your copyrighted material outside their relationship with you.
162 |
163 | Conveying under any other circumstances is permitted solely under
164 | the conditions stated below. Sublicensing is not allowed; section 10
165 | makes it unnecessary.
166 |
167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
168 |
169 | No covered work shall be deemed part of an effective technological
170 | measure under any applicable law fulfilling obligations under article
171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
172 | similar laws prohibiting or restricting circumvention of such
173 | measures.
174 |
175 | When you convey a covered work, you waive any legal power to forbid
176 | circumvention of technological measures to the extent such circumvention
177 | is effected by exercising rights under this License with respect to
178 | the covered work, and you disclaim any intention to limit operation or
179 | modification of the work as a means of enforcing, against the work's
180 | users, your or third parties' legal rights to forbid circumvention of
181 | technological measures.
182 |
183 | 4. Conveying Verbatim Copies.
184 |
185 | You may convey verbatim copies of the Program's source code as you
186 | receive it, in any medium, provided that you conspicuously and
187 | appropriately publish on each copy an appropriate copyright notice;
188 | keep intact all notices stating that this License and any
189 | non-permissive terms added in accord with section 7 apply to the code;
190 | keep intact all notices of the absence of any warranty; and give all
191 | recipients a copy of this License along with the Program.
192 |
193 | You may charge any price or no price for each copy that you convey,
194 | and you may offer support or warranty protection for a fee.
195 |
196 | 5. Conveying Modified Source Versions.
197 |
198 | You may convey a work based on the Program, or the modifications to
199 | produce it from the Program, in the form of source code under the
200 | terms of section 4, provided that you also meet all of these conditions:
201 |
202 | a) The work must carry prominent notices stating that you modified
203 | it, and giving a relevant date.
204 |
205 | b) The work must carry prominent notices stating that it is
206 | released under this License and any conditions added under section
207 | 7. This requirement modifies the requirement in section 4 to
208 | "keep intact all notices".
209 |
210 | c) You must license the entire work, as a whole, under this
211 | License to anyone who comes into possession of a copy. This
212 | License will therefore apply, along with any applicable section 7
213 | additional terms, to the whole of the work, and all its parts,
214 | regardless of how they are packaged. This License gives no
215 | permission to license the work in any other way, but it does not
216 | invalidate such permission if you have separately received it.
217 |
218 | d) If the work has interactive user interfaces, each must display
219 | Appropriate Legal Notices; however, if the Program has interactive
220 | interfaces that do not display Appropriate Legal Notices, your
221 | work need not make them do so.
222 |
223 | A compilation of a covered work with other separate and independent
224 | works, which are not by their nature extensions of the covered work,
225 | and which are not combined with it such as to form a larger program,
226 | in or on a volume of a storage or distribution medium, is called an
227 | "aggregate" if the compilation and its resulting copyright are not
228 | used to limit the access or legal rights of the compilation's users
229 | beyond what the individual works permit. Inclusion of a covered work
230 | in an aggregate does not cause this License to apply to the other
231 | parts of the aggregate.
232 |
233 | 6. Conveying Non-Source Forms.
234 |
235 | You may convey a covered work in object code form under the terms
236 | of sections 4 and 5, provided that you also convey the
237 | machine-readable Corresponding Source under the terms of this License,
238 | in one of these ways:
239 |
240 | a) Convey the object code in, or embodied in, a physical product
241 | (including a physical distribution medium), accompanied by the
242 | Corresponding Source fixed on a durable physical medium
243 | customarily used for software interchange.
244 |
245 | b) Convey the object code in, or embodied in, a physical product
246 | (including a physical distribution medium), accompanied by a
247 | written offer, valid for at least three years and valid for as
248 | long as you offer spare parts or customer support for that product
249 | model, to give anyone who possesses the object code either (1) a
250 | copy of the Corresponding Source for all the software in the
251 | product that is covered by this License, on a durable physical
252 | medium customarily used for software interchange, for a price no
253 | more than your reasonable cost of physically performing this
254 | conveying of source, or (2) access to copy the
255 | Corresponding Source from a network server at no charge.
256 |
257 | c) Convey individual copies of the object code with a copy of the
258 | written offer to provide the Corresponding Source. This
259 | alternative is allowed only occasionally and noncommercially, and
260 | only if you received the object code with such an offer, in accord
261 | with subsection 6b.
262 |
263 | d) Convey the object code by offering access from a designated
264 | place (gratis or for a charge), and offer equivalent access to the
265 | Corresponding Source in the same way through the same place at no
266 | further charge. You need not require recipients to copy the
267 | Corresponding Source along with the object code. If the place to
268 | copy the object code is a network server, the Corresponding Source
269 | may be on a different server (operated by you or a third party)
270 | that supports equivalent copying facilities, provided you maintain
271 | clear directions next to the object code saying where to find the
272 | Corresponding Source. Regardless of what server hosts the
273 | Corresponding Source, you remain obligated to ensure that it is
274 | available for as long as needed to satisfy these requirements.
275 |
276 | e) Convey the object code using peer-to-peer transmission, provided
277 | you inform other peers where the object code and Corresponding
278 | Source of the work are being offered to the general public at no
279 | charge under subsection 6d.
280 |
281 | A separable portion of the object code, whose source code is excluded
282 | from the Corresponding Source as a System Library, need not be
283 | included in conveying the object code work.
284 |
285 | A "User Product" is either (1) a "consumer product", which means any
286 | tangible personal property which is normally used for personal, family,
287 | or household purposes, or (2) anything designed or sold for incorporation
288 | into a dwelling. In determining whether a product is a consumer product,
289 | doubtful cases shall be resolved in favor of coverage. For a particular
290 | product received by a particular user, "normally used" refers to a
291 | typical or common use of that class of product, regardless of the status
292 | of the particular user or of the way in which the particular user
293 | actually uses, or expects or is expected to use, the product. A product
294 | is a consumer product regardless of whether the product has substantial
295 | commercial, industrial or non-consumer uses, unless such uses represent
296 | the only significant mode of use of the product.
297 |
298 | "Installation Information" for a User Product means any methods,
299 | procedures, authorization keys, or other information required to install
300 | and execute modified versions of a covered work in that User Product from
301 | a modified version of its Corresponding Source. The information must
302 | suffice to ensure that the continued functioning of the modified object
303 | code is in no case prevented or interfered with solely because
304 | modification has been made.
305 |
306 | If you convey an object code work under this section in, or with, or
307 | specifically for use in, a User Product, and the conveying occurs as
308 | part of a transaction in which the right of possession and use of the
309 | User Product is transferred to the recipient in perpetuity or for a
310 | fixed term (regardless of how the transaction is characterized), the
311 | Corresponding Source conveyed under this section must be accompanied
312 | by the Installation Information. But this requirement does not apply
313 | if neither you nor any third party retains the ability to install
314 | modified object code on the User Product (for example, the work has
315 | been installed in ROM).
316 |
317 | The requirement to provide Installation Information does not include a
318 | requirement to continue to provide support service, warranty, or updates
319 | for a work that has been modified or installed by the recipient, or for
320 | the User Product in which it has been modified or installed. Access to a
321 | network may be denied when the modification itself materially and
322 | adversely affects the operation of the network or violates the rules and
323 | protocols for communication across the network.
324 |
325 | Corresponding Source conveyed, and Installation Information provided,
326 | in accord with this section must be in a format that is publicly
327 | documented (and with an implementation available to the public in
328 | source code form), and must require no special password or key for
329 | unpacking, reading or copying.
330 |
331 | 7. Additional Terms.
332 |
333 | "Additional permissions" are terms that supplement the terms of this
334 | License by making exceptions from one or more of its conditions.
335 | Additional permissions that are applicable to the entire Program shall
336 | be treated as though they were included in this License, to the extent
337 | that they are valid under applicable law. If additional permissions
338 | apply only to part of the Program, that part may be used separately
339 | under those permissions, but the entire Program remains governed by
340 | this License without regard to the additional permissions.
341 |
342 | When you convey a copy of a covered work, you may at your option
343 | remove any additional permissions from that copy, or from any part of
344 | it. (Additional permissions may be written to require their own
345 | removal in certain cases when you modify the work.) You may place
346 | additional permissions on material, added by you to a covered work,
347 | for which you have or can give appropriate copyright permission.
348 |
349 | Notwithstanding any other provision of this License, for material you
350 | add to a covered work, you may (if authorized by the copyright holders of
351 | that material) supplement the terms of this License with terms:
352 |
353 | a) Disclaiming warranty or limiting liability differently from the
354 | terms of sections 15 and 16 of this License; or
355 |
356 | b) Requiring preservation of specified reasonable legal notices or
357 | author attributions in that material or in the Appropriate Legal
358 | Notices displayed by works containing it; or
359 |
360 | c) Prohibiting misrepresentation of the origin of that material, or
361 | requiring that modified versions of such material be marked in
362 | reasonable ways as different from the original version; or
363 |
364 | d) Limiting the use for publicity purposes of names of licensors or
365 | authors of the material; or
366 |
367 | e) Declining to grant rights under trademark law for use of some
368 | trade names, trademarks, or service marks; or
369 |
370 | f) Requiring indemnification of licensors and authors of that
371 | material by anyone who conveys the material (or modified versions of
372 | it) with contractual assumptions of liability to the recipient, for
373 | any liability that these contractual assumptions directly impose on
374 | those licensors and authors.
375 |
376 | All other non-permissive additional terms are considered "further
377 | restrictions" within the meaning of section 10. If the Program as you
378 | received it, or any part of it, contains a notice stating that it is
379 | governed by this License along with a term that is a further
380 | restriction, you may remove that term. If a license document contains
381 | a further restriction but permits relicensing or conveying under this
382 | License, you may add to a covered work material governed by the terms
383 | of that license document, provided that the further restriction does
384 | not survive such relicensing or conveying.
385 |
386 | If you add terms to a covered work in accord with this section, you
387 | must place, in the relevant source files, a statement of the
388 | additional terms that apply to those files, or a notice indicating
389 | where to find the applicable terms.
390 |
391 | Additional terms, permissive or non-permissive, may be stated in the
392 | form of a separately written license, or stated as exceptions;
393 | the above requirements apply either way.
394 |
395 | 8. Termination.
396 |
397 | You may not propagate or modify a covered work except as expressly
398 | provided under this License. Any attempt otherwise to propagate or
399 | modify it is void, and will automatically terminate your rights under
400 | this License (including any patent licenses granted under the third
401 | paragraph of section 11).
402 |
403 | However, if you cease all violation of this License, then your
404 | license from a particular copyright holder is reinstated (a)
405 | provisionally, unless and until the copyright holder explicitly and
406 | finally terminates your license, and (b) permanently, if the copyright
407 | holder fails to notify you of the violation by some reasonable means
408 | prior to 60 days after the cessation.
409 |
410 | Moreover, your license from a particular copyright holder is
411 | reinstated permanently if the copyright holder notifies you of the
412 | violation by some reasonable means, this is the first time you have
413 | received notice of violation of this License (for any work) from that
414 | copyright holder, and you cure the violation prior to 30 days after
415 | your receipt of the notice.
416 |
417 | Termination of your rights under this section does not terminate the
418 | licenses of parties who have received copies or rights from you under
419 | this License. If your rights have been terminated and not permanently
420 | reinstated, you do not qualify to receive new licenses for the same
421 | material under section 10.
422 |
423 | 9. Acceptance Not Required for Having Copies.
424 |
425 | You are not required to accept this License in order to receive or
426 | run a copy of the Program. Ancillary propagation of a covered work
427 | occurring solely as a consequence of using peer-to-peer transmission
428 | to receive a copy likewise does not require acceptance. However,
429 | nothing other than this License grants you permission to propagate or
430 | modify any covered work. These actions infringe copyright if you do
431 | not accept this License. Therefore, by modifying or propagating a
432 | covered work, you indicate your acceptance of this License to do so.
433 |
434 | 10. Automatic Licensing of Downstream Recipients.
435 |
436 | Each time you convey a covered work, the recipient automatically
437 | receives a license from the original licensors, to run, modify and
438 | propagate that work, subject to this License. You are not responsible
439 | for enforcing compliance by third parties with this License.
440 |
441 | An "entity transaction" is a transaction transferring control of an
442 | organization, or substantially all assets of one, or subdividing an
443 | organization, or merging organizations. If propagation of a covered
444 | work results from an entity transaction, each party to that
445 | transaction who receives a copy of the work also receives whatever
446 | licenses to the work the party's predecessor in interest had or could
447 | give under the previous paragraph, plus a right to possession of the
448 | Corresponding Source of the work from the predecessor in interest, if
449 | the predecessor has it or can get it with reasonable efforts.
450 |
451 | You may not impose any further restrictions on the exercise of the
452 | rights granted or affirmed under this License. For example, you may
453 | not impose a license fee, royalty, or other charge for exercise of
454 | rights granted under this License, and you may not initiate litigation
455 | (including a cross-claim or counterclaim in a lawsuit) alleging that
456 | any patent claim is infringed by making, using, selling, offering for
457 | sale, or importing the Program or any portion of it.
458 |
459 | 11. Patents.
460 |
461 | A "contributor" is a copyright holder who authorizes use under this
462 | License of the Program or a work on which the Program is based. The
463 | work thus licensed is called the contributor's "contributor version".
464 |
465 | A contributor's "essential patent claims" are all patent claims
466 | owned or controlled by the contributor, whether already acquired or
467 | hereafter acquired, that would be infringed by some manner, permitted
468 | by this License, of making, using, or selling its contributor version,
469 | but do not include claims that would be infringed only as a
470 | consequence of further modification of the contributor version. For
471 | purposes of this definition, "control" includes the right to grant
472 | patent sublicenses in a manner consistent with the requirements of
473 | this License.
474 |
475 | Each contributor grants you a non-exclusive, worldwide, royalty-free
476 | patent license under the contributor's essential patent claims, to
477 | make, use, sell, offer for sale, import and otherwise run, modify and
478 | propagate the contents of its contributor version.
479 |
480 | In the following three paragraphs, a "patent license" is any express
481 | agreement or commitment, however denominated, not to enforce a patent
482 | (such as an express permission to practice a patent or covenant not to
483 | sue for patent infringement). To "grant" such a patent license to a
484 | party means to make such an agreement or commitment not to enforce a
485 | patent against the party.
486 |
487 | If you convey a covered work, knowingly relying on a patent license,
488 | and the Corresponding Source of the work is not available for anyone
489 | to copy, free of charge and under the terms of this License, through a
490 | publicly available network server or other readily accessible means,
491 | then you must either (1) cause the Corresponding Source to be so
492 | available, or (2) arrange to deprive yourself of the benefit of the
493 | patent license for this particular work, or (3) arrange, in a manner
494 | consistent with the requirements of this License, to extend the patent
495 | license to downstream recipients. "Knowingly relying" means you have
496 | actual knowledge that, but for the patent license, your conveying the
497 | covered work in a country, or your recipient's use of the covered work
498 | in a country, would infringe one or more identifiable patents in that
499 | country that you have reason to believe are valid.
500 |
501 | If, pursuant to or in connection with a single transaction or
502 | arrangement, you convey, or propagate by procuring conveyance of, a
503 | covered work, and grant a patent license to some of the parties
504 | receiving the covered work authorizing them to use, propagate, modify
505 | or convey a specific copy of the covered work, then the patent license
506 | you grant is automatically extended to all recipients of the covered
507 | work and works based on it.
508 |
509 | A patent license is "discriminatory" if it does not include within
510 | the scope of its coverage, prohibits the exercise of, or is
511 | conditioned on the non-exercise of one or more of the rights that are
512 | specifically granted under this License. You may not convey a covered
513 | work if you are a party to an arrangement with a third party that is
514 | in the business of distributing software, under which you make payment
515 | to the third party based on the extent of your activity of conveying
516 | the work, and under which the third party grants, to any of the
517 | parties who would receive the covered work from you, a discriminatory
518 | patent license (a) in connection with copies of the covered work
519 | conveyed by you (or copies made from those copies), or (b) primarily
520 | for and in connection with specific products or compilations that
521 | contain the covered work, unless you entered into that arrangement,
522 | or that patent license was granted, prior to 28 March 2007.
523 |
524 | Nothing in this License shall be construed as excluding or limiting
525 | any implied license or other defenses to infringement that may
526 | otherwise be available to you under applicable patent law.
527 |
528 | 12. No Surrender of Others' Freedom.
529 |
530 | If conditions are imposed on you (whether by court order, agreement or
531 | otherwise) that contradict the conditions of this License, they do not
532 | excuse you from the conditions of this License. If you cannot convey a
533 | covered work so as to satisfy simultaneously your obligations under this
534 | License and any other pertinent obligations, then as a consequence you may
535 | not convey it at all. For example, if you agree to terms that obligate you
536 | to collect a royalty for further conveying from those to whom you convey
537 | the Program, the only way you could satisfy both those terms and this
538 | License would be to refrain entirely from conveying the Program.
539 |
540 | 13. Remote Network Interaction; Use with the GNU General Public License.
541 |
542 | Notwithstanding any other provision of this License, if you modify the
543 | Program, your modified version must prominently offer all users
544 | interacting with it remotely through a computer network (if your version
545 | supports such interaction) an opportunity to receive the Corresponding
546 | Source of your version by providing access to the Corresponding Source
547 | from a network server at no charge, through some standard or customary
548 | means of facilitating copying of software. This Corresponding Source
549 | shall include the Corresponding Source for any work covered by version 3
550 | of the GNU General Public License that is incorporated pursuant to the
551 | following paragraph.
552 |
553 | Notwithstanding any other provision of this License, you have
554 | permission to link or combine any covered work with a work licensed
555 | under version 3 of the GNU General Public License into a single
556 | combined work, and to convey the resulting work. The terms of this
557 | License will continue to apply to the part which is the covered work,
558 | but the work with which it is combined will remain governed by version
559 | 3 of the GNU General Public License.
560 |
561 | 14. Revised Versions of this License.
562 |
563 | The Free Software Foundation may publish revised and/or new versions of
564 | the GNU Affero General Public License from time to time. Such new versions
565 | will be similar in spirit to the present version, but may differ in detail to
566 | address new problems or concerns.
567 |
568 | Each version is given a distinguishing version number. If the
569 | Program specifies that a certain numbered version of the GNU Affero General
570 | Public License "or any later version" applies to it, you have the
571 | option of following the terms and conditions either of that numbered
572 | version or of any later version published by the Free Software
573 | Foundation. If the Program does not specify a version number of the
574 | GNU Affero General Public License, you may choose any version ever published
575 | by the Free Software Foundation.
576 |
577 | If the Program specifies that a proxy can decide which future
578 | versions of the GNU Affero General Public License can be used, that proxy's
579 | public statement of acceptance of a version permanently authorizes you
580 | to choose that version for the Program.
581 |
582 | Later license versions may give you additional or different
583 | permissions. However, no additional obligations are imposed on any
584 | author or copyright holder as a result of your choosing to follow a
585 | later version.
586 |
587 | 15. Disclaimer of Warranty.
588 |
589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
597 |
598 | 16. Limitation of Liability.
599 |
600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
608 | SUCH DAMAGES.
609 |
610 | 17. Interpretation of Sections 15 and 16.
611 |
612 | If the disclaimer of warranty and limitation of liability provided
613 | above cannot be given local legal effect according to their terms,
614 | reviewing courts shall apply local law that most closely approximates
615 | an absolute waiver of all civil liability in connection with the
616 | Program, unless a warranty or assumption of liability accompanies a
617 | copy of the Program in return for a fee.
618 |
619 | END OF TERMS AND CONDITIONS
620 |
621 | How to Apply These Terms to Your New Programs
622 |
623 | If you develop a new program, and you want it to be of the greatest
624 | possible use to the public, the best way to achieve this is to make it
625 | free software which everyone can redistribute and change under these terms.
626 |
627 | To do so, attach the following notices to the program. It is safest
628 | to attach them to the start of each source file to most effectively
629 | state the exclusion of warranty; and each file should have at least
630 | the "copyright" line and a pointer to where the full notice is found.
631 |
632 |
633 | Copyright (C)
634 |
635 | This program is free software: you can redistribute it and/or modify
636 | it under the terms of the GNU Affero General Public License as published
637 | by the Free Software Foundation, either version 3 of the License, or
638 | (at your option) any later version.
639 |
640 | This program is distributed in the hope that it will be useful,
641 | but WITHOUT ANY WARRANTY; without even the implied warranty of
642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
643 | GNU Affero General Public License for more details.
644 |
645 | You should have received a copy of the GNU Affero General Public License
646 | along with this program. If not, see .
647 |
648 | Also add information on how to contact you by electronic and paper mail.
649 |
650 | If your software can interact with users remotely through a computer
651 | network, you should also make sure that it provides a way for users to
652 | get its source. For example, if your program is a web application, its
653 | interface could display a "Source" link that leads users to an archive
654 | of the code. There are many ways you could offer source, and different
655 | solutions will be better for different programs; see section 13 for the
656 | specific requirements.
657 |
658 | You should also get your employer (if you work as a programmer) or school,
659 | if any, to sign a "copyright disclaimer" for the program, if necessary.
660 | For more information on this, and how to apply and follow the GNU AGPL, see
661 | .
662 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # balena-mdns-publisher
2 |
3 | The MDNS publisher advertises a set of local IP addresses for a local network
4 | (`.local`) instance of the balena-on-balena (BoB) or OpenBalena (OB) services. The
5 | same IP address is used for all services in the BoB or OB instance.
6 |
7 | This allows any machine on the same subnet that is not more than one hop from the
8 | publisher and BoB/OB instance to automatically be able to resolve the hostnames used for
9 | the instance (as long as the machine supports mDNS/DNS-SD, also known as 'ZeroConf'
10 | networking).
11 |
12 |
13 | ## Prerequisites
14 |
15 | The host machine running the publisher service must be running an instance of the
16 | [Avahi](https://www.avahi.org/) daemon, which this service uses for address publishing.
17 |
18 | Additionally, the service requires the ability to use `systemd` (ie. access to host
19 | `cgroups` or relevant `tmpfs` mount), and the host DBUS socket.
20 |
21 |
22 | ## Installation and Running
23 |
24 | This service can be run under a Linux environment, either any standard distribution
25 | running docker, or a resinOS device. The two configurations require separate setup,
26 | however. A `docker-compose` service is used here to show how to configure the service, and
27 | each specific target.
28 |
29 |
30 | ### Docker Setup
31 |
32 | Regardless of target, the service requires particular environment variables and access to
33 | the host network. The following `docker-compose` snippet shows the requirements for
34 | running the service:
35 |
36 | balena-mdns-publisher:
37 | image: 'balena/balena-mdns-publisher:master'
38 | network_mode: host
39 | cap_add:
40 | - SYS_RESOURCE
41 | - SYS_ADMIN
42 | security_opt:
43 | - 'apparmor:unconfined'
44 | tmpfs:
45 | - /run
46 | - /sys/fs/cgroup
47 | environment:
48 |
49 |
50 |
51 | #### Generic Linux Host
52 |
53 | Additionally, for a generic Linux host running Avahi and Docker, the following should be
54 | included in the service definition to expose the DBUS socket to the correct place inside
55 | the service container:
56 |
57 | volumes:
58 | - /run/dbus/system_bus_socket:/host/run/dbus/system_bus_socket
59 |
60 | Alternatively you may change the in-container location of the DBUS socket, but you
61 | *must* set `DBUS_SESSION_BUS_ADDRESS` envvar to the same location value.
62 |
63 |
64 | #### balenaOS Device
65 |
66 | Should the target be a balenaOS device, then the following section should also be included
67 | to ensure that the DBUS socket is mapped and environment variables is set:
68 |
69 | labels:
70 | io.balena.features.dbus: '1'
71 |
72 |
73 | ### Environment Variables
74 |
75 | The mDNS publisher requires some additional environment variables be passed to it on
76 | execution to allow it to function correctly. These are
77 |
78 | * `CONFD_BACKEND` - This should always be set to `ENV`
79 | * `MDNS_TLD` - This is the full Top Level Domain of the host being published
80 | * `MDNS_SUBDOMAINS` - An array of subdomains to publish host addresses for
81 | * `INTERFACE` - The name of the host network interface to publish the subdomain addresses
82 | too. If this *is* set, it will override the returned default interface
83 | * `DBUS_SESSION_BUS_ADDRESS` - This must always be set to `unix:path=/host/run/dbus/system_bus_socket'`
84 | (unless the DBUS target is located elsewhere)
85 | * `MDNS_API_TOKEN` (optional) - Should Public URL exposure be required, then the shared
86 | API token for the Proxy service should be set using this key. The API will be queried
87 | every 20 seconds, and any new device with an exposed public URL will have its UUID
88 | published as a subdomain. Previously published UUIDs that no longer have a public URL
89 | will be deleted
90 | * `BALENA_ROOT_CA` (optional) - Should the certificate chain used for the BoB/OB instance
91 | be via a self-signed CA, this value should be a Base64 encoded version of the CA's PEM
92 | certificate
93 |
94 | This allows the acquisition of the underlying DBUS socket, as well as the ability to run
95 | `systemd`.
96 |
97 |
98 | ## Example `docker-compose` Service
99 |
100 | The following is an example of adding the balena mDNS publisher to a BoB instance running
101 | under balenaOS:
102 |
103 | balena-mdns-publisher:
104 | image: 'balena/balena-mdns-publisher:master'
105 | network_mode: host
106 | cap_add:
107 | - SYS_RESOURCE
108 | - SYS_ADMIN
109 | security_opt:
110 | - 'apparmor:unconfined'
111 | tmpfs:
112 | - /run
113 | - /sys/fs/cgroup
114 | labels:
115 | io.balena.features.dbus: '1'
116 | environment:
117 | CONFD_BACKEND: ENV
118 | MDNS_TLD: my.bob.local
119 | MDNS_SUBDOMAINS: >-
120 | ["admin", "api", ...]
121 | MDNS_API_TOKEN: 1234567890abcdef
122 | DBUS_SESSION_BUS_ADDRESS: 'unix:path=/host/run/dbus/system_bus_socket'
123 | BALENA_ROOT_CA: >-
124 | 1234567890abcdef
125 |
--------------------------------------------------------------------------------
/VERSION:
--------------------------------------------------------------------------------
1 | 1.27.192
--------------------------------------------------------------------------------
/bin/balena-mdns-publisher:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 | require('../build/app');
3 |
--------------------------------------------------------------------------------
/config/confd/conf.d/env.toml:
--------------------------------------------------------------------------------
1 | [template]
2 | src = "env.tmpl"
3 | dest = "/usr/src/app/config/env"
4 | keys = [
5 | "API_HOST",
6 | "BALENA_DEVICE_UUID",
7 | "DBUS_SYSTEM_BUS_ADDRESS",
8 | "INTERFACE",
9 | "MDNS_API_TOKEN",
10 | "MDNS_SUBDOMAINS",
11 | "MDNS_TLD",
12 | ]
13 |
--------------------------------------------------------------------------------
/config/confd/templates/env.tmpl:
--------------------------------------------------------------------------------
1 | API_HOST={{getenv "API_HOST"}}
2 | BALENA_DEVICE_UUID={{getenv "BALENA_DEVICE_UUID"}}
3 | DBUS_SESSION_BUS_ADDRESS={{getenv "DBUS_SESSION_BUS_ADDRESS"}}
4 | INTERFACE={{getenv "INTERFACE"}}
5 | MDNS_API_TOKEN={{getenv "MDNS_API_TOKEN"}}
6 | MDNS_SUBDOMAINS={{getenv "MDNS_SUBDOMAINS"}}
7 | MDNS_TLD={{getenv "MDNS_TLD"}}
8 | NODE_EXTRA_CA_CERTS={{getenv "NODE_EXTRA_CA_CERTS"}}
9 |
--------------------------------------------------------------------------------
/config/services/balena-mdns-publisher.service:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=balena-mdns-publisher
3 | Requires=confd.service
4 | After=confd.service
5 |
6 | [Service]
7 | StandardOutput=journal+console
8 | StandardError=journal+console
9 | WorkingDirectory=/usr/src/app
10 | EnvironmentFile=/usr/src/app/config/env
11 | ExecStart=/usr/src/app/bin/balena-mdns-publisher
12 | Restart=always
13 |
14 | [Install]
15 | WantedBy=basic.target
16 |
--------------------------------------------------------------------------------
/docker-hc:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -a
4 |
5 | [[ -f /etc/docker.env ]] && source /etc/docker.env
6 |
7 | # avahi-resolve doesn't return non-zero error code on failure :/
8 | for host in $(env \
9 | | grep -E "^[A-Z0-9_]+_HOST=.*\.${MDNS_TLD}$|^[A-Z0-9_]+_HOSTNAME=.*\.${MDNS_TLD}$" \
10 | | grep -Ev 'BALENA|files\.' \
11 | | sed 's|http.*://||g'); do
12 | avahi-resolve -n4 $(echo ${host} | awk -F'=' '{print $2}') 2>&1 | grep -vE 'Failed|Timeout' || exit $?
13 | done
14 |
15 | haproxy="$(ip route get 8.8.8.8 | head -1 | awk '{print $7}'):443"
16 |
17 | if [[ -s ${NODE_EXTRA_CA_CERTS} ]]; then
18 | # ensures self-signed certificates are installed correctly (if any)
19 | true | openssl s_client -connect "${haproxy}" \
20 | -servername "${API_HOST}" \
21 | -CAfile "${NODE_EXTRA_CA_CERTS}"
22 | else
23 | # public DNS configuration (e.g. LetsEncrypt)
24 | true | openssl s_client -connect "${haproxy}" -servername "${API_HOST}"
25 | fi
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "balena-mdns-publisher",
3 | "version": "1.27.192",
4 | "scripts": {
5 | "build": "tsc",
6 | "prettify": "balena-lint --fix src/ typings/",
7 | "lint": "balena-lint src/ typings/ && tsc --noEmit",
8 | "start": "node build/app.js",
9 | "test": "true",
10 | "prepare": "node -e \"try { (await import('husky')).default() } catch (e) { if (e.code !== 'ERR_MODULE_NOT_FOUND') throw e }\" --input-type module"
11 | },
12 | "author": "Heds Simons ",
13 | "repository": {
14 | "type": "git",
15 | "url": "git://github.com/balena-io/balena-mdns-publisher.git"
16 | },
17 | "bugs": {
18 | "url": "https://github.com/balena-io/balena-mdns-publisher/issues"
19 | },
20 | "nyc": {
21 | "extension": [
22 | ".ts"
23 | ]
24 | },
25 | "private": true,
26 | "dependencies": {
27 | "balena-sdk": "^20.0.0",
28 | "bluebird": "^3.7.2",
29 | "dbus-native": "^0.4.0",
30 | "lodash": "^4.17.21",
31 | "request": "^2.88.2",
32 | "request-promise": "^4.2.6"
33 | },
34 | "devDependencies": {
35 | "@balena/lint": "^9.0.0",
36 | "@types/lodash": "^4.17.4",
37 | "@types/node": "^22.0.0",
38 | "@types/request-promise": "4.1.51",
39 | "husky": "^9.0.0",
40 | "lint-staged": "^15.2.5",
41 | "typescript": "^5.4.5"
42 | },
43 | "engines": {
44 | "node": "^22.0.0",
45 | "npm": "^10.1.0"
46 | },
47 | "husky": {
48 | "hooks": {
49 | "pre-commit": "lint-staged",
50 | "pre-push": "npm run lint"
51 | }
52 | },
53 | "lint-staged": {
54 | "*.ts": [
55 | "balena-lint --fix"
56 | ]
57 | },
58 | "versionist": {
59 | "publishedAt": "2025-01-21T18:50:53.037Z"
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/repo.yml:
--------------------------------------------------------------------------------
1 | type: 'docker'
2 | upstream:
3 | - repo: 'balena/open-balena-base'
4 | url: 'https://github.com/balena-io-modules/open-balena-base'
5 |
--------------------------------------------------------------------------------
/src/app.ts:
--------------------------------------------------------------------------------
1 | import * as BalenaSdk from 'balena-sdk';
2 | import * as Bluebird from 'bluebird';
3 | import { Message, systemBus } from 'dbus-native';
4 | import * as _ from 'lodash';
5 | import * as os from 'os';
6 |
7 | /**
8 | * Hosts published via Avahi.
9 | */
10 | interface PublishedHosts {
11 | /** The Avahi group used to publish the host */
12 | group: string;
13 | /** The full hostname of the published host */
14 | hostname: string;
15 | /** The IP address of the published host */
16 | address: string;
17 | }
18 |
19 | /** List of published hosts */
20 | const publishedHosts: PublishedHosts[] = [];
21 | /** List of devices with accessible public URLs */
22 | let accessibleDevices: Array> = [];
23 |
24 | /** DBus controller */
25 | const dbus = systemBus();
26 | /**
27 | * DBus invoker.
28 | *
29 | * @param message DBus message to send
30 | */
31 | const dbusInvoker = (message: Message): PromiseLike => {
32 | return Bluebird.fromCallback((cb) => {
33 | return dbus.invoke(message, cb);
34 | });
35 | };
36 |
37 | const getIPv4InterfaceInfo = (iface?: string): os.NetworkInterfaceInfo[] => {
38 | return Object.entries(os.networkInterfaces())
39 | .filter(([nic]) => !iface || nic === iface)
40 | .flatMap(([, ips]) => ips || [])
41 | .filter((ip) => !ip.internal && ip.family === 'IPv4');
42 | };
43 |
44 | const getIPv6InterfaceInfo = (iface?: string): os.NetworkInterfaceInfo[] => {
45 | return Object.entries(os.networkInterfaces())
46 | .filter(([nic]) => !iface || nic === iface)
47 | .flatMap(([, ips]) => ips || [])
48 | .filter((ip) => !ip.internal && ip.family === 'IPv6' && ip.scopeid === 0);
49 | };
50 |
51 | /**
52 | * Retrieve a new Avahi group for address publishing.
53 | */
54 | const getGroup = async (): Promise => {
55 | return await dbusInvoker({
56 | destination: 'org.freedesktop.Avahi',
57 | path: '/',
58 | interface: 'org.freedesktop.Avahi.Server',
59 | member: 'EntryGroupNew',
60 | });
61 | };
62 |
63 | /**
64 | * Add a host address to the local domain.
65 | *
66 | * @param hostname Full hostname to publish
67 | * @param addresses IP address for the hostname
68 | */
69 | const addHostAddress = async (
70 | hostname: string,
71 | addresses: string[],
72 | ): Promise => {
73 | for (const address of addresses) {
74 | // If the hostname is already published with the same address, return
75 | if (_.find(publishedHosts, { hostname, address })) {
76 | return;
77 | }
78 |
79 | console.log(`Adding ${hostname} at address ${address} to local MDNS pool`);
80 |
81 | // We require a new group for each address.
82 | // We don't catch errors, as our restart policy is to not restart.
83 | const group = await getGroup();
84 |
85 | await dbusInvoker({
86 | destination: 'org.freedesktop.Avahi',
87 | path: group,
88 | interface: 'org.freedesktop.Avahi.EntryGroup',
89 | member: 'AddAddress',
90 | body: [-1, -1, 0x10, hostname, address],
91 | signature: 'iiuss',
92 | });
93 |
94 | await dbusInvoker({
95 | destination: 'org.freedesktop.Avahi',
96 | path: group,
97 | interface: 'org.freedesktop.Avahi.EntryGroup',
98 | member: 'Commit',
99 | });
100 |
101 | // Add to the published hosts list
102 | publishedHosts.push({
103 | group,
104 | hostname,
105 | address,
106 | });
107 | }
108 | };
109 |
110 | /**
111 | * Remove hostname from published list
112 | *
113 | * @param hostname Hostname to remove from list
114 | */
115 | const removeHostAddress = async (hostname: string): Promise => {
116 | // If the hostname doesn't exist, we don't use it
117 | const hostDetails = _.find(publishedHosts, { hostname });
118 | if (!hostDetails) {
119 | return;
120 | }
121 |
122 | console.log(`Removing ${hostname} at address from local MDNS pool`);
123 |
124 | // Free the group, removing the published address
125 | await dbusInvoker({
126 | destination: 'org.freedesktop.Avahi',
127 | path: hostDetails.group,
128 | interface: 'org.freedesktop.Avahi.EntryGroup',
129 | member: 'Free',
130 | });
131 |
132 | // Remove from the published hosts list
133 | _.remove(publishedHosts, { hostname });
134 | };
135 |
136 | /**
137 | * Scan balena devices with accessible public URLs
138 | *
139 | * @param tld TLD to use for URL publishing
140 | * @param addresses IP addresses to use for publishing
141 | */
142 | const reapDevices = async (addresses: string[], deviceTld?: string) => {
143 | for (const address of addresses) {
144 | // Query the SDK using the Proxy service key for *all* current devices
145 | try {
146 | // Get list of all accessible devices
147 | const newAccessible = await balena.pine.get({
148 | resource: 'device',
149 | options: {
150 | $select: 'uuid',
151 | $filter: {
152 | is_web_accessible: true,
153 | },
154 | },
155 | });
156 |
157 | // Publish everything new
158 | const oldAccessibleUuids = new Set(accessibleDevices.map((d) => d.uuid));
159 | for (const device of newAccessible) {
160 | if (!oldAccessibleUuids.has(device.uuid)) {
161 | await addHostAddress(`${device.uuid}.devices.${deviceTld}`, [
162 | address,
163 | ]);
164 | }
165 | }
166 | // Unpublish everything no longer accessible
167 | const newAccessibleUuids = new Set(newAccessible.map((d) => d.uuid));
168 | for (const device of accessibleDevices) {
169 | if (!newAccessibleUuids.has(device.uuid)) {
170 | await removeHostAddress(`${device.uuid}.devices.${deviceTld}`);
171 | }
172 | }
173 |
174 | accessibleDevices = newAccessible;
175 | } catch (err) {
176 | console.log(`Couldn't reap devices list: ${err}`);
177 | }
178 | }
179 | };
180 |
181 | // if running on balenaOS, insert device UUID
182 | let tld = process.env.MDNS_TLD;
183 | if (tld && process.env.BALENA_DEVICE_UUID) {
184 | tld = `${process.env.BALENA_DEVICE_UUID}.${process.env.MDNS_TLD}`;
185 | }
186 |
187 | const MDNSHosts = process.env.MDNS_SUBDOMAINS
188 | ? process.env.MDNS_SUBDOMAINS.split(',')
189 | : [];
190 |
191 | const balena = BalenaSdk.getSdk({
192 | apiUrl: `https://${process.env.API_HOST}/`,
193 | });
194 |
195 | (async () => {
196 | try {
197 | // get the first non-link local IP for each address family
198 | const ipAddrs = _.compact([
199 | getIPv4InterfaceInfo(process.env.INTERFACE)[0],
200 | getIPv6InterfaceInfo(process.env.INTERFACE)[0],
201 | ]).flatMap((ip) => ip.address);
202 |
203 | // For each address, publish the interface IP address.
204 | if (tld) {
205 | await Bluebird.map(MDNSHosts, (host) => {
206 | const fullHostname = `${host}.${tld}`;
207 |
208 | return addHostAddress(fullHostname, ipAddrs);
209 | });
210 | }
211 |
212 | // Finally, login to the SDK and set a timerInterval every 20 seconds to update
213 | // public URL addresses
214 | if (process.env.MDNS_API_TOKEN && tld) {
215 | await balena.auth.loginWithToken(process.env.MDNS_API_TOKEN);
216 | setInterval(() => reapDevices(ipAddrs, tld), 20 * 1000);
217 | }
218 | } catch (err) {
219 | console.log(`balena MDNS publisher error:\n${err}`);
220 | // This is not ideal. However, dbus-native does not correctly free connections
221 | // on event loop exit
222 | process.exit(1);
223 | }
224 | })();
225 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "declaration": true,
5 | "noImplicitAny": true,
6 | "removeComments": true,
7 | "preserveConstEnums": true,
8 | "strictNullChecks": true,
9 | "sourceMap": true,
10 | "target": "es2022",
11 | "noUnusedLocals": true,
12 | "noUnusedParameters": true,
13 | "outDir": "build"
14 | },
15 | "include": [
16 | "typings/**/*.d.ts",
17 | "src/**/*.ts"
18 | ],
19 | "exclude": [
20 | "node_modules"
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/typings/dbus-native.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'dbus-native' {
2 | export type BodyEntry = string | number | null;
3 |
4 | export interface Message {
5 | path: string;
6 | destination: string;
7 | member: string;
8 | interface: string;
9 | body?: BodyEntry[];
10 | signature?: string;
11 | }
12 |
13 | export interface Bus {
14 | invoke: (
15 | message: Message,
16 | callback: (error: Error, response: any) => void,
17 | ) => void;
18 | }
19 |
20 | export function systemBus(): Bus;
21 | }
22 |
--------------------------------------------------------------------------------