Public Repository

Last pushed: a year ago
Short Description
DeviceHive frontend service with storage in TS DB (Riak)
Full Description

DeviceHive Java server

DeviceHive turns any connected device into the part of Internet of Things.
It provides the communication layer, control software and multi-platform
libraries to bootstrap development of smart energy, home automation, remote
sensing, telemetry, remote control and monitoring software and much more.

Connect embedded Linux using Python or C++ libraries and JSON protocol or
connect AVR, Microchip devices using lightweight C libraries and BINARY protocol.
Develop client applications using HTML5/JavaScript, iOS and Android libraries.
For solutions involving gateways, there is also gateway middleware that allows
to interface with devices connected to it. Leave communications to DeviceHive
and focus on actual product and innovation.

DeviceHive license

DeviceHive is developed by DataArt Apps and distributed under Open Source
Apache 2.0. This basically means
you can do whatever you want with the software as long as the copyright notice
is included. This also means you don't have to contribute the end product or
modified sources back to Open Source, but if you feel like sharing, you are
highly encouraged to do so!

© Copyright 2013-2017 DataArt Apps © All Rights Reserved

Docker Container

We have published a DeviceHive docker container so you can utilize docker's virtualization features with DeviceHive.
Check out DeviceHive on Docker Hub with the instructions on
how to use it. You can check dockerfile implementation as well as the script for setting up a new instance running
under nginx on DeviceHive Docker

DeviceHive Java installation instructions


In order to use DeviceHive framework you must have the following components installed and configured:

Build packages

  • Download source code from GitHub using "Download ZIP" button.
    It should always point to recent stable or beta release, but you always can get any other tag or branch.
    It also can be done using one of Git version control client or git command line tool.
    If you prefer git, clone project using command

git clone

After that you can switch to the tag or branch you need. The list of all available releases can be found at
Execute following command from ${devicehive-java-server-directory}.

mvn clean package

If there are no errors, compilation and packaging are completed and you can go to the next step.

Running Apache Kafka

Start Zookeeper and Apache Kafka brokers as explained at official documentation (
If your Kafka brokers are installed on the different machines, please specify their hostname/ports at file.
You need to update zookeeper.connect (zookeeper's contact point) and bootstrap.servers (list of brokers) properties.

Starting database

  • After you have downloaded and installed PostgreSQL (see
    you have to create new user. This step is required for database migrations to work properly. By default, DH expects that
    the username is postgres and the password is 12345. You can change this in the DH configuration files.
  • Create database with the name devicehive using user that have been created at step 1. This user should be owner of
  • Database schema will be initialized on application startup.

Running application

  • To start application, you have to start the backend and the frontend. To do this, first run following command:

java -jar ${devicehive-java-server-directory}/devicehive-backend/target/devicehive-backend-<version>-boot.jar

Wait for the application to start, then run:

java -jar ${devicehive-java-server-directory}/devicehive-frontend/target/devicehive-frontend-<version>-boot.jar

This will start embedded undertow application server on default port 8080 and deploy DeviceHive application.
You can visit http://localhost:8080/dh/swagger from your web browser to start learning the APIs.

Docker Pull Command