shawn
|
1c5b728e8b
|
Build: Web UI + mDNS (pedal.local)
FastAPI web server with REST + WebSocket, 5 Jinja2 HTML pages,
mobile-friendly dark theme CSS, page-specific JS controllers,
and Avahi mDNS service advertisement for pedal.local.
Files:
src/web/server.py — FastAPI app with 17 REST endpoints + /ws WebSocket
src/web/__init__.py — Package init with WebServer, WebServerDeps exports
src/web/templates/*.html — Dashboard, Presets, Models, IRs, Settings (base)
src/web/static/style.css — Dark mobile-first CSS (80-82% max-width)
src/web/static/websocket.js — Auto-reconnecting WebSocket manager
src/web/static/app.js — Dashboard live updates + REST helpers
src/web/static/presets.js — Bank/preset CRUD modal UI
src/web/static/models.js — NAM model list/load/upload
src/web/static/irs.js — IR file list/load/upload
etc/avahi/pi-multifx-pedal.service — Avahi service advertisement
scripts/setup-mdns.sh — One-shot mDNS setup (avahi, hostname, restart)
main.py — Wire WebServer into boot/shutdown
requirements.txt — Add fastapi, uvicorn, jinja2, python-multipart
tests/test_web.py — 36 tests (pages, REST, WebSocket, errors)
All 36 tests pass.
|
2026-06-08 00:57:26 -04:00 |
|