From b9dc2aab4266016d2dad007f53bc0a18a690a852 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 17 Jun 2026 04:59:52 +0200 Subject: [PATCH] Document all-in-one Tower verification --- CHANGELOG.md | 4 +++- docs/CODEX_EXECUTION_LOG.md | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30745837..a2e8e807 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,13 @@ ## Sprint 32 Unraid all-in-one runtime (2026-06-17) - Added `docker-compose.unraid.yml` for a single `geointel` container on Unraid. -- Added `deploy/unraid/Dockerfile.all-in-one`, embedding PostGIS, FastAPI, nginx and the built React frontend in one image. +- Added `deploy/unraid/Dockerfile.all-in-one`, embedding PostgreSQL 16/PostGIS, FastAPI, nginx and the built React frontend in one image. - Added `deploy/unraid/all-in-one-start.sh` to start embedded PostGIS, apply Alembic migrations, start the backend and serve nginx. - Added `deploy/unraid/nginx-all-in-one.conf` with localhost backend proxying inside the same container. - Updated Tower deploy scripts to stop the old multi-container stack without removing volumes and start the all-in-one stack. - Updated the Unraid template so the Docker can be edited from Unraid with one web port, storage path, PostGIS data path and app icon. +- Hardened live migration and browser runtime smoke scripts with startup retries and an icon check. +- Verified Tower deployment at `http://192.168.10.150:1202` with one healthy `geointel` container, passing live migration smoke, API proxy smoke and icon smoke. - No API contracts, migrations, product features, provider fetching or AI behavior were introduced. ## Sprint 31 Unraid deployment template (2026-06-17) diff --git a/docs/CODEX_EXECUTION_LOG.md b/docs/CODEX_EXECUTION_LOG.md index b1862161..6afa7a82 100644 --- a/docs/CODEX_EXECUTION_LOG.md +++ b/docs/CODEX_EXECUTION_LOG.md @@ -1476,3 +1476,31 @@ Limitations: Next recommended pass: - Rebuild Docker on the Tower host and run `bash scripts/verify_demo_export_workflow.sh http://192.168.10.150:1202`. + +## Sprint 32 Unraid all-in-one runtime verification (2026-06-17) + +Changed: +- Converted the Unraid/Tower runtime to a single editable `geointel` Docker container via `docker-compose.unraid.yml`. +- Built the all-in-one image from `postgres:16-bookworm` with PostgreSQL 16/PostGIS packages, the FastAPI backend, nginx and the React frontend. +- Removed the default nginx site from the image so `/api/v1/*` is proxied to the embedded backend instead of returning nginx 404s. +- Hardened live migration smoke and browser runtime verification with startup retries. +- Browser runtime verification now checks the frontend, `/api/v1/projects` canonical JSON envelope and `/geointel-icon.svg`. + +Tested: +- `python -m pytest backend\tests\test_sprint31_unraid_template.py` +- `bash -n deploy/unraid/all-in-one-start.sh` +- `bash -n scripts/live_migration_smoke.sh` +- `bash -n scripts/verify_browser_runtime.sh` +- `powershell -NoProfile -ExecutionPolicy Bypass -File scripts\deploy_tower.ps1` +- `docker compose -f docker-compose.unraid.yml ps` on Tower +- `bash scripts/verify_browser_runtime.sh http://192.168.10.150:1202` + +Verified runtime: +- Tower runs one GeoIntel app container: `geointel`. +- Published browser port is `0.0.0.0:1202->80/tcp`. +- Container health is `healthy`. +- Live migration smoke passed with PostGIS available and one Alembic head. +- Frontend, API proxy and icon are reachable at `http://192.168.10.150:1202`. + +Open: +- Existing reused PostgreSQL volume logs a collation version mismatch because the old database was created on Debian glibc 2.31 and the all-in-one runtime uses glibc 2.36. Runtime and migrations pass; a future maintenance pass can rebuild/refresh collation metadata if needed.