项目作者: pvgennip

项目描述 :
Open source sensor data portal
高级语言: HTML
项目地址: git://github.com/pvgennip/sensor-data-portal.git
创建时间: 2017-02-28T15:04:57Z
项目社区:https://github.com/pvgennip/sensor-data-portal

开源协议:

下载


Sensor data portal

Open source sensor data portal for MQTT sensors

Akvo - Sensor data portal

Dependencies:

Installation

Pre-install requirements: Git & Docker/LAMP (Linux Debian 8 [Jessie])

Git

  1. apt-get install git

Docker Engine + Compose

https://docs.docker.com/engine/installation/linux/debian/ or https://gist.github.com/pvgennip/be5bb13b184069758bc14fbbe78599b5

OR

LAMP Stack + Required software

LAMP:

https://gist.github.com/pvgennip/ab147414848f036a68d5dae6277987a5

Apache config:

SSL cert

  1. sudo nano /etc/ssl/private/sensors-akvo-org.key
  2. sudo nano /etc/ssl/certs/sensors-akvo-org.crt

VHost

  1. sudo nano /etc/apache2/sites-available/sensors-akvo-org.conf
  2. <VirtualHost sensors.akvo.org:80>
  3. ServerAdmin akvo@iconize.nl
  4. ServerName "sensors.akvo.org"
  5. Redirect / https://sensors.akvo.org
  6. </VirtualHost>
  7. <IfModule mod_ssl.c>
  8. <VirtualHost sensors.akvo.org:443>
  9. DocumentRoot /var/www/sensors-akvo-org/portal/public
  10. ServerName "sensors.akvo.org"
  11. <Directory /var/www/sensors-akvo-org/portal/public></Directory>
  12. Options Indexes FollowSymLinks MultiViews
  13. AllowOverride All
  14. Order allow,deny
  15. Allow from all
  16. </Directory>
  17. SSLEngine on
  18. SSLCertificateFile /etc/ssl/certs/sensors-akvo-org.crt
  19. SSLCertificateKeyFile /etc/ssl/private/sensors-akvo-org.key
  20. <FilesMatch "\.(cgi|shtml|phtml|php)$">
  21. SSLOptions +StdEnvVars
  22. </FilesMatch>
  23. <Directory /usr/lib/cgi-bin>
  24. SSLOptions +StdEnvVars
  25. </Directory>
  26. BrowserMatch "MSIE [2-6]" \
  27. nokeepalive ssl-unclean-shutdown \
  28. downgrade-1.0 force-response-1.0
  29. # MSIE 7 and newer should be able to use keepalive
  30. BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  31. </VirtualHost>
  32. </IfModule>

Mysql database:

  1. mysql -u root -p
  2. CREATE DATABASE `sensors-akvo-org`;
  3. CREATE USER 'akvo' IDENTIFIED BY 'o3qxQfejCKWYBd4y';
  4. GRANT USAGE ON sensors-akvo-org TO 'akvo'@localhost IDENTIFIED BY 'o3qxQfejCKWYBd4y';
  5. #### Required software:
  6. * Influx
  7. * Mosquitto: https://mosquitto.org/man/mosquitto-8.html
  8. * MQTTWarn: https://github.com/jpmens/mqttwarn
  9. * SPULserver: https://github.com/pvgennip/spul-mqtt-server
  10. Add source for InfluxDB

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/os-release
test $VERSION_ID = “7” && echo “deb https://repos.influxdata.com/debian wheezy stable” | tee /etc/apt/sources.list.d/influxdb.list
test $VERSION_ID = “8” && echo “deb https://repos.influxdata.com/debian jessie stable” | tee /etc/apt/sources.list.d/influxdb.list

sudo apt-get update
sudo apt-get install influxdb mosquitto python-pip
pip install paho-mqtt
cd ~
git clone https://github.com/jpmens/mqttwarn.git

  1. Set configs:
  2. Influx

curl -i -XPOST localhost:8086/query —user root:root —data-urlencode “q=CREATE USER admin WITH PASSWORD ‘password’ WITH ALL PRIVILEGES”
curl -i -XPOST localhost:8086/query —user admin:password —data-urlencode “q=CREATE DATABASE sensordata”

  1. Restore data (old way as in https://docs.influxdata.com/influxdb/v1.6/administration/backup_and_restore/#restore)

influxd restore -database sensordata -metadir /var/lib/influxdb/meta -datadir /var/lib/influxdb/data /root/sensor-data-portal/backups/sensordata/
sudo chown -R influxdb:influxdb /var/lib/influxdb

  1. Mosquitto

cd /etc/mosquitto/conf.d
mosquitto_passwd -c mqtt_passwords itay
sodaq

  1. MQTT Warn:

cd ~/mqttwarn
sudo cp mqttwarn.ini.sample mqttwarn.ini
sudo nano mqttwarn.ini

  1. Edit file according to ~/sensor-data-portal/laradock/mqttwarn/mqttwarn.ini.sample (NB: replace 'mosquitto' by 'localhost')

sudo cp ~/sensor-data-portal/laradock/mqttwarn/services/test.py services
sudo cp ~/sensor-data-portal/laradock/mqttwarn/services/influxdb_akvo.py services

  1. Spul server

sudo nano ~/spul-mqtt-server/.env
AUTH_TOKEN=
MQTT_USER=itay
MQTT_PASS=sodaq
MQTT_HOST=localhost
MQTT_TOPIC=ITAY/HAP
DEBUG=false
LOG_NAME=spulserver
LOG_FILE=/tmp/output.log
SPUL_TS_PORT=9007
SPUL_PORT=9008
SOCKET_TIMEOUT=30000
BIG_ENDIAN=true
LITTLE_ENDIAN_PAYLOAD=false
HEADER_SIZE=12
MAX_FRAME_SIZE=512

  1. Influx database
  2. ### Composer (for Laravel installation)
  3. See https://getcomposer.org/download/
  4. Use compuer globally
  5. ```mv composer.phar /usr/local/bin/composer

Start software:

  1. ./start_services.sh

Clone this repo

  1. cd ~/
  2. git clone https://github.com/pvgennip/sensor-data-portal.git
  3. cd /var/www
  4. ln -s /root/sensor-data-portal/portal sensors-akvo-org

Run required actions to start

  1. cd sensor-data-portal
  2. ./run-actions.sh

Deploy updates

  1. cd sensor-data-portal
  2. ./deploy.sh