The old file was a confusing mix of eras: an accurate current Windows/Rocky/VPS environment section sitting alongside stale leftovers from before this project's current setup existed -- a wrong port (9090, staging is actually 9190), old docker-compose v1 syntax, a podman-compose three-terminal dev loop nobody uses, an nginx config for laikazinas.lsm.lv (the real current LSM production site, unrelated to and confusable with this project's actual temporary test domain), Fly.io commands from a hosting platform no longer in use, and an example command that happens to run one of the files this session's security review flagged as a mislabeled test script capable of touching a live database. Replaced with a short landing page: what the tool does, how it's built, current status (Rocky-only development now that Windows is retired from the workflow, laikapstak.li as the temporary test environment ahead of eventually replacing the live laikazinas.lsm.lv service), and a security summary -- all pointing to docs/ for actual technical depth rather than duplicating half-true instructions. Updated docs/README.md's own description of the root README to match.
2.3 KiB
WeatherTool
WeatherTool prepares the weather graphics used on air: current temperatures,
water temperatures, and severe-weather warnings, rendered as fixed-size PNG
exports ready to drop into a broadcast. It's a large update to the tool
currently running in production at laikazinas.lsm.lv.
What it does
- Pulls real observation data from LVĢMC (Latvia's national weather service) — current station temperatures, water temperatures, and active warnings — from their public open-data feed.
- Lets an operator review and, where needed, correct individual values before export, without touching the underlying data.
- Renders that data onto fixed newsroom map templates and exports broadcast-ready PNGs at the station's required resolutions.
- Also includes analytical tools (historical station comparisons, a full data archive) for exploring the underlying weather data beyond what goes on air.
How it's built
A Scala backend (cats-effect, http4s, PostgreSQL) ingests and serves the
data; a SolidJS frontend is where operators build the graphics. Both are
described in full under docs/.
Status
Actively in development. All development, testing, and staging currently
happens on a single Rocky Linux machine; a temporary public test
environment for the new version is at laikapstak.li, gated behind
authentication, separate from the live laikazinas.lsm.lv service it will
eventually replace. Continuous integration runs automatically on every
push via Gitea Actions.
Security
The application has been through an independent security review, with
findings (including a critical one) found and fixed — see
docs/UPDATE_ROADMAP.md for the full history.
The public test environment sits behind Cloudflare, an authentication
gate, and a private database with no public port. Deployments are manual,
checksummed, and smoke-tested before going live — see
docs/VPS_RELEASE_RUNBOOK.md.
Getting started
See docs/README.md for current status, architecture,
and the full documentation set, and docs/DEVELOPMENT_AND_STAGING.md
for exact build, run, and deployment commands. For local setup, copy
.env-sample to .env and fill in real values.