```xml
<!-- -*- nxml-child-indent: 4; tab-width: 4; indent-tabs-mode: nil -*- -->
<config>

  <!-- 更详细的配置文档请参阅：https://sdk.collaboraonline.com/docs/installation/Configuration.html -->

  <!-- 注意：'default' 属性用于记录设置的默认值，并在部署时缺少该条目时用作备用值 -->
  <!-- 注意：添加新条目时，必须在 WSD 中设置默认值，以防部署时缺少该条目 -->

  <!-- ========================================
  辅助功能设置
  ======================================== -->
  <accessibility desc="辅助功能设置">
    <enable type="bool" desc="控制是否启用辅助功能支持" default="false">false</enable>
  </accessibility>

  <!-- ========================================
  允许的写作辅助语言
  ======================================== -->
  <allowed_languages desc="此实例支持的写作辅助语言列表（拼写检查、语法检查、同义词词典、连字符）。允许过多会对启动性能产生负面影响。" default="de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru">de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru zh_CN</allowed_languages>

  <!-- ========================================
  外部拼写和语法检查服务配置
  ======================================== -->
  <languagetool desc="远程拼写和语法检查 API 设置">
    <enabled desc="启用远程拼写和语法检查器" type="bool" default="false">false</enabled>
    <base_url desc="API 服务器的 HTTP 端点，末尾不带 /check 或 /languages 后缀" type="string" default=""></base_url>
    <user_name desc="高级使用的 LanguageTool 或 Duden 账户用户名" type="string" default=""></user_name>
    <api_key desc="高级使用的 API 密钥" type="string" default=""></api_key>
    <ssl_verification desc="启用或禁用 SSL 验证。在使用自签名证书的测试环境中可能需要禁用" type="string" default="true">true</ssl_verification>
    <rest_protocol desc="REST API 协议。LanguageTool 留空，Duden Korrekturserver 使用字符串 'duden'" type="string" default=""></rest_protocol>
  </languagetool>

  <!-- ========================================
  DeepL 翻译服务配置
  ======================================== -->
  <deepl desc="DeepL 翻译服务 API 设置">
    <enabled desc="如果为 true，在紧凑视图中显示翻译选项为菜单条目，在选项卡视图中显示为图标" type="bool" default="false">false</enabled>
    <api_url desc="API 的 URL" type="string" default=""></api_url>
    <auth_key desc="由您的账户生成的身份验证密钥" type="string" default=""></auth_key>
  </deepl>

  <!-- ========================================
  系统路径配置
  ======================================== -->
  <sys_template_path desc="包含共享库等的模板树路径，用作子进程 chroot jail 的源" type="path" relative="true" default="systemplate"></sys_template_path>
  <child_root_path desc="将在其下创建子进程 chroot jail 的目录路径。应与 systemplate 和 lotemplate 位于同一文件系统上。必须是空目录。" type="path" relative="true" default="jails"></child_root_path>
  <mount_jail_tree desc="控制是否挂载 systemplate 和 lotemplate 内容，这比默认的链接/复制每个文件快得多" type="bool" default="true">true</mount_jail_tree>

  <!-- ========================================
  服务器配置
  ======================================== -->
  <server_name desc="运行 coolwsd 的服务器的外部主机名:端口。如果为空，则从请求中派生（如果这不起作用，请设置它）。可以在反向代理后面或主机名无法直接访问时指定。" type="string" default=""></server_name>
  <file_server_root_path desc="应被视为文件服务器根目录的目录路径。这应该是包含 cool 的目录。" type="path" relative="true" default="browser/../"></file_server_root_path>
    <hexify_embedded_urls desc="启用以保护编码的 URL 不被中间跳点解码。在 Azure 部署上特别有用" type="bool" default="false">false</hexify_embedded_urls>
    <experimental_features desc="启用/禁用实验性功能" type="bool" default="true">true</experimental_features>

    <!-- ========================================
         性能和资源配置
         ======================================== -->
    <memproportion desc="所有 Collabora Online 进程消耗的可用内存的最大百分比，超过此百分比后，我们开始清理空闲文档。如果设置了 cgroup 内存限制，则这是该限制的最大百分比。" type="double" default="80.0"></memproportion>
    <num_prespawn_children desc="提前启动并等待新客户端的子进程数量" type="uint" default="4">4</num_prespawn_children>
    <fetch_update_check desc="每隔多少小时获取最新版本数据。默认为 10 小时。" type="uint" default="10">10</fetch_update_check>
    <allow_update_popup desc="允许在编辑器中显示关于更新的通知" type="bool" default="true">true</allow_update_popup>

    <!-- ========================================
         文档特定设置
         ======================================== -->
    <per_document desc="文档特定设置，包括 LO Core 设置">
        <max_concurrency desc="处理文档时使用的最大线程数" type="uint" default="4">4</max_concurrency>
        <batch_priority desc="批处理（如 convert-to）进程使用的（较低）优先级，以避免使交互式进程饿死" type="uint" default="5">5</batch_priority>
        <bgsave_priority desc="后台保存进程使用的（较低）优先级，以释放时间给交互式进程" type="uint" default="5">5</bgsave_priority>
        <bgsave_timeout_secs desc="等待后台保存进程完成的默认最大秒数，超时后放弃并恢复为同步保存" type="uint" default="120">120</bgsave_timeout_secs>
        <redlining_as_comments desc="如果为 true，则将修订显示为注释" type="bool" default="false">false</redlining_as_comments>
        <pdf_resolution_dpi desc="用于将 PDF 文档渲染为图像的分辨率（DPI）。内存消耗成比例增长。必须是小于 385 的正值。默认为 96。" type="uint" default="96">96</pdf_resolution_dpi>

        <!-- 超时设置 -->
        <idle_timeout_secs desc="卸载空闲文档之前的最大秒数。默认为 1 小时。" type="uint" default="3600">3600</idle_timeout_secs>
        <idlesave_duration_secs desc="文档空闲后，如果已修改，应保存的秒数。设为 0 时禁用。默认为 30 秒。" type="uint" default="30">36000</idlesave_duration_secs>
        <autosave_duration_secs desc="文档修改后，应自动保存的秒数。设为 0 时禁用。默认为 5 分钟。" type="uint" default="300">0</autosave_duration_secs>

        <!-- 保存设置 -->
        <background_autosave desc="允许在可能的情况下在 forked 后台进程中进行自动保存" type="bool" default="true">true</background_autosave>
        <background_manualsave desc="允许在可能的情况下在 forked 后台进程中进行手动保存" type="bool" default="true">true</background_manualsave>
        <always_save_on_exit desc="在退出最后一个编辑器时，如果文档已修改，始终执行保存和上传。这允许存储来存储文档，如果它之前作为优化而跳过了这样做。" type="bool" default="false">false</always_save_on_exit>

        <!-- 资源限制 -->
        <limit_virt_mem_mb desc="每个文档进程允许的最大虚拟内存。0 表示无限制。" type="uint">0</limit_virt_mem_mb>
        <limit_stack_mem_kb desc="每个文档进程允许的最大堆栈大小。0 表示无限制。" type="uint">8000</limit_stack_mem_kb>
        <limit_file_size_mb desc="每个文档进程允许写入的最大文件大小。0 表示无限制。" type="uint">0</limit_file_size_mb>
        <limit_num_open_files desc="每个文档进程允许打开的最大文件数。0 表示无限制。" type="uint">0</limit_num_open_files>
        <limit_load_secs desc="等待文档加载成功的最大秒数。0 表示无限制。" type="uint" default="100">100</limit_load_secs>
        <limit_store_failures desc="卸载文档时连续保存并上传到存储失败的最大次数。0 表示无限制（不推荐）。" type="uint" default="5">5</limit_store_failures>
        <limit_convert_secs desc="等待文档转换成功的最大秒数。0 表示无限制。" type="uint" default="100">100</limit_convert_secs>
        <min_time_between_saves_ms desc="在磁盘上保存文档之间的最小毫秒数" type="uint" default="500">500</min_time_between_saves_ms>
        <min_time_between_uploads_ms desc="将文档上传到存储之间的最小毫秒数" type="uint" default="5000">5000</min_time_between_uploads_ms>

        <!-- 清理设置 -->
        <cleanup desc="检查资源消耗（不良）文档并终止相关的 kit 进程。如果文档在 idle_time_secs 时间内处于空闲状态且内存使用超过 limit_dirty_mem_mb 或 CPU 使用超过 limit_cpu_per，则认为该文档是资源消耗型（不良）文档" enable="true">
            <cleanup_interval_ms desc="两次检查之间的间隔" type="uint" default="10000">10000</cleanup_interval_ms>
            <bad_behavior_period_secs desc="在终止相关 kit 进程之前，文档处于不良状态的最小时间段。如果在此期间不良文档的条件未满足一次，则此期间将重置" type="uint" default="60">60</bad_behavior_period_secs>
            <idle_time_secs desc="文档成为不良状态候选者的最小空闲时间" type="uint" default="300">300</idle_time_secs>
            <limit_dirty_mem_mb desc="文档成为不良状态候选者的最小内存使用量" type="uint" default="3072">3072</limit_dirty_mem_mb>
            <limit_cpu_per desc="文档成为不良状态候选者的最小 CPU 使用率" type="uint" default="85">85</limit_cpu_per>
            <lost_kit_grace_period_secs desc="丢失的 kit 进程（未被 coolwsd 引用）在终止之前解决其丢失状态的最小宽限期。要禁用丢失的 kit 清理，请使用值 0" default="120">120</lost_kit_grace_period_secs>
        </cleanup>
    </per_document>

    <!-- ========================================
         视图特定设置
         ======================================== -->
    <per_view desc="视图特定设置">
        <out_of_focus_timeout_secs desc="当浏览器选项卡不再处于焦点时，在变暗并停止更新之前的最大秒数。默认为 300 秒。" type="uint" default="300">300</out_of_focus_timeout_secs>
        <idle_timeout_secs desc="当用户不再活动时（即使浏览器处于焦点），在变暗并停止更新之前的最大秒数。默认为 15 分钟。" type="uint" default="900">900</idle_timeout_secs>
        <custom_os_info desc="在'关于'对话框中显示的自定义 OS 版本字符串，如果为空则从系统获取" type="string" default=""></custom_os_info>
        <min_saved_message_timeout_secs type="uint" desc="显示上次修改消息之前的最小秒数" default="6">6</min_saved_message_timeout_secs>
    </per_view>

    <!-- ========================================
         版本后缀
         ======================================== -->
    <ver_suffix desc="附加到 etag 以允许在开发期间轻松刷新已更改的文件" type="string" default=""></ver_suffix>

    <!-- ========================================
         日志配置
         ======================================== -->
    <logging>
        <color type="bool">true</color>
        <!-- 注意：使用 "make run" 时，logging.level 将在 coolwsd 命令行上设置，
             因此如果要更改它进行测试，请在 Makefile.am 中进行，而不是在这里 -->
        <level type="string" desc="可以是 0-8（数字越小越不详细），或 none（关闭日志记录），fatal、critical、error、warning、notice、information、debug、trace" default="warning">warning</level>
        <level_startup type="string" desc="与 level 相同 - 但用于最有问题的初始启动阶段，启动完成后日志记录恢复为上面配置的 level" default="trace">trace</level_startup>
        <disabled_areas type="string" desc="高详细日志（即 info 到 trace）可禁用，逗号分隔：Generic、Pixel、Socket、WebSocket、Http、WebServer、Storage、WOPI、Admin、Javascript" default="Socket,WebSocket,Admin,Pixel">Socket,WebSocket,Admin,Pixel</disabled_areas>
        <most_verbose_level_settable_from_client type="string" desc="来自客户端的 loggingleveloverride 消息不能设置比这更详细的日志级别" default="notice">notice</most_verbose_level_settable_from_client>
        <least_verbose_level_settable_from_client type="string" desc="来自客户端的 loggingleveloverride 消息不能设置比这更不详细的日志级别" default="fatal">fatal</least_verbose_level_settable_from_client>
        <protocol type="bool" desc="从开始启用最小的客户端 JS 协议日志记录">false</protocol>
        <!-- lokit_sal_log 示例：记录与 WebDAV 相关的消息，这对调试插入 - 图像操作很有趣："+TIMESTAMP+INFO.ucb.ucp.webdav+WARN.ucb.ucp.webdav"
             另请参阅：https://docs.libreoffice.org/sal/html/sal_log.html -->
        <lokit_sal_log type="string" desc="微调来自 LOKit 的日志消息。默认是抑制来自 LOKit 的日志消息。" default="-INFO-WARN">-INFO-WARN</lokit_sal_log>

        <!-- 文件日志配置 -->
        <file enable="false">
            <!-- 如果使用 /var/log 以外的路径，并且从 systemd 运行 coolwsd，请确保在 coolwsd.service 中启用该路径（ReadWritePaths）。
                 此外，日志文件路径必须对 'cool' 用户可写。 -->
            <property name="path" desc="日志文件路径">/var/log/coolwsd.log</property>
            <property name="rotation" desc="日志文件轮换策略。参见 Poco FileChannel。">never</property>
            <property name="archive" desc="将时间戳或数字附加到存档的日志文件名">timestamp</property>
            <property name="compress" desc="启用/禁用日志文件压缩">true</property>
            <property name="purgeAge" desc="要保留的日志文件的最大年龄。参见 Poco FileChannel。">10 days</property>
            <property name="purgeCount" desc="要保留的日志存档的最大数量。使用 'none' 禁用清除。参见 Poco FileChannel。">10</property>
            <property name="rotateOnOpen" desc="启用/禁用打开时的日志文件轮换">true</property>
            <property name="flush" desc="启用/禁用记录每行后刷新。可能会损害性能。请注意，如果不在每行后刷新，来自不同进程的日志行将不会按时间顺序出现。">false</property>
        </file>

        <!-- 匿名化配置 -->
        <anonymize>
            <anonymize_user_data type="bool" desc="启用以在日志中匿名化/混淆用户数据。如果默认值为 true，则在编译时强制执行，无法禁用。" default="false">false</anonymize_user_data>
            <anonymization_salt type="uint" desc="用于在日志中匿名化/混淆用户数据的盐。使用秘密的 64 位随机数。" default="82589933">82589933</anonymization_salt>
        </anonymize>

        <docstats type="bool" desc="启用以在日志中查看文档处理信息" default="false">false</docstats>
        <userstats desc="启用用户统计。即：记录文件和用户的详细信息" type="bool" default="false">false</userstats>
        <disable_server_audit type="bool" desc="禁用服务器审计对话框和通知。管理员将不再在应用程序用户界面中看到警告。这不会影响日志文件。" default="false">false</disable_server_audit>
    </logging>

    <!-- ========================================
         Canvas 幻灯片放映
         ======================================== -->
    <canvas_slideshow_enabled type="bool" desc="如果为 true，则在客户端渲染 WebGL 演示文稿，否则使用交互式 SVG" default="true">true</canvas_slideshow_enabled>

    <!-- ========================================
         UI 命令日志
         ======================================== -->
    <logging_ui_cmd>
        <merge type="bool" desc="如果为 true，则将彼此之后的重复命令合并到 1 行。如果为 false，则每个命令都是 1 个新行。" default="true">true</merge>
        <merge_display_end_time type="bool" desc="如果为 true，则还会记录合并命令的持续时间" default="false">true</merge_display_end_time>
        <file enable="false">
            <property name="path" desc="日志文件路径">/var/log/coolwsd-ui-cmd.log</property>
            <property name="purgeCount" desc="要保留的日志存档的最大数量。使用 'none' 禁用清除。参见 Poco FileChannel。">10</property>
            <property name="rotateOnOpen" desc="启用/禁用打开时的日志文件轮换">true</property>
            <property name="flush" desc="启用/禁用记录每行后刷新">false</property>
        </file>
    </logging_ui_cmd>

    <!-- ========================================
         跟踪事件
         ======================================== -->
    <trace_event desc="打开生成 Chrome 跟踪事件文件的可能性" enable="false">
        <path desc="跟踪事件文件的输出路径，如果在运行时打开，将写入该路径" type="string" default="/var/log/coolwsd.trace.json">/var/log/coolwsd.trace.json</path>
    </trace_event>

    <!-- ========================================
         浏览器控制台日志
         ======================================== -->
    <browser_logging desc="在浏览器控制台中记录" default="false">false</browser_logging>

    <!-- ========================================
         跟踪配置
         ======================================== -->
    <trace desc="转储命令和通知以供重放。当 'snapshot' 为 true 时，源文件首先被复制到路径。" enable="false">
        <path desc="保存跟踪文件和文档的输出路径。使用 '%' 作为时间戳以避免覆盖。例如：/some/path/to/cooltrace-%.gz" compress="true" snapshot="false"></path>
        <filter>
            <message desc="要排除的消息的正则表达式模式"></message>
        </filter>
        <outgoing>
            <record desc="是否记录传出消息" default="false">false</record>
        </outgoing>
    </trace>

    <!-- ========================================
         网络设置
         ======================================== -->
    <net desc="网络设置">
        <!-- 在 localhost 解析为 IPv6 [::1] 地址优先的系统上，当 net.proto 为 all 且 net.listen 为 loopback 时，
             coolwsd 意外地仅在 [::1] 上监听。如果要使用 127.0.0.1，则需要将 net.proto 更改为 IPv4。 -->
        <proto type="string" default="all" desc="要使用的协议：IPv4、IPv6 或 all（两者）">all</proto>
        <listen type="string" default="any" desc="coolwsd 绑定到的监听地址。可以是 'any' 或 'loopback'">any</listen>
        <!-- 这允许您将所有 URL 移到子路径中，从 https://my.com/browser/a123... 到 https://my.com/my/sub/path/browser/a123... -->
        <service_root type="path" default="" desc="为所有页面、websocket 等的基本 URL 添加此路径前缀。这包括发现 URL。"></service_root>

        <!-- POST 请求允许/拒绝配置 -->
        <post_allow desc="允许/拒绝 POST（REST）的客户端 IP 地址" allow="true">
            <host desc="IPv4 私有 192.168 块作为纯 IPv4 点分十进制地址">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 环回（localhost）地址">127\.0\.0\.1</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:127\.0\.0\.1</host>
            <host desc="IPv6 环回（localhost）地址">::1</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 1 部分">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 2 部分">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 3 部分">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 10.0.0.0/8 子网（Podman）">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
        </post_allow>

        <!-- LOK 允许配置 -->
        <lok_allow desc="允许作为已编辑文件内的外部数据源的主机。所有允许的 post_allow.host 和 storage.wopi 条目也被视为允许的数据源。例如用于：PostMessage Action_InsertGraphic、=WEBSERVICE() 函数、单元格中的外部引用">
            <host desc="IPv4 私有 192.168 块作为纯 IPv4 点分十进制地址">192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 环回（localhost）地址">127\.0\.0\.1</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:127\.0\.0\.1</host>
            <host desc="IPv6 环回（localhost）地址">::1</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 1 部分">172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 2 部分">172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 172.16.0.0/12 子网第 3 部分">172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="IPv4 私有 10.0.0.0/8 子网（Podman）">10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="同上，但作为 IPv4 映射的 IPv6 地址">::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}</host>
            <host desc="通过名称访问 localhost">localhost</host>
        </lok_allow>

        <content_security_policy desc="通过指定一个或多个策略指令（用分号分隔）来自定义 CSP 标头。参见 w3.org/TR/CSP2"></content_security_policy>
        <frame_ancestors desc="已过时：使用 content_security_policy。指定允许嵌入 Collabora Online iframe 的人（coolwsd 和 WOPI 主机始终允许）。用空格分隔多个主机。"></frame_ancestors>
        <connection_timeout_secs desc="指定 coolwsd 发起的连接（如 WOPI 连接）的连接、发送、接收超时（以秒为单位）" type="int" default="30">30</connection_timeout_secs>

        <!-- 此设置从根本上改变了 online 的工作方式，不应在生产环境中使用 -->
        <proxy_prefix type="bool" default="false" desc="启用通过传入的 ProxyPrefix 重定向请求">false</proxy_prefix>
    </net>

    <!-- ========================================
         SSL 配置
         ======================================== -->
    <ssl desc="SSL 设置">
        <!-- 从 https:// + wss:// 切换到 http:// + ws:// -->
        <enable type="bool" desc="控制是否启用 coolwsd 与网络之间的 SSL 加密（生产部署不要禁用）。如果默认值为 false，则必须先使用 SSL 支持编译才能启用。" default="true">true</enable>
        <!-- SSL 卸载可以在代理中完成，如果是这样，则禁用 SSL，并在生产中启用下面的终止 -->
        <termination desc="通过代理连接，其中 coolwsd 作为通过 https 工作，但实际使用 http" type="bool" default="false">false</termination>
        <cert_file_path desc="证书文件路径" type="path" relative="false">/etc/coolwsd/cert.pem</cert_file_path>
        <key_file_path desc="密钥文件路径" type="path" relative="false">/etc/coolwsd/key.pem</key_file_path>
        <ca_file_path desc="CA 文件路径" type="path" relative="false">/etc/coolwsd/ca-chain.cert.pem</ca_file_path>
        <ssl_verification desc="启用或禁用 coolwsd 远程主机的 SSL 验证。如果为 true，则 SSL 验证将是严格的，否则不会验证主机的证书。在使用自签名证书的测试环境中可能需要禁用它。" type="string" default="false">false</ssl_verification>
        <cipher_list desc="要接受的 OpenSSL 密码列表" type="string" default="ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"></cipher_list>

        <!-- HTTP 公钥固定 -->
        <hpkp desc="启用 HTTP 公钥固定" enable="false" report_only="false">
            <max_age desc="HPKP 的 max-age 指令 - 浏览器应记住 pin 的时间（秒）" enable="true" type="uint" default="1000">1000</max_age>
            <report_uri desc="HPKP 的 report-uri 指令 - pin 验证失败在此 URL 报告" enable="false" type="string"></report_uri>
            <pins desc="要固定的密钥的 Base64 编码 SPKI 指纹">
            <pin></pin>
            </pins>
        </hpkp>

        <!-- 严格传输安全 -->
        <sts desc="严格传输安全设置，根据 rfc6797。始终包括子域">
            <enabled desc="是否启用严格传输安全。仅在准备生产时启用。在不重置浏览器的情况下无法禁用。" type="bool" default="false">false</enabled>
            <max_age desc="严格传输安全 max-age 指令，以秒为单位。允许 0；有关详细信息，请参见 rfc6797。默认为 1 年。" type="int" default="31536000">31536000</max_age>
        </sts>
    </ssl>

    <!-- ========================================
         安全设置
         ======================================== -->
    <security desc="更改这些默认值可能会使您面临重大风险">
        <seccomp desc="启用 seccomp 系统调用过滤失败是否应是致命错误" type="bool" default="true">true</seccomp>

        <!-- 已弃用：如果 capabilities 为 'false'，coolwsd 将假定 mount_namespaces 为 'true' 以实现此目标，
             仅在 linux 命名空间不可用时避免 chroot 进行进程隔离 -->
        <capabilities desc="我们是否需要 capabilities 来将进程隔离到 chroot jail 中" type="bool" default="true">true</capabilities>

        <jwt_expiry_secs desc="管理控制台的 JWT 令牌过期前的时间（秒）" type="int" default="1800">1800</jwt_expiry_secs>
        <!-- 启用宏执行以支持 Python 脚本 (CallPythonScript PostMessage) -->
        <enable_macros_execution desc="指定是否一般启用宏执行。这将启用 Basic 和 Python 脚本从已安装的和文档中执行。如果设置为 false，则忽略 macro_security_level。如果设置为 true，则提到的条目指定宏安全级别。" type="bool" default="false">true</enable_macros_execution>
        <macro_security_level desc="宏安全级别。1（中）在执行来自不受信任来源的宏之前需要确认。0（低，不推荐）所有宏将在没有确认的情况下执行。" type="int" default="1">0</macro_security_level>
        <enable_websocket_urp desc="我们是否应启用通过 websocket 的 URP（UNO 远程协议）通信。这允许任何有权访问 websocket 的人完全控制 Kit 子服务器，包括在没有确认的情况下执行宏或在 jail 中运行任意 shell 命令。" type="bool" default="false">false</enable_websocket_urp>
        <enable_metrics_unauthenticated desc="启用后，/cool/getMetrics 端点将不需要身份验证" type="bool" default="false">false</enable_metrics_unauthenticated>
        <server_signature desc="是否在 HTTP 响应标头中发送服务器签名" type="bool" default="false">false</server_signature>
    </security>

    <!-- ========================================
         证书数据库
         ======================================== -->
    <certificates>
        <database_path type="string" desc="所有用户都可以使用的 NSS 证书的路径" default=""></database_path>
    </certificates>

    <!-- ========================================
         水印配置
         ======================================== -->
    <watermark>
        <opacity desc="屏幕水印的不透明度，从 0.0 到 1.0" type="double" default="0.2">0.2</opacity>
        <text desc="如果输入，要在文档上显示的水印文本" type="string"></text>
    </watermark>

    <!-- ========================================
         🎨 用户界面配置（UI 定制核心）
         ======================================== -->
    <user_interface>
        <!-- UI 模式：default（默认）/ compact（紧凑）/ tabbed（选项卡） -->
        <mode type="string" desc="控制用户界面样式。'default' 表示：从 ui_defaults 获取值，或决定使用 compact 或 tabbed 之一" default="default">compact</mode>

        <!-- 集成主题 -->
        <use_integration_theme desc="使用来自集成商的主题" type="bool" default="true">true</use_integration_theme>

        <!-- 状态栏保存指示器 -->
        <statusbar_save_indicator desc="在状态栏中显示保存状态指示器" type="bool" default="true">false</statusbar_save_indicator>

        <!-- 🆕 以下是增强的 UI 定制选项（基于官方文档和社区实践） -->

        <!-- 显示/隐藏菜单栏 -->
        <!-- 注意：这些选项可能需要通过 URL 参数或 PostMessage API 配合使用 -->
        <!-- 通过 URL 参数 ui_defaults 可以实现更细粒度的控制，例如：
             ui_defaults=UIMode=compact;TextRuler=false;TextStatusbar=false;TextSidebar=false
        -->
    </user_interface>

    <!-- ========================================
         后端存储配置
         ======================================== -->
    <storage desc="后端存储">
        <filesystem allow="false" />

        <!-- WOPI 配置 -->
        <wopi desc="允许/拒绝 wopi 存储" allow="true">
            <max_file_size desc="要加载的最大文档大小（字节）。0 表示无限制。" type="uint">0</max_file_size>

            <!-- 锁定设置 -->
            <locking desc="锁定设置">
                <refresh desc="我们应该多久与存储服务器重新获取一次锁，以秒为单位（默认 15 分钟）或 0 表示不刷新" type="int" default="900">900</refresh>
            </locking>

            <!-- 别名组配置 -->
            <alias_groups desc="默认模式是 'first'，当未定义组时，它只允许第一个主机。将模式设置为 'groups' 并定义组以允许多个主机及其别名" mode="groups">
            <!-- 如果需要使用多个 wopi 主机，请将模式更改为 "groups" 并在下面添加主机。
                 如果一个主机可以通过多个 IP 地址或名称访问，请将它们添加为别名。 -->
            <group>
                    <host desc="Allow some IP" allow="true">http://172\.16\.0\.[0-9]{1,3}</host>
                    <alias desc="Remix Domain">http://nas\.7bm\.co.*</alias>
                    <!-- <host desc="Remix Base" allow="true">http://172.16.0.78:51703</host>
                    <alias desc="Remix Dynamic Ports">http://172\.16\.0\.78:517\d{2}</alias> -->
            </group>
            <!-- 这里可以有更多 "group" -->
            </alias_groups>

            <is_legacy_server desc="对于需要已弃用标头的旧服务器，设置为 true" type="bool" default="false">false</is_legacy_server>
        </wopi>

        <!-- 存储 SSL 配置 -->
        <ssl desc="SSL 设置">
            <as_scheme type="bool" default="true" desc="设置后，我们专门使用 WOPI URI 的方案来启用存储的 SSL">true</as_scheme>
            <enable type="bool" desc="如果 as_scheme 为 false 或未设置，则可以设置此项以强制存储和 coolwsd 之间的 SSL 加密。当为空时，默认遵循 ssl.enable 设置"></enable>
            <cert_file_path desc="证书文件路径。当为空时，默认遵循 ssl.cert_file_path 设置" type="path" relative="false"></cert_file_path>
            <key_file_path desc="密钥文件路径。当为空时，默认遵循 ssl.key_file_path 设置" type="path" relative="false"></key_file_path>
            <ca_file_path desc="CA 文件路径。当为空时，默认遵循 ssl.ca_file_path 设置" type="path" relative="false"></ca_file_path>
            <cipher_list desc="要接受的 OpenSSL 密码列表。如果为空，则使用默认值。只有在绝对必要时才能覆盖这些。"></cipher_list>
        </ssl>
    </storage>

    <!-- ========================================
         管理控制台配置
         ======================================== -->
    <admin_console desc="Web 管理控制台设置">
        <enable desc="启用管理控制台功能" type="bool" default="true">true</enable>
        <enable_pam desc="使用 PAM 启用管理用户身份验证" type="bool" default="false">false</enable_pam>
        <username desc="管理控制台的用户名。如果启用了 PAM，则忽略。"></username>
        <password desc="管理控制台的密码。在大多数平台上已弃用。相反，使用 PAM 或 coolconfig 设置安全密码。"></password>

        <!-- 日志记录 -->
        <logging desc="记录管理活动，不考虑 logging.level">
            <admin_login desc="当管理员登录到控制台时记录" type="bool" default="true">true</admin_login>
            <metrics_fetch desc="当访问 metrics 端点并启用 metrics 端点身份验证时记录" type="bool" default="true">true</metrics_fetch>
            <monitor_connect desc="当外部监视器连接时记录" type="bool" default="true">true</monitor_connect>
            <admin_action desc="当管理员执行某些操作（例如终止进程）时记录" type="bool" default="true">true</admin_action>
        </logging>
    </admin_console>

    <!-- ========================================
         监视器配置
         ======================================== -->
    <monitors desc="我们在启动时连接以进行监视的服务器地址">
        <!-- <monitor desc="监视器的地址以及断开连接后应尝试重新连接的间隔" retryInterval="20">wss://foobar:234/ws</monitor> -->
    </monitors>

    <!-- ========================================
         隔离文件配置
         ======================================== -->
    <quarantine_files desc="在崩溃或类似情况下，文件存储在此处以供以后检查" default="false" enable="false">
        <limit_dir_size_mb desc="最大目录大小，以 MB 为单位。超过指定限制时，将删除较旧的文件。" default="250" type="uint">250</limit_dir_size_mb>
        <max_versions_to_maintain desc="要保留同一文件的多少个版本" default="5" type="uint">5</max_versions_to_maintain>
        <path desc="将存储隔离文件的目录的绝对路径。不要使用相对路径。" type="path" relative="false"></path>
        <expiry_min desc="隔离文件将被删除的时间（分钟）" type="int" default="3000">3000</expiry_min>
    </quarantine_files>

    <!-- ========================================
         缓存文件配置
         ======================================== -->
    <cache_files desc="文件缓存在此处以加快配置支持">
        <path desc="将存储缓存文件的目录的绝对路径。不要使用相对路径。" type="path" relative="false"></path>
        <expiry_min desc="不使用后缓存文件将被删除的时间（分钟）" type="int" default="3000">1000</expiry_min>
    </cache_files>

    <!-- ========================================
         额外导出格式
         ======================================== -->
    <extra_export_formats desc="启用各种额外的导出格式以实现额外的兼容性。请注意，禁用此处的选项*仅*在视觉上禁用它们：这些导出都是'安全'的，只是可能不希望显示它们，因此您不能在服务器端禁用导出这些">
        <impress_swf desc="启用从演示文稿导出 Adobe flash .swf 文件" type="bool" default="false">false</impress_swf>
        <impress_bmp desc="启用从演示文稿幻灯片导出 .bmp 位图文件" type="bool" default="false">false</impress_bmp>
        <impress_gif desc="启用从演示文稿幻灯片导出 .gif 图像文件" type="bool" default="false">false</impress_gif>
        <impress_png desc="启用从演示文稿幻灯片导出 .png 图像文件" type="bool" default="false">false</impress_png>
        <impress_svg desc="启用从演示文稿导出交互式 .svg 图像文件" type="bool" default="false">false</impress_svg>
        <impress_tiff desc="启用从演示文稿幻灯片导出 .tiff 图像文件" type="bool" default="false">false</impress_tiff>
    </extra_export_formats>

    <!-- ========================================
         服务器端配置
         ======================================== -->
    <serverside_config>
        <idle_timeout_secs desc="卸载空闲子 forkit 之前的最大秒数。默认为 1 小时。" type="uint" default="3600">3600</idle_timeout_secs>
    </serverside_config>

    <!-- ========================================
         远程配置
         ======================================== -->
    <remote_config>
        <remote_url desc="您将向其发送请求以在响应中获取远程配置的远程服务器" type="string" default=""></remote_url>
    </remote_config>

    <!-- ========================================
         配置更改时停止
         ======================================== -->
    <stop_on_config_change desc="每当配置文件更改时停止 coolwsd" type="bool" default="false">false</stop_on_config_change>

    <!-- ========================================
         远程字体配置
         ======================================== -->
    <remote_font_config>
        <url desc="列出要包含在 Online 中的字体的可选 JSON 文件的 URL" type="string" default=""></url>
    </remote_font_config>

    <!-- ========================================
         缺少字体处理
         ======================================== -->
    <fonts_missing>
        <handling desc="如何处理文档中缺少的字体：'report'、'log'、'both' 或 'ignore'" type="string" default="log">log</handling>
    </fonts_missing>

    <!-- ========================================
         间接端点配置
         ======================================== -->
    <indirection_endpoint>
        <url desc="以 json 格式提供 routeToken 的服务器的 URL 端点" type="string" default=""></url>
        <migration_timeout_secs desc="在卸载文档之前等待来自间接服务器的关闭迁移消息的最大秒数。默认为 180 秒。" type="uint" default="180">180</migration_timeout_secs>

        <!-- 地理位置设置 -->
        <geolocation_setup>
            <enable desc="使用具有地理位置配置的间接服务器时启用 geolocation_setup" type="bool" default="false">false</enable>
            <timezone desc="服务器的 IANA 时区。例如：Europe/Berlin" type="string"></timezone>
            <allowed_websocket_origins desc="在 websocket 升级期间接受的 Origin 标头">
                <!-- <origin></origin> -->
            </allowed_websocket_origins>
        </geolocation_setup>

        <server_name desc="要在集群概述管理面板中显示的服务器名称" type="string" default=""></server_name>
    </indirection_endpoint>

    <!-- ========================================
         家庭模式
         ======================================== -->
    <home_mode>
        <enable desc="家庭用户可以启用此设置，这将禁用欢迎屏幕和用户反馈弹出窗口，但也将并发打开连接限制为 20，并发打开文档限制为 10。默认值表示并发打开连接和并发打开文档的数量是无限的，但无法关闭欢迎屏幕和用户反馈。" type="bool" default="false">false</enable>
    </home_mode>

    <!-- ========================================
         Zotero 插件
         ======================================== -->
    <zotero desc="Zotero 插件配置。有关 Zotero 的更多详细信息，请访问 https://www.zotero.org/">
        <enable desc="启用 Zotero 插件" type="bool" default="true">true</enable>
    </zotero>

    <!-- ========================================
         帮助 URL
         ======================================== -->
    <help_url desc="帮助根 URL，或留空表示没有帮助（隐藏帮助按钮）" type="string" default="https://help.collaboraoffice.com/help.html?"></help_url>

    <!-- ========================================
         覆写模式
         ======================================== -->
    <overwrite_mode>
        <enable desc="启用覆写模式（用户可以使用插入键）" type="bool" default="false">false</enable>
    </overwrite_mode>

    <!-- ========================================
         WASM 支持
         ======================================== -->
    <wasm desc="WASM 特定设置">
        <enable desc="启用 WASM 支持" type="bool" default="false">false</enable>
        <force desc="启用后，所有请求都重定向到 WASM" type="bool" default="false">false</force>
    </wasm>

    <!-- ========================================
         文档签名
         ======================================== -->
    <document_signing desc="文档签名设置">
        <enable desc="启用文档签名" type="bool" default="true">true</enable>
    </document_signing>

</config>

```





369 行，要改成前端具体的 ip 地址

