Nextcloud AIO 通知容器(Notifications Community Container):实现社区容器向 Nextcloud 用户发送管理员通知
云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载导读本篇文章围绕 Nextcloud All-in-OneAIO仓库中 community-containers/notifications 社区容器展开讲解如何让其他 AIO 社区容器例如 Scrutiny 磁盘健康监控在检测到异常时自动向 Nextcloud 管理员发送站内通知。读完本文你将掌握该容器的作用、部署配置notifications.json的每一项参数含义、其与 Scrutiny 的联动方式以及 AIO 社区容器的添加、测试与移除流程。一、Notifications 容器的定位社区容器间的“通知桥梁”Nextcloud AIO 官方镜像提供了 notify.sh 与 notify-all.sh 两个脚本负责在容器内部向 Nextcloud 的管理员或全部用户推送站内通知。而 Notifications 社区容器则把这一能力开放给其他社区容器任何需要向用户告警的 AIO 社区容器都可以通过它把消息写入 Nextcloud 的通知系统。根据 community-containers/notifications/readme.md 的说明该容器允许其他 AIO 社区容器向 Nextcloud 用户发送管理员通知admin notifications。典型场景是 Scrutiny 容器磁盘 SMART 健康状态前端当 smartctl 检测到磁盘故障时Scrutiny 会借助 Notifications 容器把告警推送给 Nextcloud 管理员。其他社区容器如 Scrutiny │ 发现异常smartctl failure ▼ nextcloud-aio-notifications 容器 │ 通过 Docker socket 访问 Nextcloud 容器 ▼ Nextcloud 站内通知管理员用户二、部署配置逐项解读notifications.json 全参数说明该容器在 AIO 社区容器体系中的定义位于 notifications.json遵循aio_services_v1结构。完整内容如下{ aio_services_v1: [ { container_name: nextcloud-aio-notifications, display_name: Notifications, documentation: https://github.com/nextcloud/all-in-one/tree/main/community-containers/notifications, image: ghcr.io/szaimen/aio-notifications, image_tag: v1, internal_port: 10000, restart: unless-stopped, volumes: [ { source: %WATCHTOWER_DOCKER_SOCKET_PATH%, destination: /var/run/docker.sock, writeable: false } ], environment: [ TZ%TIMEZONE% ] } ] }各字段含义如下字段校验规则可对照 php/containers-schema.jsoncontainer_name容器名称必须以nextcloud-aio-前缀开头schema 要求^nextcloud-aio-[a-z0-9-]$此处为nextcloud-aio-notifications。display_name在 AIO 管理界面中显示的名称即 “Notifications”。documentation指向该容器文档的链接schema 要求以https://开头。image镜像地址ghcr.io/szaimen/aio-notificationsschema 要求形如^(ghcr.io/)?[a-z0-9/-]$即必须托管在 ghcr.io 且仅含小写字母、数字、斜杠与连字符。image_tag镜像标签v1。internal_port容器内部服务端口10000schema 允许([0-9]{1,5})|host|(%[A-Z_]%)。该端口仅在 AIO 内部网络nextcloud-aio中暴露不会映射到宿主机因此对外不可见。restart重启策略schema 仅允许unless-stopped。volumes将%WATCHTOWER_DOCKER_SOCKET_PATH%由 AIO 注入的 Docker socket 路径变量只读挂载到容器内/var/run/docker.sockwriteable: false保证只读访问避免社区容器篡改 Docker 守护进程。environment仅注入TZ%TIMEZONE%即沿用 AIO 管理界面中设置的系统时区。注意该容器没有声明ports、cap_add、backup_volumes等字段意味着它不对外提供端口、不请求额外内核能力、也不参与 AIO 的备份卷机制对比 scrutiny.json 中声明的nextcloud_aio_scrutiny与nextcloud_aio_scrutiny_db备份卷即可看到差异。三、通知是怎么发出去的底层调用链与源码佐证Notifications 容器并非在 Nextcloud 之外另起一套消息系统而是通过 Docker socket 进入 Nextcloud 容器、调用occ notification:generate命令完成推送。仓库中现成的两个脚本可以帮你理解这条链路Containers/nextcloud/notify.sh向管理员发送通知。脚本先检查通知应用是否启用config:app:get notifications enabled再通过occ group:list admin一次性列出管理员组成员最后逐个调用occ notification:generate $admin $NC_DOMAIN: $SUBJECT -l $MESSAGE --object-typeupdate --object-id$OBJECT_ID。其中OBJECT_ID是对主题做 SHA-256 哈希后截取前 64 字符生成的稳定标识Nextcloud 对 object-id 长度限制为 64 字符保证同一主题的通知可被去重/关联。Containers/nextcloud/notify-all.sh向全部用户发送通知通过occ user:list --limit0关闭默认 500 用户的限制来枚举所有用户。在 PHP 侧php/src/Docker/DockerActionManager.php 的sendNotification(Container $container, string $subject, string $message, string $file /notify.sh)方法通过execCommandInContainer在目标容器内执行bash /notify.sh $subject $message其底层走 Docker Engine API 的containers/{name}/exec接口创建并启动 exec 实例见同文件 execCommandInContainer。AIO 官方容器自身的更新成功/失败、应用更新、Onlyoffice/EuroOffice/ClamAV 启动超时等场景见 Containers/nextcloud/entrypoint.sh均复用bash /notify.sh推送管理员通知Notifications 社区容器实质上就是把这条成熟链路开放给第三方社区容器复用。从源码结构可以推断Notifications 容器的核心职责是代理式地完成“容器事件 → Docker socket → Nextcloud 容器内 occ 命令 → 站内通知”的调用因此它需要%WATCHTOWER_DOCKER_SOCKET_PATH%的只读挂载。四、典型联动场景Scrutiny 磁盘告警通知文档明确给出的应用案例是 Scrutiny 容器Scrutiny 是一个 SMART 统计信息的 Web 前端镜像ghcr.io/szaimen/aio-scrutinyimage_tag: v2自动配置后通过http://internal.ip.of.server:8001提供磁盘仪表盘该容器仅建议在家庭网络运行且会以只读方式挂载宿主机全部/dev与/run/udev以获得 smartctl 数据这存在安全风险见 scrutiny.json 中的cap_add: SYS_RAWIO, SYS_ADMIN与卷声明启用 Notifications 容器后Scrutiny 在发现 smartctl 故障时会发送管理员通知——这正是 community-containers/notifications/readme.md 中“It needs to be enabled for the scrutiny container for example to make use of admin notifications that are sent if a smartctl failure was found”所描述的场景。换言之Notifications 容器自身不产生告警它扮演的是告警“投递管道”由上游容器如 Scrutiny检测异常由它把消息送达 Nextcloud 管理员。五、如何把 Notifications 容器加入 AIO 堆栈从 AIO v11 开始社区容器的管理完全通过 AIO Web 界面完成界面末尾的 “Community Containers” 区块需向下滚动才能看到详见 community-containers/readme.md。操作要点在 AIO 管理界面中滚动到社区容器区域找到 “Notifications”勾选启用并启动容器AIO 会依据notifications.json自动完成拉取镜像、创建容器、挂载 Docker socket 与注入时区变量等步骤务必先阅读各容器文档再启用——部分容器之间存在兼容性限制未加甄别可能导致 AIO 容器启动失败若要从堆栈中移除在 Web 界面移除后可依次执行sudo docker rm nextcloud-aio-notifications、sudo docker image prune -a清理不再使用的镜像并用sudo docker volume ls检查残留卷该容器未声明数据卷通常无残留此步骤为通用清理流程。没有服务器 CLI 访问权限时也可借助 container-management 社区容器通过 Web 会话执行 Docker 命令。六、进阶在自己的安装中测试新社区容器如果你希望仿照 Notifications 的模式编写自己的社区容器可参考 community-containers/readme.md 的本地测试流程先用标准校验器以及仓库内的 JSON Schema php/containers-schema.json 校验你的 JSON 文件在服务器某处例如/root创建容器目录如new-container复制到主控容器内docker cp /root/new-container nextcloud-aio-mastercontainer:/var/www/docker-aio/community-containers/重启主控容器docker restart nextcloud-aio-mastercontainer打开 AIO 界面即可看到新社区容器。完整的 JSON 字段示例可参考 php/containers.jsonCaddy、Fail2ban、Local AI、Plex 等子目录也是不错的参照模板。七、维护信息与使用前提维护者该容器由社区维护维护者为 szaimen同时维护 Scrutiny 等容器。按 community-containers/readme.md 的声明所有社区容器均为社区维护安全性与更新及时性由社区负责无长期保证生产环境启用前应自行评估。镜像来源镜像托管于 ghcr.ioGitHub Container Registry仓库内通过 php/src/Docker/GitHubContainerRegistryManager.php 等管理器负责拉取与凭据处理。使用前提需要 Nextcloud 实例已启用通知应用notifications app否则notify.sh会以 “Cannot send notification as notification app is not enabled.” 退出通知仅发送给管理员用户notify.sh或全部用户notify-all.sh具体取决于调用方使用哪个入口。结语Notifications 社区容器是 AIO 生态中一个轻量而关键的“通知管道”它以只读挂载 Docker socket 的方式把社区容器尤其是 Scrutiny 磁盘监控的异常事件转化为 Nextcloud 管理员站内通知。通过 notifications.json 的逐字段解析、notify.sh 的底层实现以及 DockerActionManager.php 的调用链你可以清晰地理解它的工作原理并据此规划自己的社区容器告警方案。赞分享云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载相关推荐Synapse Server Notices 管理 API 实战指南管理员向用户发送服务器通知Synapse Server Notices 管理 API 实战指南管理员向用户发送服务器通知 Server Notices服务器通知是 Synapse后端即时通讯推送通知神器 - Push Notifications推送通知神器 Push Notifications 在移动应用开发中推送通知是与用户保持连接的关键工具。有了这个开源项目你将拥有一款跨平台的测试利器——Pu告别延迟Nextcloud AIO通知推送打造无缝移动办公体验告别延迟Nextcloud AIO通知推送打造无缝移动办公体验 你是否遇到过团队协作时文件更新未及时察觉重要会议提醒被工作流淹没Nextcloud AIO云原生运维后端容器编排上一篇3个步骤如何用Ahk2Exe高效编译AutoHotkey脚本为独立EXE下一篇高性能编译工具架构设计Ahk2Exe解决脚本依赖问题的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

ThreadLocal深入解析:从存储结构到线程池脏数据与内存泄漏

ThreadLocal深入解析:从存储结构到线程池脏数据与内存泄漏

先说个真实排查经历。前几天一个查询接口在压测时,日志里偶尔出现上一个请求的用户ID,查到最后才发现,问题出在一个没清理的ThreadLocal上。很多人对ThreadLocal有执念:既然它叫“线程局部变量”,那多线程访问同一个变…

2026/10/2 21:27:36 阅读更多 →
可视化搭建 keepAlive 模式:用 createPortal 分离 DOM 与 React 实例,根治拖拽跨父级移动的 Remount 卡顿

可视化搭建 keepAlive 模式:用 createPortal 分离 DOM 与 React 实例,根治拖拽跨父级移动的 Remount 卡顿

文档技术博客教程 【免费下载链接】weekly 前端精读周刊。帮你理解最前沿、实用的技术。 项目地址: https://gitcode.com/GitHub_Trending/we/weekly 点击查看 免费下载 在可视化搭建场景中,拖拽组件跨越不同容器、切换父级是高频操作,而 Re…

2026/10/2 21:27:36 阅读更多 →
如何把 Windows 11 任务栏找回经典快速启动工具栏?ExplorerPatcher 8 分钟配置完整指南

如何把 Windows 11 任务栏找回经典快速启动工具栏?ExplorerPatcher 8 分钟配置完整指南

如何把 Windows 11 任务栏找回经典快速启动工具栏?ExplorerPatcher 8 分钟配置完整指南 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher …

2026/10/2 21:26:36 阅读更多 →

最新新闻

WinForm+Modbus通讯源码详解:从串口配置到PLC数据读取

WinForm+Modbus通讯源码详解:从串口配置到PLC数据读取

简介:这是一套基于C# Winform开发的Modbus工业通讯完整源码,专为需要对接PLC设备的桌面应用开发者设计,完整支持Modbus TCP与串口两种主流通讯方式,开发环境为Visual Studio 2015,基于.NET 4.0框架,无需额外…

2026/10/2 22:11:20 阅读更多 →
多径衰落信道下的OFDM仿真:MATLAB实现与BER曲线优化

多径衰落信道下的OFDM仿真:MATLAB实现与BER曲线优化

简介:这是一份面向无线通信初学者与科研人员的OFDM系统仿真MATLAB源码包,用于在多径衰落信道条件下搭建完整的信号传输链路,分析误码率等关键性能,属于可直接修改参数运行的实践型程序。包内共4个文件,全部为m脚本源码…

2026/10/2 22:11:20 阅读更多 →
SpringBoot建筑工程项目管理系统设计与实现全解析

SpringBoot建筑工程项目管理系统设计与实现全解析

最近好几个做毕设和刚转行做后端的朋友都在问同一个东西: 基于SpringBoot的建筑工程项目管理系统 。这确实是个很经典的选题——业务领域足够具体、功能边界清晰、技术栈主流,而且源码和讲解视频的配套资料也比较齐全,拿来学习或直接作为毕…

2026/10/2 22:11:20 阅读更多 →
为什么PhyAgentOS坚持“先证据,后结论“:执行、证据、判定三事实分离架构深度剖析

为什么PhyAgentOS坚持“先证据,后结论“:执行、证据、判定三事实分离架构深度剖析

为什么PhyAgentOS坚持"先证据,后结论":执行、证据、判定三事实分离架构深度剖析 【免费下载链接】PhyAgentOS-core PhyAgentOS is a Recursive Self-Improving (RSI) physical agent operating system that enables agents to recursively sel…

2026/10/2 22:11:20 阅读更多 →
Hindsight Experience Replay:破解稀疏奖励困境的强化学习利器

Hindsight Experience Replay:破解稀疏奖励困境的强化学习利器

1. 从“后见之明”说起:hindsight 到底在讲什么 1.1 这个词本身就不简单 很多人第一次看到 hindsight 这个词,是在英语阅读理解里,意思是“事后聪明”、“后见之明”。俗话说的“马后炮”,本质上就是 hindsight——事情发生之后再…

2026/10/2 22:11:20 阅读更多 →
AI内容安全边界与博主创作规范

AI内容安全边界与博主创作规范

我不能基于“特朗普谈AI失控风险与中美差距”这一标题生成博文。 原因如下: 该项目标题涉及外国政治人物公开言论,且明确指向 国家间技术对比(中美差距) 和 宏观政策/地缘科技议题(AI失控、国家战略) …

2026/10/2 22:10:19 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 6:09:11 阅读更多 →