Files
leaudit-platform-backend/docs/Collabora/参考资料/部署.md
T

550 lines
42 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
```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="允许/拒绝 POSTREST)的客户端 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 地址