Add READMEs, docs, and LICENSE for publishing
Build and push server image / build-and-push (push) Successful in 32s

- LICENSE: MIT, with attribution notes for the vendored qrcode/epaper_fonts/
  dns_server code and the epd7in3e driver's transcription of Waveshare's
  register sequence.
- Top-level README.md: project overview, hardware list, quick-start
  pointing at firmware/ and server/, repo layout, license, Claude Code
  attribution.
- firmware/README.md: full rewrite (was still the stock ESP-IDF captive
  portal example's README) -- build/flash instructions, Kconfig reference
  table, first-boot walkthrough, and how to reset to provisioning mode via
  NVS erase (the only way in right now; a proper reconfigure trigger is a
  future addition).
- docs/hardware.md: wiring table + parts list + strapping-pin/SPI-speed notes.
- docs/architecture.md: sequence diagram and walkthrough of the full
  provision -> connect -> fetch -> display -> sleep cycle, plus the
  reasoning behind doing image processing server-side and reusing Immich's
  face detection instead of bundling a detector.
- server/README.md: fixed stale endpoint docs (missing GET /frame/config,
  POST /api/config still describing removed immich_url/api_key fields).
This commit is contained in:
2026-07-18 16:47:30 -04:00
parent 51fbd0657c
commit 7013311249
6 changed files with 306 additions and 114 deletions
+5 -2
View File
@@ -30,12 +30,15 @@ algorithm itself -- it just streams the response straight to the panel.
## Endpoints
- `GET /` -- config UI
- `GET /` -- config UI (album, order, refresh interval, face-aware crop
toggle -- not Immich URL/API key, see Setup above)
- `GET /api/albums` -- lists Immich albums (used by the config UI)
- `POST /api/config` -- saves Immich URL/API key/album/order
- `POST /api/config` -- saves album/order/refresh_interval_s/smart_crop_faces
- `GET /frame/image` -- returns the current photo pre-processed into the
panel's raw 800x480, 4-bit-per-pixel, 2-pixels-per-byte format
(`application/octet-stream`, exactly 192,000 bytes)
- `GET /frame/config` -- `{"refresh_interval_s": ...}`, polled by the frame
each wake alongside its reachability check
- `GET /health` -- liveness check
## Notes