Release 2.4.2 - See CHANGELOG.md

This commit is contained in:
dave@tiredofit.ca 2022-06-28 09:29:08 -07:00 committed by Dave Conroy
commit b4a3a941ba
5 changed files with 121 additions and 41 deletions

View file

@ -1,3 +1,20 @@
## 2.4.2 2022-06-28 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.3.1
- Collabora Office 22.05.3.1
- Add support for Language Tool Grammar checking
- Add support for file quarantining
- Add support for user statistics
- Add support for document statstics
- Add support for remote JSON font loading
- Add support for Tile Caching
- Add more rules for client logging
- Add support for experimental features
- Add support to hexify embedded URLs
- Add support to enable Integrators theme
## 2.3.8 2022-06-20 <dave at tiredofit dot ca>
### Changed

View file

@ -14,11 +14,11 @@ ARG APP_NAME
### Environment Variables
ENV COLLABORA_ONLINE_BRANCH=${COLLABORA_ONLINE_BRANCH:-"master"} \
COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-21.11.5-3"} \
COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-22.05.3-1"} \
COLLABORA_ONLINE_REPO_URL=${COLLABORA_ONLINE_REPO_URL:-"https://github.com/CollaboraOnline/online"} \
#
LIBREOFFICE_BRANCH=${LIBREOFFICE_BRANCH:-"master"} \
LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-21.06.31-1"} \
LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-22.05.3-1"} \
LIBREOFFICE_REPO_URL=${LIBREOFFICE_REPO_URL:-"https://github.com/LibreOffice/core"} \
#
APP_NAME=${APP_NAME:-"Document Editor"} \

View file

