From 7008233320e21b62af6d2f333801552eefd56f69 Mon Sep 17 00:00:00 2001 From: Thomas Faour Date: Sat, 18 Jul 2026 14:56:47 -0400 Subject: [PATCH] Fix local dev setup: pillow wheel + unreachable localhost bind - pillow==11.1.0 has no prebuilt wheel for Python 3.14, so pip fell back to building from source and failed without libjpeg dev headers installed. Bumped to 12.3.0 (has wheels); re-ran the local test suite against it with no other changes needed. - The local-dev uvicorn command in the README was missing --host 0.0.0.0, so it defaulted to 127.0.0.1 -- unreachable from the ESP32 on the LAN. The Docker image already binds 0.0.0.0 correctly; only the doc'd local command was wrong. --- server/README.md | 6 +++++- server/requirements.txt | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/server/README.md b/server/README.md index 26ded98..c67fca2 100644 --- a/server/README.md +++ b/server/README.md @@ -64,5 +64,9 @@ iteration against your own Dockerfile changes. python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt -CONFIG_PATH=./data/config.json uvicorn app.main:app --reload --port 8420 +CONFIG_PATH=./data/config.json uvicorn app.main:app --reload --host 0.0.0.0 --port 8420 ``` + +`--host 0.0.0.0` matters here: without it, uvicorn defaults to +`127.0.0.1` (localhost-only), which the ESP32 can't reach over the LAN. +The Docker image already binds `0.0.0.0` by default. diff --git a/server/requirements.txt b/server/requirements.txt index bc4896b..936ae7b 100644 --- a/server/requirements.txt +++ b/server/requirements.txt @@ -2,6 +2,6 @@ fastapi==0.115.6 starlette==0.41.3 uvicorn[standard]==0.34.0 httpx==0.28.1 -pillow==11.1.0 +pillow==12.3.0 python-multipart==0.0.20 jinja2==3.1.5