11.2 README

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-07 16:28:31 +02:00
parent bf75ebc932
commit e9d9311748
2 changed files with 46 additions and 1 deletions

View File

@@ -240,7 +240,7 @@ Each type lives in `src/FrameProcessor/Domain/`. Tests in `tests/FrameProcessor.
### [x] 11.1 Run `PLAN.md` verification checklist top to bottom ### [x] 11.1 Run `PLAN.md` verification checklist top to bottom
- All 8 steps pass (step 9, real frame, is optional from this codebase's perspective). - All 8 steps pass (step 9, real frame, is optional from this codebase's perspective).
### [ ] 11.2 README ### [x] 11.2 README
- Short `README.md` pointing at `SPEC.md`, `PLAN.md`, `CLAUDE.md` and showing the `docker compose up` + smoke-test commands. - Short `README.md` pointing at `SPEC.md`, `PLAN.md`, `CLAUDE.md` and showing the `docker compose up` + smoke-test commands.
--- ---

45
README.md Normal file
View File

@@ -0,0 +1,45 @@
# Frame Processor
Self-hosted ASP.NET Core (.NET 10) service that dithers and color-remaps images for
Spectra 6 e-ink frames, persists the result to disk, and notifies the frame via MQTT.
## Documentation
- [`SPEC.md`](SPEC.md) — authoritative behavior contract.
- [`PLAN.md`](PLAN.md) — implementation design and verification checklist.
- [`CLAUDE.md`](CLAUDE.md) — load-bearing conventions and working notes.
## Quick start
```sh
docker compose up --build
```
Brings up `frame-processor` on `:8080` plus a `mosquitto` broker on `:1883`.
## Smoke tests
```sh
# Health (also reports MQTT connection state)
curl http://localhost:8080/health
# Upload a file
curl -H "X-Api-Key: change-me" \
-F "image=@photo.jpg" \
http://localhost:8080/api/frames/living-room/image
# Upload via URL
curl -H "X-Api-Key: change-me" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/photo.jpg"}' \
http://localhost:8080/api/frames/living-room/image-url
# Fetch the processed PNG (the frame does this on MQTT signal)
curl http://localhost:8080/i/aabbccddeeff.png > out.png
# Watch MQTT publishes
mosquitto_sub -t 'frames/#' -v
```
Configure frames in [`frames.json`](frames.json); service settings in
[`appsettings.json`](appsettings.json) (or via `Mqtt__Host`-style env vars).