ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Nextcloud AIO 可选附加组件(Optional Addons)功能验收与配置验证指南

Nextcloud AIO 可选附加组件(Optional Addons)功能验收与配置验证指南 云原生运维后端容器编排【免费下载链接】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-One 仓库中的手动 QA 测试计划 050-optional-addons.md 为主体完整讲解 AIO 界面中可选附加组件区域的验证流程如何在不同状态下启停组件、如何逐一验证 ClamAV、Collabora、Nextcloud Talk、Imaginary、Fulltextsearch、Talk Recording 等组件的真实生效情况以及 Collabora 专属的字典与附加命令行选项的输入校验规则。读完本文你将掌握一套可直接照做的功能验收清单并理解这些规则在 optional-containers.twig 界面与 ConfigurationManager.php 校验逻辑中的底层实现。一、这份 QA 文档在项目中的定位仓库的 tests/QA/readme.md 明确说明tests/QA目录存放的是手动 QA 测试计划用于在干净的测试实例上逐步验证功能是否符合预期。测试环境的搭建要求是合并所有可能破坏性变更后按 develop.md 的说明构建新容器停掉旧实例、删除旧实例并清理全部卷再启动一个全新的干净测试实例且最好从 001-initial-setup.md 开始按顺序执行。050-optional-addons.md正是这条 QA 序列中的一环它验证的是 AIO 界面中Optional addons可选附加组件模块的完整生命周期查看、变更、启动新容器、逐项功能验收、Collabora 专属配置校验最后衔接 055-community-containers.md 的社区容器测试。二、可选附加组件区域在哪里包含哪些组件QA 计划的第一步是在 AIO 界面中滚动到页面底部找到 Optional addons 区域。该区域在代码中对应模板 optional-containers.twig由 containers.twig 在备份容器未运行时引入。从模板可见该区域包含两类内容1. Office Suite办公套件单选卡片三选一且只能启用一个Nextcloud Officepowered by Euro-OfficeNextcloud Officepowered by Collabora OnlineONLYOFFICE模板中明确标注 deprecated已不建议新启用另有一个Disable office suite选项用于完全禁用2. Additional Optional Containers附加可选容器复选框列表对应 containers.json 中通过profiles字段区分的容器复选框对应容器说明ClamAVnextcloud-aio-clamav杀毒后端约需额外 1GB 内存Fulltextsearchnextcloud-aio-fulltextsearch全文搜索约需额外 1GB 内存Imaginarynextcloud-aio-imaginaryheic/heif/illustrator/pdf/svg/tiff/webp 预览Nextcloud Talknextcloud-aio-talk需在防火墙/路由器开放指定端口 TCP/UDPNextcloud Talk Recording-servernextcloud-aio-talk-recording依赖 Talk 启用约需 1GB 内存与 2 个 vCPUDocker Socket Proxynextcloud-aio-docker-socket-proxy模板中标注 deprecated建议改用 HaRPHaRPnextcloud-aio-harpNextcloud ExApps 的高可用反向代理Whiteboardnextcloud-aio-whiteboard白板各容器定义均可从 containers.json 的aio_services_v1数组中逐一查到例如 ClamAV 条目位于 containers.json其profiles为[clamav]内部端口 3310Collabora 条目位于 containers.json内部端口 9980并通过dictionaries%COLLABORA_DICTIONARIES%环境变量接收字典配置。三、变更规则仅允许在容器停止时修改QA 计划的第二条要求验证一条关键交互规则容器停止时可以更改可选附加组件容器运行中则不允许更改。这一规则在模板中有双重保障当任一容器处于运行状态时isAnyRunning true模板顶部会显示提示只能在容器停止时启用或禁用以下选项同时加载 disable-containers.js 禁用表单控件当容器全部停止时模板则提示用户必须点击列表下方的 Save changes 按钮保存变更不会自动保存见 optional-containers.twig。前端交互细节在 containers-form-submit.js 中实现提交按钮默认被隐藏只有检测到复选框勾选状态或 Office Suite 单选值相比初始状态发生变化时才显示containers-form-submit.js。该脚本还封装了几条联动规则可作为验收时的预期行为Talk Recording 依赖 TalkTalk 未勾选时Talk Recording 复选框被强制取消并禁用containers-form-submit.jsDocker Socket Proxy 已弃用勾选会弹出弃用警告并回滚勾选containers-form-submit.jsONLYOFFICE 已弃用勾选会弹出弃用警告并回滚containers-form-submit.jsHaRP 安全警告勾选 HaRP 会提示其暴露 Docker Socket 带来的安全风险containers-form-submit.js。提交后表单以POST方式发往api/configuration由 ConfigurationController.php 的SetConfig方法解析options-form字段通过ConfigurationManager持久化officeSuite、isClamavEnabled、isTalkEnabled、isTalkRecordingEnabled、isImaginaryEnabled、isFulltextsearchEnabled、isDockerSocketProxyEnabled、isHarpEnabled、isWhiteboardEnabled等配置项。四、逐项功能验收清单QA 计划的第三条要求启用任一选项后应启动一个同名或名称可比对的新容器并在界面的 Containers 区域中列出它。容器实际启动由 DockerController.php 的PerformRecursiveContainerStart完成它会先按depends_on递归启动依赖容器再删除旧容器、创建卷、拉取镜像、创建并启动容器、接入网络。由于可选容器会通过%XXX_ENABLED%占位符被注入到 Nextcloud 主容器的环境变量如CLAMAV_ENABLED、COLLABORA_ENABLED、TALK_ENABLED、IMAGINARY_ENABLED、FULLTEXTSEARCH_ENABLED、TALK_RECORDING_ENABLED见 containers.json因此必须等所有容器以新配置完整启动后再执行下列功能验证——这对应 QA 计划第四条验证选项是否被自动激活/停用的要求。每个组件的验收方法与期望结果如下表QA 文档原样保留并补充判定要点组件验收操作期望结果ClamAV在 Nextcloud 中尝试上传一个 EICAR 测试病毒文件EICAR 标准反病毒测试文件可从权威渠道获取其固定文本内容上传被 ClamAV 拦截/拒绝证明扫描链路已生效Collabora在 Nextcloud 中尝试打开一个.docx或.odt文件文件以在线编辑模式打开证明 WOPI 集成正常Nextcloud Talk打开 Nextcloud 的 Talk 应用新建一个聊天并在该聊天中尝试加入通话随后在设置中检查 HPBHigh Performance Backend与 TURN server 配置通话能建立设置页显示 HPB 与 TURN server 正常工作Imaginary在 Nextcloud 上传一张新图片随后查看 imaginary 容器的日志容器日志中出现与预览生成相关的新条目Fulltextsearch在 Nextcloud 中搜索某个文件内部出现的小标题/关键词搜索结果命中文件内部内容证明索引已生效Talk-recording发起一个通话并尝试录制录音功能可用产生录音文件需要说明的是Fulltextsearch 的首次索引可能耗时很长期间 Nextcloud 会不可用界面提示见 optional-containers.twigImaginary 目前与服务器端加密不兼容Talk 需要保证对应端口的 TCP 与 UDP 在防火墙/路由器上已开放并转发界面提示见 optional-containers.twig。这些都是在验收前应确认的前提条件。五、Collabora 专属配置字典Dictionaries验证QA 文档第五条专门针对 Collabora启用 Collabora 后Optional Addons 区域下方应出现一个可修改 Collabora 字典的区块。对应模板代码见 optional-containers.twig其渲染条件为office_suite collabora且容器未运行、已点击过启动按钮。验收要点有两项合法值校验de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru是合法设置而de.De这类写法不合法应被拒绝。重置按钮若已设置过字典区块应显示一个按钮允许一键删除该设置对应模板中的Reset Nextcloud Office dictionaries表单与delete_collabora_dictionaries字段。底层校验实现提交的collabora_dictionaries字段由 ConfigurationController.php 交给ConfigurationManager的collaboraDictionaries属性其 setter 调用validateCollaboraDictionariesConfigurationManager.phpif (!preg_match(#^[a-zA-Z_ ]$#, $CollaboraDictionaries)) { throw new InvalidSettingConfigurationException(The entered dictionaries do not seem to be a valid!); }正则^[a-zA-Z_ ]$只允许字母、下划线与空格——这正好解释了为什么de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru合法全为字母/下划线/空格而de.De非法含点号.。校验失败会抛出InvalidSettingConfigurationException由控制器返回 HTTP 422 并携带错误信息ConfigurationController.php。默认值行为若用户未设置字典配置管理器在生成 Collabora 容器环境变量时会将COLLABORA_DICTIONARIES回退为默认值de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru见 ConfigurationManager.php与模板输入框的 placeholder 完全一致。六、Collabora 专属配置附加选项Additional Options验证QA 文档第六条要求验证附加 Collabora 选项输入框的合法性校验net.content_security_policyfalse不应被接受而--o:net.content_security_policyframe-ancestors *.example.com:*;应该被接受。界面位于 optional-containers.twig同样只在 Collabora 启用、容器停止且已点击启动后渲染示例值在模板第 304 行。底层校验实现字段collabora_additional_options经 ConfigurationController.php 进入ConfigurationManagersetter 调用validateCollaboraAdditionalOptionsConfigurationManager.phpif (!preg_match(#^--o:#, $additionalCollaboraOptions)) { throw new InvalidSettingConfigurationException(The entered options must start with --o:. So the config does not seem to be a valid!); }校验规则只有一个核心约束必须以--o:前缀开头。这正是两份测试样例一拒一收的原因net.content_security_policyfalse缺少--o:前缀被拒绝--o:net.content_security_policyframe-ancestors *.example.com:*;以--o:开头被接受。该值的用途是向 Collabora 的coolwsd进程追加启动参数例如自定义net.content_security_policy等高级选项模板中同样提供了Reset additional Nextcloud Office options按钮对应delete_collabora_additional_options字段与 ConfigurationManager.php 的deleteAdditionalCollaboraOptions方法用于清除设置。两个字段的删除分支delete_collabora_dictionaries、delete_collabora_additional_options在 ConfigurationController.php 中统一处理且整个配置写入过程包在startTransaction()/commitTransaction()之间保证多字段更新一次性落盘ConfigurationManager.php。七、系统资源要求验收前置条件模板底部明确列出了启用可选组件时的最低系统要求optional-containers.twig这是验收环境必须满足的硬性条件启用任意可选容器至少2GB RAM、双核 CPU、40GB 系统存储启用 ClamAV、Nextcloud Talk Recording-server 或 Fulltextsearch至少3GB RAM启用 Talk Recording-server额外需要2 个 vCPU全部启用至少5GB RAM 和四核 CPU官方建议在最低要求基础上再预留至少1GB 内存。若测试实例资源不足容器可能反复重启或启动失败因此建议在干净且满足上述配置的环境中执行本验收清单。八、验证完成后的衔接当以上所有条目界面位置、停止态可改/运行态不可改、新容器启动并列出、六个组件的功能生效、Collabora 字典与附加选项的合法/非法值校验、重置按钮全部通过后即可继续执行后续测试计划 055-community-containers.md验证社区容器community containers的安装与运行行为。赞分享云原生运维后端容器编排【免费下载链接】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 AIO白板功能实时协作与绘图工具集成Nextcloud AIO白板功能实时协作与绘图工具集成 概述 Nextcloud All in OneAIO的白板功能是一个强大的实时协作工具它允许团云原生运维后端容器编排如何通过Claudian插件扩展Obsidian生态完整定制指南如何通过Claudian插件扩展Obsidian生态完整定制指南 Claudian插件是一款专为Obsidian设计的AI协作工具它将Claude CodeAI 应用代码智能体交互助手人工智能AI Agent超实用指南Nextcloud AIO PostgreSQL高可用配置与性能调优超实用指南Nextcloud AIO PostgreSQL高可用配置与性能调优 你是否遇到过Nextcloud文件加载缓慢、多人同时访问时卡顿的问题作为一款云原生运维后端容器编排上一篇番茄小说下载器完整版3 步跑通 EPUB 与有声书离线书库下一篇Kimi Code CLI 插件系统完全指南从安装管理到 Plugin Manifest 开发实战创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表