
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
监控飞牛 NAS 事件日志(数据库 logger_data.db3 的 log 表),并推送多平台通知。
18080),支持 Webhook、事件类型、勿扰、标题前缀、PushPlus 等;保存后热加载,一般无需重启config.json 内保存盐值与哈希);支持关闭密码校验(web_password_enabled)config.json 后自动生效;环境变量仍优先生效且不会被文件覆盖以下为 monitor_events 中允许配置的 eventId(与数据库一致;旧配置里已移除的类型会在启动时被过滤):
LoginSucc, LoginSucc2FA1, LoginFail, LogoutFoundDisk, DiskWakeup, DiskSpindown, DISK_IO_ERRAPP_CRASH, APP_UPDATE_FAILED, APP_START_FAILED_LOCAL_APP_RUN_EXCEPTION, APP_AUTO_START_FAILED_DOCKER_NOT_AVAILABLE, APP_STARTED, APP_STOPPED, APP_UPDATED, APP_INSTALLED, APP_AUTO_STARTED, APP_UNINSTALLEDCPU_USAGE_ALARM, CPU_USAGE_RESTORED, CPU_TEMPERATURE_ALARMUPS_ONBATT, UPS_ONBATT_LOWBATT, UPS_ONLINE, UPS_ENABLE, UPS_DISABLESSH_INVALID_USER, SSH_AUTH_FAILED, SSH_LOGIN_SUCCESS, SSH_DISCONNECTEDARCHIVING_SUCCESS, DeleteFile, MovetoTrashbin, SHARE_EVENTID_DEL, SHARE_EVENTID_PUTWEBDAV_ENABLED / WEBDAV_DISABLED, SAMBA_ENABLED / SAMBA_DISABLED, DLNA_ENABLED / DLNA_DISABLED, FTP_ENABLED / FTP_DISABLED, NFS_ENABLED / NFS_DISABLEDFW_ENABLE, FW_DISABLE, SECURITY_PORTCHANGEDSHUTDOWN_VM, STATUS_RUNNING_VM, DESTROY_VM./data/logs(可配置 log_dir),按事件类型与日期分文件;保留天数由 log_retention_days 控制。./data/logs/monitor_YYYYMMDD.log;应用运行日志保留天数由 max_log_age 控制。./data/cursor/db_poller_cursor.txt,记录已处理到的 log 表 id。bash# 需在项目根目录,或设置 PYTHONPATH python tools/log_manager.py stats python tools/log_manager.py recent --hours 24 python tools/log_manager.py type LoginSucc --limit 10 python tools/log_manager.py export ./logs.json --event-type APP_CRASH python tools/log_manager.py cleanup 30
至少配置一个推送渠道;环境变量与 Web 配置页二选一即可(亦可混用)。各平台图文说明见 **https://github.com/Sunanang/FNMessageBots/blob/main/docs/notification-channels.md**%EF%BC%88%E5%86%85%E5%90%AB%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E3%80%81%E9%92%89%E9%92%89%E3%80%81%E9%A3%9E%E4%B9%A6%E3%80%81Bark%E3%80%81%E9%AD%94%E6%B3%95%E6%8E%A8%E9%80%81%E3%80%81SMTP 邮件、PushPlus 的独立文档入口)。
未配置任何 Webhook / PushPlus 时进程仍可启动,仅提供 Web 配置页;配置完成后自动开始监控与推送。
config/config.json)| 项 | 说明 |
|---|---|
wechat_webhook_url / dingtalk_webhook_url / feishu_webhook_url / bark_url | 各平台 Webhook 或 Bark URL |
pushplus_params | PushPlus JSON(可多个,| 分隔) |
title_prefix | 推送标题前缀,留空则使用默认「飞牛NAS」 |
monitor_events | 要监控的事件 ID 列表 |
log_level | 日志级别 |
log_dir / cursor_dir | 日志与游标目录 |
logger_db_path | SQLite 数据库路径 |
logger_poll_interval | 轮询间隔(秒) |
http_pool_size / http_retry_count / http_timeout | HTTP 客户端参数 |
dedup_window | 去重时间窗口(秒) |
log_retention_days | 原始推送日志保留天数 |
max_log_age | 应用运行日志 monitor_*.log 保留天数 |
dnd_enabled / dnd_start_time / dnd_end_time | 勿扰开关与时段(HH:MM,可跨日) |
web_password_enabled | 是否要求密码才能访问配置页(默认 true) |
首次在 Web 中设置密码后,会在同文件写入 web_password_salt、web_password_hash(请勿手工泄露)。
除上述 Webhook 外,还可通过环境变量覆盖(已设置的环境变量不会被 config.json 覆盖):
LOGGER_DB_PATH、LOGGER_POLL_INTERVALMONITOR_EVENTS(逗号分隔)LOG_LEVEL、HTTP_POOL_SIZE、HTTP_RETRY_COUNT、HTTP_TIMEOUT、DEDUP_WINDOWLOG_RETENTION_DAYS、MAX_LOG_AGEUI_PORT:Web 端口(默认 18080)LOGTIME_DISPLAY_OFFSET_SECONDS:修正日志时间显示(默认 28800,即 +8 小时;若显示不准可调整)NOTIFY_RESTART_ENABLED、NOTIFY_RESTART_CONSECUTIVE、NOTIFY_RESTART_WINDOW、NOTIFY_RESTART_COOLDOWN:通知链路失败重启策略APP_HOME:自定义应用根目录(影响 config.json 解析路径,一般 Docker 内为 /app)/usr/trim/var/eventlogger_service/logger_data.db3LOGGER_DB_PATH=/path/to/logger_data.db3 或在 config.json 中设置 logger_db_pathdocker-compose.yml)。使用 Docker Compose(推荐,官方镜像)
在任意目录新建 docker-compose.yml,内容如下(或在克隆本仓库后对照修改):
yamlservices: fn-message-bot: image: sunanang/fn-message-bots:latest container_name: fn-message-bot restart: unless-stopped ports: - 18080:18080 volumes: - ./data/logs:/app/data/logs:rw # 数据目录,可修改 - ./data/cursor:/app/data/cursor:rw # 数据目录,可修改 - /usr/trim/var/eventlogger_service:/usr/trim/var/eventlogger_service:ro # 飞牛系统 eventlogger 目录,路径勿改 - ./config:/app/config:rw # 配置目录,可修改 environment: - TZ=Asia/Shanghai
浏览器访问 http://<本机IP>:18080 打开 Web 配置页。./data/logs、./data/cursor、./config 为相对 compose 文件所在目录的路径,可按需调整左侧宿主机路径。
从源码构建:若使用仓库根目录自带的 docker-compose.yml(build: .、服务名可能为 fn-message-bots),同样在项目根执行 docker compose up -d 即可。
本地运行(无 Docker)
依赖:Python 3.9+(见 pyproject.toml)。先安装依赖:pip install -e . 或 pip install -r requirements.txt(与镜像一致)。
bashPYTHONPATH=. LOGGER_DB_PATH=./logger_data.db3 WECHAT_WEBHOOK_URL=xxx python3 src/main.py
├── src/ │ ├── monitor/ # 数据库轮询、事件处理、模型 │ ├── notifier/ # 多平台通知、连接池 │ ├── utils/ # 日志、存储、健康检查、推送统计 │ ├── web/ # Web 配置 UI(Flask) │ ├── config.py │ └── main.py ├── config/config.json # 配置文件(可挂载,Web 可写) ├── data/logs # 运行日志与推送存储 ├── data/cursor # 轮询游标等 ├── tools/log_manager.py ├── docs/ # 文档(notification-channels 与各推送渠道子页) ├── scripts/ # 辅助脚本(如推送历史种子数据等) ├── .github/workflows/ # Docker 多架构 manifest 合并 │ ├── docker-manifest.yml │ └── merge-manifest.yml ├── Dockerfile ├── docker-compose.yml ├── deploy.sh # 本地 compose 部署 ├── healthcheck.sh # 容器健康检查 ├── publish-amd64.sh # AMD64 镜像构建与推送 ├── publish-arm64.sh # ARM64 镜像构建与推送 ├── LICENSE # MIT 许可证全文 └── pyproject.toml
docker compose logs。LOGTIME_DISPLAY_OFFSET_SECONDS(默认已为 +8 小时)。dedup_window(秒)。UI_PORT 并与 ports 一致。config.json,删除 web_password_salt 与 web_password_hash 后重启,再在页面重新设置密码(或暂时将 web_password_enabled 设为 false)。创作不易,为了项目的稳定和可持续发展,欢迎大家***
LICENSE 中的免责声明条款。config.json、访问密码与各类 Token,勿将密钥提交到公开仓库。本项目采用 MIT License。与 README 全文一致的纯文本见仓库根目录 LICENSE。
MIT License Copyright (c) 2024 Sunanang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务