Install the Thinger.io IoT platform in your own host!

Thinger.io IoT Maker Server

Install the Thinger.io IoT platform in your own host!

Today, we are proud to announce the release of the Thinger.io IoT platform as an installable package! We have been working so hard during the last months to provide an easy to install package of the Thinger.io platform. With this release, you will be able to install the server in your own architecture, supporting almost all the features of the Thinger.io cloud features, without any limitation. Moreover, you can use the stock web console for managing your devices, or creating dashboards as always.

IoT Maker Server Running

IoT Maker Server Running

The IoT server is currently released as an installable package under the Ubuntu snap ecosystem, so it is ready to install by executing a single command. At this moment, it would require an Ubuntu Core or Ubuntu 16.01, or any other OS supporting snap packages, plus a MongoDB instance. Learn more about the snap technology in Snapcraft.io. We are working also in creating a ready to use Docker container so it can be deployed easily in other systems not supporting snaps.

The released server is practically the same as the one deployed in the cloud, except it does not support some cloud services like AWS S3, AWS DynamoDB, or AWS SES used for scaling the platform in the cloud. This simplifies the install requirements and its portability, as it only depends on a MongoDB server that can be deployed locally, which is available for almost any platform. There are packages for x64 and armhf, so it should be compatible both for standard servers/desktops, or small computers like the Rpi.

We have done some documentation of the install process in our docs page. Check it out here! and let us know what you are building with Thinger.io!

If you are curious about the process of building a snap, we are using a BIG server with two Xeon E5 2650 v4 that compiles the server core for different platforms and deploy the result to the Ubuntu Store. Compiling the server in a Rpi would take several hours to complete, generating multiple errors due to memory constraints. In this case, we are using Docker instances that runs armhf versions of Ubuntu by running them under Qemu. For the snapping process it is used Snapcraft with a Cmake plugin. This setup provides a great flexibility for compiling to different platforms (even aarch64, or ppc64le), fetching the latest version of the server from a Git repository. Now the compiling time has been reduced to 5 minutes for ARM and 1 minute for x64! Here is a small video of the automated building:

Share this post

Comments (3)

  • John Reply

    Why not using cross-compilation on your host OS ? You will probably get better results.

    January 23, 2017 at 8:06 pm
    • Alvaro Luis Bustamante Reply

      Hi John, for sure it should produce better results, but I think that managing dependencies can be a mess (this project currently depends on several boost libraries, mongodb, crypto++, openssl, maxmind, and jemalloc). This way I can share the compiling toolchain, easily use the same library versions for both architectures, same Cmake file, and so on. Not sure if cross-compiling is practical to drop 3 or 4 minutes the compiling time.

      January 23, 2017 at 9:19 pm
  • pumelo Reply

    Awsome!! I’m just curious. Are you going to open source the platform? Are the sources already available?

    January 23, 2017 at 11:32 pm

Leave a Reply

Your email address will not be published. Required fields are marked *