{"id":43,"date":"2018-03-14T21:47:51","date_gmt":"2018-03-14T21:47:51","guid":{"rendered":"http:\/\/boernig.de\/wordpress\/?p=43"},"modified":"2018-03-19T09:20:38","modified_gmt":"2018-03-19T09:20:38","slug":"creating-a-standalone-instance-of-eclipse-kapua-using-docker-containers","status":"publish","type":"post","link":"http:\/\/boernig.de\/wordpress\/2018\/03\/14\/creating-a-standalone-instance-of-eclipse-kapua-using-docker-containers\/","title":{"rendered":"Creating a standalone instance of Eclipse Kapua using Docker containers"},"content":{"rendered":"<p>Today I start with taking a deeper look at <a href=\"https:\/\/www.eclipse.org\/kapua\/\">Eclipse Kapua<\/a>. It is a modular IoT cloud platform to manage and integrate devices and their data.<\/p>\n<p>My goal for the next weeks will be to demonstrate a multi-tenant capable installation of Eclipse Kapua on OpenShift, connecting several IoT devices and gateways to it.<\/p>\n<p>As a first step, I will setup Kapua as a standalone application using pre-built docker containers.<\/p>\n<p>Then I will use a raspberry pi running\u00a0Eclipse Kura\u00a0to connect to Kapua and send test data.<\/p>\n<p>Next steps will be the port to OpenShift making use of persistent storage and scalability. And connecting sensors to the raspberry pi gateways to send\u00a0 some useful data.<\/p>\n<p>Setting up Kapua if you have a running docker service is fairly easy:<\/p>\n<p>You need to have a 64bit architecture, Docker version &gt; 1.2, roughly 8 GB of free RAM and access to the internet to fetch the pre-built containers from docker hub.<\/p>\n<pre>docker run -td --name kapua-sql -p 8181:8181 \\\r\n\u00a0\u00a0\u00a0 -p 3306:3306 kapua\/kapua-sql:0.3.2\r\ndocker run -td --name kapua-elasticsearch \\\r\n\u00a0\u00a0\u00a0 -p 9200:9200 -p 9300:9300 elasticsearch:5.4.0 \\\r\n\u00a0\u00a0\u00a0-Ecluster.name=kapua-datastore \\\r\n\u00a0\u00a0\u00a0-Ediscovery.type=single-node \\\r\n\u00a0\u00a0\u00a0-Etransport.host=_site_ \\\r\n\u00a0\u00a0\u00a0-Etransport.ping_schedule=-1 \\\r\n\u00a0\u00a0\u00a0-Etransport.tcp.connect_timeout=30s\r\ndocker run -td --name kapua-broker --link kapua-sql:db \\\r\n\u00a0\u00a0\u00a0 --link kapua-elasticsearch:es \\\r\n\u00a0\u00a0\u00a0--env commons.db.schema.update=true \\\r\n\u00a0\u00a0\u00a0-p 1883:1883 -p 61614:61614 kapua\/kapua-broker:0.3.2\r\ndocker run -td --name kapua-console --link kapua-sql:db \\\r\n\u00a0\u00a0\u00a0 --link kapua-broker:broker \\\r\n\u00a0\u00a0\u00a0--link kapua-elasticsearch:es \\\r\n\u00a0\u00a0\u00a0--env commons.db.schema.update=true \\\r\n\u00a0\u00a0\u00a0-p 8080:8080 kapua\/kapua-console:0.3.2\r\ndocker run -td --name kapua-api --link kapua-sql:db \\\r\n\u00a0\u00a0\u00a0 --link kapua-broker:broker \\\r\n\u00a0\u00a0\u00a0--link kapua-elasticsearch:es \\\r\n\u00a0\u00a0\u00a0--env commons.db.schema.update=true \\\r\n\u00a0\u00a0\u00a0-p 8081:8080 kapua\/kapua-api:0.3.2<\/pre>\n<p>Each line will then fetch the container and start them.<\/p>\n<p>In order to make the service accessible, I also add some firewall rules on my docker host:<\/p>\n<pre>firewall-cmd --add-port 8080\/tcp\r\nfirewall-cmd --add-port 8081\/tcp\r\nfirewall-cmd --add-port 1883\/tcp<\/pre>\n<p>Thats all. Now you can acces the Kapua Web GUI on<\/p>\n<p>http:\/\/&lt;ip_of_docker_host&gt;:8080<\/p>\n<figure id=\"attachment_45\" aria-describedby=\"caption-attachment-45\" style=\"width: 840px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" class=\"size-large wp-image-45\" src=\"http:\/\/boernig.de\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053-1024x581.png\" alt=\"\" width=\"840\" height=\"477\" srcset=\"http:\/\/192.168.178.2\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053-1024x581.png 1024w, http:\/\/192.168.178.2\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053-300x170.png 300w, http:\/\/192.168.178.2\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053-768x436.png 768w, http:\/\/192.168.178.2\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053-1200x681.png 1200w, http:\/\/192.168.178.2\/wordpress\/wp-content\/uploads\/2018\/03\/Selection_053.png 1261w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption id=\"caption-attachment-45\" class=\"wp-caption-text\">Screenshot of Eclipse Kapua Web UI<\/figcaption><\/figure>\n<p>The default credentials are:<\/p>\n<pre>Username: kapua-sys\r\n\r\nPassword: kapua-password<\/pre>\n<p>Additionally there is a message broker running at<\/p>\n<pre>tcp:\/\/&lt;ip_of_docker_host&gt;:1883<\/pre>\n<pre>Username: kapua-broker\r\n\r\nPassword: kapua-password<\/pre>\n<p>And a RESTful API under<\/p>\n<pre>http:\/\/&lt;ip_of_docker_host&gt;:8081\/doc<\/pre>\n<pre>Username: kapua-sys\r\n\r\nPassword: kapua-password<\/pre>\n<p>That really was easy. Lets see what we can do with it.\u00a0Stay tuned for the next part: Installing Eclipse kura on a Raspberry Pi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I start with taking a deeper look at Eclipse Kapua. It is a modular IoT cloud platform to manage and integrate devices and their data. My goal for the next weeks will be to demonstrate a multi-tenant capable installation of Eclipse Kapua on OpenShift, connecting several IoT devices and gateways to it. As a &hellip; <a href=\"http:\/\/boernig.de\/wordpress\/2018\/03\/14\/creating-a-standalone-instance-of-eclipse-kapua-using-docker-containers\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Creating a standalone instance of Eclipse Kapua using Docker containers&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,5,4],"tags":[],"_links":{"self":[{"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":4,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":55,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/posts\/43\/revisions\/55"}],"wp:attachment":[{"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/boernig.de\/wordpress\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}