Files
WeatherTool/README.md
T
2026-08-22 20:11:20 +03:00

88 lines
2.2 KiB
Markdown

# 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
```
## Local synthetic weather data
The local database can be populated with deterministic hourly sample data for the repository station set plus Valmiera, which is required by the fixed Faktiskā template. The seed covers the previous 18 months through the current hour and can be run repeatedly without creating duplicates.
```sh
docker compose --profile tools run --rm seed
```
This workflow is intended only for development and UI testing. It uses the normal `weather` table and application APIs; it does not provide LVGMC forecast CSV or HARMONIE GRIB fixtures.
## Web
[http://0.0.0.0:9090/](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
```