3c5f5877bb206e0ba7f8bfdc5a9f00263ab94cfa
zhaopin-admin — 招聘数据简单后台
只读展示生产库(recruitment-live.db)的轻量后台,无复杂角色体系。
权限模型
- 首个注册账号 = 超管(系统无账号时注册开放,创建后注册永久关闭)
- 超管可创建/停用/重置 HR 账号
- 超管和 HR 都能看数据、导出 CSV;账号管理仅超管可见
- 登录态:HttpOnly 签名 Cookie,12 小时;密码 scrypt 加盐存储
功能
- 看板:累计/今日新增/打招呼数/各级别分布/近7天趋势(含打招呼)
- 候选人列表:级别、打招呼、账号、日期区间、关键词(姓名/学校/门槛备注)筛选 + 分页
- 详情:完整简历全文、评分明细、门槛命中原因
- 导出:当前筛选结果 CSV(上限1万行)
- 账号管理(超管):创建 HR、停用/启用、重置密码
部署(服务器 /www/projects/hs_zhaopin)
git pull
docker compose up -d --build
# 访问 http://192.168.100.133:8300 首次打开即注册超管
- 数据源:宿主机
/opt/hermes/data/recruitment-live.db只读挂载,后台不会写生产库 - 自身状态(账号库 users.db、会话密钥)持久化在
./data/ - 端口 8300 仅内网;公网访问需另配 OpenResty 反代(勿直接路由器转发)
更新
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)
Description
Languages
JavaScript
55.7%
HTML
42.2%
Shell
1.6%
Dockerfile
0.5%