b0txec 1e83e48cba
CI / backend (push) Successful in 1m8s
CI / frontend (push) Successful in 43s
Fix a real CSS collision and remove dead frontend code
Result.css (Kartes' results grid/list): a newer consolidated .item rule
used background:var(--surface)!important to force out an older duplicate
rule instead of removing it -- the old rule's background-color was fully
dead but its padding/text-align/max-width were still silently active
underneath. Consolidated into one rule per view, dropped the !important.

Dead code, verified via a systematic check of every class in each
stylesheet against actual .tsx usage (not just the classes a prior review
happened to flag -- that list undercounted by several in mapGraphics.css
alone):
- mapGraphics.css: an entire leftover "Production layout" block (9 classes:
  graphicsSetup, graphicsMain, dataOptions, dataOptionsGrid, productionOptions,
  productionToolbar, loadMapButton, choiceGroup, windChoice), including a
  scoped selector (.mapGraphicsPage .workspaceRail) that never matched
  because no such element exists in the current Faktiskā markup -- leftover
  from an earlier panel restructure.
- index.css / aggregator.css: unused .grid-1-1/.grid-1-2 utility classes
  and a standalone .panel rule superseded by the more specific
  cityPanel/queryPanel/resultsPanel variants.
- calendar.module.css: .calendarNav (never rendered) and .nextMonth (no
  next-month dimming logic exists, only prevMonth).
- DateList.tsx: an empty <ul> wrapping fully commented-out code, superseded
  by the Calendar component already rendered above it.

Verified: typecheck clean, production build succeeds, and headless-browser
screenshots of every affected page (Kartes including an actual query
result, Faktiskā, Arhīvs) show no visual regression.
2026-08-25 10:38:07 +03:00
2025-03-09 20:02:16 +02:00
2025-03-01 18:16:56 +02:00
2025-03-02 22:03:27 +02:00

Weather Tool

Tool for downloading historical and real-time data from weather stations in Latvia. It aggregates and displays data for different time periods, cities, and weather parameters.

Setup

Rename .env-sample to .env and fill in credentials

Environment boundary

  • Windows: source editing, review, and Git operations only. Do not compile, build, run containers, install project dependencies, or test the application here.
  • Rocky Linux: the only development runtime; compile, build, run, seed, and test WeatherTool here.
  • Ubuntu VPS: deployment target only. It receives the reviewed release artifact built and verified on Rocky; it is not a development or build host.

Run

docker-compose up --build --no-cache --force-recreate

Web

http://0.0.0.0:9090/

nginx proxy config

server {
    listen 80;
    server_name laikazinas.lsm.lv;

    location / {
        proxy_pass http://localhost:9090; # Forward requests to the Scala app
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Rocky development runtime

// 1st terminal
podman-compose up postgres

// 2nd terminal
sbt run

// 3rd terminal
cd web/
npm run dev

Run one file sbt "runMain grib.GribParserTest"

Backend Tech:

  • scala: cats-effects, http4s, fs2, circe, scalatest
  • postgres

Frontend Tech:

  • SolidJS
  • Vite

Fly commands

// suspend instance
fly scale count 0
// check display
fly ssh console
df -h
fly scale memory 512
S
Description
wep app for using meteo data
Readme 27 MiB
Languages
TypeScript 60.1%
Scala 33.3%
CSS 5.7%
HTML 0.4%
Dockerfile 0.4%
Other 0.1%