求职季必装:NAS 上跑一个“AI 简历生成器”,3 分钟搞定!
想要一个完全自托管、数据掌握在自己手里、还能用自己 API Key 的 AI 简历工具?JadeAI 就是这类项目里“开箱即用”的代表:拖拽编辑、50 套模板、多格式导出,还支持简历解析、JD 匹配分析等能力。
本文面向 飞牛 NAS(fnOS)用户,只讲Docker/Compose 部署;其它安装方式仅给链接,方便你按需深入。
1. JadeAI 是什么?适合 NAS 吗?
JadeAI 是一个 AI 驱动的智能简历生成器:支持拖拽编辑、实时 AI 优化、内置 50 套专业模板,并可导出 PDF/DOCX/HTML/TXT/JSON 等格式。
它很适合放在 NAS 上自建,原因很简单:
Docker 部署官方推荐,容器化对 NAS 友好;首次启动会自动完成数据库迁移与初始化。
AI Key 不需要写到服务端环境变量:每位用户在应用内“设置 > AI”自行配置 API Key、Base URL、模型。
2. Docker Compose 部署(推荐)
部署前你需要准备
飞牛 NAS 已启用 Docker(自带 Docker/Compose 管理界面)。
规划一个数据目录(用于持久化数据库/数据),例如:
/vol1/1000/Docker/jadeai(也可以用飞牛 Compose 的相对路径./data)。
Step 1:创建项目目录
在飞牛 NAS 的文件管理器里创建目录(示例):
/vol1/1000/Docker/jadeai/docker-compose.ymldata/(可选,用于挂载到容器的/app/data)
Compose 项目通常建议:先建一个 Docker 总目录,再为每个应用建子目录,便于备份与迁移。
Step 2:生成 AUTH_SECRET(必填)
JadeAI 明确要求 AUTH_SECRET 作为会话加密密钥,可用 OpenSSL 生成,或者使用在线生成一个任意长度的字符串密码。
在任意能执行命令的环境里运行(NAS 终端/你电脑都行):
openssl rand -base64 32复制输出的一串内容,稍后填进 Compose。
Step 3:编写 docker-compose.yml
在项目目录中创建 docker-compose.yml,推荐用 SQLite 默认模式(零配置,最适合家用 NAS)。JadeAI 默认数据库类型就是 SQLite。
下面给两种写法:
A(相对路径)更符合飞牛 Compose 使用习惯;B(绝对路径)更通用。
A)飞牛常用(相对路径挂载)
services:
jadeai:
image: twwch/jadeai:latest
container_name: jadeai
ports:
- "16888:3000"
environment:
- AUTH_SECRET=替换为你刚生成的密钥
volumes:
- ./data:/app/data
restart: unless-stoppedB)通用(绝对路径挂载)
services:
jadeai:
image: twwch/jadeai:latest
container_name: jadeai
ports:
- "16888:3000"
environment:
- AUTH_SECRET=替换为你刚生成的密钥
volumes:
- /vol1/1000/Docker/jadeai/data:/app/data
restart: unless-stopped说明(都来自官方 README 的 Docker 运行参数):
容器镜像:
twwch/jadeai:latest端口:容器内服务监听
16888,对外映射16888:3000持久化:把数据目录挂载到
/app/data(README 用-v jadeai-data:/app/data)必填环境变量:
AUTH_SECRET
Step 4:在飞牛 Docker → Compose 创建并启动
打开 Docker 应用,左侧进入 Compose
新增项目 → 选择项目目录 → 创建/粘贴
docker-compose.yml→ 勾选创建后立即启动(或创建后手动启动)
启动成功后,在浏览器访问:
http://<你的NAS_IP>:16888
JadeAI 首次启动会自动完成数据库迁移与数据初始化。
配置 AI 接口
简历可以从模板新建,也可以上传已写好的。此处就以从模板新建截图为例。
3. (可选)进阶:PostgreSQL / Google OAuth
3.1 切换到 PostgreSQL
如果你希望多用户/更强的数据库能力,JadeAI 也支持 PostgreSQL:设置 DB_TYPE=postgresql 和 DATABASE_URL=...。
在 Compose 的 environment 增加:
environment:
- AUTH_SECRET=你的密钥
- DB_TYPE=postgresql
- DATABASE_URL=postgresql://user:pass@host:5432/jadeai是否要把 PostgreSQL 也写进同一个 Compose(作为一个 service)取决于你的习惯;本文就不展开了。
3.2 启用 Google OAuth 登录
JadeAI 支持 Google OAuth:需要 NEXT_PUBLIC_AUTH_ENABLED=true,并配置 GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET。
在 Compose 的 environment 增加:
environment:
- NEXT_PUBLIC_AUTH_ENABLED=true
- AUTH_SECRET=你的密钥
- GOOGLE_CLIENT_ID=xxx
- GOOGLE_CLIENT_SECRET=xxx4. 常见小坑(NAS 场景很实用)
端口冲突:如果你的 NAS 上 16888 被占用,把左边改成别的,比如
18888:3000(容器内端口保持 3000 不动)。数据目录权限:SQLite 会写入挂载目录;若启动报数据库无法写入,多数是目录权限问题。确保
./data(或绝对路径 data 目录)对 Docker 有写权限。(这条是经验建议,不是官方说明)升级方式:容器化应用升级通常就是
pull新镜像再重启;数据在挂载目录里不会丢。(经验建议)
5. 其它安装方式(只给链接,按需查看)
如果你不想用 Docker,官方 README 也提供了“本地开发/源码运行”的完整流程(Node.js 18+、pnpm 9+、复制 .env.example 为 .env.local 等)。
项目中文 README(含本地开发、环境变量说明):README.zh-CN.md
项目仓库主页(英文 README / 版本等):twwch/JadeAI
结语:适合飞牛 NAS 用户的“简历自托管方案”
如果你平时就在飞牛 NAS 上跑一堆服务(相册、下载器、媒体库),JadeAI 这种“用户自己填 AI Key、数据留在本地”的工具非常契合 NAS 的使用理念。