mirror of
https://github.com/balena-io/open-balena.git
synced 2025-06-24 10:18:15 +00:00
Compare commits
39 Commits
Author | SHA1 | Date | |
---|---|---|---|
dd59088cd2 | |||
cae93253a9 | |||
c4a18f5bf8 | |||
3b0c106eb1 | |||
c9fa4cf00f | |||
ea605d1444 | |||
966ea04241 | |||
dce59b65a3 | |||
f151d2a6cc | |||
4efb25afc7 | |||
08890adf92 | |||
44c11d9d16 | |||
e5bbfb833f | |||
a9107a1d6f | |||
f7207fb4a0 | |||
b39074c0ba | |||
3fed389090 | |||
96afd454bf | |||
0e0e5e1bc5 | |||
7c4e9fdc09 | |||
fbcb35a595 | |||
94f8b159c3 | |||
a328e8fc1d | |||
b1fd42669a | |||
39f7f6b0cc | |||
1180bb3462 | |||
fbf3007d4c | |||
2a3df9cd2a | |||
d71a90c1ef | |||
6739d1257b | |||
381fba943d | |||
66acae8bbf | |||
cd2c3f5e11 | |||
071b5850a9 | |||
91bc92dbb5 | |||
49831a6a60 | |||
549de52c73 | |||
826b61f08b | |||
0cdf0ef558 |
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -1,2 +0,0 @@
|
||||
# Main repo owners:
|
||||
* @dfunckt @xginn8 @pdcastro
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -2,6 +2,10 @@
|
||||
.project
|
||||
.vagrant/
|
||||
|
||||
meta.json
|
||||
landr-dist
|
||||
*.traineddata
|
||||
|
||||
/config
|
||||
/docker-compose.yml
|
||||
/package-lock.json
|
||||
|
File diff suppressed because it is too large
Load Diff
975
CHANGELOG.md
975
CHANGELOG.md
@ -4,6 +4,981 @@ All notable changes to this project will be documented in this file
|
||||
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
# v3.5.0
|
||||
## (2022-04-27)
|
||||
|
||||
* Adding Landr test for openbalena [Andrew Nhem]
|
||||
* Adding Landr test for openbalena [Andrew Nhem]
|
||||
* Adding Landr test for openbalena [Andrew Nhem]
|
||||
|
||||
# v3.4.3
|
||||
## (2022-02-22)
|
||||
|
||||
* chore(registry): removed data volume [Bart Versluijs]
|
||||
|
||||
# v3.4.2
|
||||
## (2021-10-05)
|
||||
|
||||
* Get cert-provider working again [dave]
|
||||
|
||||
# v3.4.1
|
||||
## (2021-06-30)
|
||||
|
||||
* Delete CODEOWNERS [dfunckt]
|
||||
|
||||
# v3.4.0
|
||||
## (2021-06-25)
|
||||
|
||||
|
||||
<details>
|
||||
<summary> Update API, registry and VPN services [Bart Versluijs] </summary>
|
||||
|
||||
> ## open-balena-api-0.139.0
|
||||
> ### (2021-05-11)
|
||||
>
|
||||
> * Require public apps to be of a non-legacy type [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.138.11
|
||||
> ### (2021-05-11)
|
||||
>
|
||||
> * hostapps: unset a target hostapp when changing device types [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.10
|
||||
> ### (2021-05-07)
|
||||
>
|
||||
> * Use `true = false` rather than `1 = 2` for generating a false result [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.138.9
|
||||
> ### (2021-05-06)
|
||||
>
|
||||
> * supervisor-apps: allow provisioning directly to a logstream edition [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.8
|
||||
> ### (2021-05-05)
|
||||
>
|
||||
> * hostapps: test that devices can still PATCH after provisioning to an invalidated release [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.7
|
||||
> ### (2021-05-04)
|
||||
>
|
||||
> * supervisor-releases: copy across all relevant modeling from closed API [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.6
|
||||
> ### (2021-05-04)
|
||||
>
|
||||
> * Remove unnecessary async/await from state endpoint [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.138.5
|
||||
> ### (2021-05-04)
|
||||
>
|
||||
> * hostapps: ensure that preprovisioned devices aren't downgraded after check in [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.4
|
||||
> ### (2021-05-03)
|
||||
>
|
||||
> * hostapps: remove rule enforcing valid hostapp releases [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.3
|
||||
> ### (2021-05-03)
|
||||
>
|
||||
> * fixtures: reuse variable rather than hardcode the value [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.2
|
||||
> ### (2021-05-03)
|
||||
>
|
||||
> * fixtures: drop unnecessary state patch value [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.138.1
|
||||
> ### (2021-04-30)
|
||||
>
|
||||
> * Fix 'dependents' on state not being returned [toochevere]
|
||||
>
|
||||
> ## open-balena-api-0.138.0
|
||||
> ### (2021-04-30)
|
||||
>
|
||||
> * Revert "Expose the RPi family config vars to raspberrypi3-unipi-neuron" [Florin Sarbu]
|
||||
>
|
||||
> ## open-balena-api-0.137.1
|
||||
> ### (2021-04-30)
|
||||
>
|
||||
> * Add missing foreign key indexes [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.137.0
|
||||
> ### (2021-04-30)
|
||||
>
|
||||
> * Expose the RPi family config vars to raspberrypi3-unipi-neuron [Florin Sarbu]
|
||||
>
|
||||
> ## open-balena-api-0.136.4
|
||||
> ### (2021-04-29)
|
||||
>
|
||||
> * Refactoring to get ready for v3 state endpoint changes [toochevere]
|
||||
>
|
||||
> ## open-balena-api-0.136.3
|
||||
> ### (2021-04-29)
|
||||
>
|
||||
> * Remove unnecessary delete hook for env var validation [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.136.2
|
||||
> ### (2021-04-29)
|
||||
>
|
||||
> * Accept additional fields during provisioning if they are provided [Akis Kesoglou]
|
||||
>
|
||||
> ## open-balena-api-0.136.1
|
||||
> ### (2021-04-29)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.22.2
|
||||
>> #### (2021-03-22)
|
||||
>>
|
||||
>> * Enable strict options by default and only disable specific ones [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.136.0
|
||||
> ### (2021-04-28)
|
||||
>
|
||||
> * hostapps: basic implementation of target hostapp release [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.135.3
|
||||
> ### (2021-04-26)
|
||||
>
|
||||
> * auth: remove unnecessary brackets [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.135.2
|
||||
> ### (2021-04-26)
|
||||
>
|
||||
> * model: regenerate types to pick up changes [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.135.1
|
||||
> ### (2021-04-26)
|
||||
>
|
||||
> * applications: allow apps to be marked as public [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.135.0
|
||||
> ### (2021-04-15)
|
||||
>
|
||||
> * Stop allowing cache clearing for multi-level cache [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.134.3
|
||||
> ### (2021-04-13)
|
||||
>
|
||||
> * Add support for the `normalizer` option to the multi-level cache [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.134.2
|
||||
> ### (2021-04-09)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.1.2 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.1.2
|
||||
>> #### (2021-04-08)
|
||||
>>
|
||||
>> * Update nodejs to 14.16.1 and npm to 6.14.12 [Pagan Gazzard]
|
||||
>>
|
||||
>> ### open-balena-base-11.1.1
|
||||
>> #### (2021-03-17)
|
||||
>>
|
||||
>> * Drop CircleCI [ab77]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.134.1
|
||||
> ### (2021-04-08)
|
||||
>
|
||||
> * Support caching of undefined in the multi-level cache [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.134.0
|
||||
> ### (2021-04-06)
|
||||
>
|
||||
> * Support/use multi-level caching that can share cache between instances [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.7
|
||||
> ### (2021-04-01)
|
||||
>
|
||||
> * Simplify ignored device types handling [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.6
|
||||
> ### (2021-03-26)
|
||||
>
|
||||
> * Fix contracts sync job to run every 5 minutes instead of 5 seconds [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.5
|
||||
> ### (2021-03-26)
|
||||
>
|
||||
> * Use primitive memoization mode for build-info-facade [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.4
|
||||
> ### (2021-03-23)
|
||||
>
|
||||
> * Add scheduler mechanism and use it to synchronize contracts [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.3
|
||||
> ### (2021-03-23)
|
||||
>
|
||||
> * Optimize getting the list of service installs to create per device [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.2
|
||||
> ### (2021-03-22)
|
||||
>
|
||||
> * Enable strict options by default and only disable specific ones [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.1
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
> * Fix typing for partial rate limiter key fns [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.133.0
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
> * Prefetch api keys in the background rather than blocking [Pagan Gazzard]
|
||||
> * Avoid the need to delete `req.apiKey` in prefetch middleware [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.132.5
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
> * Add support for async functions when generating rate limiter keys [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.132.4
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update pinejs to 14.22.1 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.22.1
|
||||
>> #### (2021-03-16)
|
||||
>>
|
||||
>> * Only use the api key if we successfully resolved one [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.22.0
|
||||
>> #### (2021-03-16)
|
||||
>>
|
||||
>> * Expose methods to resolve api keys without immediately using them [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.132.3
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
> * Allow PATCHing the same username/email on a given user [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.132.2
|
||||
> ### (2021-03-16)
|
||||
>
|
||||
> * Fix username & email uniqueness check for batch PATCHes [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.132.1
|
||||
> ### (2021-03-15)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.21.1
|
||||
>> #### (2021-03-15)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### odata-parser-2.2.3
|
||||
>>> ##### (2021-03-15)
|
||||
>>>
|
||||
>>> * Optimize `QuotedText` for the common case of few/no apostrophes [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.9.4
|
||||
>>> ##### (2021-03-10)
|
||||
>>>
|
||||
>>> * Update dependencies [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
>> ### pinejs-14.21.0
|
||||
>> #### (2021-03-12)
|
||||
>>
|
||||
>> * Support postgres exclusion constraints as 409s instead of 500s [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.20.1
|
||||
>> #### (2021-03-12)
|
||||
>>
|
||||
>> * Block eagerly fetching affected ids in cases it is not possible to do [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.132.0
|
||||
> ### (2021-03-15)
|
||||
>
|
||||
> * Added optional environment variable configuration for contact repository branch [Micah Halter]
|
||||
>
|
||||
> ## open-balena-api-0.131.5
|
||||
> ### (2021-03-15)
|
||||
>
|
||||
> * Add missing `await` [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.131.4
|
||||
> ### (2021-03-15)
|
||||
>
|
||||
> * Simplify `toUuid` slightly [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.131.3
|
||||
> ### (2021-03-15)
|
||||
>
|
||||
> * Fix device existence check to be true when the device does exist [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.131.2
|
||||
> ### (2021-03-12)
|
||||
>
|
||||
> * Emit an error on the request stream for non-200s rather than throwing [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.131.1
|
||||
> ### (2021-03-12)
|
||||
>
|
||||
> * Use primitive mode memoization for device existence cache [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.131.0
|
||||
> ### (2021-03-12)
|
||||
>
|
||||
> * Switch application slug to using `${orgHandle}/${appName}` [Pagan Gazzard]
|
||||
> * Fix automatic slug renaming on app rename [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.130.0
|
||||
> ### (2021-03-12)
|
||||
>
|
||||
> * Expose the RPi family config vars to raspberrypicm4-ioboard [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.129.9
|
||||
> ### (2021-03-12)
|
||||
>
|
||||
> * Cache device existence check for 5 minutes [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.8
|
||||
> ### (2021-03-10)
|
||||
>
|
||||
> * Only try to validate username/email if they are present [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.7
|
||||
> ### (2021-03-10)
|
||||
>
|
||||
> * Add organization handle validation [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.6
|
||||
> ### (2021-03-10)
|
||||
>
|
||||
> * Add username normalization [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.5
|
||||
> ### (2021-03-10)
|
||||
>
|
||||
> * Validate username/email on PATCH as well as POST [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.4
|
||||
> ### (2021-03-08)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update pinejs to pick up rule optimizations for inserts [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.20.0
|
||||
>> #### (2021-03-08)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update abstract-sql-compiler bring more rules optimizations [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### abstract-sql-compiler-7.12.0
|
||||
>>> ##### (2021-03-05)
|
||||
>>>
|
||||
>>> * Enable narrowing down create/delete referenced fields for nested exists [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.129.3
|
||||
> ### (2021-03-08)
|
||||
>
|
||||
> * Ensure service installs exist at the point of pinning an application [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.129.2
|
||||
> ### (2021-03-05)
|
||||
>
|
||||
> * Fixed JSON serialization of device-type contracts going into the database. [Micah Halter]
|
||||
>
|
||||
> ## open-balena-api-0.129.1
|
||||
> ### (2021-03-05)
|
||||
>
|
||||
> * Fix release tracking of concurrent builds [Thodoris Greasidis]
|
||||
> * Test new service install creation for pinned applications [Thodoris Greasidis]
|
||||
> * Test release tracking of concurrent builds [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.129.0
|
||||
> ### (2021-03-05)
|
||||
>
|
||||
> * Added contract to device type and update database synchronization [Micah Halter]
|
||||
>
|
||||
> ## open-balena-api-0.128.9
|
||||
> ### (2021-03-05)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update pinejs to pick up rule optimizations for deletes [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.19.0
|
||||
>> #### (2021-03-01)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update abstract-sql-compiler bring more rules optimizations [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### lf-to-abstract-sql-4.2.1
|
||||
>>> ##### (2021-02-17)
|
||||
>>>
|
||||
>>> * Correctly use the native name result in the generated abstract sql [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
>> ### pinejs-14.18.4
|
||||
>> #### (2021-03-01)
|
||||
>>
|
||||
>> * Remove some unnecessary bluebird usage [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.128.8
|
||||
> ### (2021-03-05)
|
||||
>
|
||||
> * State-patch: Optimize noop gateway download updates [Pagan Gazzard]
|
||||
> * Separate marking old image installs deleted to a function [Pagan Gazzard]
|
||||
> * State-patch: Use 1 GET for updating any number of gateway downloads [Pagan Gazzard]
|
||||
> * State-patch: Use 1 GET for updating any number of image installs [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.128.7
|
||||
> ### (2021-03-03)
|
||||
>
|
||||
> * Use already available primary key values in device state-patch [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.128.6
|
||||
> ### (2021-03-01)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.18.3
|
||||
>> #### (2021-02-26)
|
||||
>>
|
||||
>> * Warn when setting a `request.values` property that will not take effect [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.18.2
|
||||
>> #### (2021-02-15)
|
||||
>>
|
||||
>> * Gracefully handle `HttpError` thrown from PREPARSE hooks [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.128.5
|
||||
> ### (2021-03-01)
|
||||
>
|
||||
> * Add device type is default for application [JSReds]
|
||||
>
|
||||
> ## open-balena-api-0.128.4
|
||||
> ### (2021-02-26)
|
||||
>
|
||||
> * Allow pinejs to enforce the at most one app with a given name rule [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.128.3
|
||||
> ### (2021-02-25)
|
||||
>
|
||||
> * fixtures: autogenerate commit if not provided [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.128.2
|
||||
> ### (2021-02-24)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.1.0 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.1.0
|
||||
>> #### (2021-02-24)
|
||||
>>
|
||||
>> * Update nodejs to 14.16.0 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.128.1
|
||||
> ### (2021-02-17)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.0.5 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.0.5
|
||||
>> #### (2021-02-15)
|
||||
>>
|
||||
>> * Update nodejs to 14.15.5 and npm to 6.14.11 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.128.0
|
||||
> ### (2021-02-17)
|
||||
>
|
||||
> * Stop exposing `/resin/` [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.127.0
|
||||
> ### (2021-02-15)
|
||||
>
|
||||
> * Add a `boolVar` helper for config to standardize boolean config vars [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.126.5
|
||||
> ### (2021-02-15)
|
||||
>
|
||||
> * Run tests against the exposed api version rather than internal [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.126.4
|
||||
> ### (2021-02-12)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update pinejs to 14.18.1 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.18.1
|
||||
>> #### (2021-02-12)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update abstract-sql-compiler fix modified fields for upsert queries [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### abstract-sql-compiler-7.10.2
|
||||
>>> ##### (2021-02-12)
|
||||
>>>
|
||||
>>> * Fix `getModifiedFields` for `UpsertQuery`s [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-types-3.4.1
|
||||
>>> ##### (2021-02-10)
|
||||
>>>
|
||||
>>> * Remove unnecessary native fact type entries for synonymous forms [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
>> ### pinejs-14.18.0
|
||||
>> #### (2021-02-08)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Add support for sbvr date comparison and allow referencing current time [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### lf-to-abstract-sql-4.2.0
|
||||
>>> ##### (2021-02-05)
|
||||
>>>
|
||||
>>>
|
||||
>>> <details>
|
||||
>>> <summary> Add support for native `Name`s from sbvr-types [Pagan Gazzard] </summary>
|
||||
>>>
|
||||
>>>> ##### sbvr-parser-1.2.0
|
||||
>>>> ###### (2021-02-05)
|
||||
>>>>
|
||||
>>>> * Add support for a `Name` role binding in the lf validator [Pagan Gazzard]
|
||||
>>>>
|
||||
>>> </details>
|
||||
>>>
|
||||
>>>
|
||||
>>> #### sbvr-parser-1.2.2
|
||||
>>> ##### (2021-02-08)
|
||||
>>>
|
||||
>>> * Optimize `StartX` rules [Pagan Gazzard]
|
||||
>>> * Optimize `Identifier` when branch tracking is disabled (the default) [Pagan Gazzard]
|
||||
>>> * Optimize `IdentifierPart` rule [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-parser-1.2.1
|
||||
>>> ##### (2021-02-08)
|
||||
>>>
|
||||
>>> * Update dependencies [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-parser-1.2.0
|
||||
>>> ##### (2021-02-05)
|
||||
>>>
|
||||
>>> * Add support for a `Name` role binding in the lf validator [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-types-3.4.0
|
||||
>>> ##### (2021-02-08)
|
||||
>>>
|
||||
>>> * Add a `Current Time` name that can be used to refer to the current time [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-types-3.3.0
|
||||
>>> ##### (2021-02-05)
|
||||
>>>
|
||||
>>> * Add `is before` & `is after` verbs to the Date & DateTime types [Thodoris Greasidis]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
>> ### pinejs-14.17.1
|
||||
>> #### (2021-02-08)
|
||||
>>
|
||||
>> * Fix .sbvr bundling in webpack [Pagan Gazzard]
|
||||
>> * Fix extended-sbvr-parser export [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.17.0
|
||||
>> #### (2021-02-08)
|
||||
>>
|
||||
>> * Export extended-sbvr-parser from server-glue/server [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.16.1
|
||||
>> #### (2021-02-08)
|
||||
>>
|
||||
>> * Simplify server-glue/server exports [Pagan Gazzard]
|
||||
>>
|
||||
>> ### pinejs-14.16.0
|
||||
>> #### (2021-02-01)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update sbvr-types to 3.2.0, adding support for more `Text (Type)` verbs [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### abstract-sql-compiler-7.10.1
|
||||
>>> ##### (2021-01-29)
|
||||
>>>
|
||||
>>> * Separate code relating to referenced fields out of the main file [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### sbvr-types-3.2.0
|
||||
>>> ##### (2021-01-29)
|
||||
>>>
|
||||
>>> * Add support for the `contains` verb to the text type [Thodoris Greasidis]
|
||||
>>> * Add support for the`ends with` verb to the text type [Thodoris Greasidis]
|
||||
>>> * Add support for the `starts with` verb to the text type [Thodoris Greasidis]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.126.3
|
||||
> ### (2021-02-10)
|
||||
>
|
||||
> * Export `getDeviceTypesRoute` [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.126.2
|
||||
> ### (2021-02-10)
|
||||
>
|
||||
> * Minor typing improvements [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.126.1
|
||||
> ### (2021-02-09)
|
||||
>
|
||||
> * Fix missing field in migration for device family [Stevche Radevski]
|
||||
>
|
||||
> ## open-balena-api-0.126.0
|
||||
> ### (2021-02-08)
|
||||
>
|
||||
> * Add synonymous form to device family manufacturer [Stevche Radevski]
|
||||
>
|
||||
> ## open-balena-api-0.125.0
|
||||
> ### (2021-02-08)
|
||||
>
|
||||
> * Add device family and manufacturer resources [Stevche Radevski]
|
||||
>
|
||||
> ## open-balena-api-0.124.0
|
||||
> ### (2021-02-05)
|
||||
>
|
||||
> * releases: add new metadata to release model [Matthew McGinn]
|
||||
>
|
||||
> ## open-balena-api-0.123.1
|
||||
> ### (2021-02-03)
|
||||
>
|
||||
> * Add permission checking to the supervisor proxy [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.123.0
|
||||
> ### (2021-02-02)
|
||||
>
|
||||
> * Add a maximum file size for the BALENA_HOST_SPLASH_IMAGE config var [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.122.0
|
||||
> ### (2021-02-01)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Move tag key and device uuid length validation into SBVR rules [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.10.1
|
||||
>> #### (2021-01-15)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### abstract-sql-compiler-7.8.2
|
||||
>>> ##### (2021-01-15)
|
||||
>>>
|
||||
>>> * Fix schema optimizations when table and resource names are different [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### abstract-sql-to-typescript-1.1.1
|
||||
>>> ##### (2021-01-04)
|
||||
>>>
|
||||
>>> * Fix PickExpanded/PickDeferred type helpers [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.121.0
|
||||
> ### (2021-02-01)
|
||||
>
|
||||
> * vars-schema: Add HOST_CONFIG HDMI config definitions for the RPi family [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.120.3
|
||||
> ### (2021-02-01)
|
||||
>
|
||||
> * Support setting pg statement/query timeouts, defaulting to 60s/61s [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-api-0.120.2
|
||||
> ### (2021-01-29)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update pinejs to 14.15.0, reducing the cases we need to run rules [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-14.15.0
|
||||
>> #### (2021-01-29)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Make use of rule specific referenced fields to run rules in less cases [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### abstract-sql-compiler-7.10.0
|
||||
>>> ##### (2021-01-29)
|
||||
>>>
|
||||
>>> * Add an `action` property to modified fields of create/update/delete [Pagan Gazzard]
|
||||
>>> * Automatically add `ruleReferencedFields` to `SqlRule`s [Pagan Gazzard]
|
||||
>>> * Add a `getRuleReferencedFields` which is tailored for rules [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### abstract-sql-compiler-7.9.1
|
||||
>>> ##### (2021-01-29)
|
||||
>>>
|
||||
>>> * Add test for optimizeSchema optimizing rules [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### abstract-sql-compiler-7.9.0
|
||||
>>> ##### (2021-01-25)
|
||||
>>>
|
||||
>>> * Optimize the abstract sql of rules when running `optimizeSchema` [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-api-0.120.1
|
||||
> ### (2021-01-29)
|
||||
>
|
||||
> * CODEOWNERS: Use the balena-api dev team [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-api-0.120.0
|
||||
> ### (2021-01-29)
|
||||
>
|
||||
> * Optimize the unique commit per successful release per app rule [Thodoris Greasidis]
|
||||
>
|
||||
> ## open-balena-vpn-9.17.11
|
||||
> ### (2021-05-14)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.2.0 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.2.0
|
||||
>> #### (2021-05-14)
|
||||
>>
|
||||
>> * Update nodejs to 14.17.0 and npm to 6.14.13 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-vpn-9.17.10
|
||||
> ### (2021-04-09)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.1.2 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.1.2
|
||||
>> #### (2021-04-08)
|
||||
>>
|
||||
>> * Update nodejs to 14.16.1 and npm to 6.14.12 [Pagan Gazzard]
|
||||
>>
|
||||
>> ### open-balena-base-11.1.1
|
||||
>> #### (2021-03-17)
|
||||
>>
|
||||
>> * Drop CircleCI [ab77]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-vpn-9.17.9
|
||||
> ### (2021-03-29)
|
||||
>
|
||||
> * Remove linting on prepush as it's already handled on commit [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-vpn-9.17.8
|
||||
> ### (2021-03-29)
|
||||
>
|
||||
> * Make more use of native promises and async/await [Pagan Gazzard]
|
||||
>
|
||||
> ## open-balena-vpn-9.17.7
|
||||
> ### (2021-03-29)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### pinejs-client-request-7.3.1
|
||||
>> #### (2021-03-22)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Enable typescript strict mode [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### pinejs-client-js-6.9.5
|
||||
>>> ##### (2021-03-22)
|
||||
>>>
|
||||
>>> * Enable strict tsconfig options by default [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.9.4
|
||||
>>> ##### (2021-03-10)
|
||||
>>>
|
||||
>>> * Update dependencies [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
>> ### pinejs-client-request-7.3.0
|
||||
>> #### (2020-11-20)
|
||||
>>
|
||||
>>
|
||||
>> <details>
|
||||
>> <summary> Update dependencies [Pagan Gazzard] </summary>
|
||||
>>
|
||||
>>> #### pinejs-client-js-6.9.3
|
||||
>>> ##### (2020-11-20)
|
||||
>>>
|
||||
>>> * Explicitly specify return types for all functions [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.9.2
|
||||
>>> ##### (2020-10-23)
|
||||
>>>
|
||||
>>> * Update dev dependencies [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.9.1
|
||||
>>> ##### (2020-09-17)
|
||||
>>>
|
||||
>>> * Improve typings [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.9.0
|
||||
>>> ##### (2020-09-07)
|
||||
>>>
|
||||
>>> * Add 'getOrCreate' method supporting natural keys [Thodoris Greasidis]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.8.0
|
||||
>>> ##### (2020-09-03)
|
||||
>>>
|
||||
>>> * Add support for $format [Pagan Gazzard]
|
||||
>>>
|
||||
>>> #### pinejs-client-js-6.7.3
|
||||
>>> ##### (2020-08-26)
|
||||
>>>
|
||||
>>> * Improve $orderby typing to allow `[{a: 'desc'}, {b: 'asc'}]` [Pagan Gazzard]
|
||||
>>>
|
||||
>> </details>
|
||||
>>
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-vpn-9.17.6
|
||||
> ### (2021-02-24)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.1.0 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.1.0
|
||||
>> #### (2021-02-24)
|
||||
>>
|
||||
>> * Update nodejs to 14.16.0 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-vpn-9.17.5
|
||||
> ### (2021-02-17)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.0.5 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.0.5
|
||||
>> #### (2021-02-15)
|
||||
>>
|
||||
>> * Update nodejs to 14.15.5 and npm to 6.14.11 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
> ## open-balena-registry-2.16.1
|
||||
> ### (2021-05-14)
|
||||
>
|
||||
>
|
||||
> <details>
|
||||
> <summary> Update open-balena-base to 11.2.0 [Pagan Gazzard] </summary>
|
||||
>
|
||||
>> ### open-balena-base-11.2.0
|
||||
>> #### (2021-05-14)
|
||||
>>
|
||||
>> * Update nodejs to 14.17.0 and npm to 6.14.13 [Pagan Gazzard]
|
||||
>>
|
||||
> </details>
|
||||
>
|
||||
>
|
||||
</details>
|
||||
|
||||
# v3.3.2
|
||||
## (2021-06-03)
|
||||
|
||||
* Auto-install required Vagrant plugins instead of erroring out [Mark S. Maglana]
|
||||
|
||||
# v3.3.1
|
||||
## (2021-05-24)
|
||||
|
||||
* scripts/compose: Delete Balena CLI version warning This can be removed completely now — it was added to ensure existing users also update to the latest (at the time) CLI as they updated their open-balena installation. [fisehara]
|
||||
|
||||
# v3.3.0
|
||||
## (2021-05-05)
|
||||
|
||||
* Update registry service [Bart Versluijs]
|
||||
|
||||
# v3.2.2
|
||||
## (2021-04-28)
|
||||
|
||||
* patch: Adding supported devices to OB [rmorillo24]
|
||||
|
||||
# v3.2.1
|
||||
## (2021-02-06)
|
||||
|
||||
|
30
CONTRIBUTING.md
Normal file
30
CONTRIBUTING.md
Normal file
@ -0,0 +1,30 @@
|
||||
# Contributing to openbalena
|
||||
|
||||
Everyone is welcome to contribute to openBalena. There are many different ways
|
||||
to get involved apart from submitting pull requests, including helping other
|
||||
users on the [forums][forums], reporting or triaging [issues][issue-tracker],
|
||||
reviewing and discussing [pull requests][pulls], or just spreading the word.
|
||||
|
||||
All of openbalena is hosted on GitHub. Apart from its constituent components,
|
||||
which are the [API][open-balena-api], [VPN][open-balena-vpn], [Registry][open-balena-registry],
|
||||
[S3 storage service][open-balena-s3], and [Database][open-balena-db], contributions
|
||||
are also welcome to its client-side software such as the [balena CLI][balena-cli],
|
||||
the [balena SDK][balena-sdk], [balenaOS][balena-os] and [balenaEngine][balena-engine].
|
||||
|
||||
[balena-cli]: https://github.com/balena-io/balena-cli
|
||||
[balena-cloud-website]: https://balena.io/cloud
|
||||
[balena-engine]: https://github.com/balena-os/balena-engine
|
||||
[balena-os-website]: https://balena.io/os
|
||||
[balena-os]: https://github.com/balena-os/meta-balena
|
||||
[balena-sdk]: https://github.com/balena-io/balena-sdk
|
||||
[documentation]: https://balena.io/docs/learn/welcome/introduction/
|
||||
[forums]: https://forums.balena.io/c/open-balena
|
||||
[getting-started]: https://balena.io/open/docs/getting-started
|
||||
[issue-tracker]: https://github.com/balena-io/open-balena/issues
|
||||
[open-balena-api]: https://github.com/balena-io/open-balena-api
|
||||
[open-balena-db]: https://github.com/balena-io/open-balena-db
|
||||
[open-balena-registry]: https://github.com/balena-io/open-balena-registry
|
||||
[open-balena-s3]: https://github.com/balena-io/open-balena-s3
|
||||
[open-balena-vpn]: https://github.com/balena-io/open-balena-vpn
|
||||
[open-balena-website]: https://balena.io/open
|
||||
[pulls]: https://github.com/balena-io/open-balena/pulls
|
99
README.md
99
README.md
@ -1,22 +1,8 @@
|
||||
<img alt="openBalena" src="docs/assets/openbalena-logo.svg" height="82">
|
||||

|
||||
|
||||
---
|
||||
|
||||
OpenBalena is a platform to deploy and manage connected devices. Devices run
|
||||
[balenaOS][balena-os-website], a host operating system designed for running
|
||||
containers on IoT devices, and are managed via the [balena CLI][balena-cli],
|
||||
which you can use to configure your application containers, push updates, check
|
||||
status, view logs, and so forth. OpenBalena’s backend services, composed of
|
||||
battle-tested components that we’ve run in production on [balenaCloud][balena-cloud-website]
|
||||
for years, can store device information securely and reliably, allow remote
|
||||
management via a built-in VPN service, and efficiently distribute container
|
||||
images to your devices.
|
||||
|
||||
To learn more about openBalena, visit [balena.io/open][open-balena-website].
|
||||
|
||||
|
||||
## Features
|
||||
**openbalena is an open source platform to manage IoT and edge device fleets at scale.**
|
||||
|
||||
## Highlights
|
||||
- **Simple provisioning**: Adding devices to your fleet is a breeze
|
||||
- **Easy updates**: Remotely update the software on your devices with a single command
|
||||
- **Container-based**: Benefit from the power of virtualization, optimized for the edge
|
||||
@ -24,15 +10,19 @@ To learn more about openBalena, visit [balena.io/open][open-balena-website].
|
||||
- **Powerful API & SDK**: Extend openBalena to fit your needs
|
||||
- **Built-in VPN**: Access your devices regardless of their network environment
|
||||
|
||||
## Motivation
|
||||
|
||||
## Getting Started
|
||||
openbalena is a platform that helps you deploy and manage connected devices. Devices run [balenaOS][balena-os-website], a host operating system designed for running containers on IoT devices, and are managed via the [balena CLI][balena-cli], which you can use to configure your application containers, push updates, check status, view logs, and more.
|
||||
|
||||
Our [Getting Started guide][getting-started] is the most direct path to getting
|
||||
an openBalena installation up and running and successfully deploying your
|
||||
application to your device(s).
|
||||
openbalena’s backend services, composed of battle-tested components that we’ve run in production on [balenaCloud][balena-cloud-website] for years, can store device information securely and reliably, allow remote management via a built-in VPN service, and efficiently distribute container images to your devices.
|
||||
|
||||
To learn more about openbalena, visit [balena.io/open][open-balena-website].
|
||||
|
||||
## Compatibility
|
||||
### Setup and Configuration
|
||||
|
||||
Our [Getting Started guide][getting-started] is the most direct path to getting an openbalena installation up and running and successfully deploying your application to your device(s).
|
||||
|
||||
### Compatibility
|
||||
|
||||
The current release of openBalena has the following minimum version requirements:
|
||||
|
||||
@ -43,8 +33,7 @@ If you are updating from previous openBalena versions, ensure you update the bal
|
||||
CLI and reprovision any devices to at least the minimum required versions in order
|
||||
for them to be fully compatible with this release, as some features may not work.
|
||||
|
||||
|
||||
## Documentation
|
||||
### Documentation
|
||||
|
||||
While we're still working on the project documentation, please refer to the
|
||||
[balenaCloud documentation][documentation]. BalenaCloud is built on top of
|
||||
@ -62,67 +51,9 @@ sections are of particular interest:
|
||||
- [Reference](https://balena.io/docs/reference)
|
||||
- [FAQ](https://balena.io/docs/faq/troubleshooting/faq)
|
||||
|
||||
### License
|
||||
|
||||
## Getting Help
|
||||
|
||||
You are welcome to submit any questions, participate in discussions and request
|
||||
help with any issue in [openBalena forums][forums]. The balena team frequents
|
||||
these forums and will be happy to help. You can also ask other community members
|
||||
for help, or contribute by answering questions posted by fellow openBalena users.
|
||||
Please do not use the issue tracker for support-related questions.
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
Everyone is welcome to contribute to openBalena. There are many different ways
|
||||
to get involved apart from submitting pull requests, including helping other
|
||||
users on the [forums][forums], reporting or triaging [issues][issue-tracker],
|
||||
reviewing and discussing [pull requests][pulls], or just spreading the word.
|
||||
|
||||
All of openBalena is hosted on GitHub. Apart from its constituent components,
|
||||
which are the [API][open-balena-api], [VPN][open-balena-vpn], [Registry][open-balena-registry],
|
||||
[S3 storage service][open-balena-s3], and [Database][open-balena-db], contributions
|
||||
are also welcome to its client-side software such as the [balena CLI][balena-cli],
|
||||
the [balena SDK][balena-sdk], [balenaOS][balena-os] and [balenaEngine][balena-engine].
|
||||
|
||||
|
||||
## Roadmap
|
||||
|
||||
OpenBalena is currently in beta. While fully functional, it lacks features we
|
||||
consider important before we can comfortably call it production-ready. During
|
||||
this phase, don’t be alarmed if things don’t work as expected just yet (and
|
||||
please let us know about any bugs or errors you encounter!). The following
|
||||
improvements and new functionality is planned:
|
||||
|
||||
- Full documentation
|
||||
- Full test suite
|
||||
- Simplified deployment
|
||||
- Remote host OS updates
|
||||
- Support for custom device types
|
||||
|
||||
|
||||
## Differences between openBalena and balenaCloud
|
||||
|
||||
| openBalena | balenaCloud |
|
||||
| ----- | ---- |
|
||||
| Device updates using full images | Device updates using [delta images](https://www.balena.io/docs/learn/deploy/delta/) |
|
||||
| Support for a single user | Support for [multiple users](https://www.balena.io/docs/learn/manage/account/#application-members) |
|
||||
| Self-hosted deployment and scaling | balena-managed scaling and deployment |
|
||||
| Community support via [forums][forums] | Private support on [paid plans](https://www.balena.io/pricing/) |
|
||||
| Deploy via `balena deploy` only | Build remotely with native builders using [`balena push`](https://www.balena.io/docs/learn/deploy/deployment/#balena-push) or [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||
| No support for building via `git push` | Use the same CI workflow with [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||
| No public URL support | Serve websites directly from device with [public device URLs](https://www.balena.io/docs/learn/manage/actions/#enable-public-device-url) |
|
||||
| Management via `balena-cli` only | Cloud-based device management dashboard |
|
||||
| Download images from [balena.io][balena-os-website] | Download preconfigured images directly from the dashboard |
|
||||
| No supported remote diagnostics | Remote device diagnostics |
|
||||
|
||||
Additionally, refer back to the [roadmap](#roadmap) above for planned but not yet implemented features.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
OpenBalena is licensed under the terms of AGPL v3. See [LICENSE](LICENSE) for details.
|
||||
|
||||
openbalena is licensed under the terms of AGPL v3. See [LICENSE](LICENSE) for details.
|
||||
|
||||
[balena-cli]: https://github.com/balena-io/balena-cli
|
||||
[balena-cloud-website]: https://balena.io/cloud
|
||||
|
13
Vagrantfile
vendored
13
Vagrantfile
vendored
@ -1,12 +1,11 @@
|
||||
Vagrant.require_version '>= 2.0.0'
|
||||
|
||||
[ 'vagrant-vbguest', 'vagrant-docker-compose' ].each do |p|
|
||||
unless Vagrant.has_plugin?(p)
|
||||
raise "Please install missing plugin: vagrant plugin install #{p}"
|
||||
end
|
||||
end
|
||||
Vagrant.require_version '>= 2.2.0'
|
||||
|
||||
Vagrant.configure('2') do |config|
|
||||
config.vagrant.plugins = [
|
||||
'vagrant-vbguest',
|
||||
'vagrant-docker-compose'
|
||||
]
|
||||
|
||||
config.vm.define 'openbalena'
|
||||
config.vm.hostname = 'openbalena-vagrant'
|
||||
config.vm.box = 'bento/ubuntu-18.04'
|
||||
|
@ -5,7 +5,6 @@ volumes:
|
||||
cert-provider: {}
|
||||
db: {}
|
||||
redis: {}
|
||||
registry: {}
|
||||
s3: {}
|
||||
|
||||
services:
|
||||
@ -65,8 +64,6 @@ services:
|
||||
depends_on:
|
||||
- s3
|
||||
- redis
|
||||
volumes:
|
||||
- registry:/data
|
||||
environment:
|
||||
API_TOKENAUTH_CRT: ${OPENBALENA_TOKEN_AUTH_PUB}
|
||||
BALENA_REGISTRY2_HOST: registry.${OPENBALENA_HOST_NAME}
|
||||
@ -85,6 +82,7 @@ services:
|
||||
REGISTRY2_S3_SECRET: ${OPENBALENA_S3_SECRET_KEY}
|
||||
REGISTRY2_SECRETKEY: ${OPENBALENA_REGISTRY_SECRET_KEY}
|
||||
REGISTRY2_STORAGEPATH: /data
|
||||
REGISTRY2_DISABLE_REDIRECT: "false"
|
||||
|
||||
vpn:
|
||||
extends:
|
||||
|
@ -1,6 +1,6 @@
|
||||
export OPENBALENA_API_VERSION_TAG=v0.119.5
|
||||
export OPENBALENA_API_VERSION_TAG=v0.139.0
|
||||
export OPENBALENA_DB_VERSION_TAG=v4.1.0
|
||||
export OPENBALENA_MDNS_PUBLISHER_VERSION_TAG=v1.9.2
|
||||
export OPENBALENA_REGISTRY_VERSION_TAG=v2.14.4
|
||||
export OPENBALENA_REGISTRY_VERSION_TAG=v2.16.1
|
||||
export OPENBALENA_S3_VERSION_TAG=v2.9.9
|
||||
export OPENBALENA_VPN_VERSION_TAG=v9.17.4
|
||||
export OPENBALENA_VPN_VERSION_TAG=v9.17.11
|
||||
|
226
docs/01-getting-started.md
Normal file
226
docs/01-getting-started.md
Normal file
@ -0,0 +1,226 @@
|
||||
# Getting started with openbalena
|
||||
|
||||
This guide will walk you through the steps of deploying an openBalena server,
|
||||
that together with the balena CLI, will enable you to create and manage a fleet
|
||||
of devices running on your own infrastructure, on premises or in the cloud. The
|
||||
openBalena servers must be reachable by the devices, which is easiest to achieve
|
||||
with cloud providers like AWS, Google Cloud, Digital Ocean and others.
|
||||
|
||||
This guide assumes a setup with two separate machines:
|
||||
|
||||
- The openBalena _server_, running Linux. These instructions were tested with an
|
||||
Ubuntu 18.04 x64 server.
|
||||
- The _local machine_, running Linux, Windows or macOS where the balena CLI runs
|
||||
(as a client to the openBalena server). The local machine should also have a
|
||||
working installation of [Docker](https://docs.docker.com/get-docker/) so that
|
||||
application images can be built and deployed to your devices, although it is
|
||||
also possible to use balenaEngine on a balenaOS device instead of Docker.
|
||||
|
||||
## Preparing a server for openBalena
|
||||
|
||||
Login to the server via SSH and run the following commands.
|
||||
|
||||
1. First, install or update essential software:
|
||||
|
||||
```bash
|
||||
apt-get update && apt-get install -y build-essential git docker.io libssl-dev nodejs npm
|
||||
```
|
||||
|
||||
2. Install docker-compose:
|
||||
|
||||
```bash
|
||||
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
```
|
||||
|
||||
Test your docker-compose installation with `$ docker-compose --version`.
|
||||
|
||||
3. Create a new user, assign admin permissions and add to `docker` group:
|
||||
|
||||
```bash
|
||||
adduser balena
|
||||
usermod -aG sudo balena
|
||||
usermod -aG docker balena
|
||||
```
|
||||
|
||||
### Install openBalena on the server
|
||||
|
||||
1. On the server still, login as the new user and change into the home directory:
|
||||
|
||||
```bash
|
||||
su balena
|
||||
cd ~
|
||||
```
|
||||
|
||||
2. Clone the openBalena repository and change into the new directory:
|
||||
|
||||
```bash
|
||||
git clone https://github.com/balena-io/open-balena.git
|
||||
cd open-balena/
|
||||
```
|
||||
|
||||
3. Run the `quickstart` script as below. This will create a new `config`
|
||||
directory and generate appropriate SSL certificates and configuration for the
|
||||
server. The provided email and password will be used to automatically create
|
||||
the user account for interacting with the server and will be needed later on
|
||||
for logging in via the balena CLI. Replace the domain name for the `-d`
|
||||
argument appropriately.
|
||||
|
||||
```bash
|
||||
./scripts/quickstart -U <email@address> -P <password> -d mydomain.com
|
||||
```
|
||||
|
||||
For more available options, see the script's help:
|
||||
|
||||
```bash
|
||||
./scripts/quickstart -h
|
||||
```
|
||||
|
||||
4. At this point, the openBalena server can be started with:
|
||||
|
||||
```bash
|
||||
systemctl start docker
|
||||
./scripts/compose up -d
|
||||
```
|
||||
|
||||
The `-d` argument spawns the containers as background services.
|
||||
|
||||
5. Tail the logs of the containers with:
|
||||
|
||||
```bash
|
||||
./scripts/compose exec <service-name> journalctl -fn100
|
||||
```
|
||||
|
||||
Replace `<service-name>` with the name of any one of the services defined
|
||||
in `compose/services.yml`; eg. `api` or `registry`.
|
||||
|
||||
6. The server can be stopped with:
|
||||
|
||||
```bash
|
||||
./scripts/compose stop
|
||||
```
|
||||
|
||||
When updating openBalena to a new version, the steps are:
|
||||
|
||||
```bash
|
||||
./scripts/compose down
|
||||
git pull
|
||||
./scripts/compose build
|
||||
./scripts/compose up -d
|
||||
```
|
||||
|
||||
### Domain Configuration
|
||||
|
||||
The following CNAME records must be configured to point to the openBalena server:
|
||||
|
||||
```text
|
||||
api.mydomain.com
|
||||
registry.mydomain.com
|
||||
vpn.mydomain.com
|
||||
s3.mydomain.com
|
||||
tunnel.mydomain.com
|
||||
```
|
||||
|
||||
Check with your internet domain name registrar for instructions on how to
|
||||
configure CNAME records.
|
||||
|
||||
### Test the openBalena server
|
||||
|
||||
To confirm that everything is running correctly, try a simple request from the
|
||||
local machine to the server:
|
||||
|
||||
```bash
|
||||
curl -k https://api.mydomain.com/ping
|
||||
OK
|
||||
```
|
||||
|
||||
Congratulations! The openBalena server is up and running. The next step is to
|
||||
setup the local machine to use the server, provision a device and deploy a
|
||||
small project.
|
||||
|
||||
## Install self-signed certificates on the local machine
|
||||
|
||||
The installation of the openBalena server produces a few self-signed certificates
|
||||
that must be installed on the local machine, so that it can securely communicate
|
||||
with the server.
|
||||
|
||||
The root certificate is found at `config/certs/root/ca.crt` on the server. Copy
|
||||
it to some folder on the local machine and keep a note the path -- it will be
|
||||
used later during the CLI installation. Follow the steps below for the specific
|
||||
platform of the local machine.
|
||||
|
||||
### Linux:
|
||||
|
||||
```bash
|
||||
sudo cp ca.crt /usr/local/share/ca-certificates/ca.crt
|
||||
sudo update-ca-certificates
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
### macOS:
|
||||
|
||||
```bash
|
||||
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
|
||||
osascript -e 'quit app "Docker"' && open -a Docker
|
||||
```
|
||||
|
||||
### Windows:
|
||||
|
||||
```bash
|
||||
certutil -addstore -f "ROOT" ca.crt
|
||||
```
|
||||
|
||||
The Docker daemon on the local machine must then be restarted for Docker to
|
||||
pick up the new certificate.
|
||||
|
||||
## Install the balena CLI on the local machine
|
||||
|
||||
Follow the [balena CLI installation
|
||||
instructions](https://github.com/balena-io/balena-cli/blob/master/INSTALL.md)
|
||||
to install the balena CLI on the local machine.
|
||||
|
||||
By default, the CLI targets the balenaCloud servers at `balena-cloud.com`, and
|
||||
needs to be configured to target the openBalena server instead. Add the following
|
||||
line to the CLI's configuration file, replacing `"mydomain.com"` with the domain
|
||||
name of the openBalena server:
|
||||
|
||||
```yaml
|
||||
balenaUrl: 'mydomain.com'
|
||||
```
|
||||
|
||||
The CLI configuration file can be found at:
|
||||
|
||||
- On Linux or macOS: `~/.balenarc.yml`
|
||||
- On Windows: `%UserProfile%\_balenarc.yml`
|
||||
|
||||
If the file does not already exist, just create it.
|
||||
|
||||
Wrapping up the CLI installation, set an environment variable that points to the
|
||||
root certificate copied previously on the local machine. This step is to ensure
|
||||
the CLI can securely interact with the openBalena server.
|
||||
|
||||
| Shell | Command |
|
||||
| ------------------ | ---------------------------------------------- |
|
||||
| bash | `export NODE_EXTRA_CA_CERTS='/path/to/ca.crt'` |
|
||||
| Windows cmd.exe | `set NODE_EXTRA_CA_CERTS=C:\path\to\ca.crt` |
|
||||
| Windows PowerShell | `$Env:NODE_EXTRA_CA_CERTS="C:\path\to\ca.crt"` |
|
||||
|
||||
## Deploy an application
|
||||
|
||||
The commands below should be run on a terminal on the local machine (where the
|
||||
balena CLI is installed). Ensure that the `NODE_EXTRA_CA_CERTS` environment
|
||||
variable is set, as discussed above.
|
||||
|
||||
### Login to openBalena
|
||||
|
||||
Run `balena login`, select `Credentials` and use the email and password
|
||||
specified during quickstart to login to the openBalena server. At any time, the
|
||||
`balena whoami` command may be used to check which server the CLI is logged in to.
|
||||
|
||||
## Getting Help
|
||||
|
||||
You are welcome to submit any questions, participate in discussions and request
|
||||
help with any issue in [openBalena forums][forums]. The balena team frequents
|
||||
these forums and will be happy to help. You can also ask other community members
|
||||
for help, or contribute by answering questions posted by fellow openBalena users.
|
||||
Please do not use the issue tracker for support-related questions.
|
143
docs/02-deploy-an-application-or-fleet.md
Normal file
143
docs/02-deploy-an-application-or-fleet.md
Normal file
@ -0,0 +1,143 @@
|
||||
# Deploy and provision an application
|
||||
|
||||
The commands below should be run on a terminal on the local machine (where the
|
||||
balena CLI is installed). Ensure that the `NODE_EXTRA_CA_CERTS` environment
|
||||
variable is set, as discussed above.
|
||||
|
||||
### Login to openBalena
|
||||
|
||||
Run `balena login`, select `Credentials` and use the email and password
|
||||
specified during quickstart to login to the openBalena server. At any time, the
|
||||
`balena whoami` command may be used to check which server the CLI is logged in to.
|
||||
|
||||
### Create an application
|
||||
|
||||
Create a new application with `balena app create myApp`. Select the application's
|
||||
default device type with the interactive prompt. The examples in this guide assume
|
||||
a Raspberry Pi 3.
|
||||
|
||||
An application contains devices that share the same architecture (such as ARM
|
||||
or Intel i386), and also contains code releases that are deployed to the devices.
|
||||
When a device is provisioned, it is added to an application, but can be migrated
|
||||
to another application at any time. There is no limit to the number of applications
|
||||
that can be created or to the number of devices that can be provisioned.
|
||||
|
||||
At any time, the server can be queried for all the applications it knows about
|
||||
with the following command:
|
||||
|
||||
```bash
|
||||
balena apps
|
||||
ID APP NAME DEVICE TYPE ONLINE DEVICES DEVICE COUNT
|
||||
1 myApp raspberrypi3
|
||||
```
|
||||
|
||||
### Provision a new device
|
||||
|
||||
Once we have an application, it’s time to start provisioning devices. To do this,
|
||||
first download a balenaOS image from [balena.io](https://balena.io/os/#download).
|
||||
Pick the development image that is appropriate for your device.
|
||||
|
||||
Unzip the downloaded image and use the balena CLI to configure it:
|
||||
|
||||
```bash
|
||||
balena os configure ~/Downloads/balena-cloud-raspberrypi3-2.58.3+rev1-dev-v11.14.0.img --app myApp
|
||||
```
|
||||
|
||||
Flash the configured image to an SD card using [Etcher](https://balena.io/etcher).
|
||||
Insert the SD card into the device and power it on. The device will register with
|
||||
the openBalena server and after about two minutes will be inspectable:
|
||||
|
||||
```bash
|
||||
balena devices
|
||||
ID UUID DEVICE NAME DEVICE TYPE APPLICATION NAME STATUS IS ONLINE SUPERVISOR VERSION OS VERSION
|
||||
4 59d7700 winter-tree raspberrypi3 myApp Idle true 11.14.0 balenaOS 2.58.3+rev1
|
||||
|
||||
balena device 59d7700
|
||||
== WINTER TREE
|
||||
ID: 4
|
||||
DEVICE TYPE: raspberrypi3
|
||||
STATUS: online
|
||||
IS ONLINE: true
|
||||
IP ADDRESS: 192.168.43.247
|
||||
APPLICATION NAME: myApp
|
||||
UUID: 59d7700755ec5de06783eda8034c9d3d
|
||||
SUPERVISOR VERSION: 11.14.0
|
||||
OS VERSION: balenaOS 2.58.3+rev1
|
||||
```
|
||||
|
||||
It's time to deploy code to the device.
|
||||
|
||||
### Deploy a project
|
||||
|
||||
Application release images are built on the local machine using the balena CLI.
|
||||
Ensure the root certificate has been correctly installed on the local machine,
|
||||
as discussed above.
|
||||
|
||||
Let's create a trivial project that logs "Idling...". On an empty directory,
|
||||
create a new file named `Dockerfile.template` with the following contents:
|
||||
|
||||
```dockerfile
|
||||
FROM balenalib/%%BALENA_MACHINE_NAME%%-alpine
|
||||
|
||||
CMD [ "balena-idle" ]
|
||||
```
|
||||
|
||||
Then build and deploy the project with:
|
||||
|
||||
```bash
|
||||
balena deploy myApp --logs
|
||||
```
|
||||
|
||||
The project will have been successfully built when a friendly unicorn appears in
|
||||
the terminal:
|
||||
|
||||
```bash
|
||||
[Info] Compose file detected
|
||||
...
|
||||
[Info] Creating release...
|
||||
[Info] Pushing images to registry...
|
||||
[Info] Saving release...
|
||||
[Success] Deploy succeeded!
|
||||
[Success] Release: f62a74c220b92949ec78761c74366046
|
||||
|
||||
\
|
||||
\
|
||||
\\
|
||||
\\
|
||||
>\/7
|
||||
_.-(6' \
|
||||
(=___._/` \
|
||||
) \ |
|
||||
/ / |
|
||||
/ > /
|
||||
j < _\
|
||||
_.-' : ``.
|
||||
\ r=._\ `.
|
||||
<`\\_ \ .`-.
|
||||
\ r-7 `-. ._ ' . `\
|
||||
\`, `-.`7 7) )
|
||||
\/ \| \' / `-._
|
||||
|| .'
|
||||
\\ (
|
||||
>\ >
|
||||
,.-' >.'
|
||||
<.'_.''
|
||||
<'
|
||||
```
|
||||
|
||||
This command packages up the local directory, creates a new Docker image from
|
||||
it and pushes it to the openBalena server. In turn, the server will deploy it to
|
||||
all provisioned devices and within a couple of minutes, they will all run the
|
||||
new release. Logs can be viewed with:
|
||||
|
||||
```bash
|
||||
balena logs 59d7700 --tail
|
||||
[Logs] [10/28/2020, 11:40:16 AM] Supervisor starting
|
||||
[Logs] [10/28/2020, 11:40:50 AM] Creating network 'default'
|
||||
[Logs] [10/28/2020, 11:42:38 AM] Creating volume 'resin-data'
|
||||
[Logs] [10/28/2020, 11:42:40 AM] Downloading image …
|
||||
…
|
||||
[Logs] [10/28/2020, 11:44:00 AM] [main] Idling...
|
||||
```
|
||||
|
||||
Enjoy Balenafying All the Things!
|
14
docs/03-next-steps.md
Normal file
14
docs/03-next-steps.md
Normal file
@ -0,0 +1,14 @@
|
||||
# Next steps
|
||||
|
||||
- Try out [local mode](https://www.balena.io/docs/learn/develop/local-mode),
|
||||
which allows you to build and sync code to your device locally for rapid
|
||||
development.
|
||||
- Develop an application with [multiple containers](https://www.balena.io/docs/learn/develop/multicontainer)
|
||||
to provide a more modular approach to application management.
|
||||
- Manage your device fleet with the use of [configuration](https://www.balena.io/docs/learn/manage/configuration/)
|
||||
and [environment](https://www.balena.io/docs/learn/manage/serv-vars/) variables.
|
||||
- Explore our [example projects](https://balena.io/blog/tags/etcher-featured/)
|
||||
to give you an idea of more things you can do with balena.
|
||||
- If you find yourself stuck or confused, help is just [a click away](https://www.balena.io/support).
|
||||
- Pin selected devices to selected code releases using
|
||||
[sample scripts](https://github.com/balena-io-examples/staged-releases).
|
17
docs/04-differences-openbalena-balenacloud.md
Normal file
17
docs/04-differences-openbalena-balenacloud.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Differences between openBalena and balenaCloud
|
||||
|
||||
| openBalena | balenaCloud |
|
||||
| ----- | ---- |
|
||||
| Device updates using full images | Device updates using [delta images](https://www.balena.io/docs/learn/deploy/delta/) |
|
||||
| Support for a single user | Support for [multiple users](https://www.balena.io/docs/learn/manage/account/#application-members) |
|
||||
| Self-hosted deployment and scaling | balena-managed scaling and deployment |
|
||||
| Community support via [forums][forums] | Private support on [paid plans](https://www.balena.io/pricing/) |
|
||||
| Deploy via `balena deploy` only | Build remotely with native builders using [`balena push`](https://www.balena.io/docs/learn/deploy/deployment/#balena-push) or [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||
| No support for building via `git push` | Use the same CI workflow with [`git push`](https://www.balena.io/docs/learn/deploy/deployment/#git-push) |
|
||||
| No public URL support | Serve websites directly from device with [public device URLs](https://www.balena.io/docs/learn/manage/actions/#enable-public-device-url) |
|
||||
| Management via `balena-cli` only | Cloud-based device management dashboard |
|
||||
| Download images from [balena.io][balena-os-website] | Download preconfigured images directly from the dashboard |
|
||||
| No supported remote diagnostics | Remote device diagnostics |
|
||||
| Supported devices: Raspberry Pi family, the Intel NUC, the NVIDIA Jetson TX2, and the balenaFin | All the devices listed in balena's [reference documentation](https://www.balena.io/docs/reference/hardware/devices/) |
|
||||
|
||||
Additionally, refer back to the [roadmap](#roadmap) above for planned but not yet implemented features.
|
13
docs/05-roadmap.md
Normal file
13
docs/05-roadmap.md
Normal file
@ -0,0 +1,13 @@
|
||||
# openbalena roadmap
|
||||
|
||||
OpenBalena is currently in beta. While fully functional, it lacks features we
|
||||
consider important before we can comfortably call it production-ready. During
|
||||
this phase, don’t be alarmed if things don’t work as expected just yet (and
|
||||
please let us know about any bugs or errors you encounter!). The following
|
||||
improvements and new functionality is planned:
|
||||
|
||||
- Full documentation
|
||||
- Full test suite
|
||||
- Simplified deployment
|
||||
- Remote host OS updates
|
||||
- Support for custom device types
|
BIN
docs/assets/balenaOS-components.png
Normal file
BIN
docs/assets/balenaOS-components.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
BIN
docs/assets/balenaOS-read-only-rootfs.png
Normal file
BIN
docs/assets/balenaOS-read-only-rootfs.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 KiB |
BIN
docs/assets/image-partition-layout.png
Normal file
BIN
docs/assets/image-partition-layout.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
@ -11,10 +11,6 @@ echo_bold() {
|
||||
printf "\\033[1m%s\\033[0m\\n" "$@"
|
||||
}
|
||||
|
||||
echo_bold_stderr() {
|
||||
printf "\\033[1m%s\\033[0m\\n" "$@" 1>&2
|
||||
}
|
||||
|
||||
VERSIONS_FILE="${BASE_DIR}/compose/versions"
|
||||
if [ ! -f "$VERSIONS_FILE" ]; then
|
||||
echo_bold "No service versions defined in ${VERSIONS_FILE}"
|
||||
@ -35,9 +31,6 @@ if [ ${OPENBALENA_HOST_NAME: -6} == ".local" ]; then
|
||||
INCLUDE_MDNS="-f ${BASE_DIR}/compose/mdns.yml"
|
||||
fi
|
||||
|
||||
# show a warning to update your balena CLI tool...
|
||||
echo_bold_stderr "IMPORTANT: Please update your Balena CLI installation to version v12.38.5"
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
source "${VERSIONS_FILE}"; docker-compose \
|
||||
--project-name 'openbalena' \
|
||||
|
@ -6,11 +6,11 @@ VOLUME [ "/usr/src/app/certs" ]
|
||||
|
||||
RUN apk add --update bash curl git openssl ncurses socat
|
||||
|
||||
# from https://github.com/Neilpang/acme.sh/releases/tag/2.8.5
|
||||
# from https://github.com/Neilpang/acme.sh/releases/tag/3.0.1
|
||||
RUN git clone https://github.com/Neilpang/acme.sh.git && \
|
||||
cd acme.sh && \
|
||||
git fetch && git fetch --tags && \
|
||||
git checkout 2.8.5 . && \
|
||||
git checkout 3.0.1 . && \
|
||||
./acme.sh --install \
|
||||
--cert-home /usr/src/app/certs
|
||||
|
||||
|
@ -159,7 +159,7 @@ acquireCertificate() {
|
||||
fi
|
||||
|
||||
logInfo "Issuing certificates..."
|
||||
"$ACME_BIN" --issue "${ACME_OPTS[@]}" "${ACME_DOMAIN_ARGS[@]}"
|
||||
"$ACME_BIN" --server letsencrypt --issue "${ACME_OPTS[@]}" "${ACME_DOMAIN_ARGS[@]}"
|
||||
|
||||
logInfo "Installing certificates..." && \
|
||||
"$ACME_BIN" --install-cert "${ACME_DOMAIN_ARGS[@]}" \
|
||||
|
@ -1,56 +1,119 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFATCCAumgAwIBAgIRAKc9ZKBASymy5TLOEp57N98wDQYJKoZIhvcNAQELBQAw
|
||||
GjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMB4XDTE2MDMyMzIyNTM0NloXDTM2
|
||||
MDMyMzIyNTM0NlowGjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMIICIjANBgkq
|
||||
hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA+pYHvQw5iU3v2b3iNuYNKYgsWD6KU7aJ
|
||||
diddtZQxSWYzUI3U0I1UsRPTxnhTifs/M9NW4ZlV13ZfB7APwC8oqKOIiwo7IwlP
|
||||
xg0VKgyz+kT8RJfYr66PPIYP0fpTeu42LpMJ+CKo9sbpgVNDZN2z/qiXrRNX/VtG
|
||||
TkPV7a44fZ5bHHVruAxvDnylpQxJobtCBWlJSsbIRGFHMc2z88eUz9NmIOWUKGGj
|
||||
EmP76x8OfRHpIpuxRSCjn0+i9+hR2siIOpcMOGd+40uVJxbRRP5ZXnUFa2fF5FWd
|
||||
O0u0RPI8HON0ovhrwPJY+4eWKkQzyC611oLPYGQ4EbifRsTsCxUZqyUuStGyp8oa
|
||||
aoSKfF6X0+KzGgwwnrjRTUpIl19A92KR0Noo6h622OX+4sZiO/JQdkuX5w/HupK0
|
||||
A0M0WSMCvU6GOhjGotmh2VTEJwHHY4+TUk0iQYRtv1crONklyZoAQPD76hCrC8Cr
|
||||
IbgsZLfTMC8TWUoMbyUDgvgYkHKMoPm0VGVVuwpRKJxv7+2wXO+pivrrUl2Q9fPe
|
||||
Kk055nJLMV9yPUdig8othUKrRfSxli946AEV1eEOhxddfEwBE3Lt2xn0hhiIedbb
|
||||
Ftf/5kEWFZkXyUmMJK8Ra76Kus2ABueUVEcZ48hrRr1Hf1N9n59VbTUaXgeiZA50
|
||||
qXf2bymE6F8CAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wHQYDVR0OBBYEFMEmdKSKRKDm+iAo2FwjmkWIGHngMA0GCSqGSIb3DQEBCwUA
|
||||
A4ICAQBCPw74M9X/Xx04K1VAES3ypgQYH5bf9FXVDrwhRFSVckria/7dMzoF5wln
|
||||
uq9NGsjkkkDg17AohcQdr8alH4LvPdxpKr3BjpvEcmbqF8xH+MbbeUEnmbSfLI8H
|
||||
sefuhXF9AF/9iYvpVNC8FmJ0OhiVv13VgMQw0CRKkbtjZBf8xaEhq/YqxWVsgOjm
|
||||
dm5CAQ2X0aX7502x8wYRgMnZhA5goC1zVWBVAi8yhhmlhhoDUfg17cXkmaJC5pDd
|
||||
oenZ9NVhW8eDb03MFCrWNvIh89DDeCGWuWfDltDq0n3owyL0IeSn7RfpSclpxVmV
|
||||
/53jkYjwIgxIG7Gsv0LKMbsf6QdBcTjhvfZyMIpBRkTe3zuHd2feKzY9lEkbRvRQ
|
||||
zbh4Ps5YBnG6CKJPTbe2hfi3nhnw/MyEmF3zb0hzvLWNrR9XW3ibb2oL3424XOwc
|
||||
VjrTSCLzO9Rv6s5wi03qoWvKAQQAElqTYRHhynJ3w6wuvKYF5zcZF3MDnrVGLbh1
|
||||
Q9ePRFBCiXOQ6wPLoUhrrbZ8LpFUFYDXHMtYM7P9sc9IAWoONXREJaO08zgFtMp4
|
||||
8iyIYUyQAbsvx8oD2M8kRvrIRSrRJSl6L957b4AFiLIQ/GgV2curs0jje7Edx34c
|
||||
idWw1VrejtwclobqNMVtG3EiPUIpJGpbMcJgbiLSmKkrvQtGng==
|
||||
MIIDrzCCApegAwIBAgIRALqMZiRNaRF4EGZS9urlj+0wDQYJKoZIhvcNAQELBQAw
|
||||
cTELMAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1
|
||||
cml0eSBSZXNlYXJjaCBHcm91cDEtMCsGA1UEAxMkKFNUQUdJTkcpIERvY3RvcmVk
|
||||
IER1cmlhbiBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDEzMDE0MDEx
|
||||
NVowcTELMAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBT
|
||||
ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEtMCsGA1UEAxMkKFNUQUdJTkcpIERvY3Rv
|
||||
cmVkIER1cmlhbiBSb290IENBIFgzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAqUZjoRbjgXecPWxXkGCUEXcNrupL7dkbwc0jUTLFEDvcyfD1gYekY5uL
|
||||
D19uzYTl0pKZzzDXHJPnJY5EEp27nACFOm8XzX9sORAangP0OnGUkXJZDHM+8cX2
|
||||
EHJbfj0lg1JirRF3w2u1/KRuFEvIlWg3FdXdsSFHBF5z1Ij7MLn7Ska5c/5fKsDW
|
||||
EYzOMB6EBW1T9RDkVk/Q965EwDT4bR6BOXakasgfKrH9m1f6l9MmA0VnXdw9rZ+s
|
||||
TvMHG1yWBqNMSqCKe3jG6caWgN7llEbj5YsCWs32bz2dMftGkXBPcy1fNWvpeT7G
|
||||
Dz2Z0QWTlHkyXA2kGw32fdoXLHWOEwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUCFfaiceiU3kMT93gkI90uuInc0Qw
|
||||
DQYJKoZIhvcNAQELBQADggEBAF7lEtHuSN4j+xFQsM/ujaVKcn57VbrbTecnspmJ
|
||||
JA7Hrn6OErshGNO0p1/u14c7tGHKjtF1tEFFSVhbNXlKw9O99AfhmlFgdGcJKEHn
|
||||
ZctBB8bhNO387vbiCYIHdU/nSba9MCDYw2/UCtobZ6ao+KJA3IKmPixctAbn2Ikr
|
||||
EN9X0SXNP1gnqQP4VhZJIh6cd7rg9MimzoLlMI3m2z11dSGYbh8OWSdvA7aLbSGo
|
||||
gDO5H4WD8fgqEG0reSBO89eeH+we+BZxQtBiU3b9VMV0drc+7zC2NbXqeQwu6QTl
|
||||
fbJ8ytqcqUy0g5XSE6WCzPOL3H9r0j9G64dfotGlBA5tG6w=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFmDCCA4CgAwIBAgIQU9C87nMpOIFKYpfvOHFHFDANBgkqhkiG9w0BAQsFADBm
|
||||
MQswCQYDVQQGEwJVUzEzMDEGA1UEChMqKFNUQUdJTkcpIEludGVybmV0IFNlY3Vy
|
||||
aXR5IFJlc2VhcmNoIEdyb3VwMSIwIAYDVQQDExkoU1RBR0lORykgUHJldGVuZCBQ
|
||||
ZWFyIFgxMB4XDTE1MDYwNDExMDQzOFoXDTM1MDYwNDExMDQzOFowZjELMAkGA1UE
|
||||
BhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0eSBSZXNl
|
||||
YXJjaCBHcm91cDEiMCAGA1UEAxMZKFNUQUdJTkcpIFByZXRlbmQgUGVhciBYMTCC
|
||||
AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALbagEdDTa1QgGBWSYkyMhsc
|
||||
ZXENOBaVRTMX1hceJENgsL0Ma49D3MilI4KS38mtkmdF6cPWnL++fgehT0FbRHZg
|
||||
jOEr8UAN4jH6omjrbTD++VZneTsMVaGamQmDdFl5g1gYaigkkmx8OiCO68a4QXg4
|
||||
wSyn6iDipKP8utsE+x1E28SA75HOYqpdrk4HGxuULvlr03wZGTIf/oRt2/c+dYmD
|
||||
oaJhge+GOrLAEQByO7+8+vzOwpNAPEx6LW+crEEZ7eBXih6VP19sTGy3yfqK5tPt
|
||||
TdXXCOQMKAp+gCj/VByhmIr+0iNDC540gtvV303WpcbwnkkLYC0Ft2cYUyHtkstO
|
||||
fRcRO+K2cZozoSwVPyB8/J9RpcRK3jgnX9lujfwA/pAbP0J2UPQFxmWFRQnFjaq6
|
||||
rkqbNEBgLy+kFL1NEsRbvFbKrRi5bYy2lNms2NJPZvdNQbT/2dBZKmJqxHkxCuOQ
|
||||
FjhJQNeO+Njm1Z1iATS/3rts2yZlqXKsxQUzN6vNbD8KnXRMEeOXUYvbV4lqfCf8
|
||||
mS14WEbSiMy87GB5S9ucSV1XUrlTG5UGcMSZOBcEUpisRPEmQWUOTWIoDQ5FOia/
|
||||
GI+Ki523r2ruEmbmG37EBSBXdxIdndqrjy+QVAmCebyDx9eVEGOIpn26bW5LKeru
|
||||
mJxa/CFBaKi4bRvmdJRLAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
|
||||
Af8EBTADAQH/MB0GA1UdDgQWBBS182Xy/rAKkh/7PH3zRKCsYyXDFDANBgkqhkiG
|
||||
9w0BAQsFAAOCAgEAncDZNytDbrrVe68UT6py1lfF2h6Tm2p8ro42i87WWyP2LK8Y
|
||||
nLHC0hvNfWeWmjZQYBQfGC5c7aQRezak+tHLdmrNKHkn5kn+9E9LCjCaEsyIIn2j
|
||||
qdHlAkepu/C3KnNtVx5tW07e5bvIjJScwkCDbP3akWQixPpRFAsnP+ULx7k0aO1x
|
||||
qAeaAhQ2rgo1F58hcflgqKTXnpPM02intVfiVVkX5GXpJjK5EoQtLceyGOrkxlM/
|
||||
sTPq4UrnypmsqSagWV3HcUlYtDinc+nukFk6eR4XkzXBbwKajl0YjztfrCIHOn5Q
|
||||
CJL6TERVDbM/aAPly8kJ1sWGLuvvWYzMYgLzDul//rUF10gEMWaXVZV51KpS9DY/
|
||||
5CunuvCXmEQJHo7kGcViT7sETn6Jz9KOhvYcXkJ7po6d93A/jy4GKPIPnsKKNEmR
|
||||
xUuXY4xRdh45tMJnLTUDdC9FIU0flTeO9/vNpVA8OPU1i14vCz+MU8KX1bV3GXm/
|
||||
fxlB7VBBjX9v5oUep0o/j68R/iDlCOM4VVfRa8gX6T2FU7fNdatvGro7uQzIvWof
|
||||
gN9WUwCbEMBy/YhBSrXycKA8crgGg3x1mIsopn88JKwmMBa68oS7EHM9w7C4y71M
|
||||
7DiA+/9Qdp9RBWJpTS9i/mDnJg1xvo8Xz49mrrgfmcAXTCJqXi24NatI3Oc=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICTjCCAdSgAwIBAgIRAIPgc3k5LlLVLtUUvs4K/QcwCgYIKoZIzj0EAwMwaDEL
|
||||
MAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0
|
||||
eSBSZXNlYXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Nj
|
||||
b2xpIFgyMB4XDTIwMDkwNDAwMDAwMFoXDTQwMDkxNzE2MDAwMFowaDELMAkGA1UE
|
||||
BhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0eSBSZXNl
|
||||
YXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Njb2xpIFgy
|
||||
MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEOvS+w1kCzAxYOJbA06Aw0HFP2tLBLKPo
|
||||
FQqR9AMskl1nC2975eQqycR+ACvYelA8rfwFXObMHYXJ23XLB+dAjPJVOJ2OcsjT
|
||||
VqO4dcDWu+rQ2VILdnJRYypnV1MMThVxo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
||||
VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU3tGjWWQOwZo2o0busBB2766XlWYwCgYI
|
||||
KoZIzj0EAwMDaAAwZQIwRcp4ZKBsq9XkUuN8wfX+GEbY1N5nmCRc8e80kUkuAefo
|
||||
uc2j3cICeXo1cOybQ1iWAjEA3Ooawl8eQyR4wrjCofUE8h44p0j7Yl/kBlJZT8+9
|
||||
vbtH7QiVzeKCOTQPINyRql6P
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFWzCCA0OgAwIBAgIQTfQrldHumzpMLrM7jRBd1jANBgkqhkiG9w0BAQsFADBm
|
||||
MQswCQYDVQQGEwJVUzEzMDEGA1UEChMqKFNUQUdJTkcpIEludGVybmV0IFNlY3Vy
|
||||
aXR5IFJlc2VhcmNoIEdyb3VwMSIwIAYDVQQDExkoU1RBR0lORykgUHJldGVuZCBQ
|
||||
ZWFyIFgxMB4XDTIwMDkwNDAwMDAwMFoXDTI1MDkxNTE2MDAwMFowWTELMAkGA1UE
|
||||
BhMCVVMxIDAeBgNVBAoTFyhTVEFHSU5HKSBMZXQncyBFbmNyeXB0MSgwJgYDVQQD
|
||||
Ex8oU1RBR0lORykgQXJ0aWZpY2lhbCBBcHJpY290IFIzMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEAu6TR8+74b46mOE1FUwBrvxzEYLck3iasmKrcQkb+
|
||||
gy/z9Jy7QNIAl0B9pVKp4YU76JwxF5DOZZhi7vK7SbCkK6FbHlyU5BiDYIxbbfvO
|
||||
L/jVGqdsSjNaJQTg3C3XrJja/HA4WCFEMVoT2wDZm8ABC1N+IQe7Q6FEqc8NwmTS
|
||||
nmmRQm4TQvr06DP+zgFK/MNubxWWDSbSKKTH5im5j2fZfg+j/tM1bGaczFWw8/lS
|
||||
nukyn5J2L+NJYnclzkXoh9nMFnyPmVbfyDPOc4Y25aTzVoeBKXa/cZ5MM+WddjdL
|
||||
biWvm19f1sYn1aRaAIrkppv7kkn83vcth8XCG39qC2ZvaQIDAQABo4IBEDCCAQww
|
||||
DgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAS
|
||||
BgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTecnpI3zHDplDfn4Uj31c3S10u
|
||||
ZTAfBgNVHSMEGDAWgBS182Xy/rAKkh/7PH3zRKCsYyXDFDA2BggrBgEFBQcBAQQq
|
||||
MCgwJgYIKwYBBQUHMAKGGmh0dHA6Ly9zdGcteDEuaS5sZW5jci5vcmcvMCsGA1Ud
|
||||
HwQkMCIwIKAeoByGGmh0dHA6Ly9zdGcteDEuYy5sZW5jci5vcmcvMCIGA1UdIAQb
|
||||
MBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCN
|
||||
DLam9yN0EFxxn/3p+ruWO6n/9goCAM5PT6cC6fkjMs4uas6UGXJjr5j7PoTQf3C1
|
||||
vuxiIGRJC6qxV7yc6U0X+w0Mj85sHI5DnQVWN5+D1er7mp13JJA0xbAbHa3Rlczn
|
||||
y2Q82XKui8WHuWra0gb2KLpfboYj1Ghgkhr3gau83pC/WQ8HfkwcvSwhIYqTqxoZ
|
||||
Uq8HIf3M82qS9aKOZE0CEmSyR1zZqQxJUT7emOUapkUN9poJ9zGc+FgRZvdro0XB
|
||||
yphWXDaqMYph0DxW/10ig5j4xmmNDjCRmqIKsKoWA52wBTKKXK1na2ty/lW5dhtA
|
||||
xkz5rVZFd4sgS4J0O+zm6d5GRkWsNJ4knotGXl8vtS3X40KXeb3A5+/3p0qaD215
|
||||
Xq8oSNORfB2oI1kQuyEAJ5xvPTdfwRlyRG3lFYodrRg6poUBD/8fNTXMtzydpRgy
|
||||
zUQZh/18F6B/iW6cbiRN9r2Hkh05Om+q0/6w0DdZe+8YrNpfhSObr/1eVZbKGMIY
|
||||
qKmyZbBNu5ysENIK5MPc14mUeKmFjpN840VR5zunoU52lqpLDua/qIM8idk86xGW
|
||||
xx2ml43DO/Ya/tVZVok0mO0TUjzJIfPqyvr455IsIut4RlCR9Iq0EDTve2/ZwCuG
|
||||
hSjpTUFGSiQrR2JK2Evp+o6AETUkBCO1aw0PpQBPDQ==
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDCzCCApGgAwIBAgIRALRY4992FVxZJKOJ3bpffWIwCgYIKoZIzj0EAwMwaDEL
|
||||
MAkGA1UEBhMCVVMxMzAxBgNVBAoTKihTVEFHSU5HKSBJbnRlcm5ldCBTZWN1cml0
|
||||
eSBSZXNlYXJjaCBHcm91cDEkMCIGA1UEAxMbKFNUQUdJTkcpIEJvZ3VzIEJyb2Nj
|
||||
b2xpIFgyMB4XDTIwMDkwNDAwMDAwMFoXDTI1MDkxNTE2MDAwMFowVTELMAkGA1UE
|
||||
BhMCVVMxIDAeBgNVBAoTFyhTVEFHSU5HKSBMZXQncyBFbmNyeXB0MSQwIgYDVQQD
|
||||
ExsoU1RBR0lORykgRXJzYXR6IEVkYW1hbWUgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
|
||||
IgNiAAT9v/PJUtHOTk28nXCXrpP665vI4Z094h8o7R+5E6yNajZa0UubqjpZFoGq
|
||||
u785/vGXj6mdfIzc9boITGusZCSWeMj5ySMZGZkS+VSvf8VQqj+3YdEu4PLZEjBA
|
||||
ivRFpEejggEQMIIBDDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUH
|
||||
AwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFOv5JcKA
|
||||
KGbibQiSMvPC4a3D/zVFMB8GA1UdIwQYMBaAFN7Ro1lkDsGaNqNG7rAQdu+ul5Vm
|
||||
MDYGCCsGAQUFBwEBBCowKDAmBggrBgEFBQcwAoYaaHR0cDovL3N0Zy14Mi5pLmxl
|
||||
bmNyLm9yZy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3N0Zy14Mi5jLmxlbmNy
|
||||
Lm9yZy8wIgYDVR0gBBswGTAIBgZngQwBAgEwDQYLKwYBBAGC3xMBAQEwCgYIKoZI
|
||||
zj0EAwMDaAAwZQIwXcZbdgxcGH9rTErfSTkXfBKKygU0yO7OpbuNeY1id0FZ/hRY
|
||||
N5fdLOGuc+aHfCsMAjEA0P/xwKr6NQ9MN7vrfGAzO397PApdqfM7VdFK18aEu1xm
|
||||
3HMFKzIR8eEPsMx4smMl
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEqzCCApOgAwIBAgIRAIvhKg5ZRO08VGQx8JdhT+UwDQYJKoZIhvcNAQELBQAw
|
||||
GjEYMBYGA1UEAwwPRmFrZSBMRSBSb290IFgxMB4XDTE2MDUyMzIyMDc1OVoXDTM2
|
||||
MDUyMzIyMDc1OVowIjEgMB4GA1UEAwwXRmFrZSBMRSBJbnRlcm1lZGlhdGUgWDEw
|
||||
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtWKySDn7rWZc5ggjz3ZB0
|
||||
8jO4xti3uzINfD5sQ7Lj7hzetUT+wQob+iXSZkhnvx+IvdbXF5/yt8aWPpUKnPym
|
||||
oLxsYiI5gQBLxNDzIec0OIaflWqAr29m7J8+NNtApEN8nZFnf3bhehZW7AxmS1m0
|
||||
ZnSsdHw0Fw+bgixPg2MQ9k9oefFeqa+7Kqdlz5bbrUYV2volxhDFtnI4Mh8BiWCN
|
||||
xDH1Hizq+GKCcHsinDZWurCqder/afJBnQs+SBSL6MVApHt+d35zjBD92fO2Je56
|
||||
dhMfzCgOKXeJ340WhW3TjD1zqLZXeaCyUNRnfOmWZV8nEhtHOFbUCU7r/KkjMZO9
|
||||
AgMBAAGjgeMwgeAwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAw
|
||||
HQYDVR0OBBYEFMDMA0a5WCDMXHJw8+EuyyCm9Wg6MHoGCCsGAQUFBwEBBG4wbDA0
|
||||
BggrBgEFBQcwAYYoaHR0cDovL29jc3Auc3RnLXJvb3QteDEubGV0c2VuY3J5cHQu
|
||||
b3JnLzA0BggrBgEFBQcwAoYoaHR0cDovL2NlcnQuc3RnLXJvb3QteDEubGV0c2Vu
|
||||
Y3J5cHQub3JnLzAfBgNVHSMEGDAWgBTBJnSkikSg5vogKNhcI5pFiBh54DANBgkq
|
||||
hkiG9w0BAQsFAAOCAgEABYSu4Il+fI0MYU42OTmEj+1HqQ5DvyAeyCA6sGuZdwjF
|
||||
UGeVOv3NnLyfofuUOjEbY5irFCDtnv+0ckukUZN9lz4Q2YjWGUpW4TTu3ieTsaC9
|
||||
AFvCSgNHJyWSVtWvB5XDxsqawl1KzHzzwr132bF2rtGtazSqVqK9E07sGHMCf+zp
|
||||
DQVDVVGtqZPHwX3KqUtefE621b8RI6VCl4oD30Olf8pjuzG4JKBFRFclzLRjo/h7
|
||||
IkkfjZ8wDa7faOjVXx6n+eUQ29cIMCzr8/rNWHS9pYGGQKJiY2xmVC9h12H99Xyf
|
||||
zWE9vb5zKP3MVG6neX1hSdo7PEAb9fqRhHkqVsqUvJlIRmvXvVKTwNCP3eCjRCCI
|
||||
PTAvjV+4ni786iXwwFYNz8l3PmPLCyQXWGohnJ8iBm+5nk7O2ynaPVW0U2W+pt2w
|
||||
SVuvdDM5zGv2f9ltNWUiYZHJ1mmO97jSY/6YfdOUH66iRtQtDkHBRdkNBsMbD+Em
|
||||
2TgBldtHNSJBfB3pm9FblgOcJ0FSWcUDWJ7vO0+NTXlgrRofRT6pVywzxVo6dND0
|
||||
WzYlTWeUVsO40xJqhgUQRER9YLOLxJ0O6C8i0xFxAMKOtSdodMB3RIwt7RFQ0uyt
|
||||
n5Z5MqkYhlMI3J1tPRTp1nEt9fyGspBOO05gi148Qasp+3N+svqKomoQglNoAxU=
|
||||
-----END CERTIFICATE-----
|
||||
|
Reference in New Issue
Block a user