No description
  • QML 38.8%
  • C++ 37%
  • Python 7.7%
  • CMake 5.4%
  • Go 4.9%
  • Other 6.2%
Find a file
Dennis Burgermeister 3688802c11
Some checks failed
/ server (push) Has been cancelled
(c) common update
2026-11-04 21:39:28 +01:00
.forgejo/workflows (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
.vscode (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
3rdparty (c) common update 2026-11-04 21:39:28 +01:00
cmake (f) Respect Qt Creator Debug and isolate publication RPM policy 2026-10-25 14:03:09 +00:00
containers (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
docs (c) common update 2026-11-04 21:20:46 +01:00
icons (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
legal (+) deployment 2026-10-27 02:20:15 +01:00
qml (f) contrast on light themes 2026-11-01 10:06:48 +01:00
rpm (f) Respect Qt Creator Debug and isolate publication RPM policy 2026-10-25 14:03:09 +00:00
scripts (c) common update 2026-11-04 21:20:46 +01:00
server (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
src (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
tests (f) Respect Qt Creator Debug and isolate publication RPM policy 2026-10-25 14:03:09 +00:00
translations (+) Integrate shared About, offline licenses and legal documents 2026-10-25 12:57:30 +00:00
.env.template (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
.gitattributes (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
.gitignore (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
.gitmodules (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
CHANGELOG.md (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
CLAUDE.md (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
CMakeLists.txt (f) Respect Qt Creator Debug and isolate publication RPM policy 2026-10-25 14:03:09 +00:00
flake.lock (f) contrast on light themes 2026-11-01 10:06:48 +01:00
flake.lock.license (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
flake.nix (c) Use public sandbox source and retain updated Nix pins 2026-10-25 12:57:29 +00:00
harbour-wetterstein.desktop (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
LICENSE (c) harbor requirements 2026-09-08 12:23:12 +02:00
LICENSE.license (c) Add SPDX copyright and GPL license metadata 2026-10-25 12:57:29 +00:00
mise.toml (c) common update 2026-11-04 21:20:46 +01:00
README.md (c) mise tasks and releases on dencla-sailfish-common 2026-11-04 19:52:47 +00:00
renovate.json (+) deployment 2026-10-27 02:20:15 +01:00
renovate.json.license (+) deployment 2026-10-27 02:20:15 +01:00

Wetterstein

A Sailfish OS weather app with hourly and multi-day forecasts, precipitation radar, GPS location and saved places. Weather data comes from Bright Sky using DWD data.

Screenshots

Screenshots from the Sailfish OS test emulator with synthetic demo weather. Click a thumbnail to view the full-resolution image.

Dashboard Precipitation radar Add a city
Dashboard with radar, hourly chart and daily forecasts Interactive precipitation map with playback and zoom controls Search for Stuttgart to add another location
Saved cities Hourly list App cover
Compare forecasts for Stuttgart, Hamburg and Berlin Hourly temperatures, rainfall and wind in a list App cover with current weather and the next six hours

Twenty-second app tour assembled from real emulator screenshots

Watch the MP4 tour · Capture setup, demo data and media credits

Map data © OpenStreetMap contributors.

Development

Clone with submodules (git clone --recurse-submodules <repository-url>). Install mise and the Sailfish OS SDK, then:

cp .env.template .env        # adjust SDK path and target
mise trust
mise install
mise tasks
mise run test
mise run dev:deploy
mise run dev:run

The same tasks work on the host and in the optional Nix MicroVM. The SDK build engine and emulator run on the host. Start them with sfdk engine start and sfdk emulator start. mise run test:one test_models runs one previously configured test binary; mise run lupdate updates translations.

Packaging

Imprint and privacy documents use the shared legal system. Copy legal/provider.example.json to legal/provider.local.json, fill in the publisher details locally and keep this file out of Git. Review legal/datenschutz.html.in against the deployed proxy configuration. Run mise run check:dist before packaging. RPM builds require complete legal details; development builds can display a marked preview.

See versioning for releases and the publication audit for outstanding history findings.

Betrieb

The radar proxy behind wetterstein.dencla.de lives in server/ (Go, no dependencies). It caches DWD precipitation radar images and serves /api/v1/radar/frames, /api/v1/radar/images/… and /health. It is not part of the RPM. Locally: mise run cloud:serve (127.0.0.1:8080, cache in server/data/) and mise run cloud:test.

Deployment auf d0b nach Vertrag 1: Dienst wetterstein, Nummer 08, Rolle app auf 127.0.0.1:10880, Daten unter /srv/wetterstein/data, Domains wetterstein.dencla.de und wetterstein.zumlernen.de. Alles dafür liegt in containers/; das Bündel enthält nur containers/, server/ und LICENSE.

Server-Releases haben eigene Tags cloud-v<version> (Version in server/VERSION), getrennt von den App-Tags vX.Y.Z; siehe versioning. Ein gepushter cloud-v*-Tag baut über .forgejo/workflows/release.yml das Bündel und hängt es an das Forgejo-Release.

mise run cloud:release:prepare -- 1.0.0          # server/VERSION, Commit, Tag cloud-v1.0.0
mise run cloud:release:deploy -- cloud-v1.0.0    # cloud:test, deploy/ und dist/
mise run cloud:test:containers                   # rootless, read-only, ohne Capabilities, Health, UID 1000
git push origin main && git push origin cloud-v1.0.0

Einmalig als root auf d0b:

app add wetterstein 08
editor /etc/apps/wetterstein/app.conf   # DOMAIN=wetterstein.dencla.de  SITE_DOMAINS="wetterstein.dencla.de wetterstein.zumlernen.de"  REPO=<Forgejo-Repo>
install -m 0640 -o root -g wetterstein /dev/null /etc/apps/wetterstein/app.env   # Werte aus containers/env/app.env.example
app deploy wetterstein cloud-v1.0.0

Der Dienst braucht keine Geheimnisse. Der Radarcache baut sich nach dem Start selbst auf (alle 5 Minuten, 3 h Rückblick, 110 min Vorhersage); vom alten Server muss nichts übernommen werden.

License

GPL-3.0-or-later. See LICENSE. The About page displays all packaged license texts and legal documents offline.