
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
通过用户友好的API在网络中利用https://github.com/caronc/apprise%E7%9A%84%E5%8A%9F%E8%83%BD%E3%80%82
Apprise API设计用于轻松集成到需要简单通知解决方案的现有(和新)生态系统中。
www-data(通常ID为33)读写配置文件。为避免出现“保存配置时出错”,建议将本地/var/lib/apprise/config权限设置如下:
bash# 创建用户/组(如不存在),ID为33 id 33 &>/dev/null || sudo useradd \ --system --no-create-home --shell /bin/false \ -u 33 -g 33 www-data # 安全设置目录权限,仅允许www-data组访问: sudo chmod 770 -R /var/lib/apprise/config sudo chown 33:33 -R /var/lib/apprise/config # 可选:将自己添加到组以查看内容 sudo usermod -a -G 33 $(whoami) # 可能需要登出并重新登录使上述设置生效,或临时执行: sudo su - $(whoami)
另一种简单(但不建议用于生产环境)的方法是设置目录完全读写权限:
bash# 授予本地配置目录完全权限 chmod 777 /var/lib/apprise/config
支持的架构:amd64、arm/v7和arm64。可用标签:
latest:指向最新稳定版本。edge:指向master分支的最新推送版本。📣 要触发通知,需先定义一个或多个https://github.com/caronc/apprise/wiki%E4%BB%A5%E6%94%AF%E6%8C%81%E6%89%80%E9%9C%80%E6%9C%8D%E5%8A%A1%E3%80%82Apprise%E7%9B%AE%E5%89%8D%E6%94%AF%E6%8C%81100%E5%A4%9A%E7%A7%8D%E9%80%9A%E7%9F%A5%E6%9C%8D%E5%8A%A1%EF%BC%8C%E5%B9%B6%E6%8C%81%E7%BB%AD%E6%89%A9%E5%B1%95%E3%80%82%E8%AE%BF%E9%97%AEhttps://github.com/caronc/apprise/wiki%E6%9F%A5%E7%9C%8B%E6%94%AF%E6%8C%81%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%88%97%E8%A1%A8%E3%80%82
部分用户可能需要无需持久存储的辅助解决方案。以下API端点可直接发送通知到https://github.com/caronc/apprise/wiki%EF%BC%8C%E6%97%A0%E9%9C%80%E5%AD%98%E5%82%A8%E9%9C%80%E6%B1%82%EF%BC%9A
| 路径 | 方法 | 描述 |
|---|---|---|
/notify/ | POST | 向请求体中指定的URL或环境变量APPRISE_STATELESS_URLS中的URL发送一个或多个通知。请求体参数 📌 urls:一个或多个通知目标URL。如未指定,自动使用 settings.APPRISE_STATELESS_URLS或环境变量APPRISE_STATELESS_URLS的值。📌 body:消息内容,必填项。 📌 title:可选标题。 📌 type:消息类型,有效值: info、success、warning、failure。默认info。📌 format:文本格式,有效值: text、markdown、html。默认text。 |
以下是使用/notify/发送无状态通知的示例:
bash# 直接发送通知 curl -X POST -d 'urls=mailto://user:pass@gmail.com&body=测试消息' \ http://localhost:8000/notify # 发送带附件的通知 curl -X POST \ -F 'urls=mailto://user:pass@gmail.com' \ -F 'body=测试消息' \ -F attach=@Screenshot-1.png \ http://localhost:8000/notify # 发送多个附件,确保attach关键字唯一: curl -X POST \ -F 'urls=mailto://user:pass@gmail.com' \ -F 'body=测试消息' \ -F attach1=@Screenshot-1.png \ -F attach2=@/my/path/to/Apprise.doc \ http://localhost:8000/notify curl -X POST -d 'urls=mailto://user:pass@gmail.com&body=测试消息' \ -F @/path/to/your/attachment \ http://localhost:8000/notify # 使用JSON发送通知 curl -X POST -d '{"urls": "mailto://user:pass@gmail.com", "body":"测试消息"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify
您可预保存Apprise配置和/或URL集,并关联到自定义{KEY}。配置保存后,可通过apprisehttps://github.com/caronc/apprise/wiki/CLI_Usage%E6%88%96%E5%85%B6%E4%BB%96%E9%9B%86%E6%88%90%E6%A3%80%E7%B4%A2%E3%80%82%E5%86%85%E7%BD%AEWeb%E7%95%8C%E9%9D%A2%E6%8F%90%E4%BE%9B%E7%94%A8%E6%88%B7%E5%8F%8B%E5%A5%BD%E7%9A%84API%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F%EF%BC%8C%E5%BC%80%E5%8F%91%E8%80%85%E4%B9%9F%E5%8F%AF%E4%BD%BF%E7%94%A8%E4%BB%A5%E4%B8%8B%E7%AB%AF%E7%82%B9%EF%BC%9A
| 路径 | 方法 | 描述 |
|---|---|---|
/add/{KEY} | POST | 将Apprise配置(或URL集)保存到持久存储。 请求体参数 📌 urls:一个或多个Apprise URL,用逗号和/或空格分隔。 📌 config:YAML或TEXT格式的Apprise配置内容。 📌 format:如指定 config参数则必填,有效值:text、yaml。如设置APPRISE_CONFIG_LOCK,此路径不可用。 |
/del/{KEY} | POST | 从持久存储删除Apprise配置。如设置APPRISE_CONFIG_LOCK,此路径不可用。 |
/get/{KEY} | POST | 从持久存储返回Apprise配置,可直接用于Apprise CLI和/或AppriseConfig()对象(https://github.com/caronc/apprise/wiki/config%EF%BC%89%E3%80%82%E5%A6%82%E8%AE%BE%E7%BD%AE%60APPRISE_CONFIG_LOCK%60%EF%BC%8C%E6%AD%A4%E8%B7%AF%E5%BE%84%E4%B8%8D%E5%8F%AF%E7%94%A8%E3%80%82 |
/notify/{KEY} | POST | 向与{KEY}关联的所有端点发送通知。请求体参数 📌 body:消息内容,必填项。 📌 title:可选标题。 📌 type:消息类型,有效值: info、success、warning、failure。默认info。📌 tag:可选标签,仅通知带指定标签的服务。用逗号分隔表示“或”,空格分隔表示“与”。 📌 format:文本格式,有效值: text、markdown、html。默认text。 |
/json/urls/{KEY} | GET | 返回包含与{KEY}关联的所有URL和标签的JSON对象。 |
/details | GET | 设置Accept头为application/json,返回包含所有支持的Apprise URL的JSON对象。https://github.com/caronc/apprise/wiki/Development_Apprise_Details#apprise-details |
/json/urls/{KEY}响应示例:
json{ "tags": ["devops", "admin", "me"], "urls": [ { "url": "slack://TokenA/TokenB/TokenC", "tags": ["devops", "admin"] }, { "url": "discord://WebhookID/WebhookToken", "tags": ["devops"] }, { "url": "mailto://user:pass@gmail.com", "tags": ["me"] } ] }
可向/json/urls/{KEY}添加参数,如privacy=1隐藏密码和密钥,tag=按标签筛选结果(默认tag=all)。如设置APPRISE_CONFIG_LOCK,privacy=1始终生效,防止凭证泄露。
以下是使用curl向abc123发送通知的示例:
bash# 向{key}为'abc123'的配置发送通知 curl -X POST -d "body=测试消息" \ http://localhost:8000/notify/abc123 # 使用JSON发送 curl -X POST -d '{"body":"测试消息"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify/abc123 # 发送附件: curl -X POST \ -F 'urls=mailto://user:pass@gmail.com' \ -F 'body=测试消息' \ -F attach1=@Screenshot-1.png \ -F attach2=@/my/path/to/Apprise.doc \ http://localhost:8000/notify/abc123
🏷️ 可通过标签筛选通知。以下示例向abc123中标签为devops的服务发送通知:
bash# 向标签为'devops'的服务发送通知 curl -X POST -d 'tag=devops&body=测试消息' \ http://localhost:8000/notify/abc123 # 使用JSON发送 curl -X POST -d '{"tag":"devops", "body":"测试消息"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify/abc123
标签是Apprise的核心功能之一,可将多个通知分组,为同一URL分配多个标签,并通过标签表达式触发。
| 示例 | 效果 |
|---|---|
| TagA | TagA |
| TagA, TagB | TagA 或 TagB |
| TagA TagC, TagB | (TagA 与 TagC)或 TagB |
| TagB TagC | TagB 与 TagC |
bash# "与"示例 # 向标签为'devops'和'after-hours'的服务发送通知 # 空格表示"与",也可用"+"代替 curl -X POST -d '{"tag":"devops after-hours", "body":"仓库 outage"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify/abc123 # "或"示例 # 向标签为'dev'或'qa'的服务发送通知 # 逗号表示"或",逗号前后空格忽略 curl -X POST -d '{"tag":"dev, qa", "body":"bug #000123 重现 :("}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify/def456 # "与"和"或"组合示例 # 向标签为'leaders与teamA'或'leaders与teamB'的服务发送通知 curl -X POST -d '{"tag":"leaders teamA, leaders teamB", "body":"立即开会"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify/projectX
{KEY}长度为1-128字符,仅允许字母、数字、下划线(_)和连字符(-)。Content-Type: application/json使用JSON格式,默认application/x-www-form-urlencoded。/config),无额外依赖(如数据库)。环境变量可覆盖默认设置:
| 变量 | 描述 |
|---|---|
APPRISE_CONFIG_DIR | 配置文件持久存储路径。默认: - 使用Django manage runserver时:apprise_api/var/config;- 容器中: /config。 |
APPRISE_ATTACH_DIR | 上传附件存储路径。默认: - 使用Django manage runserver时:apprise_api/var/attach;- 容器中: /attach。 |
APPRISE_STATELESS_URLS | 无状态模式默认URL集,调用/notify时如未指定urls则使用。默认无值。 |
APPRISE_STATEFUL_MODE | 有状态模式,可选值: 📌 hash(默认):配置存储为哈希格式,便于索引和压缩; 📌 simple:配置直接写入磁盘,文件名为 {KEY}.cfg(TEXT)或{KEY}.yml(YAML);📌 disabled:禁用有状态存储,拒绝读写请求。 |
APPRISE_CONFIG_LOCK | 锁定配置,禁止删除/更新/访问有状态信息,但/notify仍可使用配置。设为yes启用,默认no。 |
APPRISE_DENY_SERVICES | 禁用的插件列表,逗号/空格分隔。指定一个 schema即可禁用整个插件。默认:windows, dbus, gnome, macos, syslog(阻止容器内本地操作)。如设置APPRISE_ALLOW_SERVICES,此变量忽略。 |
APPRISE_ALLOW_SERVICES | 允许的插件列表,逗号/空格分隔,仅字母数字。如设置,APPRISE_DENY_SERVICES忽略。 |
SECRET_KEY | Django安全盐值,用于哈希模式下配置文件的哈希序列。 |
ALLOWED_HOSTS | API可服务的主机/域名列表,空格分隔。默认*允许所有主机。 |
APPRISE_RECURSION_MAX | Apprise API服务器递归调用次数,用于apprise:// schema负载均衡。默认1。 |
APPRISE_WORKER_COUNT | 工作进程数,默认根据线程数计算。 |
BASE_URL | 代理后子路径访问API时的路径,默认未设置。 |
LOG_LEVEL | 日志级别,可选:CRITICAL、ERROR、WARNING、INFO、DEBUG。 |
DEBUG | 调试模式,设为yes启用,默认no。 |
首先安装Apprise:
bash# 安装apprise到环境 pip install apprise
从API拉取配置的场景
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务