No description
  • PHP 49.3%
  • JavaScript 16.2%
  • Python 15%
  • TypeScript 9.1%
  • Twig 6.7%
  • Other 3.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
root 97a5eac015 Configure Docker domain testing, global weather grids and full-screen map
Add bounded hourly ECMWF refresh and global nodata-aware layers, preserve immutable frames, queue browser tile bursts, and document verified domain-test behavior.
2026-10-04 10:49:56 +00:00
.forgejo/workflows P25: build reproducible Linux releases and guard native delivery 2026-10-04 10:50:28 +03:00
assets Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
bin P01: add Windows Docker bootstrap and record runtime authorization gate 2026-10-03 13:06:46 +03:00
compute Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
config Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
contracts Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
deploy P26: prepare guarded native FastPanel handoff and isolated rehearsals 2026-10-04 11:54:11 +03:00
docker Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
docs Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
e2e P27: record final acceptance evidence and owner handoff 2026-10-04 12:39:39 +03:00
fixtures P19: add gated past-only radar history with explicit coverage limits 2026-10-04 05:14:39 +03:00
migrations P20: add audited operations and redacted service diagnostics 2026-10-04 06:21:09 +03:00
public P27: record final acceptance evidence and owner handoff 2026-10-04 12:39:39 +03:00
scripts P27: record final acceptance evidence and owner handoff 2026-10-04 12:39:39 +03:00
src Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
templates Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
tests Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
translations P22: add bounded public offline PWA and controlled updates 2026-10-04 08:09:46 +03:00
.dockerignore P08: add bounded private scientific runtime and worker integration 2026-10-03 18:28:51 +03:00
.env P08: add bounded private scientific runtime and worker integration 2026-10-03 18:28:51 +03:00
.env.docker.example P01: add Windows Docker bootstrap and record runtime authorization gate 2026-10-03 13:06:46 +03:00
.gitattributes P16: add bounded UTC daily reference PV map 2026-10-04 02:23:01 +03:00
.gitignore P08: add bounded private scientific runtime and worker integration 2026-10-03 18:28:51 +03:00
AGENTS.md P02: establish Symfony modules and validated API contracts 2026-10-03 13:42:47 +03:00
CHANGELOG.md Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
compose.domain.yaml Configure Docker domain testing, global weather grids and full-screen map 2026-10-04 10:49:56 +00:00
compose.yaml P10: publish real numerical weather map layers and matching samples 2026-10-03 20:19:34 +03:00
composer.json P03: establish shared UI system and responsive map shell 2026-10-03 14:15:53 +03:00
composer.lock P03: establish shared UI system and responsive map shell 2026-10-03 14:15:53 +03:00
LICENSE Initial commit 2026-10-03 07:52:19 +00:00
package-lock.json P07: add interval-aware point weather dashboard 2026-10-03 17:19:55 +03:00
package.json P07: add interval-aware point weather dashboard 2026-10-03 17:19:55 +03:00
phpstan.neon P02: establish Symfony modules and validated API contracts 2026-10-03 13:42:47 +03:00
phpunit.xml.dist P02: establish Symfony modules and validated API contracts 2026-10-03 13:42:47 +03:00
README.md P27: record final acceptance evidence and owner handoff 2026-10-04 12:39:39 +03:00
tsconfig.json P11: add atomic map timeline and temperature wind pressure layers 2026-10-03 21:22:09 +03:00
VERSION P25: build reproducible Linux releases and guard native delivery 2026-10-04 10:50:28 +03:00
vite.config.ts P01: add Windows Docker bootstrap and record runtime authorization gate 2026-10-03 13:06:46 +03:00

WHATHER

Weather map and private solar-generation forecasts. Symfony 7.4/PHP 8.4, MySQL 8.4, two Redis instances, Twig/Stimulus/TypeScript/Vite, MapLibre and ECharts; bounded Python 3.12/pvlib grid and PV compute. Windows source root: D:\projects\whather. Local runtime is Docker; production targets native FASTPANEL.

P27 handoff: production acceptance blocked_external. Real regional ECMWF layers and point/PV workflows have local evidence. Global coverage / a continuously refreshed >=72h grid horizon, native deployment, provider usage approval and other release gates remain open. Read final acceptance before calling the product ready.

Local quick start

Use PowerShell 7 and Docker Desktop Linux containers. Verify ports 8014/5173 are available and inspect Git status first. For an occupied checkout, preserve its .env.docker, .local secrets and volumes. No Windows PHP/Python installation is needed.

Set-Location D:\projects\whather
git remote -v
git status --short
.\scripts\dev.ps1 init-local
.\scripts\dev.ps1 up
.\scripts\dev.ps1 migrate
.\scripts\dev.ps1 status
.\scripts\dev.ps1 console doctrine:schema:validate
.\scripts\check.ps1

Open http://127.0.0.1:8014/map. init-local generates missing local-only random secrets; never regenerate passwords for an existing database. up installs locked dependencies but does not migrate or download grids. Fresh schema migration must finish before workers can operate. down preserves volumes. Startup health does not prove weather freshness.

If bind-mount changes do not reach Vite, set VITE_USE_POLLING=1 in ignored .env.docker. Application dependencies/builds run inside Docker. Existing installed Edge plus host Node can run optional browser QA; this does not move application runtime to Windows.

Verification and operation

.\scripts\dev.ps1 console app:weather:doctor
.\scripts\dev.ps1 console whather:operations:diagnostics
.\scripts\dev.ps1 console app:jobs:status
.\scripts\dev.ps1 console app:jobs:failed
node e2e/p27-public.mjs
# Disposable accounts/PV forecasts and labeled synthetic CSV imports; dev environment only.
$env:WHATHER_E2E_OUT='var/p27-smoke/pv'
node e2e/p14-live.mjs
$env:WHATHER_E2E_OUT='var/p27-smoke/imports'
node e2e/p17-live.mjs
Remove-Item Env:WHATHER_E2E_OUT

Public grid smoke requires genuine retained frames around 50N/30E; it does not download them or claim they are current. Grid ingest gives bounded preview/enqueue commands. Private smoke creates and deletes its own disposable accounts; it requires dev registration and live weather access. Do not run it against production. Local development explains startup, checks and storage; P27 report distinguishes current results from earlier evidence.

Owner and server handoff

Production target, credentials, paid services, system installation and release publication require separate authorization. No default operator password, release tag or live deployment is supplied. Historical acceptance is evidence with its recorded scope, not a current uptime or accuracy guarantee. Optional X01–X03 are not started.