在绿联 NAS 上部署 AI 选题生成器:new-api + MiniMax M3 + 飞书自动推送

    20

项目目标

部署完成后,你的绿联 NAS 会自动帮你做三件事:

  1. 每天 8:00 自动起床 —— 跑 Python 脚本调用 MiniMax M3,生成 5 个内容选题

  2. 📁 自动落盘 —— 结果保存到 /volume1/docker/scripts/topics/output/daily-YYYY-MM-DD.md

  3. 📲 自动推送飞书 —— 通过飞书自定义机器人,把当日选题卡片发到指定群

支持的 6 个内容模板:

模板

用途

topics

5 个爆款选题(公众号/小红书通用)

article

公众号长文(2000 字)

redbook

小红书爆款笔记

zhihu

知乎高赞回答

douyin

抖音 60 秒脚本

podcast

播客大纲


整体架构

┌──────────────┐      ┌──────────────┐      ┌──────────────┐
│  systemd     │ 8:00 │  topics.py   │ ───→ │   new-api    │ ───→ MiniMax M3
│  timer       │─────→│  (生成选题)   │      │  (4152:3000) │
└──────────────┘      └──────┬───────┘      └──────────────┘
                             │ Markdown
                             ↓
                      ┌──────────────┐
                      │  output/     │
                      │  daily-*.md  │
                      └──────┬───────┘
                             │ 读取
                             ↓
                      ┌──────────────┐      ┌──────────────┐
                      │ push_feishu  │ ───→ │ 飞书自定义机器人│ ───→ 手机
                      │     .py      │      │   (webhook)   │
                      └──────────────┘      └──────────────┘

所有组件都跑在同一台绿联 NAS 上,没有外部服务器依赖。


前置准备

项目

说明

绿联 NAS

本教程用 DXP6800PRO(其他型号流程一样)

new-api 容器

已通过 Docker 部署(端口映射 4152:3000)

MiniMax M3 模型的 API key

用于 new-api 配置渠道

飞书账号

创建群和自定义机器人用

Mac 电脑

用于 SSH 登录 NAS


完整部署步骤

步骤 1:开启 NAS 的 SSH 访问

绿联 NAS 默认不开启 SSH,需要先在控制面板里打开。

打开浏览器,访问 NAS 管理后台(通常是 http://NAS内网IP),进入 控制面板

截屏2026-07-20 22.15.39-vvNP.png

左侧菜单选择 终端机

截屏2026-07-20 22.15.56-bbHC.png

勾选 启用 SSH,端口保持默认 22,自动关闭时间按需选择(推荐 6 小时或更长),点击 应用 保存。

⚠️ 开启 SSH 等于给 NAS 开了"后门",强烈建议:

  1. NAS 管理员账号使用强密码

  2. 在路由器上设置 NAS 仅内网可访问(不要开公网 SSH)

  3. 启用 NAS 自带的"自动封锁"功能(控制面板 → 安全性 → 账户安全)


步骤 2:Mac 终端 SSH 登录 NAS

打开 Mac 终端(Terminal.app 或 iTerm2):

截屏2026-07-20 22.16.26-AVJE.png

执行 SSH 登录命令:

ssh 你的用户名@NAS内网IP
# 例如: ssh 你的用户名@192.1.1.1(你的nas的ip)
# 密码是 NAS 管理员密码

绿联 NAS 默认用户名不是 root,是你创建的管理员账号(教程里用 zs2025 作为示例)。

登录后切到 root(后续所有操作需要 root 权限):

sudo -i
# 输入 NAS 管理员密码

看到 # 提示符就说明已经在 root 模式下了。


步骤 3:建目录 + 安装 Python 依赖

# 建工作目录
mkdir -p /volume1/docker/scripts/topics(用自己的路径)
cd /volume1/docker/scripts/topics

# 装 Python(绿联 DXP 系统 apt 经常有依赖冲突,先尝试直接装)
apt update && apt install -y python3 python3-pip python3-venv

如果 apt 装包报依赖错误,先尝试修复

apt --fix-broken install -y
apt install -y python3-venv python3-pip

📌 为什么用 /volume1/docker/scripts/ 而不是 /opt/
/volume1 是绿联 NAS 的用户数据挂载点,重装系统、迁移数据时不会丢失。/opt 是系统目录,可能会被清空。

继续建虚拟环境:

# 创建 Python 虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装 requests 库(调用 API 用)
pip install requests

看到 Successfully installed requests-2.x.x 就成功了。后续所有 Python 命令都要先 source venv/bin/activate 激活虚拟环境。

部署完成后,打开 NAS 文件管理能看到这样的目录结构:

截屏2026-07-21 23.25.41.png

步骤 4:new-api 后台配置 MiniMax M3 渠道

这一步是最容易漏掉的 —— new-api 光跑起来没用,还要在后台加渠道,否则 Python 调过去会 404。

  1. 浏览器访问 http://NAS内网IP:4152

  2. 默认账号 admin / 123456第一次登录立刻改密码

  3. 进入 渠道管理 → 添加渠道

    • 类型:选 MiniMaxOpenAI 兼容

    • 名称:随便起,比如 MiniMax-M3

    • 密钥:填你手头的 MiniMax 官方 API key

    • 模型:先在 new-api 模型列表里查准确名字(可能是 MiniMax-M3MiniMax/M3

  4. 保存后点 测试连通性,看到绿色"通过"再继续

  5. 进入 令牌管理 → 添加令牌

    • 名称:topics-script

    • 额度:随便填,比如 100

    • 模型:选刚加的 channel

  6. 复制生成的 sk-xxx 令牌 —— 这个才是 topics.py 要用的 API_KEY(不是你 MiniMax 那个)

⚠️ 划重点:new-api 的令牌和 MiniMax 官方 key 是两码事,别搞混了。


步骤 5:部署 topics.py(核心脚本)

接下来部署核心脚本 topics.py。考虑到 SSH 终端复制粘贴大段代码容易出乱码(特别是中文字符 + 终端宽度问题),我用 base64 单行命令 的方式部署。

完整复制下面这一整行(注意 base64 字符串很长,复制时务必完整,建议复制后先在文本编辑器里看末尾有没有 ==):

此处内容已隐藏,「登录可见」

消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息