ShvaykaD 84cb471e0d Sql timeseries improvements (#2033)
* init commit

* cleaned code and add test-properties

* cleaned code

* psql-update

* timescale-update

* code-refactoring

* fix typo

* renamed dao

* revert indents

* refactored code

* fix typo

* init-partitioning

* code updated

* cleaned code

* fixed license

* fix typo

* fixed code after review

* add annotation to repository

* update psql version for docker

* postgres-10

* postgres-10

* update docker compose config

* fixed partition saving

* change key_id to serial column definition

* upgrade psql added

* add separate upgrade service

* added upgrade script

* change image on k8s

* change logs

* resolve conflict after merge with master

* revert datasource url in yml

* fix typo

* license header fix

* remove old methods for the timeseries inserts

* clean up code

* fix saveOrUpdate for PostgreSQL

* refactoring & revert Timescale to use latest table

* added PsqlTsAnyDao

* duplicated code method removed

* remove unused invert dictionary map

* change the upgrade directory from 2.4.1 to 2.4.3

* refactor JpaPsqlTimeseriesDao
2020-01-29 17:06:51 +02:00
..
2020-01-06 16:52:41 +02:00
2018-10-31 10:56:21 +02:00

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 Cassandra database.

Running

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 -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
  • -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 create volume 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"

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:

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.