thingsboard/msa/tb/README.md
Andrew Shvayka 7667afaeae
Develop/lwm2m (#3826)
* LwM2M - Start transport

* LwM2M - Test endpoint

* LwM2M - Test endpoint

* LwM2M - Test add xml

* LwM2M device registration

* LwM2M - add get from client, add attributes and telemetry upgrade from registration client

* LwM2M - add get from client, add attributes and telemetry upgrade from registration client

* LwM2M implementation

* LwM2M - add to service telemetry and attribute

* LwM2M add to service attribute and telemetry

* LwM2M - add LWM2M_CREDENTIALS to DeviceCredentialsType

* LwM2M - add LWM2M_CREDENTIALS to DeviceCredentialsType

* LwM2M - add transport.process

* LwM2M - delete from yml tenantid, PSK -ok

* LwM2M - yml del tenantId

* LwM2M - add RPK

* LwM2M - add connect only x509 certificate. Crate certificates in serverKeyStore.jks and clientKeyStore.jks

* LwM2M - add no_sec

* LwM2M - add RPK & PSK integration test with app Client

* LwM2M - add RPK & PSK integration test with app Client

* LwM2M - add read JKS from file

* LwM2M - add read JKS from file

* LwM2M - add bootstrap cert

* LwM2M - add bootstrap RPK

* LwM2M - add bootstrap No_sec

* LwM2M - cleaned the code

* LwM2M - add to 3.0 in UI credentials lwm2m

* LwM2M - add to 3.0 in UI credentials lwm2m

* LwM2M - add to 3.0 in UI credentials lwm2m

* LwM2M - fix bug CoAP transport

* LwM2M: UI - add Json to credentials

* LwM2M: Back - add command "/3/0/5" - trigger client

* LwM2M: fix bug Json edit dialog

* LwM2M: fix bug Json edit dialog

* lwm2m: fix bug Json edit dialog: add validate

* lwm2m: UI add tabs

* lwm2m: UI add tabs (cleaner)

* lwm2m: add interface SecurityConfigModels

* lwm2m: add interface SecurityConfigModels2

* lwm2m: change html

* lwm2m: UI add bootstrap component

* lwm2m: UI add bootstrap component with FormControl

* lwm2m: UI add start Observe

* lwm2m: UI - correct

* lwm2m: UI - correct

* lwm2m: UI - add Validator: BS RPK, X509

* lwm2m: UI - add Observe

* lwm2m: UI - finish Observe

* lwm2m: UI - fix bug config-service update identity

* lwm2m: Bootstarp&Sewrver All config secure

* lwm2m: Bootstarp&Sewrver All config secure for new Front format

* lwm2m: Bootstarp&Sewrver Different config secure for new Front format

* lwm2m: Add attributes Gui and Backend

* lwm2m: Add attributes Gui and Backend final

* lwm2m: Add telemetrys to Gui

* lwm2m: Add Attribute & telemetry in Gui to instance

* lwm2m: Optimize Attr/Telemetry

* lwm2m: Optimize Attr/Telemetry

* lwm2m: Optimize Attr/Telemetry

* lwm2m: Optimize Attr/Telemetry for mobile

* lwm2m: Model folder

* lwm2m: Ok on AWS: NoSec, PSK, X509
bad registration - RPK

* lwm2m: KeyStore start only one

* lwm2m: Server observe ok

* lwm2m: Server fix bug finish session without remove

* lwm2m: Server add function installValue

* lwm2m: Server add function getAttrTelemetry to tingsboard

* lwm2m: Server add function installValue

* lwm2m: Server add function update Telemetry, Attr from observe

* lwm2m: Server add comments

* lwm2m: Server add session listener

* lwm2m: Server add onGetChangeCredentials with analyze

* lwm2m: Server add onGetChangeCredentials with analyze Onserve add

* lwm2m: Server: updated algorithm for analyzing dynamic changes in attributes / telemetry / observation

* lwm2m: fix bug:  "ngx-flowchart" compile

* lwm2m: get value resource OPAQUE - byte [] to HexString

* lwm2m: change path to base

* lwm2m: fix bug COAP & lwm2m

* Lwm2m_3_2: back: cleaner, test bootstrap-ok front: restore

* Lwm2m_3_2: back: del SynchronousRegistrationListener.java

* Lwm2m_3_2: front: start profile lwm2m UI

* Lwm2m_3_2: front&back: add to profile lwm2m (api, getModels...)

* Lwm2m_3_2: back: fix bug from commented front: add update change observe/attribute/telemetry to config json

* Lwm2m_3_2: back: fix bug from commented front: add update change observe/attribute/telemetry to config json (2)

* Lwm2m_3_2: back: fix bug from commented front: add update change observe/attribute/telemetry to config json (3)

* Lwm2m_3_2: back: fix bug from commented front: add update change observe/attribute/telemetry to config json (4)

* Lwm2m_3_2: front: add update change bootstrapConfig and save to config json

* Lwm2m_3_2: update after merge master

* lwm2m: fix bug proto

* lwm2m: fix bug in yml keyStore.jks

* lwm2m: fix bug tests

* lwm2m: front: add nameThingsboard

* lwm2m: fix bug Autowired lwm2mContext, caseCamel

* lwm2m: back-end^ start api /lwm2m/deviceProfile/bootstrap

* lwm2m: back-end: add method read models from resources

* lwm2m: back-end/front: add and finish api bootstrapConfig

* lwm2m: back-end: add decode profile

* lwm2m: back-end: add new bin in transport api

* lwm2m: add microservice lwm2m and docker lwm2m.

* lwm2m: add microservice lwm2m and docker lwm2m (fix bug)

* lwm2m: front: start fix bug disabled resources

* lwm2m: master to lwm2m merge, front add change attribute, telemetry

* lwm2m: front PR

* lwm2m: front add sort keyName to Json on the start

* lwm2m: front add instances

* lwm2m: front add/del instances FormGrp Value

* lwm2m: Merge remote-tracking branch 'origin/master' into develop/lwm2m
# Conflicts:
#	common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java
#	common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/SessionMsgListener.java
#	ui-ngx/src/app/modules/home/components/home-components.module.ts

* lwm2m: Merge remote-tracking branch 'origin/master' into develop/lwm2m

* lwm2m: Front: del sort after add/del instance

* lwm2m: Front: fix bug reindex FormArray after update

* Lwm2m: Front fix bug add/del instans

* Lwm2m: Front finish1 profile

* Lwm2m: Back add profile to ModelClient

* Lwm2m: Back add form profile sent thingsboard: attr/tel/observe

* Lwm2m: Back -> fix bug: serverKeyStore.jks] Unable to load KeyStore  files server

