本文最后更新于 2025-07-27,文章内容可能已经过时。

大家好!不知道你们有没有过这种抓狂时刻?反正我有——团队轮值任务(比如我们办公室著名的“饮水机守护者”轮班)总有人忘!手动提醒?太麻烦!专人提醒?太奢侈!日历安排?不够灵活!

灵光一闪:为啥不造个“机器人提醒员”?企业微信自带的群聊机器人不就是现成的“工具人”嘛!它能在群里定时@人、发通知,简直是“防遗忘神器”。但现成工具要么功能不合,要么要收费... 索性自己动手!

惊喜发现:用NAS + Node.js就能轻松搭建专属的企业微信定时提醒系统! 我把这个轻量好用的项目 weixin-notify-reminder 部署在了我的NAS上。现在,通过一个清爽的Web界面就能创建、管理各种定时任务:生日祝福、会议提醒、值班打卡... 甚至是催大家“该去接水啦!💧”,统统自动化搞定。

不再需要复杂代码或昂贵软件,开源免费、部署简单,让NAS真正成为你的智能小助手。想知道怎么在NAS上一步步安装配置这个基于Node.js的企业微信机器人定时提醒系统?跟着我的详细图文教程来,轻松解放双手,让消息准时送达!

🚀 功能特性一览

  • 动态任务管理:通过 Web 界面实时创建、编辑、删除提醒任务

  • 灵活的时间设置:支持 Cron 表达式,精准控制提醒时间

  • 多手机号支持:支持群内多个用户同时提醒

  • 日期过滤功能:只在指定日期内执行任务

  • 任务状态控制:随时启用或禁用任务

  • 持久化存储:任务保存在 JSON 文件中,重启 NAS 后自动恢复

  • Web 管理界面:直观简洁,无需命令行操作

  • ✅ 适用方向:个人提醒、企业消息推送、站群营销、用户群互动等等用途~~~


截图预览


📋 快速开始

1. 注册企业微信账号


