Files
zhaopin-admin/README.md
T

57 lines
2.5 KiB
Markdown
Raw Normal View History

# zhaopin-admin — 招聘数据简单后台
只读展示生产库(`recruitment-live.db`)的轻量后台,无复杂角色体系。
## 权限模型
- **首个注册账号 = 超管**(系统无账号时注册开放,创建后注册永久关闭)
- 超管可创建/停用/重置 HR 账号
- 超管和 HR 都能看数据、导出 CSV;账号管理仅超管可见
- 登录态:HttpOnly 签名 Cookie,12 小时;密码 scrypt 加盐存储
## 功能
- 看板:累计/今日新增/打招呼数/各级别分布/近7天趋势(含打招呼)
- 候选人列表:级别、打招呼、账号、日期区间、关键词(姓名/学校/门槛备注)筛选 + 分页
- 详情:完整简历全文、评分明细、门槛命中原因
- 导出:当前筛选结果 CSV(上限1万行)
- 账号管理(超管):创建 HR、停用/启用、重置密码
## 部署(服务器 /www/projects/hs_zhaopin)
```bash
git pull
docker compose up -d --build
# 访问 http://192.168.100.133:8300 首次打开即注册超管
```
- 数据源:宿主机 `/opt/hermes/data/recruitment-live.db` **只读**挂载,后台不会写生产库
- 自身状态(账号库 users.db、会话密钥)持久化在 `./data/`
- 端口 8300 仅内网;公网访问需另配 OpenResty 反代(勿直接路由器转发)
## 更新
```bash
cd /www/projects/hs_zhaopin && git pull && docker compose up -d --build
```
## API 概览
| 接口 | 说明 | 权限 |
|------|------|------|
| GET /api/bootstrap | 是否需要初始化超管 | 公开 |
| POST /api/register | 注册(仅无账号时) | 公开 |
| POST /api/login / logout / GET /api/me | 登录会话 | 公开/登录 |
| GET /api/stats | 看板统计 | 登录 |
| GET /api/candidates[?level&greeted&account&date_from&date_to&q&page&size] | 候选人列表 | 登录 |
| GET /api/candidates/:id | 候选人详情(含简历全文) | 登录 |
| GET /api/export.csv | 按当前筛选导出 | 登录 |
| GET/POST /api/users* | 账号管理 | 超管 |
## 访问入口(2026-08-27 起)
- 公网入口:`http://219.157.255.213:28080/` ✅2026-08-27外部节点验证200(运营商封80/443,可用端口10000-50000;路由器转发28080→192.168.100.133:28080;IP动态,重拨会变)
- 域名入口:`http://zhaopin.admin`(同反代;客户端需 hosts 或局域网 DNS 指向 192.168.100.133)
- 直连入口:`http://192.168.100.133:8300`(内网)
- 反代配置:宿主机 `/opt/1panel/www/sites/zhaopin.admin/proxy/root.conf`(改后 `docker exec 1Panel-openresty-Seym nginx -s reload`)