d5ca01e6366b3437827a922022af7a69fa9450eb
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— authoritative behavior contract.PLAN.md— implementation design and verification checklist.CLAUDE.md— load-bearing conventions and working notes.
Quick start
docker compose up --build
Brings up frame-processor on :8080 plus a mosquitto broker on :1883.
Smoke tests
# 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; service settings in
appsettings.json (or via Mqtt__Host-style env vars).
Description
Languages
C#
98.1%
Shell
1.2%
Dockerfile
0.7%