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)
18 lines
1.1 KiB
Markdown
18 lines
1.1 KiB
Markdown
# 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.md` when 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 at `http://<host-lan-ip>:<port>`.
|
|
- **No backend.** The app is browser-only in M1 (see `docs/CAPTURE.md`). There is no `/api` route and no inference.
|
|
|
|
Reference for the current UAT host: see `INVENTORY.md` (filled in when the container starts).
|