{“content”:”---\nname: jakephone-pwa-local-setup\ndescription: Jakephone PWA 本地开发工作流 — Android/Termux 上跑 PWA,对接 Hermes Gateway API 进行连续对话\n---\n\n# Jakephone PWA 本地开发工作流\n\n## 项目路径\n~/jakephone-pwa/ (Android/Termux)\n\n## 文件结构\n\n~/jakephone-pwa/\n├── server.js # Express + WebSocket 服务器 (port 3000)\n├── public/\n│ ├── index.html\n│ ├── style.css\n│ ├── app.js # PWA 前端逻辑\n│ ├── manifest.json\n│ └── sw.js # Service Worker\n├── cloudflared.log\n└── server.log\n\n\n## 当前状态\n- Hermes Gateway API 运行在 localhost:8642\n- Hermes Gateway 运行在 localhost:8000\n- server.js 运行在 localhost:3000\n\n## 本地单机架构(无 cloudflare)\n\nPWA (浏览器) \n ↓ WebSocket\nserver.js (port 3000) — 代理层\n ↓ HTTP POST + X-Hermes-Session-Id\nHermes API (port 8642) — 连续对话\n\n\n## 需要的 API\n- POST /v1/chat/completions — OpenAI 兼容格式,支持 X-Hermes-Session-Id header 保持 session\n- 认证:Authorization: Bearer <key>X-Api-Key: <key>\n\n## 启动命令\nbash\ncd ~/jakephone-pwa\nnode server.js\n# PWA 访问 http://localhost:3000\n\n\n## 远程访问时才需要 cloudflare(未来考虑)\n- 免费版 cloudflared 不稳定\n- 有 Cloudflare 账号后用 cloudflared tunnel --url http://localhost:3000\n”}