Download and initial setup¶
Linux 64bit – Ubuntu Server 16.04 LTS¶
Make sure that nothing is installed on the machine, only Ubuntu Server 16.04, and make sure it is connected to the internet.
Access the Linux machine via ssh and run the following commands in the prompt:
sudo wget http://update.resiot.io/releases/resiot_632_ubuntu1604_amd64.tar.gz tar xvzf resiot_632_ubuntu1604_amd64.tar.gz sudo ./resiot_632_ubuntu1604_amd64.sh
Now wait for a minute ( the database needs to be filled in the first run ), then visit your host on your browser @ xxx.xxx.xxx.xxx:8088 and proceed to the first configuration page
Ports and Firewall configuration¶
By default, ResIOT will use the following ports:
- TCP 8088 (web interface for the platform)
- TCP 8095 (GRPC API server, needed by you and by gateways that use the ResIOT BaseStation Client)
- TCP 50076 (web interface for Live Update Services)
- UDP 7677 (all LoRa communication will go through this)
For internal communication between the whole suite, also make sure no software is using the following ports:
- TCP 58001
- TCP 58002
- TCP 58003
- TCP 50076
HTTP/SSL config from Configuration file¶
ResIOT allows you to create free SSL certificates via Let's Encrypt. More services will be added in the future to automatically add certificates to your site.
First, get a domain and make sure it points toward your ResIOT server. Once that's done, we can manually edit the ResIOT configuration file to create and keep your certificates up to date.
Editing the configuration file
You're now going to edit a JSON file, if you're not familiar with the format read a guide as ResIOT will fail to start if the configuration file is not correctly written!
Setup your firewall!
Because of how Let's Encrypt works, you will need to have to have both ports 80 and 443 open and accessible from the outside
Open a file explorer window and head to folder:
By default, on Windows 10, it's C:\ProgramData\ResIOTFiles0
Now edit the config.json with your preferred text editor and add/edit the following lines (notice \ characters have to be escaped in a json):
"WEBSERVER_HOST": ":443", "CERT_FILE": "C:\\ProgramData\\ResIOTFiles0\\cert1", "KEY_FILE": "C:\\ProgramData\\ResIOTFiles0\\key1", "CERT_HOST": "yourhost.domain.com", "CERT_SERVICE": "letsencrypt", "CERT_UPDATE": 30,
Save all your modifications.
Finally restart the Resiot service by going to the start menu, choosing the Run program and entering
Now highlight the ResIOT service and press the Restart button on the left menu.
Get into a terminal/ssh window of your server and run the following to start editing your ResIOT configuration file:
sudo nano /opt/resiot/config.json
Now add/edit the following lines:
"WEBSERVER_HOST": ":443", "CERT_FILE": "/etc/resiot/cert1", "KEY_FILE": "/etc/resiot/key1", "CERT_HOST": "yourhost.domain.com", "CERT_SERVICE": "letsencrypt", "CERT_UPDATE": 30,
Save all your modifications.
Finally restart the Resiot service
sudo service resiot restart
I have my own certificates¶
If you want to use your own certificates, follow the Let's Encrypt guide and omit the CERT_SERVICE field or give it an empty string value "" and make sure your certificates are located where the "CERT_FILE" and "KEY_FILE" point to(if you have a single certificate, make two copies of it at those locations).