2. 获取企业微信群机器人配置

  1. 安装并登录企业微信客户端(电脑或手机均可)

  2. 打开群聊,点击右上角【···】 > 添加群机器人

  3. 点击【新建机器人】

  4. 设置一个微信机器人名称后点击添加机器人

  5. 点击【复制地址】获取 Webhook 地址

    ⚠️ 注意:此地址属于私密信息,请勿外泄

  6. 配置如下参数(后面将在 .env 文件中使用):

    # 企业微信机器人配置
    WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send(URL地址就是你显示的https://qyapi.weixin.qq.com/cgi-bin/webhook/send,不带后面的?符号)
    WECHAT_WEBHOOK_KEY=your_actual_webhook_key_here(KEY就是图中马赛克掉的,换成你自己的。)
    
    # 应用配置
    TZ=Asia/Shanghai
    PORT=3000

🛠 部署教程(以群晖NAS为例)

1. 安装必要环境

  • 打开群晖套件中心,安装下面两个套件:

    • ✅ PHP 8.1

    • ✅ Git Server

  • 启用群晖 SSH 功能,使用终端连接后切换到 root 用户。
    DSM open SSH.png


2. 准备部署目录

  1. 打开 File Station,右键你的 docker 文件夹 > 属性 > 常规,复制文件夹路径
    (项目文件想存储在哪就复制哪个文件夹路径)

  2. 在终端中进入该目录(以下路径仅为示例):

    # 将/volume1/docker换成你自己实际的文件夹路径
    
    cd /volume1/docker

3. 克隆项目到本地

  1. 克隆项目

    git clone https://github.com/xintianyou/weixin-notify-reminder
  2. 进入项目文件夹

    cd weixin-notify-reminder

4. 安装依赖并配置环境变量

  1. 安装所需依赖(视网络质量时间不等,给NAS科学上网更快,点击了解。)

    npm install
  2. 复制示例.env环境文件

    cp .env.example .env
  3. 编辑.env文件

    vi .env
  4. 按字母i键进入编辑模式,修改下面的配置文件,按Esc键退出编辑模式,输入:wq保存并退出(提示无法保存的就执行:wq!)。

    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    # 企业微信机器人配置
    WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send
    WECHAT_WEBHOOK_KEY=这里换成你的微信机器人KEY

🚀 启动服务(推荐使用 PM2)

  1. 有三种服务,推荐使用第一种。

    使用PM2启动(推荐,用于生产环境):
    npm run pm2
    
    直接启动(用于开发测试):
    npm start
    
    开发模式自动重启:
    npm run dev
  2. 全局安装 PM2:

    npm install -g pm2
    
    # 如果速度慢,可以使用淘宝源安装(建议一次性加速):
    
    npm install -g pm2 --registry=https://registry.npmmirror.com
  3. 验证安装:

    pm2 -v
  4. 启动项目:

    npm run pm2
    
    # 或手动启动(更推荐)
    
    pm2 start ecosystem.config.js

可选:设置 PM2 开机自启

  1. 如你希望在群晖重启后服务自动恢复,执行:

    pm2 startup
  2. 终端会提示一条命令,例如:

    root@DSM:/volume1/docker/weixin-notify-reminder# pm2 startup
    [PM2] Init System found: systemd
    Platform systemd
    Template
    [Unit]
    Description=PM2 process manager
    Documentation=https://pm2.keymetrics.io/
    After=network.target
    
    [Service]
    Type=forking
    User=root
    LimitNOFILE=infinity
    LimitNPROC=infinity
    LimitCORE=infinity
    Environment=PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/ur/local/sbin:/volume1/@appstore/Node.js_v22/usr/local/bin:/bin:/usr/local/sbin:/usr/local/bin/usr/sbin:/usr/bin
    Environment=PM2_HOME=/root/.pm2
    PIDFile=/root/.pm2/pm2.pid
    Restart=on-failure
    
    ExecStart=/usr/local/lib/node_modules/pm2/bin/pm2 resurrect
    ExecReload=/usr/local/lib/node_modules/pm2/bin/pm2 reload all
    ExecStop=/usr/local/lib/node_modules/pm2/bin/pm2 kill
    
    [Install]
    WantedBy=multi-user.target
    
    Target path
    /etc/systemd/system/pm2-root.service
    Command list
    [ 'systemctl enable pm2-root' ]
    [PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
    [PM2] Making script booting at startup...
    [PM2] [-] Executing: systemctl enable pm2-root...
    Created symlink from /etc/systemd/system/multi-user.target.wants/pm2-root.service to /etc/sysemd/system/pm2-root.service.
    [PM2] [v] Command successfully executed.
    +---------------------------------------+
    [PM2] Freeze a process list on reboot via:
    $ pm2 save
    
    [PM2] Remove init script via:
    $ pm2 unstartup systemd
    root@DSM:/volume1/docker/weixin-notify-reminder#
  3. 然后保存当前运行的服务:

    pm2 save

✅ PM2 常用指令

  • 查看状态:pm2 list

  • 查看日志:pm2 logs

  • 停止服务:pm2 stop reminder

  • 删除服务:pm2 delete reminder


🌐 访问 Web 界面

浏览器打开 NAS的IP + 端口访问
以本机为例:http://172.16.19.200:3000

Web 界面功能说明:

  • 填写任务名称、提醒内容

  • 设置 Cron 表达式(不懂?问 AI,复制下面的格式发个AI,输入“每天早上8点执行”,它能自动转换)

  • 添加手机号(等于是@功能,需要在企业微信群聊中的成员绑定了手机号)

  • 点击“创建任务”即可

  • 可搜索手机号查看任务、禁用或删除

  • 等待到了时间之后就自动在企业微信群里收到消息了,你也可以把这个企业微信机器人添加到其他群聊内,统一推送消息。


✏️ 批量管理任务

你也可以手动编辑项目目录下的 tasks.json 文件来批量管理提醒任务。

格式清晰简单,不会写也没关系,问问 AI:

“帮我写一个每周五下午4点提醒张三、李四下班的 JSON 格式任务”


📦 项目地址


如果你觉得这个系统对你有帮助,欢迎点个 Star ⭐,也欢迎分享给更多朋友一起使用!


文末

👇👇👇