Files

57 lines
2.5 KiB
Markdown
Raw Permalink 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.
# 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`)