@ -44,6 +44,8 @@ This will build a Docker image for [Collabora Online](https://www.collaboraoffic
- [Spell Check](#spell-check)
- [TLS Settings](#tls-settings)
- [Performance and Limits](#performance-and-limits)
- [Files Quarantine](#files-quarantine)
- [Language Tool](#language-tool)
- [Cleanup](#cleanup)
- [Other Settings](#other-settings)
- [Adding Custom Fonts](#adding-custom-fonts)
@ -149,18 +151,22 @@ Be sure to view the following repositories to understand all the customizable op
#### Logging
| Parameter | Description | Default |
| -------------------- | ------------------------------------------------------------------------------------------------ | --------------- |
| `LOG_TYPE` | Write Logs to `CONSOLE` or to `FILE` | `CONSOLE` |
| `LOG_LEVEL` | Log Level - Available `none, fatal, critical, error, warning, notice, information, debug, trace` | `warning` |
| `LOG_PATH` | Log Path | `/var/log/cool` |
| `LOG_FILE` | Log File | `cool.log` |
| `LOG_ANONYMIZE` | Anonymize File+User information in Logs `TRUE` or `FALSE` | `FALSE` |
| `LOG_ANONYMIZE_SALT` | Salt for anonymizing log data | 8 char random |
| `LOG_CLIENT_CONSOLE` | Log in users browser console | `false` |
| `LOG_COLOURIZE` | Colourize the log entries in console | `true` |
| `LOG_LIBREOFFICE` | Log filter what Libreoffice entries | `-INFO-WARN` |
| `LOG_FILE_FLUSH` | Flush Entries on each line to log file | `false` |
| Parameter | Description | Default |
| -------------------------------- | ------------------------------------------------------------------------------------------------ | --------------- |
| `LOG_TYPE` | Write Logs to `CONSOLE` or to `FILE` | `CONSOLE` |
| `LOG_LEVEL` | Log Level - Available `none, fatal, critical, error, warning, notice, information, debug, trace` | `warning` |
| `LOG_PATH` | Log Path | `/var/log/cool` |
| `LOG_FILE` | Log File | `cool.log` |
| `ENABLE_DOCUMENT_STATISTICS` | Enable Collecting statistics about documents | `FALSE` |
| `ENABLE_USER_STATISTICS` | Enable collecting statistics about the user working on document | `FALSE` |
| `LOG_ANONYMIZE_SALT` | Salt for anonymizing log data | 8 char random |
| `LOG_ANONYMIZE` | Anonymize File+User information in Logs `TRUE` or `FALSE` | `FALSE` |
| `LOG_CLIENT_CONSOLE` | Log in users browser console | `false` |
| `LOG_COLOURIZE` | Colourize the log entries in console | `true` |
| `LOG_FILE_FLUSH` | Flush Entries on each line to log file | `false` |
| `LOG_LEVEL_CLIENT_LEAST_VERBOSE` | Least verbose log level to ever send to client | `FATAL` |
| `LOG_LEVEL_CLIENT_MOST_VERBOSE` | Most verbose log level to ever send to client | `NOTICE` |
| `LOG_LIBREOFFICE` | Log filter what Libreoffice entries | `-INFO-WARN` |
#### Spell Check
@ -231,6 +237,7 @@ The image comes with English (US, GB, Canada variants) baked into the image, how
| `AUTO_SAVE` | The number of seconds after which document, if modified, should be saved | `300` |
| `BATCH_PRIORITY` | A (lower) priority for use by batch convert to processes to avoid starving interactive ones | `5` |
| `CONNECTION_TIMEOUT` | Connection, Send, Receeive timeout in seconds for connections initiated by coolwsd | `30` |
| `ENABLE_TILES_CACHE` | Enable caching of tiles should document be opened up twice | `TRUE` |
| `FILE_SIZE_LIMIT` | The maximum file size allowed to each document process to write | `0` (unlimited) |
| `IDLE_SAVE` | The number of idle seconds after which document, if modified, should be saved | `30` |
| `IDLE_UNLOAD_TIMEOUT` | The maximum number of seconds before unloading an idle documen | `3600` |
@ -246,6 +253,23 @@ The image comes with English (US, GB, Canada variants) baked into the image, how
| `USER_IDLE_TIMEOUT` | The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus) | `900` |
| `USER_OUT_OF_FOCUS_TIMEOUT` | The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus | `60` |
#### Files Quarantine
| Parameter | Description | Default |
| --------------------------------------- | ------------------------------------------------------ | ------------ |
| `ENABLE_FILES_QUARANTINE` | Alllow file quaranting for review of crashed/bad files | `FALSE` |
| `FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT` | Directory size limit in MB | `250` |
| `FILES_QUARANTINE_MAX_VERSIONS` | Hold this many versions in quarantime | `2` |
| `FILES_QUARANTINE_PATH` | Relative path for storing files | `quarantine` |
| `FILES_QUARANTINE_EXPIRY` | Files expiry in minutes | `30` |
#### Language Tool
| Parameter | Description | Default |
| ------------------------- | -------------------------------------------------- | ------- |
| `ENABLE_LANGUAGE_TOOL` | Enable Language Tool Grammar checking integration | `FALSE` |
| `LANGUAGE_TOOL_BASE_URL` | Base URL for Language Tool | |
| `LANGUAGE_TOOL_USER_NAME` | Language Tool User Name | |
| `LANGUAGE_TOOL_API_KEY` | Language Tool provided API Key | |
#### Cleanup
| Parameter | Description | Default |
| ---------------------------- | ------------------------------------------------------------------------------- | ------- |
@ -257,21 +281,25 @@ The image comes with English (US, GB, Canada variants) baked into the image, how
| `CLEANUP_LIMIT_CPU_PER` | Minimum CPU usage in percent for a document to be candidate for bad state | `85` |
#### Other Settings
| Parameter | Description | Default |
| ----------------------- | ------------------------------------------------------- | --------------- |
| `ENABLE_CAPABILITIES` | Enable Capabilities | `TRUE` |
| `ENABLE_CONFIG_RELOAD` | Enable Reload of coolwsd if config changed in container | `TRUE` |
| `ENABLE_SECCOMP` | Enable Seccomp | `TRUE` |
| `LOLEAFLET_HTML` | Name of browser.html to use | `loleafet.html` |
| `REDLINING_AS_COMMENTS` | Show red-lines as comments | `false` |
| `DOCUMENT_SIGNING_URL` | Endpoint URL of signing server | `` |
| `NETWORK_PROTOCOL` | Network Protocol `ipv4` `ipv6` `all` | `ipv4` |
| `ENABLE_WEBDAV` | Enable WebDav Storage | `FALSE` |
| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `browser/../` |
| `FRAME_ANCESTORS` | Hosts where interface can be hosted in Iframe | `` |
| `ENABLE_MOUNT_JAIL` | Enable mounting jails | `true` |
| `CHILD_ROOT_PATH` | Child root path | `child-roots` |
| `SYS_TEMPLATE_PATH` | System Template Path | `systemplate` |
| Parameter | Description | Default |
| ------------------------------ | ------------------------------------------------------- | --------------- |
| `CHILD_ROOT_PATH` | Child root path | `child-roots` |
| `DOCUMENT_SIGNING_URL` | Endpoint URL of signing server | `` |
| `ENABLE_CAPABILITIES` | Enable Capabilities | `TRUE` |
| `ENABLE_CONFIG_RELOAD` | Enable Reload of coolwsd if config changed in container | `TRUE` |
| `ENABLE_EXPERIMENTAL_FEATURES` | Enable experimental features | `FALSE` |
| `ENABLE_MOUNT_JAIL` | Enable mounting jails | `true` |
| `ENABLE_SECCOMP` | Enable Seccomp | `TRUE` |
| `ENABLE_WEBDAV` | Enable WebDav Storage | `FALSE` |
| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `browser/../` |
| `FRAME_ANCESTORS` | Hosts where interface can be hosted in Iframe | `` |
| `HEXIFY_EMBEDDED_URLS` | Hexify Embedded URLS (useful for Azure deployments) | `FALSE` |
| `LOLEAFLET_HTML` | Name of browser.html to use | `loleafet.html` |
| `NETWORK_PROTOCOL` | Network Protocol `ipv4` `ipv6` `all` | `ipv4` |
| `REDLINING_AS_COMMENTS` | Show red-lines as comments | `false` |
| `REMOTE_FONT_URL` | URL to json font lists to load | |
| `SYS_TEMPLATE_PATH` | System Template Path | `systemplate` |
| `USE_INTEGRATOR_THEME` | Use the remote integrators theme | `TRUE` |
#### Adding Custom Fonts

View file

@ -15,20 +15,34 @@ ENABLE_ADMIN_CONSOLE=${ENABLE_ADMIN_CONSOLE:-"TRUE"}
ENABLE_CAPABILITIES=${ENABLE_CAPABILITIES:-"true"}
ENABLE_CLEANUP=${ENABLE_CLEANUP:-"false"}
ENABLE_CONFIG_RELOAD=${ENABLE_CONFIG_RELOAD:-"TRUE"}
ENABLE_DOCUMENT_STATISTICS=${ENABLE_DOCUMENT_STATISTICS:-"FALSE"}
ENABLE_EXPERIMENTAL_FEATURES=${ENABLE_EXPERIMENTAL_FEATURES:-"false"}
ENABLE_FILES_QUARANTINE=${ENABLE_FILES_QUARANTINE:-"FALSE"}
ENABLE_LANGUAGE_TOOL=${ENABLE_LANGUAGE_TOOL:-"FALSE"}
ENABLE_MACROS=${ENABLE_MACROS:-"FALSE"}
ENABLE_METRICS_UNAUTHENTICATED=${ENABLE_METRICS_UNAUTHENTICATED:-"FALSE"}
ENABLE_MOUNT_JAIL=${ENABLE_MOUNT_JAIL:-"true"}
ENABLE_SECCOMP=${ENABLE_SECCOMP:-"true"}
ENABLE_TILES_CACHE=${ENABLE_TILES_CACHE:-"TRUE"}
ENABLE_TLS=${ENABLE_TLS:-"FALSE"}
ENABLE_TLS_CERT_GENERATE=${ENABLE_TLS_CERT_GENERATE:-"TRUE"}
ENABLE_TLS_REVERSE_PROXY=${ENABLE_TLS_REVERSE_PROXY:-"TRUE"}
ENABLE_USER_STATISTICS=${ENABLE_USER_STATISTICS:-"FALSE"}
ENABLE_WEBDAV=${ENABLE_WEBDAV:-"FALSE"}
FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT=${FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT:-"250"}
FILES_QUARANTINE_EXPIRY=${FILES_QUARANTINE_EXPIRY:-"30"}
FILES_QUARANTINE_MAX_VERSIONS=${FILES_QUARANTINE_MAX_VERSIONS:-"2"}
FILES_QUARANTINE_PATH=${FILES_QUARANTINE_PATH:-"quarantine"}
FILE_SERVER_ROOT_PATH=${FILE_SERVER_ROOT_PATH:-"browser/../"}
FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-0}
HEXIFY_EMBEDDED_URLS=${HEXIFY_EMBEDDED_URLS:-"FALSE"}
IDLE_SAVE=${IDLE_SAVE:-30}
IDLE_UNLOAD_TIMEOUT=${IDLE_UNLOAD_TIMEOUT:-3600}
INTERFACE=${INTERFACE:-"classic"}
LANGUAGE=${LANGUAGE:-'en_GB en_US'}
LANGUAGE_TOOL_API_KEY=${LANGUAGE_TOOL_API_KEY:-""}
LANGUAGE_TOOL_BASE_URL=${LANGUAGE_TOOL_BASE_URL:-""}
LANGUAGE_TOOL_USER_NAME=${LANGUAGE_TOOL_USER_NAME:-""}
LOG_ANONYMIZE=${LOG_ANONYMIZE:-"FALSE"}
LOG_ANONYMIZE_SALT=${LOG_ANONYMIZE_SALT:-"$(date +%s%N | cut -b12-19)"}
LOG_CLIENT_CONSOLE=${LOG_CLIENT_CONSOLE:-"false"}
@ -36,6 +50,8 @@ LOG_COLOURIZE=${LOG_COLOURIZE:-"true"}
LOG_FILE=${LOG_FILE:-"cool.log"}
LOG_FILE_FLUSH=${LOG_FILE_FLUSH:-"false"}
LOG_LEVEL=${LOG_LEVEL:-"warning"}
LOG_LEVEL_CLIENT_LEAST_VERBOSE=${LOG_LEVEL_CLIENT_LEAST_VERBOSE:-"FATAL"}
LOG_LEVEL_CLIENT_MOST_VERBOSE=${LOG_LEVEL_CLIENT_MOST_VERBOSE:-"NOTICE"}
LOG_LIBREOFFICE=${LOG_LIBREOFFICE:-"-INFO-WARN"}
LOG_PATH=${LOG_PATH:-"/logs/"}
LOG_TYPE=${LOG_TYPE:-"CONSOLE"}
@ -53,6 +69,7 @@ NETWORK_PROTOCOL=${NETWORK_PROTOCOL:-"ipv4"}
PATH_PREFIX=${PATH_PREFIX:-"/opt/cool/"}
PRESPAWN_CHILD_PROCESSES=${PRESPAWN_CHILD_PROCESSES:-1}
REDLINING_AS_COMMENTS=${REDLINING_AS_COMMENTS:-"false"}
REMOTE_FONT_URL=${REMOTE_FONT_URL:-""}
SETUP_TYPE=${SETUP_TYPE:-"AUTO"}
SYS_TEMPLATE_PATH=${SYS_TEMPLATE_PATH:-"systemplate"}
TLS_CA_FILENAME=${TLS_CA_FILENAME:-"ca-chain.cert.pem"}
@ -61,4 +78,5 @@ TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/coolwsd/certs"}
TLS_KEY_FILENAME=${TLS_KEY_FILENAME:-"key.pem"}
USER_IDLE_TIMEOUT=${USER_IDLE_TIMEOUT:-3600}
USER_OUT_OF_FOCUS_TIMEOUT=${USER_OUT_OF_FOCUS_TIMEOUT:-60}
WATERMARK_OPACITY=${WATERMARK_OPACITY:-"0.2"}
USE_INTEGRATOR_THEME=${USE_INTEGRATOR_THEME:-"TRUE"}
WATERMARK_OPACITY=${WATERMARK_OPACITY:-"0.2"}

View file

@ -11,7 +11,7 @@ print_debug "Creating directories and setting up logging"
mkdir -p "${LOG_PATH}"
touch "${LOG_PATH}"/"${LOG_FILE}"
chown -R cool "${LOG_PATH}"
create_logrotate cool ${LOG_PATH}/${LOG_FILE} none cool cool
print_debug "Setting up DNS Resolution"
rm /opt/cool/systemplate/etc/resolv.conf
@ -133,7 +133,7 @@ if [ "${SETUP_TYPE,,}" = "auto" ]; then
sed -i -e "s|<allowed_languages \(.*\)>.*</allowed_languages>|<allowed_languages \1>${LANGUAGE}</allowed_languages>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<sys_template_path \(.*\)>.*</sys_template_path>|<sys_template_path \1>${SYS_TEMPLATE_PATH}</sys_template_path>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<child_root_path \(.*\)>.*</child_root_path>|<child_root_path \1>${CHILD_ROOT_PATH}</child_root_path>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<mount_jail_tree \(.*\)>.*</mount_jail_tree>|<mount_jail_tree \1>${ENABLE_MOUNT_JAIL}</mount_jail_tree>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<mount_jail_tree \(.*\)>.*</mount_jail_tree>|<mount_jail_tree \1>${ENABLE_MOUNT_JAIL,,}</mount_jail_tree>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<server_name \(.*\)>.*</server_name>|<server_name \1>${HOSTNAME}</server_name>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<file_server_root_path \(.*\)>.*</file_server_root_path>|<file_server_root_path \1>${FILE_SERVER_ROOT_PATH}</file_server_root_path>|g" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<memproportion \(.*\)>.*</memproportion>|<memproportion \1>${MEMORY_USAGE_MAX}</memproportion>|g" /etc/coolwsd/coolwsd.xml
@ -152,7 +152,7 @@ if [ "${SETUP_TYPE,,}" = "auto" ]; then
sed -i -e "s|<limit_num_open_files \(.*\)>.*<\/limit_num_open_files>|<limit_num_open_files \1>${MAX_OPEN_FILES}<\/limit_num_open_files>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<limit_load_secs \(.*\)>.*<\/limit_load_secs>|<limit_load_secs \1>${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<limit_convert_secs \(.*\)>.*<\/limit_convert_secs>|<limit_convert_secs \1>${MAX_CONVERT_LIMIT}<\/limit_convert_secs>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<cleanup desc=\(.*\)>.*>|<cleanup desc=\1>${ENABLE_CLEANUP}>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<cleanup desc=\(.*\)>.*>|<cleanup desc=\1>${ENABLE_CLEANUP},,>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<cleanup_interval_ms \(.*\)>.*<\/cleanup_interval_ms>|<cleanup_interval_ms \1>${CLEANUP_INTERVAL}<\/cleanup_interval_ms>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<bad_behavior_period_secs \(.*\)>.*<\/bad_behavior_period_secs>|<bad_behavior_period_secs \1>${CLEANUP_BAD_BEHAVIOUR_TIME}<\/bad_behavior_period_secs>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<idle_time_secs \(.*\)>.*<\/<idle_time_secs>|<<idle_time_secs \1>${CLEANUP_IDLE_TIME}<\/<idle_time_secs>|" /etc/coolwsd/coolwsd.xml
@ -162,7 +162,7 @@ if [ "${SETUP_TYPE,,}" = "auto" ]; then
sed -i -e "s|<idle_timeout_secs \(.*\)>.*<\/idle_timeout_secs>|<idle_timeout_secs \1>${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<browser_html \(.*\)>.*<\/browser_html>|<browser_html \1>${LOLEAFLET_HTML}<\/browser_html>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<color \(.*\)>.*<\/color>|<color \1>${LOG_COLOURIZE}<\/color>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<level \(.*\)>.*<\/level>|<level \1>${LOG_LEVEL}<\/level>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<level \(.*\)>.*<\/level>|<level \1>${LOG_LEVEL,,}<\/level>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<protocol \(.*\)>.*<\/protocol>|<protocol \1>${LOG_CLIENT_CONSOLE}<\/protocol>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<lokit_sal_log \(.*\)>.*<\/lokit_sal_log>|<lokit_sal_log \1>${LOG_LIBREOFFICE}<\/lokit_sal_log>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<browser_logging \(.*\)>.*<\/browser_logging>|<browser_logging \1>${LOG_CLIENT_CONSOLE}<\/browser_logging>|" /etc/coolwsd/coolwsd.xml
@ -172,20 +172,38 @@ if [ "${SETUP_TYPE,,}" = "auto" ]; then
sed -i -e "s|<ca_file_path \(.*\) relative=\"false\">.*<\/ca_file_path>|<ca_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/ca_file_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<cert_file_path \(.*\) relative=\"false\">.*<\/cert_file_path>|<cert_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<key_file_path \(.*\) relative=\"false\">.*<\/key_file_path>|<key_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<seccomp \(.*\)>.*<\/seccomp>|<seccomp \1>${ENABLE_SECCOMP}<\/seccomp>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<capabilities \(.*\)>.*<\/capabilities>|<capabilities \1>${ENABLE_CAPABILITIES}<\/capabilities>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<seccomp \(.*\)>.*<\/seccomp>|<seccomp \1>${ENABLE_SECCOMP,,}<\/seccomp>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<capabilities \(.*\)>.*<\/capabilities>|<capabilities \1>${ENABLE_CAPABILITIES,,}<\/capabilities>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<jwt_expiry_secs \(.*\)>.*<\/jwt_expiry_secs>|<jwt_expiry_secs \1>${ADMIN_JWT_EXPIRY}<\/jwt_expiry_secs>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enable_macros_execution \(.*\)>.*<\/enable_macros_execution>|<enable_macros_execution \1>${ENABLE_MACROS}<\/enable_macros_execution>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enable_macros_execution \(.*\)>.*<\/enable_macros_execution>|<enable_macros_execution \1>${ENABLE_MACROS,,}<\/enable_macros_execution>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<macro_security_level \(.*\)>.*<\/macro_security_level>|<macro_security_level \1>${MACRO_SECURITY_LEVEL}<\/macro_security_level>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enable_metrics_unauthenticated \(.*\)>.*<\/enable_metrics_unauthenticated>|<enable_metrics_unauthenticated \1>${ENABLE_METRICS_UNAUTHENTICATED}<\/enable_metrics_unauthenticated>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<opacity \(.*\)>.*<\/opacity>|<opacity \1>${WATERMARK_OPACITY}<\/opacity>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<text \(.*\)>.*<\/text>|<text \1>${WATERMARK_TEXT}<\/text>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<mode \(.*\)>.*<\/mode>|<mode \1>${INTERFACE}<\/mode>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<webdav desc=\(.*\) allow=\".*\">|<webdav desc=\1 allow=\"${ENABLE_WEBDAV}\">|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enable desc=\(.*\)>.*<\/enable>|<enable desc=\1>${ENABLE_ADMIN_CONSOLE}<\/enable>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<webdav desc=\(.*\) allow=\".*\">|<webdav desc=\1 allow=\"${ENABLE_WEBDAV,,}\">|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enable desc=\(.*\)>.*<\/enable>|<enable desc=\1>${ENABLE_ADMIN_CONSOLE,,}<\/enable>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<username \(.*\)>.*<\/username>|<username \1>${ADMIN_USER}<\/username>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<password \(.*\)>.*<\/password>|<password \1>${ADMIN_PASS}<\/password>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<limit_data_mem_kb \(.*\)>.*<\/limit_data_mem_kb>|<limit_data_mem_kb \1>${MEMORY_DATA_LIMIT}<\/limit_data_mem_kb>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<enabled desc=\"Enable Language Tool\(.*\)>.*<\/enable>|<enable desc=\"Enable Language Tool\1>${ENABLE_LANGUAGE_TOOL,,}<\/enable>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<base_url desc=\"Http endpoint\(.*\)>.*<\/base_url>|<base_url desc=\"Http endpoint\1>${LANGUAGE_TOOL_BASE_URL}<\/base_url>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<user_name desc=\"Lan\(.*\)>.*<\/user_name>|<user_name desc=\"Lan\1>${LANGUAGE_TOOL_USER_NAME}<\/user_name>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<api_key desc=\"Api\(.*\)>.*<\/api_key>|<api_key desc=\"Api\1>${LANGUAGE_TOOL_API_KEY}<\/api_key>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<hexify_embedded_urls \(.*\)>.*<\/hexify_embedded_urls>|<hexify_embedded_urls \1>${HEXIFY_EMBEDDED_URLS,,}<\/hexify_embedded_urls>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<experimental_features \(.*\)>.*<\/experimental_features>|<experimental_features \1>${ENABLE_EXPERIMENTAL_FEATURES,,}<\/experimental_features>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<docstats \(.*\)>.*<\/docstats>|<docstats \1>${ENABLE_DOCUMENT_STATISTICS,,}<\/docstats>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<userstats \(.*\)>.*<\/userstats>|<userstats \1>${ENABLE_USER_STATISTICS,,}<\/userstats>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<most_verbose_level_settable_from_client \(.*\)>.*<\/most_verbose_level_settable_from_client>|<most_verbose_level_settable_from_client \1>${LOG_LEVEL_CLIENT_MOST_VERBOSE}<\/most_verbose_level_settable_from_client>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<least_verbose_level_settable_from_client \(.*\)>.*<\/least_verbose_level_settable_from_client>|<least_verbose_level_settable_from_client \1>${LOG_LEVEL_CLIENT_LEAST_VERBOSE}<\/least_verbose_level_settable_from_client>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<use_integration_theme \(.*\)>.*<\/use_integration_theme>|<use_integration_theme \1>${USE_INTEGRATOR_THEME,,}<\/use_integration_theme>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<url desc=\"URL of optional JSON\(.*\)>.*<\/url>|<url desc=\"URL of optional JSON\1>${REMOTE_FONT_URL}<\/url>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<tile_cache_persistent \(.*\)>.*<\/tile_cache_persistent>|<tile_cache_persistent \1>${ENABLE_TILES_CACHE,,}<\/tile_cache_persistent>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<quarantine_files \(.*\) enable\".*\">|<quarantine_files \1> enable=\"${ENABLE_FILES_QUARANTINE,,}\">|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<limit_dir_size_mb \(.*\)>.*<\/limit_dir_size_mb>|<limit_dir_size_mb \1>${FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT}<\/limit_dir_size_mb>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<max_versions_to_maintain \(.*\)>.*<\/max_versions_to_maintain>|<max_versions_to_maintain \1>${FILES_QUARANTINE_MAX_VERSIONS}<\/max_versions_to_maintain>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<expiry_min \(.*\)>.*<\/expiry_min>|<expiry_min \1>${FILES_QUARANTINE_EXPIRY}<\/expiry_min>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<path desc=\"Path to directory\(.*\)>.*<\/path>|<path desc=\"Path to directory\1>${FILES_QUARANTINE_PATH}<\/path>|" /etc/coolwsd/coolwsd.xml
if var_false "${ENABLE_TLS}" ; then
sed -i -E "s|<enable type=\"bool\" desc=\"Controls(.*)>.*<\/enable>|<enable type=\"bool\" desc=\"Controls\1>false<\/enable>|" /etc/coolwsd/coolwsd.xml
@ -207,10 +225,9 @@ if [ "${SETUP_TYPE,,}" = "auto" ]; then
sed -i -e "s|<property name=\"path\"\(.*\)>.*<\/property>|<property name=\"path\" \1>${LOG_PATH}/${LOG_FILE}<\/property>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<property name=\"flush\"\(.*\)>.*<\/property>|<property name=\"flush\" \1>${LOG_FILE_FLUSH}<\/property>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<property name=\"rotateOnOpen\"\(.*\)>.*<\/property>|<property name=\"rotateOnOpen\" \1>false<\/property>|" /etc/coolwsd/coolwsd.xml
sed -i "s|<LOG_PATH>|${LOG_PATH}|g" /etc/logrotate.d/coolwsd
create_logrotate cool "${LOG_PATH}"/"${LOG_FILE}" none cool cool
else
print_debug "Log: Console"
rm -rf /etc/logrotate.d/coolwsd
fi
### Allowed Hosts