Files
WeatherTool/README.md
T
b0txec e408fad26c
CI / backend (push) Successful in 1m3s
CI / frontend (push) Successful in 42s
Rewrite the root README as a short, non-technical project overview
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.
2026-08-25 19:14:48 +03:00

52 lines
2.3 KiB
Markdown

# 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/`](docs/README.md).
## 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`](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`](docs/VPS_RELEASE_RUNBOOK.md).
## Getting started
See [`docs/README.md`](docs/README.md) for current status, architecture,
and the full documentation set, and [`docs/DEVELOPMENT_AND_STAGING.md`](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.