92d1a7ec5e
- docs/M1-POR.md: scope, TDD method, 6-card breakdown, deployment POR, test plan, real-slab fixtures, dev/QA worker dispatch (.202:8081 text, .202:8082 vision; one task per endpoint) - docs/CAPTURE.md: input photo (JPEG + HEIC fallback), 200KB soft goal - deploy/README.md: Milestone 1 UAT deployment POR (one container, LAN URL) - tests/fixtures/: 3 black-sheet slab photos + calibration records (152422 28x2.25 irregular, 155818 21x1.75, 155754 21x1.75)
Deploy
Milestone 1 ships as a Docker image that serves the capture app. Where the container runs is chosen at runtime.
No FastAPI and no Woo client in this milestone.
docker-compose.yml, Caddyfile.fragment, and .env.example describe an older two-service stack. They are not the Milestone 1 contract.
Milestone 1 UAT — deployment POR
- One container. Build a single Docker image that serves the SvelteKit capture app. No FastAPI, no Woo client, no Caddy TLS edge in M1. (Caddy/compose/Woo are Milestone 3.)
- Host chosen at runtime. Record the machine and URL in
INVENTORY.mdwhen the container starts. Do not put a host name in the product spec. - LAN-reachable UAT URL. For UAT the container binds a port on the LAN interface (not only
127.0.0.1), so other machines on the LAN — e.g. a phone — reach the app athttp://<host-lan-ip>:<port>. - No backend. The app is browser-only in M1 (see
docs/CAPTURE.md). There is no/apiroute and no inference.
Reference for the current UAT host: see INVENTORY.md (filled in when the container starts).