简体中文 | English
AI 简历编辑器 | 快捷编辑 · 数据安全 · 本地存储备份 · AI 协助
基于 Next.js 14(App Router) 的在线简历编辑器:可视化编排模块、富文本编辑、拖拽布局,并支持通过 Puppeteer 导出 PDF / PNG。

react-grid-layout)| 类别 | 选型 |
|---|---|
| 框架 | Next.js 14、React 19、TypeScript |
| UI | Ant Design 5、Tailwind CSS 4 |
| 状态 | MobX、mobx-react |
| 编辑器 / 布局 | Quill、@dnd-kit、react-grid-layout |
| 导出 | Puppeteer |
| 规范 | ESLint 9、Prettier、Husky、Commitlint |
package.json engines)/usr/bin/chromium-browser,或通过环境变量指定(见下表)npm install
# 若出现 React / Next peer 依赖冲突,可使用:
# npm install --legacy-peer-deps
npm run dev
开发服务器默认由 Next 分配端口;本地访问路径形如:http://localhost:3000/zh/edit(端口以终端输出为准)。
生产构建与启动:
npm run build
npm run start
start 脚本固定监听 3010 端口。
| 命令 | 说明 |
|---|---|
npm run dev |
开发模式 |
npm run build |
生产构建 |
npm run start |
生产启动(端口 3010) |
npm run lint |
ESLint |
npm run lint:pritter |
Prettier 格式化 src/ |
npm run prepare |
安装 Husky(npm install 后自动执行) |
在项目根目录创建 .env.local(勿提交密钥到仓库)。可参考 .env.local.example。
| 变量 | 必填 | 说明 |
|---|---|---|
XFYUN_MAAS_API_KEY |
二选一 | 讯飞星辰 Coding Plan API Key(appId:apiSecret),默认模型 astron-code-latest |
CHATANYWHERE_API_KEY |
二选一 | ChatAnywhere 免费 API 的 Key;讯飞不可用时自动降级(deepseek-v4-flash) |
XFYUN_MAAS_BASE_URL |
否 | 讯飞 MaaS 地址,默认 https://maas-coding-api.cn-huabei-1.xf-yun.com/v2 |
XFYUN_MAAS_MODEL |
否 | 讯飞模型 ID,默认 astron-code-latest |
PUPPETEER_EXECUTABLE_PATH |
否 | 导出 PDF/PNG 时 Puppeteer 使用的浏览器可执行文件路径。开发环境未设置时由 Puppeteer 自带 Chromium;生产环境 Linux 默认 /usr/bin/chromium-browser |
PUPPETEER_EXECUTABLE_PATH 示例:
| 系统 | 示例路径 |
|---|---|
| macOS(Google Chrome) | /Applications/Google Chrome.app/Contents/MacOS/Google Chrome |
| Windows(Google Chrome) | C:\Program Files\Google\Chrome\Application\chrome.exe |
| Linux(Chromium) | /usr/bin/chromium-browser 或 /usr/bin/chromium |
以下变量仅在服务器部署时需要配置:
| 变量 | 说明 |
|---|---|
RESUME_PROJECT_ROOT |
项目在服务器上的绝对路径,例如 /root/easy-resume(PM2 / 脚本等工作目录) |
NEXT_PUBLIC_SITE_URL |
站点对外访问的根 URL,例如 https://resume.example.com;用于 PDF 内相对链接补全、站点元信息。需在 npm run build 前配置,否则客户端 bundle 中不会生效 |
EXPORT_BASE_URL |
Puppeteer 打开导出页用的地址;默认生产为 http://127.0.0.1:3010(本机回环,避免经 Nginx 超时)。多实例或特殊网络时再改 |
PUPPETEER_EXECUTABLE_PATH |
生产 Chromium 路径,Docker 镜像内为 /usr/bin/chromium |
可选(启用 AI 评分限流与缓存时需配置,见 .env.local.example):
| 变量 | 说明 |
|---|---|
UPSTASH_REDIS_REST_URL |
Upstash Redis REST URL |
UPSTASH_REDIS_REST_TOKEN |
Upstash Redis REST Token |
src/
app/ # App Router:页面、Layout、API Routes(pdf/png/version/chat 等)
components/ # 通用组件
views/edit/ # 编辑器主界面(画布、侧栏、头部等)
modules/ # 简历各模块渲染与类型
mobx/ # 全局状态
lib/ # Puppeteer、字体、API 转发等工具
utils/ # 通用工具函数
json/ # 默认简历与模板数据
public/ # 静态资源(含字体等)
middleware.ts # Next.js 中间件
docker-compose up -d
访问:http://localhost:3010/zh
$ claude mcp add easy-resume \
-- python -m otcore.mcp_server <graph>