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 |
|
shawn
|
c38a7b0fd8
|
Add main entry point + systemd services + integration tests
New files:
main.py - PedalApp: boots all subsystems in order,
wires MIDI/footswitch callbacks, graceful
teardown reverses boot order
src/system/config.py - YAML config loader with deep-merge
(separated to avoid hardware deps)
src/system/services.py - systemd unit generator for pedal.service
+ multi-fx-pedal.target
scripts/install_service.sh - copies project, creates venv, installs
+ enables service units
tests/test_integration.py - 41 tests: boot, routing, display sync,
teardown, systemd content, CLI, edge cases
Modified:
tests/conftest.py - add project root to sys.path
|
2026-06-07 23:39:50 -04:00 |
|