This is a Proof of Concept build. Client front-end is HTML/CSS/JS and hosted on Phoenix server with the backend services. A tunnel has been created to a publicly available web server called Dragon (soon to be replaced). The system captures an image of a handwritten page and passes it to Qwen3 VL 8B AWQ (4-bit) for conversion to digital text. **Your config locations cheat sheet:** | What | Location | ------|----------| FastAPI config | `~/htr-api/.env` | vLLM | service | `/etc/systemd/system/vllm-htr.service` | HTR service | | `/etc/systemd/system/hhtr-api.service` | FastAPI service | | `/etc/systemd/system/htr-api.service` | nginx config | | `/etc/nginx/sites-enabled/htr` | Frontend | `/var/www/htr/index.html` | | Cloudflare tunnel | `/etc/cloudflared/config.yml` | # After changing the model in .env, run the following: sudo systemctl daemon-reload sudo systemctl stop vllm-htr htr-api sudo systemctl start vllm-htr htr-api # Future Update To create an MVP using Capacitor to wrap the front-end HTML/CSS/JS and call the service through a future web server (Cerberus) running Ghost with API access via FastAPI? Need to test Qwen3 VL 2B and modify the prompt to see if accuracy occurs. PRD for the MVP is located in a document, "PRD-Pen2Post_MVP-FINAL.md"