* Lwm2m: Back -> fix bug: onRegistered an unReg

* Lwm2m: Back -> add updateProfiles

* Lwm2m: Back -> add updateDevice and updateProfile dynamic

* Lwm2m: Back -> error if CoapCode not access

* Lwm2m: Front -> clear credential

* Lwm2m: Front ->  credential fix bug button "save"

* Lwm2m: Back ->  add telemetry logLwm2m

Co-authored-by: nickAS21 <nick@avalr.com.ua>
2020-12-09 17:13:11 +02:00

95 lines
4.0 KiB
Markdown

# ThingsBoard single docker images
This project provides the build for the ThingsBoard single docker images.
* `thingsboard/tb` - single instance of ThingsBoard with embedded HSQLDB database.
* `thingsboard/tb-postgres` - single instance of ThingsBoard with PostgreSQL database.
* `thingsboard/tb-cassandra` - single instance of ThingsBoard with Hybrid PostgreSQL (entities) and Cassandra (timeseries) database.
## Running
Before starting Docker container run following command to create a directory for storing data and change its owner to docker container user.
To be able to change user, **chown** command is used, which requires sudo permissions (command will request password for a sudo access):
`
$ mkdir -p ~/.mytb-data && sudo chown -R 799:799 ~/.mytb-data
`
**NOTE**: replace directory `~/.mytb-data` with directory you're planning to use on container creation.
In this example `thingsboard/tb` image will be used. You can choose any other images with different databases (see above).
Execute the following command to run this docker directly:
`
$ docker run -it -p 9090:9090 -p 1883:1883 -p 5683:5683/udp -p 5685:5685/udp -v ~/.mytb-data:/data --name mytb thingsboard/tb
`
Where:
- `docker run` - run this container
- `-it` - attach a terminal session with current ThingsBoard process output
- `-p 9090:9090` - connect local port 9090 to exposed internal HTTP port 9090
- `-p 1883:1883` - connect local port 1883 to exposed internal MQTT port 1883
- `-p 5683:5683` - connect local port 5683 to exposed internal COAP port 5683
- `-p 5685:5685` - connect local port 5685 to exposed internal COAP port 5685 (lwm2m)
- `-v ~/.mytb-data:/data` - mounts the host's dir `~/.mytb-data` to ThingsBoard DataBase data directory
- `--name mytb` - friendly local name of this machine
- `thingsboard/tb` - docker image, can be also `thingsboard/tb-postgres` or `thingsboard/tb-cassandra`
> **NOTE**: **Windows** users should use docker managed volume instead of host's dir. Create docker volume (for ex. `mytb-data`) before executing `docker run` command:
> ```
> $ docker volume create mytb-data
> ```
> After you can execute docker run command using `mytb-data` volume instead of `~/.mytb-data`.
> In order to get access to necessary resources from external IP/Host on **Windows** machine, please execute the following commands:
> ```
> $ VBoxManage controlvm "default" natpf1 "tcp-port9090,tcp,,9090,,9090"
> $ VBoxManage controlvm "default" natpf1 "tcp-port1883,tcp,,1883,,1883"
> $ VBoxManage controlvm "default" natpf1 "tcp-port5683,tcp,,5683,,5683"
> $ VBoxManage controlvm "default" natpf1 "tcp-port5683,tcp,,5685,,5685"
> ```
After executing `docker run` command you can open `http://{your-host-ip}:9090` in you browser (for ex. `http://localhost:9090`). You should see ThingsBoard login page.
Use the following default credentials:
- **System Administrator**: sysadmin@thingsboard.org / sysadmin
- **Tenant Administrator**: tenant@thingsboard.org / tenant
- **Customer User**: customer@thingsboard.org / customer
You can always change passwords for each account in account profile page.
You can detach from session terminal with `Ctrl-p` `Ctrl-q` - the container will keep running in the background.
To reattach to the terminal (to see ThingsBoard logs) run:
```
$ docker attach mytb
```
To stop the container:
```
$ docker stop mytb
```
To start the container:
```
$ docker start mytb
```
## Upgrading
In order to update to the latest image, execute the following commands:
```
$ docker pull thingsboard/tb
$ docker stop mytb
$ docker run -it -v ~/.mytb-data:/data --rm thingsboard/tb upgrade-tb.sh
$ docker start mytb
```
**NOTE**: if you use different database change image name in all commands from `thingsboard/tb` to `thingsboard/tb-postgres` or `thingsboard/tb-cassandra` correspondingly.
**NOTE**: replace host's directory `~/.mytb-data` with directory used during container creation.