diff --git a/install/etc/cont-init.d/10-loolwsd b/install/etc/cont-init.d/10-loolwsd index ca83280..f36049a 100755 --- a/install/etc/cont-init.d/10-loolwsd +++ b/install/etc/cont-init.d/10-loolwsd @@ -5,16 +5,33 @@ if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then set -x fi -LOG_LEVEL=${LOG_LEVEL:-"information"} +### Set Defaults +AUTO_SAVE=${AUTO_SAVE:-300} +ENABLE_ADMIN_CONSOLE=${ENABLE_ADMIN_CONSOLE:-"TRUE"} ENABLE_TLS=${ENABLE_SSL:-"TRUE"} ENABLE_TLS_CERT_GENERATE=${ENABLE_SSL_CERT_GENERATE:-"TRUE"} ENABLE_TLS_REVERSE_PROXY=${ENABLE_SSL_REVERSE_PROXY:-"FALSE"} -TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/loolwsd/certs"} +FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-0} +IDLE_SAVE=${IDLE_SAVE:-30} +IDLE_UNLOAD_TIMEOUT=${IDLE_UNLOAD_TIMEOUT:-3600} +LOG_ANONYMIZE_FILES=${LOG_ANONYMIZE_FILES:-"FALSE"} +LOG_ANONYMIZE_USERS=${LOG_ANONYMIZE_USERS:-"FALSE"} +LOG_LEVEL=${LOG_LEVEL:-"information"} +LOG_TYPE=${LOG_TYPE:-"CONSOLE"} +MAX_FILE_LOAD_LIMIT=${MAX_FILE_LOAD_LIMIT:-100} +MAX_OPEN_FILES=${MAX_OPEN_FILES:-0} +MAX_THREADS_DOCUMENT=${MAX_THREADS_DOCUMENT:-4} +MEMORY_DATA_LIMIT=${MEMORY_DATA_LIMIT:-0} +MEMORY_STACK_LIMIT=${MEMORY_STACK_LIMIT:-8000} +MEMORY_USAGE_MAX=${MEMORY_USAGE_MAX:-"80.0"} +PRESPAWN_CHILD_PROCESSES=${PRESPAWN_CHILD_PROCESSES:-1} +SETUP_TYPE=${SETUP_TYPE:-"AUTO"} TLS_CA_FILENAME=${TLS_CA_FILENAME:-"ca-chain.cert.pem"} TLS_CERT_FILENAME=${TLS_CERT_FILENAME:-"cert.pem"} +TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/loolwsd/certs"} TLS_KEY_FILENAME=${TLS_KEY_FILENAME:-"key.pem"} - -echo "** [libreoffice-online] Setting configuration" +USER_IDLE_TIMEOUT=${USER_IDLE_TIMEOUT:-900} +USER_OUT_OF_FOCUS_TIMEOUT=${USER_OUT_OF_FOCUS_TIMEOUT:-60} mkdir -p /var/log/lool touch /var/log/lool/loolwsd.log @@ -30,8 +47,8 @@ if [ -d /assets/custom ] ; then chown -R lool. /opt/lool/share/ fi -if [ "$ENABLE_SSL" = "TRUE" ]; - if [ "$ENABLE_SSL_CERT_GENERATE" = "TRUE" ] +if [ "$ENABLE_SSL" = "TRUE" ]; then + if [ "$ENABLE_SSL_CERT_GENERATE" = "TRUE" ]; then mkdir -p $TLS_CERT_PATH # Generate new SSL certificate instead of using the default echo "** [libreoffice-online] Auto Generating Self Signed Certificates" @@ -62,26 +79,60 @@ if [ "$ENABLE_SSL" = "TRUE" ]; fi fi -# Replace Configureation directives -perl -pi -e "s/.*<\/allowed_languages>/${DICTIONARIES}<\/allowed_languages>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/level>/${LOG_LEVEL}<\/level>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/localhost<\/host>/${ALLOWED_HOSTS}<\/host>/g" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/localhost<\/host>/${ALLOWED_HOSTS}<\/host>/g" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/username>/${ADMIN_USER}<\/username>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/password>/${ADMIN_PASS}<\/password>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/server_name>/${HOSTNAME}<\/server_name>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/cert_file_path>/${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/key_file_path>/${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>/" /etc/loolwsd/loolwsd.xml -perl -pi -e "s/.*<\/ca_file_path>/${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/key_file_path>/" /etc/loolwsd/loolwsd.xml +if [ "$SETUP_TYPE" = "AUTO" ]; then + echo '** [libreoffice-online] Autogenerating Configuration File' + ### Replace Configuration directives + perl -pi -e "s/.*<\/allowed_languages>/${DICTIONARIES}<\/allowed_languages>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/autosave_duration_secs>/${AUTO_SAVE}<\/autosave_duration_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/ca_file_path>/${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/key_file_path>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/cert_file_path>/${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/idle_timeout_secs>/${IDLE_UNLOAD_TIMEOUT}<\/idle_timeout_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/idle_timeout_secs>/${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/idlesave_duration_secs>/${IDLE_SAVE}<\/idlesave_duration_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/key_file_path>/${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/level>/${LOG_LEVEL}<\/level>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/limit_data_mem_kb>/${MEMORY_DATA_LIMIT}<\/limit_data_mem_kb>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/limit_file_size_mb>/${FILE_SIZE_LIMIT}<\/limit_file_size_mb>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/limit_load_secs>/${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/limit_num_open_files>/${MAX_OPEN_FILES}<\/limit_num_open_files>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/limit_stack_mem_kb>/${MEMORY_STACK_LIMIT}<\/limit_stack_mem_kb>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/max_concurrency>/${MAX_THREADS_DOCUMENT}<\/max_concurrency>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/memproportion>/${MEMORY_USAGE_MAX}<\/memproportion>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/num_prespawn_children>/${PRESPAWN_CHILD_PROCESSES}<\/num_prespawn_children>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/out_of_focus_timeout_secs>/${USER_OUT_OF_FOCUS_TIMEOUT}<\/out_of_focus_timeout_secs>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/password>/${ADMIN_PASS}<\/password>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/server_name>/${HOSTNAME}<\/server_name>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/.*<\/username>/${ADMIN_USER}<\/username>/" /etc/loolwsd/loolwsd.xml + perl -pi -e "s/localhost<\/host>/${ALLOWED_HOSTS}<\/host>/g" /etc/loolwsd/loolwsd.xml -if [ "$ENABLE_SSL" != "TRUE" ]; - perl -pi -e "s/.*<\/enable>/false<\/enable>/" /etc/loolwsd/loolwsd.xml + if [ "$ENABLE_ADMIN_CONSOLE" != "TRUE" ]; then + perl -pi -e "s/.*<\/enable>/true<\/enable>/" /etc/loolwsd/loolwsd.xml + fi + + if [ "$LOG_TYPE" = "FILE" ]; then + perl -pi -e "s/.*<\/enable>/false<\/enable>/" /etc/loolwsd/loolwsd.xml + fi + + if [ "$ENABLE_SSL_REVERSE_PROXY" != "FALSE" ]; then + perl -pi -e "s/.*<\/termination>/true<\/termination>/" /etc/loolwsd/loolwsd.xml + fi + + if [ "$LOG_ANONYMIZE_USERS" != "FALSE" ]; then + perl -pi -e "s/.*<\/usernames>/true<\/usernames>/" /etc/loolwsd/loolwsd.xml + fi + + if [ "$LOG_ANONYMIZE_FILES" != "FALSE" ]; then + perl -pi -e "s/.*<\/filenames>/true<\/filenames>/" /etc/loolwsd/loolwsd.xml + fi + + if [ "$LOG_TYPE" = "FILE" ]; then + perl -pi -e "s/.*<\/termination>/true<\/termination>/" /etc/loolwsd/loolwsd.xml -fi - - mkdir -p /tmp/state echo 'Initialization Complete' >/tmp/state/10-loolwsd-init