通过用户友好的API在网络中利用Apprise的功能。
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分支的最新推送版本。📣 要触发通知,需先定义一个或多个Apprise URL以支持所需服务。Apprise目前支持100多种通知服务,并持续扩展。访问[***]
部分用户可能需要无需持久存储的辅助解决方案。以下API端点可直接发送通知到Apprise支持的服务,无需存储需求:
| 路径 | 方法 | 描述 |
|---|---|---|
/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:***&body=测试消息' \ http://localhost:8000/notify # 发送带附件的通知 curl -X POST \ -F 'urls=mailto://user:***' \ -F 'body=测试消息' \ -F attach=@Screenshot-1.png \ http://localhost:8000/notify # 发送多个附件,确保attach关键字唯一: curl -X POST \ -F 'urls=mailto://user:***' \ -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:***&body=测试消息' \ -F @/path/to/your/attachment \ http://localhost:8000/notify # 使用JSON发送通知 curl -X POST -d '{"urls": "mailto://user:***", "body":"测试消息"}' \ -H "Content-Type: application/json" \ http://localhost:8000/notify
您可预保存Apprise配置和/或URL集,并关联到自定义{KEY}。配置保存后,可通过appriseCLI工具或其他集成检索。内置Web界面提供用户友好的API调用方式,开发者也可使用以下端点:
| 路径 | 方法 | 描述 |
|---|---|---|
/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()对象(详情)。如设置APPRISE_CONFIG_LOCK,此路径不可用。 |
/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对象。详情 |
/json/urls/{KEY}响应示例:
json{ "tags": ["devops", "admin", "me"], "urls": [ { "url": "slack://TokenA/TokenB/TokenC", "tags": ["devops", "admin"] }, { "url": "***://WebhookID/WebhookToken", "tags": ["devops"] }, { "url": "mailto://user:***", "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:***' \ -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拉取配置的场景
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429