Files
2026gaokaozhiyuan/deploy/README.md
T
simon b6df028839 v1.0.0 高考志愿门户完整修复
变更摘要:
- [fix] 清理根目录 index.html 遗留代码(questionnaire-error + retryLoad 移除)
- [fix] 副标题同步更新为自估591分 + 候选志愿546条数据校准
- [fix] 页脚注入版本号 v1.0.0
- [fix] 部署版 index.html: 取消家长标签,统一 filler-tianheng
- [fix] Dashboard 文案修正(4份→2份线上问卷)
- [fix] 清理冗余部署脚本(v1-v4归档至 archived_scripts/)
- [fix] 等效位次工具纳入 deploy 目录
- [chore] .gitignore 初始化
- [init] Git 仓库初始化
2026-06-24 13:11:34 +08:00

120 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 高考志愿家庭门户 — 群晖 NAS Docker 部署指南
## 架构概览
```
浏览器 ──→ NAS_IP:8080 ──→ Nginx (静态文件 + API反代) ──→ Flask (问卷后端 + SQLite)
```
| 组件 | 容器名 | 端口 | 作用 |
|------|--------|------|------|
| Nginx | gaokao-nginx | 8080→80 | 托管6份HTML报告 + 导航首页 + API反向代理 |
| Flask | gaokao-backend | 5000(内部) | 问卷API:创建/填写/汇总 |
## 部署步骤(群晖 Container Manager
### 第一步:上传文件到 NAS
1. 打开群晖 File Station
2.`docker/` 目录下创建文件夹 `gaokao-portal/`
3. 将整个 `deploy/` 目录下的内容(这个文件夹)上传到 `docker/gaokao-portal/`
最终目录结构:
```
docker/gaokao-portal/
├── docker-compose.yml
├── nginx/
│ ├── nginx.conf
│ └── html/
│ ├── index.html
│ ├── questionnaire.html
│ ├── results.html
│ ├── css/style.css
│ └── reports/
│ ├── 志愿填报预备报告.html
│ ├── 高考预测报告.html
│ ├── 高考后-志愿填报行动方案.html
│ ├── 中外合作办学专题分析报告.html
│ ├── 2026年浙江招生计划深度分析报告.html
│ └── 数字媒体技术院校深度调研报告.html
└── backend/
├── Dockerfile
├── requirements.txt
├── app.py
├── seed_data.py
└── data/ ← SQLite 数据库文件(启动后自动创建)
```
### 第二步:启动容器
1. 打开群晖 **Container Manager**Docker套件)
2. 左侧菜单 → **项目** → 点击 **新增**
3. 项目名称:`gaokao-portal`
4. 路径:选择 `docker/gaokao-portal/`
5. 来源:选择 **设置路径**(使用已有的 docker-compose.yml
6. 点击 **下一步****完成**
系统会自动拉取镜像并构建启动。首次启动约需 2~5 分钟(含镜像下载)。
### 第三步:验证部署
浏览器访问:`http://<NAS的局域网IP>:8080`
你应该看到:
- 顶部横幅 "天恒高考志愿 · 家庭门户"
- 6张报告卡片(点击可查看完整报告)
- 3张问卷卡片(填写/查看汇总按钮)
## 使用指南
### 查看报告
首页点击任意报告卡片 → 浏览器直接打开完整报告(仅需 Nginx,无需后端)。
### 填写问卷
1. 首页点击问卷卡片的 **📝 填写问卷** 按钮
2. 输入您的称呼(如:爸爸、妈妈、天恒)
3. 逐题作答,点击 **✅ 提交答卷**
### 查看汇总
1. 首页点击问卷卡片的 **📊 查看汇总** 按钮
2. 横向对比所有家人的答案
3. 橙色高亮的行 = 家人之间观点不一致的题目
### 问卷内容说明
| # | 问卷 | 题数 | 类型 | 用时 |
|---|------|------|------|------|
| 1 | Holland 职业兴趣快速评估 | 20题 | 5级自评 | ~5分钟 |
| 2 | 院校偏好问卷 | 10题 | 单选/多选 | ~5分钟 |
| 3 | 家庭期望对齐问卷 | 8题 | 混合 | ~5分钟 |
> **建议填写顺序**:天恒先填 Holland 评估 → 父母各自填 → 全家人一起填院校偏好和期望对齐 → 查看汇总讨论差异。
## 常见问题
### Q: 浏览器打不开 8080 端口?
A: 检查群晖防火墙 → 允许局域网访问 8080 端口;确认容器在 Container Manager 中显示"运行中"。
### Q: 问卷加载不出来(卡片显示"无法连接后端服务")?
A: 等 Flask 容器完全启动(首次构建 ~2分钟),刷新页面。
### Q: 数据存在哪里?换台电脑数据还在吗?
A: 数据存在 NAS 的 `backend/data/gaokao.db`(SQLite),容器重启/更新不会丢失。所有接入同一局域网的设备(手机/平板/电脑)都能访问同一份数据。
### Q: 怎么更新报告内容?
A: 替换 `nginx/html/reports/` 下的 HTML 文件,然后重启 Nginx 容器即可。无需重建。
### Q: 怎么导出问卷数据?
A: 在 Container Manager 中进入 `gaokao-backend` 容器的终端,执行:
```bash
sqlite3 /app/data/gaokao.db ".mode json" "SELECT * FROM responses;" > /app/data/export.json
```
## 安全说明
- 本服务仅供局域网使用,不暴露到公网
- 不涉及任何第三方云服务,数据完全在 NAS 本地
- 无用户密码认证(基于信任的局域网环境)
- 如需加强安全,可在群晖防火墙设置仅允许特定设备 IP 访问 8080 端口