# 运行手册 · 心经诵读站点 ## 技术栈 | 项 | 版本 / 说明 | |---|---| | 前端 | 原生 HTML + CSS + JS(无框架、无构建) | | 后端 | Python 3 标准库 `http.server`(无第三方依赖)[Native] | | TTS | 千问 `qwen3-tts-flash`,走 DashScope 兼容接口 `/api/v1/services/aigc/multimodal-generation/generation` | ## 首次准备 ```bash cd "/Users/freedak/Documents/AIDashboard/心经" cp .env.example .env # 填入真实 DASHSCOPE_API_KEY ``` `.env` 变量:`DASHSCOPE_API_KEY`(必填)、`DASHSCOPE_BASE`、`TTS_MODEL`、`PORT`(默认 8000)。 ## 应用启停 ```bash # 启动 [Native] python3 server.py # 打开 http://127.0.0.1:8000 # 停止:Ctrl+C ``` ## 接口 - `POST /api/tts`,请求体 `{"text": "...", "voice": "Cherry"}`(≤600 字),返回 `audio/wav` 字节流;合成结果缓存在 `cache/` 目录。 - 静态文件由同一端口托管。 ## 排错 | 现象 | 原因 | 处理 | |---|---|---| | 页面报"未配置 DASHSCOPE_API_KEY" | `.env` 缺失或键名不对 | 检查 `.env` | | 502 / TTS 服务返回 4xx | 密钥失效、音色与模型不匹配 | 换音色或核对密钥 | | 浏览器播放无声 | 系统静音 / 自动播放策略 | 点击播放按钮触发 | ## 端口表 | 服务 | 端口 | |---|---| | 本地 Web + API | 8000(`.env` 的 `PORT` 可改) | | 线上应用 | 8018(127.0.0.1,仅经 nginx 反代) | ## 部署备份 **线上部署**(2026-09-28 已上线): - 域名:`https://fj.all8ai.top`(HTTP 301 → HTTPS,Let's Encrypt 证书自动续期) - 服务器:`154.8.162.18`(OpenCloudOS 9.4),应用目录 `/opt/fj` - 进程:`systemctl status|restart fj`(`/etc/systemd/system/fj.service`,Restart=always) - 反代:`/etc/nginx/conf.d/fj.conf` → `http://127.0.0.1:8018`(与 gugong/bs 等站点并存,互不冲突) - 环境变量:服务器上 `/opt/fj/.env`(`PORT=8018`、密钥等,不入 Git,也不被 deploy.sh 覆盖) - 更新发布:一键 `./deploy.sh`(同步前端+`server.py` → 重启 `fj.service` → 健康检查 https://fj.all8ai.top)。密码登录用 `FJ_PASS=xxx ./deploy.sh`(需本机 sshpass);已配 SSH key 则直接 `./deploy.sh`。**注意**:`.env` 不在同步列表内,服务器端 `PORT=8018` 不会被本地 `PORT=8000` 覆盖 备份:`cache/` 可删(自动重建);`/opt/fj` 目录 + `fj.service` + `fj.conf` 为全部恢复所需。