Self-hosting
The Thinger.io IoT platform as an installable package
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, without any limitation. Moreover, you can use the stock web console for managing your devices, or creating dashboards as always.

The package
A snap, a MongoDB instance and nothing else
The IoT server is 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 requires an Ubuntu Core or Ubuntu 16.04, or any other OS supporting snap packages, plus a MongoDB instance. Learn more about the snap technology in Snapcraft.io. We are also working on 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 with standard servers and desktops, and with small computers like the Raspberry Pi.
What the 2017 package needed
- Operating system
- Ubuntu CoreUbuntu 16.04Any OS with snap support
- Database
- A MongoDB instance, which can be deployed locally
- Architectures
- x64armhf
- Not included
- Cloud scaling services: AWS S3, AWS DynamoDB, AWS SES
As released in January 2017.
We have documented the install process in our docs page: check out the server deployment guide, and let us know what you are building with Thinger.io!
Behind the package
How the snap is built
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 deploys the result to the Ubuntu Store.
Compiling the server on a Raspberry Pi would take several hours to complete, generating multiple errors due to memory constraints. Instead, we are using Docker instances that run armhf versions of Ubuntu under Qemu. For the snapping process we use Snapcraft with a CMake plugin. This setup provides great flexibility for compiling to different platforms (even aarch64, or ppc64le), fetching the latest version of the server from a Git repository.
Fetch the latest server
Compile for each platform
Snap it
Deploy to the Ubuntu Store
Now the compiling time has been reduced to 5 minutes for ARM and 1 minute for x64!
- 5 min
- to compile the server for ARM
- 1 min
- to compile the server for x64
Run Thinger.io on your own servers
The full platform inside your own infrastructure, installed with Docker Compose.


