an application stack for managing, integrating, storing,
and visualizing sensor data with open standards and tools based on OGC SensorThingsAPI
Report bug
·
Request feature
Deploy the IoT-Stack in a Kubernetes cluster with
ingress-nginx
and
cert-manager
available,
and a FQDN (e.g. www.my-iot-stack.de
) pointing to your Ingress controller.
helm repo add iot-stack https://tum-gis.github.io/tum-gis-iot-stack-k8s
helm repo update
helm install iot iot-stack/tum-gis-iot-stack-k8s \
-n iot-stack --create-namespace \
--atomic --wait \
--set 'global.ingress.domains={www.my-iot-stack.de}' \
--set 'global.ingress.certManager.issuerEmail=myemailaddress@example.de'
The default username and password for all services is: user: admin
, pwd: changeMe
.
For local testing check out the examples.
Note: To try out
alpha
/beta
releases, add the--devel
option to thehelm install
command.
- 💤 TL;DR
- 📖 Table of content
- 📥 Application stack
- ❓ Getting started
- 📃 Documentation
- 🚀 Usage
- 🛠️ Contributing
- 🎓 Research
- 📝 License
- 🤝 Thanks
-
Fraunhofer IOSB FROST-Server: Server implementation of the OGC SensorThings API with HTTP and MQTT endpoint.
-
PostgreSQL/PostGIS: Database backend for the FROST-Server. The chart offers two options:
-
Basic PostgreSQL/PostGIS chart based on the official PostGIS Docker image.
-
High availability PostgreSQL with LoadBalancing using Bitnami postgresql-ha chart.
-
-
Grafana: Data visualization and dashboards.
-
Node-RED: Wiring together hardware devices, APIs and online services.
-
caddy: Webserver for hosting web content like documentations or landing pages for the deployment.
-
NGINX Ingress Controller: Route traffic to the applications of the stack. Optional dependency, often provided in your cluster.
-
cert-manager: Automatic SSL certificate issuing from e.g. Let's Encrypt. Optional dependency, often provided in your cluster.
To get this up an running in seconds, check out the examples. You will find examples for:
- Basic example for a local cluster using Docker Desktop
- Basic example for a local cluster using
minikube
The documentation of the chart is located in the chart directory: charts/tum-gis-iot-stack-k8s
The documentation for internal dependencies is located in their folders too:
External dependencies are documented here:
-
Get a fully-qualified domain name (FQDN) and configure it to point to the public IP address of the LoadBalancer service of your Nginx ingress controller.
-
Add and update Helm repo
helm repo add iot-stack https://tum-gis.github.io/tum-gis-iot-stack-k8s helm repo update
-
Adapt settings according to your needs e.g. in values.yml or create a local
values.yml
to overwrite settings. Examples e.g. for a local testing deployment are are available in examples. values.yml is documented in charts/tum-gis-iot-stack-k8s. -
Install stack
helm install iot iot-stack/tum-gis-iot-stack-k8s \ -n iot-stack --create-namespace \ --atomic --wait \ --values my-values.yml
Bug fixes, issue reports and contributions are greatly appreciated.
The documentation of this chart is located in this repository in the
charts/tum-gis-iot-stack-k8s folder and consists of Markdown files,
that are generated using
norwoodj/helm-docs.
To keep the documentation in sync with the source files, it is recommended
to use pre-commit
to automatically
update the docs with every commit.
To generate a markdown documentation for this chart using norwoodj/helm-docs run this from the repo root.
docker run --rm --volume "$PWD/charts/tum-gis-iot-stack-k8s:/helm-docs" -u $(id -u) jnorwood/helm-docs:latest
This chart was developed for the course Geo Sensor Networks and the Internet of Things.
To cite this repository, please use the DOI provided by Zenodo. If you want to reference a specific release version of the software, click the badge and navigate to the desired version on the page.
This Helm chart is distributed under the Apache License 2.0. See LICENSE for more information.
- Fraunhofer IOSB for their great implementation of the OGC SensorThingsAPI.