Klimastationen App für den Open Data App-Store (ODAS).
Die App visualisiert Klimamessdaten und zeigt sie als KPIs, Diagramm und Tabelle.
Die App ist eine "ODAS App V1".
- Docker/Docker Compose
- Make
Die Entwicklung wurde getestet unter Windows und Ubuntu
Die App ist eine Single-Page-Application Webapp mit:
- Logo Anzeige
- Menü
- Seiten für Impressum, Datenschutz, Beschreibung, Kontakt, Hauptinhalt
- Inhaltsbereich
- Fußzeile
- KPI-Kacheln für Messtage, Temperatur und Regen
- Linienchart für den Temperaturverlauf
- Filter nach Monat und paginierte Datentabelle
Die Konfiguration wird vom ODAS geladen.
Die Klimadaten werden über die konfigurierte apiurls.klimastationen geladen.
Diese App richtet sich an Bürgerinnen und Bürger in Karlsruhe und der Region, an die Stadtverwaltung sowie an alle, die sich für Wetter und Klima interessieren. Voraussetzung ist kein spezielles Datenwissen – wer die Wetter- und Klimaentwicklung der Region nachvollziehen möchte, kann die App direkt nutzen.
$ make build up
Die App wird dadurch gestartet und steht auf Port 8090 zur Verfügung:
Beim lokalen Start wird die Konfiguration lokal geladen.
Was bei der App-Entwicklung beachtet werden sollte, steht in der ODA Spezifikation
Nicht vergessen: Bevor die App in den ODAS eingereicht wird muss die app-package.json noch angepasst werden.
Der Inhaltsbereich wird in app/app.js erstellt. Dort kann eigener Code implementiert werden.
Die App kann lokal, eigenstaendig hinter einem Traefik-Reverse-Proxy oder ueber den ODAS betrieben werden.
Die App laedt die Datenquelle standardmaessig ueber den ODAS-Proxy (proxyAktiv: ja), da die konfigurierte Quelle (web1.karlsruhe.de) keinen Access-Control-Allow-Origin-Header sendet (gemessen 2026-08-18). Nur mit einer CORS-freigegebenen Datenquelle kann auf Direktabruf (proxyAktiv: nein) umgestellt werden. Seit dem Plattform-Update vom 2026-08-24 erlaubt der Proxy Datenabrufe fuer jede Quelle-Origin, die in den konfigurierten apiurls steht.
Im ODAS-Live-Betrieb laedt die App daher mit proxyAktiv: ja ihre Daten ueber den Proxy;
Standalone und lokale Entwicklung bleiben auf eine CORS-freigegebene Quelle angewiesen
(siehe unten).
Standalone ist bei dieser App eingeschraenkt. Mit der mitgelieferten Datenquelle ist sie nicht funktionsfaehig — die CORS-Sperre der Quelle greift unabhaengig vom Proxy-Umbau. Der Standalone-Betrieb setzt deshalb zwingend eine ausgetauschte, CORS-freigegebene Datenquelle voraus.
Voraussetzung: ein laufender Traefik mit dem externen Docker-Netzwerk proxynet,
dem EntryPoint websecure und dem Zertifikatsresolver letsencrypt.
- In
docker-compose.standalone.ymlden Platzhalterapp1.example.comdurch den echten FQDN ersetzen. - Die Datenquelle (
apiurls.klimastationen) auf eine CORS-freigegebene Ressource umstellen. Die mitgelieferte Quelle (web1.karlsruhe.de) sendet keinenAccess-Control-Allow-Origin-Header und ist standalone nicht nutzbar. - Starten:
STANDALONE=true make up
STANDALONE=true make logs
STANDALONE=true make downIm Standalone-Betrieb entfaellt die lokale Portfreigabe; Traefik terminiert TLS und
leitet auf den internen Nginx-Port 80 weiter. Die Konfiguration wird aus derselben
odas-config/config.json gelesen wie in der Entwicklung und von Nginx unter /config
ausgeliefert.
Beim Aufruf dieser App werden keine externen Server für Programmbibliotheken kontaktiert; alle Bibliotheken werden lokal aus app/vendor/ ausgeliefert. Extern abgerufen wird ausschließlich die konfigurierte Datenquelle — über den ODAS-Proxy.
make zip erzeugt das Liefer-ZIP mit app/, assets/, app-package.json und
CHANGELOG.md. Die Infrastrukturdateien (Dockerfile, docker-compose*.yml,
nginx.conf, Makefile) sind nicht Teil der Auslieferung. Das ZIP ist ein Bauartefakt und wird nicht mitversioniert, sondern bei Bedarf mit make zip erzeugt.
(C) 2026, Ondics GmbH

