想要一个完全自托管、数据掌握在自己手里、还能用自己 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 管理界面)。

    0-TPmZ
  • 规划一个数据目录(用于持久化数据库/数据),例如:/vol1/1000/Docker/jadeai(也可以用飞牛 Compose 的相对路径 ./data)。

    0-NvFE

Step 1:创建项目目录

在飞牛 NAS 的文件管理器里创建目录(示例):

  • /vol1/1000/Docker/jadeai/

    • docker-compose.yml

    • data/(可选,用于挂载到容器的 /app/data

      0-giBc

Compose 项目通常建议:先建一个 Docker 总目录,再为每个应用建子目录,便于备份与迁移。


Step 2:生成 AUTH_SECRET(必填)

JadeAI 明确要求 AUTH_SECRET 作为会话加密密钥,可用 OpenSSL 生成,或者使用在线生成一个任意长度的字符串密码。

在任意能执行命令的环境里运行(NAS 终端/你电脑都行):

openssl rand -base64 32
0-znfT

复制输出的一串内容,稍后填进 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-stopped

B)通用(绝对路径挂载)

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 创建并启动

  1. 打开 Docker 应用,左侧进入 Compose

    0-OoTT
  2. 新增项目 → 选择项目目录 → 创建/粘贴 docker-compose.yml → 勾选创建后立即启动(或创建后手动启动)

    0-xjUb
    0-noBm

启动成功后,在浏览器访问:

http://<你的NAS_IP>:16888
0-SOys

JadeAI 首次启动会自动完成数据库迁移与数据初始化。

配置 AI 接口

0-ZHyn
0-UCjc

简历可以从模板新建,也可以上传已写好的。此处就以从模板新建截图为例。

0-yswW
0-ZREd

3. (可选)进阶:PostgreSQL / Google OAuth

3.1 切换到 PostgreSQL

如果你希望多用户/更强的数据库能力,JadeAI 也支持 PostgreSQL:设置 DB_TYPE=postgresqlDATABASE_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=xxx

4. 常见小坑(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 的使用理念。