1086c8b548ea7d46848ef585f9c3acb6bd4f4bde
The ltv account fails to authenticate from the VPS specifically (works fine from Rocky with the same credentials, network path to ftp.meteo.lv:21 confirmed fine from the VPS too) — narrowed to either a password transcription error in .env.staging or LVGMC IP-allowlisting the account, neither confirmable without inspecting the password. Caught via the overnight watch this was set up for rather than assumed safe; reverted ENABLE_LVGMC_FTP_JOBS to false on the VPS immediately once the failure was confirmed real, restoring stable operation. FTP stays enabled on Rocky, where it works.
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
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
Description
Languages
TypeScript
60.1%
Scala
33.3%
CSS
5.7%
HTML
0.4%
Dockerfile
0.4%
Other
0.1%