In order to use our platform, first you have to create and run a local instance on your machine, via Docker.
Not to worry though! We have prepared a quick and easy guide on how to do it on your own:
Before going into the guide, you should have Docker and docker-compose installed on your machine. If you haven't, here's Docker's official documentation page, where you'll find anything you might need.
After installing Docker and docker-compose open a Terminal, and clone the repository. You will have to create a .env file, including values of critical environment variables. An example is given in env_example.txt. We strongly recommend to change the default values.
Then, run the following commands:
-
cd synaisthisi-iot/docker_compose
-
sudo docker-compose up
Interfaces and Ports:
80: Platform portal and GUI
3000: HTTP/REST/MQTT-Websockets
1883: MQTT
5672: AMQP
5683/UDP: CoAP
8083: tomcat8 (link)
8080: oM2M (link) (more info)
15672: RabbitMQ
1880: NodeRED
When the process is completed, visit localhost from a local browser and you should be able to see the SYNAISTHISI Home page!
Also, check the following SYNAISTHISI user guide video: SYNAISTHISI User Guide
For more advanced users:
To access any container through a terminal that executes on the virtualized environment:
sudo docker exec -ti <container_name> bash
and...
exit
when you need to exit the virtualized environment.
Additional commands that could come in handy...
Stop any container from running:
sudo docker stop <container_name>
Remove the container (Warning! If you want to also delete user accounts, topics, services, etc. you will need to delete the corresponding docker volumes.)
sudo docker rm <container_name>
...and that concludes the guide.
Submitted services are aggregated for research purposes.
You can use any client (e.g., mosquitto, or mqtt-cli, etc.).
You can use any client (e.g., coap-cli, etc.). See also in folder examples/SimplePubSub/coap-cli :
node index.js put coap://<broker-ip>:5683/r/<your topic> -p <message> node index.js get coap://<broker-ip>:5683/r/<your topic>
However, be sure to:
a. Set req.options[2].value of the message to be the username.
b. Set req.options[3].value of the message to be the password
You can use any client or library. However, be sure to include username and password in the headers.
E.g.:
GET -> curl -H "username:[your username]" -H "password:[your password]" http://localhost:3000/resources/\[your_topic\]
PUT -> curl -X PUT -H "username:[your username]" -H "password:[your password]" -d '[your message]' http://localhost:3000/resources/\[your_topic\]
For more info visit our Wiki pages: https://github.com/xarakas/synaisthisi-iot/wiki
Journal paper: Akasiadis, Charilaos, Vassilis Pitsilis, and Constantine D. Spyropoulos. 2019. "A Multi-Protocol IoT Platform Based on Open-Source Frameworks" Sensors, 19, no. 19: 4217. https://doi.org/10.3390/s19194217
Conference paper: Pierris, Georgios, Dimosthenis Kothris, Evaggelos Spyrou, and Costas Spyropoulos. 2015. "SYNAISTHISI: an enabling platform for the current internet of things ecosystem". In Proceedings of the 19th Panhellenic Conference on Informatics (PCI '15). Association for Computing Machinery, New York, NY, USA, 438–444. https://doi.org/10.1145/2801948.2802019
This repository is offered for research purposes. Please do not use this version in applications that require strict privacy, or that broadcast sensitive data.