Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nrc workbench #50

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
9 changes: 9 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#
+TTN_DASHBOARD_DATA=
+TTN_DASHBOARD_APACHE_FQDN=
+TTN_DASHBOARD_CERTBOT_FQDN=
+TTN_DASHBOARD_GRAFANA_ADMIN_PASSWORD=
+TTN_DASHBOARD_INFLUXDB_INITIAL_DATABASE_NAME=ttndb
+TTN_DASHBOARD_CERTBOT_EMAIL=
+TTN_DASHBOARD_GRAFANA_SMTP_ENABLED=false
+TTN_DASHBOARD_GRAFANA_SMTP_FROM_ADDRESS=
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
# Dashboard example for The Things Network
Forked from [mcci-catena/docker-ttn-dashboard](https://github.com/mcci-catena/docker-ttn-dashboard) (with gratitude) and adapted for my project use case.

Adaptions
* Integration of Chronograf, Telegraf, Kapacitor for browser based influxdb admin - web admin on influxdb deprecated since version1.3.*
* addition of .env file
* resolve some postfix installation issues
* Create anonymous access org in grafana, enable anonymous access
* ... other

# IoT Dashboard Components

This repository contains a complete example that grabs device data from The Things Network, stores it in a database, and then displays the data using a web-based dashboard.

Expand All @@ -9,7 +18,8 @@ This example uses [docker-compose](https://docs.docker.com/compose/overview/) to
1. An instance of [Apache](http://apache.org), which proxies the other services, handles access control, gets SSL certificates from [Let's Encrypt](https://letsencrypt.org), and faces the outside world.
2. An instance of [Node-RED](http://nodered.org/), which processes the data from the individual nodes, and puts it into the database.
3. An instance of [InfluxDB](https://www.influxdata.com/), which stores the data as time-series measurements with tags.
4. An instance of [Grafana](http://grafana.org/), which gives a web-based dashboard interface to the data.
4. An instance of [TICK](https://docs.influxdata.com/chronograf/v1.5/introduction/getting-started/) stack (Telegraf, Chronograf and Kapacitor), which provides web based administrative tools to manage and monitor your InfluxDB instance(s).
5. An instance of [Grafana](http://grafana.org/), which gives a web-based dashboard interface to the data.

To make things more specific, most of the description here assumes use of Microsoft Azure. However, I have tested this on Ubuntu 16 LTS without difficulty (apart from the additional complexity of setting up `apt-get` to fetch docker, and the need for a manual install of `docker-compose`), and on DreamCompute. I belive that this will work on any Linux or Linux-like platform that supports docker, docker-compose, and node-red. It's likely to run on a Raspberry Pi 2, and it might even run on a C.H.I.P. computer... but as of this writing, this has not been tested.

Expand All @@ -33,7 +43,7 @@ For concreteness, the following table assumes that __base__ is `server.example.c
To access | Open this link | Notes
----------|----------------|--------
Node-RED | [https://server.example.com/node-red/](https://server.example.com/node-red/) | Port number is not needed and shouldn't be used.
InfluxDB administrative page | [https://server.example.com/influxdb/](https://server.example.com/influxdb/) | Port number is not needed and shouldn't be used.
Chronograf | [https://server.example.com/chronograf/](https://server.example.com/chronograf/) | Port number is not needed and shouldn't be used.
InfluxDB API | [https://server.example.com/influxdb/:8083](https://server.example.com/influxdb/:8083) | Port number __is__ needed; in addition, you'll have to supply login credentials.
Grafana | [https://server.example.com](https://server.example.com) | Port number is not needed and shouldn't be used.

Expand Down
2 changes: 1 addition & 1 deletion node-red/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#

# build the node red image using the offical node red distribution
FROM nodered/node-red-docker:0.16.2
FROM nodered/node-red-docker:latest

# To avoid SSL certification issue
ENV NODE_TLS_REJECT_UNAUTHORIZED=0
Expand Down
1 change: 1 addition & 0 deletions tick/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# placeholder