#!/bin/bash
set -x
SERVER_HOST=${SERVER_HOST:-""};
ONLYOFFICE_DIR="/var/www/onlyoffice"
ONLYOFFICE_DATA_DIR="${ONLYOFFICE_DIR}/Data"
ONLYOFFICE_SERVICES_DIR="${ONLYOFFICE_DIR}/Services"
ONLYOFFICE_SQL_DIR="${ONLYOFFICE_DIR}/Sql"
ONLYOFFICE_ROOT_DIR="${ONLYOFFICE_DIR}/WebStudio"
ONLYOFFICE_APISYSTEM_DIR="/var/www/onlyoffice/ApiSystem"
ONLYOFFICE_MONOSERVER_PATH="/etc/init.d/monoserve";
ONLYOFFICE_HYPERFASTCGI_PATH="/etc/hyperfastcgi/onlyoffice";
ONLYOFFICE_MONOSERVE_COUNT=1;
ONLYOFFICE_MODE=${ONLYOFFICE_MODE:-"SERVER"};
ONLYOFFICE_GOD_DIR="/etc/god/conf.d"
ONLYOFFICE_CRON_DIR="/etc/cron.d"
ONLYOFFICE_CRON_PATH="/etc/cron.d/onlyoffice"
DOCKER_ONLYOFFICE_SUBNET=$(ip -o -f inet addr show | awk '/scope global/ {print $4}' | head -1);
DOCKER_CONTAINER_IP=$(ip addr show eth0 | awk '/inet / {gsub(/\/.*/,"",$2); print $2}' | head -1);
DOCKER_CONTAINER_NAME="onlyoffice-community-server";
DOCKER_ENABLED=${DOCKER_ENABLED:-true};
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
NGINX_CONF_DIR="/etc/nginx/sites-enabled"
NGINX_WORKER_PROCESSES=${NGINX_WORKER_PROCESSES:-$(grep processor /proc/cpuinfo | wc -l)};
NGINX_WORKER_CONNECTIONS=${NGINX_WORKER_CONNECTIONS:-$(ulimit -n)};
SERVICE_SSO_AUTH_HOST_ADDR=${SERVICE_SSO_AUTH_HOST_ADDR:-${CONTROL_PANEL_PORT_80_TCP_ADDR}};
DEFAULT_ONLYOFFICE_CORE_MACHINEKEY="$(sudo sed -n '/"core.machinekey"/s!.*value\s*=\s*"\([^"]*\)".*!\1!p' ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config)";
ONLYOFFICE_CORE_MACHINEKEY=${ONLYOFFICE_CORE_MACHINEKEY:-${DEFAULT_ONLYOFFICE_CORE_MACHINEKEY}};
if [ ! -d "$NGINX_CONF_DIR" ]; then
mkdir -p $NGINX_CONF_DIR;
fi
if [ ! -d "${ONLYOFFICE_DIR}/DocumentServerData" ]; then
mkdir -p ${ONLYOFFICE_DIR}/DocumentServerData;
fi
NGINX_ROOT_DIR="/etc/nginx"
VALID_IP_ADDRESS_REGEX="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
LOG_DEBUG="DEBUG";
LOG_DIR="/var/log/onlyoffice/"
ONLYOFFICE_HTTPS=${ONLYOFFICE_HTTPS:-false}
SSL_CERTIFICATES_DIR="${ONLYOFFICE_DATA_DIR}/certs"
SSL_CERTIFICATE_PATH=${SSL_CERTIFICATE_PATH:-${SSL_CERTIFICATES_DIR}/onlyoffice.crt}
SSL_KEY_PATH=${SSL_KEY_PATH:-${SSL_CERTIFICATES_DIR}/onlyoffice.key}
SSL_DHPARAM_PATH=${SSL_DHPARAM_PATH:-${SSL_CERTIFICATES_DIR}/dhparam.pem}
SSL_VERIFY_CLIENT=${SSL_VERIFY_CLIENT:-off}
SSL_OCSP_CERTIFICATE_PATH=${SSL_OCSP_CERTIFICATE_PATH:-${SSL_CERTIFICATES_DIR}/stapling.trusted.crt}
CA_CERTIFICATES_PATH=${CA_CERTIFICATES_PATH:-${SSL_CERTIFICATES_DIR}/ca.crt}
ONLYOFFICE_HTTPS_HSTS_ENABLED=${ONLYOFFICE_HTTPS_HSTS_ENABLED:-true}
ONLYOFFICE_HTTPS_HSTS_MAXAGE=${ONLYOFFICE_HTTPS_HSTS_MAXAG:-63072000}
SYSCONF_TEMPLATES_DIR="${DIR}/config"
mkdir -p ${SYSCONF_TEMPLATES_DIR}/nginx;
SYSCONF_TOOLS_DIR="${DIR}/assets/tools"
ONLYOFFICE_SERVICES_INTERNAL_HOST=${ONLYOFFICE_SERVICES_PORT_9865_TCP_ADDR:-${ONLYOFFICE_SERVICES_INTERNAL_HOST}}
ONLYOFFICE_SERVICES_EXTERNAL=false
DOCUMENT_SERVER_ENABLED=false
DOCUMENT_SERVER_JWT_ENABLED=${DOCUMENT_SERVER_JWT_ENABLED:-false};
DOCUMENT_SERVER_JWT_SECRET=${DOCUMENT_SERVER_JWT_SECRET:-""};
DOCUMENT_SERVER_JWT_HEADER=${DOCUMENT_SERVER_JWT_HEADER:-""};
DOCUMENT_SERVER_HOST=${DOCUMENT_SERVER_HOST:-""};
DOCUMENT_SERVER_PROTOCOL=${DOCUMENT_SERVER_PROTOCOL:-"http"};
DOCUMENT_SERVER_API_URL="\/web-apps\/apps\/api\/documents\/api\.js";
DOCUMENT_SERVER_HOST_IP="";
CONTROL_PANEL_ENABLED=false
MAIL_SERVER_ENABLED=false
EXTERNAL_IP=${EXTERNAL_IP:-$(dig +short myip.opendns.com @resolver1.opendns.com)};
MYSQL_SERVER_ROOT_PASSWORD=${MYSQL_SERVER_ROOT_PASSWORD:-""}
MYSQL_SERVER_HOST=${MYSQL_SERVER_HOST:-"localhost"}
MYSQL_SERVER_PORT=${MYSQL_SERVER_PORT:-"3306"}
MYSQL_SERVER_DB_NAME=${MYSQL_SERVER_DB_NAME:-"onlyoffice"}
MYSQL_SERVER_USER=${MYSQL_SERVER_USER:-"root"}
MYSQL_SERVER_PASS=${MYSQL_SERVER_PASS:-${MYSQL_SERVER_ROOT_PASSWORD}}
MYSQL_SERVER_EXTERNAL=${MYSQL_SERVER_EXTERNAL:-false};
mkdir -p "${SSL_CERTIFICATES_DIR}/.well-known/acme-challenge"
check_ip_is_internal(){
local IPRE='\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\)';
local IP=($(echo "$1" | sed -ne 's:^'"$IPRE"'/.*$:\1 \2 \3 \4:p'));
local MASK=($(echo "$1" | sed -ne 's:^[^/]*/'"$IPRE"'$:\1 \2 \3 \4:p'))
if [ ${#MASK[@]} -ne 4 ]; then
local BITCNT=($(echo "$1" | sed -ne 's:^[^/]*/\([0-9]\+\)$:\1:p'))
BITCNT=$(( ((2**${BITCNT})-1) << (32-${BITCNT}) ))
for (( I=0; I<4; I++ )); do
MASK[$I]=$(( ($BITCNT >> (8 * (3 - $I))) & 255 ))
done
fi
local NETWORK=()
for (( I=0; I<4; I++ )); do
NETWORK[$I]=$(( ${IP[$I]} & ${MASK[$I]} ))
done
local INIP=($(echo "$2" | sed -ne 's:^'"$IPRE"'$:\1 \2 \3 \4:p'))
for (( I=0; I<4; I++ )); do
[[ $(( ${INIP[$I]} & ${MASK[$I]} )) -ne ${NETWORK[$I]} ]] && exit 0;
done
echo "true"
}
check_partnerdata(){
PARTNER_DATA_FILE="${ONLYOFFICE_DATA_DIR}/json-data.txt";
if [ -f ${PARTNER_DATA_FILE} ]; then
for serverID in $(seq 1 ${ONLYOFFICE_MONOSERVE_COUNT});
do
index=$serverID;
if [ $index == 1 ]; then
index="";
fi
cp ${PARTNER_DATA_FILE} ${ONLYOFFICE_ROOT_DIR}${index}/App_Data/static/partnerdata/
done
fi
}
log_debug () {
echo "onlyoffice: [Debug] $1"
}
check_partnerdata
re='^[0-9]+$'
if ! [[ ${ONLYOFFICE_MONOSERVE_COUNT} =~ $re ]] ; then
echo "error: ONLYOFFICE_MONOSERVE_COUNT not a number";
ONLYOFFICE_MONOSERVE_COUNT=2;
fi
# if [ "${ONLYOFFICE_MONOSERVE_COUNT}" -eq "2" ] ; then
# KERNER_CPU=$(nproc);
# if [ "${KERNER_CPU}" -gt "${ONLYOFFICE_MONOSERVE_COUNT}" ]; then
# ONLYOFFICE_MONOSERVE_COUNT=${KERNER_CPU};
# fi
# fi
cp ${NGINX_ROOT_DIR}/includes/onlyoffice-communityserver-nginx.conf.template ${NGINX_ROOT_DIR}/nginx.conf
sed 's/^worker_processes.*/'"worker_processes ${NGINX_WORKER_PROCESSES};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
sed 's/worker_connections.*/'"worker_connections ${NGINX_WORKER_CONNECTIONS};"'/' -i ${NGINX_ROOT_DIR}/nginx.conf
cp ${NGINX_ROOT_DIR}/includes/onlyoffice-communityserver-common-init.conf.template ${NGINX_CONF_DIR}/onlyoffice
rm -f ${NGINX_ROOT_DIR}/conf.d/*.conf
rsyslogd
service nginx restart
if [ ${ONLYOFFICE_SERVICES_INTERNAL_HOST} ]; then
ONLYOFFICE_SERVICES_EXTERNAL=true;
sed '/endpoint/s/http:\/\/localhost:9865\/teamlabJabber/http:\/\/'${ONLYOFFICE_SERVICES_INTERNAL_HOST}':9865\/teamlabJabber/' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed '/endpoint/s/http:\/\/localhost:9866\/teamlabSearcher/http:\/\/'${ONLYOFFICE_SERVICES_INTERNAL_HOST}':9866\/teamlabSearcher/' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed '/endpoint/s/http:\/\/localhost:9871\/teamlabNotify/http:\/\/'${ONLYOFFICE_SERVICES_INTERNAL_HOST}':9871\/teamlabNotify/' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed '/endpoint/s/http:\/\/localhost:9882\/teamlabBackup/http:\/\/'${ONLYOFFICE_SERVICES_INTERNAL_HOST}':9882\/teamlabBackup/' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed '/BoshPath/s!\(value\s*=\s*\"\)[^\"]*\"!\1http:\/\/'${ONLYOFFICE_SERVICES_INTERNAL_HOST}':5280\/http-poll\/\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
sed '///' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed 's///' -i ${ONLYOFFICE_ROOT_DIR}/Web.config
sed 's///' -i ${ONLYOFFICE_SERVICES_DIR}/TeamLabSvc/TeamLabSvc.exe.Config;
sed 's///' -i ${ONLYOFFICE_SERVICES_DIR}/TeamLabSvc/TeamLabSvc.exe.Config;
REDIS_SERVER_EXTERNAL=true;
fi
mysql_scalar_exec(){
local queryResult="";
if [ "$2" == "opt_ignore_db_name" ]; then
queryResult=$(mysql --silent --skip-column-names -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} -e "$1");
else
queryResult=$(mysql --silent --skip-column-names -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} -D ${MYSQL_SERVER_DB_NAME} -e "$1");
fi
echo $queryResult;
}
mysql_list_exec(){
local queryResult="";
if [ "$2" == "opt_ignore_db_name" ]; then
queryResult=$(mysql --silent --skip-column-names -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} -e "$1");
else
queryResult=$(mysql --silent --skip-column-names -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} -D ${MYSQL_SERVER_DB_NAME} -e "$1");
fi
read -ra vars <<< ${queryResult};
for i in "${vars[0][@]}"; do
echo $i
done
}
mysql_batch_exec(){
mysql --silent --skip-column-names -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} -D ${MYSQL_SERVER_DB_NAME} < "$1";
}
mysql_check_connection() {
if [ ${LOG_DEBUG} ]; then
log_debug "Mysql check connection for ${MYSQL_SERVER_HOST}";
fi
while ! mysqladmin ping -h ${MYSQL_SERVER_HOST} -P ${MYSQL_SERVER_PORT} -u ${MYSQL_SERVER_USER} --password=${MYSQL_SERVER_PASS} --silent; do
sleep 1
done
}
change_connections(){
sed '/'${1}'/s/\(connectionString\s*=\s*\"\)[^\"]*\"/\1Server='${MYSQL_SERVER_HOST}';Port='${MYSQL_SERVER_PORT}';Database='${MYSQL_SERVER_DB_NAME}';User ID='${MYSQL_SERVER_USER}';Password='${MYSQL_SERVER_PASS}';Pooling=true;Character Set=utf8;AutoEnlist=false\"/' -i ${2}
}
if [ "${MYSQL_SERVER_EXTERNAL}" == "false" ]; then
chown -R mysql:mysql /var/lib/mysql/
chmod -R 755 /var/lib/mysql/
if [ ! -f /var/lib/mysql/ibdata1 ]; then
# cp /etc/mysql/my.cnf /usr/share/mysql/my-default.cnf
mysql_install_db || true
# mysqld --initialize-insecure --user=mysql || true
fi
if [ ${LOG_DEBUG} ]; then
log_debug "Fix docker bug volume mapping for mysql";
fi
myisamchk -q -r /var/lib/mysql/mysql/proc || true
service mysql start
if [ ! -f /var/lib/mysql/mysql_upgrade_info ]; then
if mysqladmin --silent ping -u root | grep -q "mysqld is alive" ; then
mysql_upgrade
else
mysql_upgrade --password=${MYSQL_SERVER_ROOT_PASSWORD};
fi
service mysql restart;
fi
if [ -n "$MYSQL_SERVER_ROOT_PASSWORD" ] && mysqladmin --silent ping -u root | grep -q "mysqld is alive" ; then
mysql <> /etc/init.d/sphinxsearch
if ! grep -q "name=\"textindex\"" ${ONLYOFFICE_SERVICES_DIR}/TeamLabSvc/TeamLabSvc.exe.Config; then
sed -i 's/.*/' ${ONLYOFFICE_SERVICES_DIR}/TeamLabSvc/TeamLabSvc.exe.Config;
fi
if [ "${DOCUMENT_SERVER_ENABLED}" == "true" ]; then
cp ${NGINX_ROOT_DIR}/includes/onlyoffice-communityserver-proxy-to-documentserver.conf.template ${NGINX_ROOT_DIR}/includes/onlyoffice-communityserver-proxy-to-documentserver.conf;
sed 's,{{DOCUMENT_SERVER_HOST_ADDR}},'"${DOCUMENT_SERVER_PROTOCOL}:\/\/${DOCUMENT_SERVER_HOST}"',' -i ${NGINX_ROOT_DIR}/includes/onlyoffice-communityserver-proxy-to-documentserver.conf;
# change web.appsettings link to editor
sed '/files\.docservice\.url\.converter/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_PROTOCOL}':\/\/'${DOCUMENT_SERVER_HOST}'\/ConvertService\.ashx\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
sed '/files\.docservice\.url\.api/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_API_URL}'\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
sed '/files\.docservice\.url\.storage/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_PROTOCOL}':\/\/'${DOCUMENT_SERVER_HOST}'\/FileUploader\.ashx\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
sed '/files\.docservice\.url\.command/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_PROTOCOL}':\/\/'${DOCUMENT_SERVER_HOST}'\/coauthoring\/CommandService\.ashx\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
if [ "${DOCUMENT_SERVER_JWT_ENABLED}" == "true" ]; then
sed '/files\.docservice\.secret/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_JWT_SECRET}'\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
sed '/files\.docservice\.secret.header/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_JWT_HEADER}'\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
fi
if [ -n "${DOCKER_ONLYOFFICE_SUBNET}" ] && [ -n "${SERVER_HOST}" ]; then
sed '/files\.docservice\.url\.portal/s!\(value\s*=\s*\"\)[^\"]*\"!\1http:\/\/'${SERVER_HOST}'\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
fi
if ! grep -q "files\.docservice\.url\.command" ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config; then
sed '/files\.docservice\.url\.storage/a /' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
else
sed '/files\.docservice\.url\.command/s!\(value\s*=\s*\"\)[^\"]*\"!\1'${DOCUMENT_SERVER_PROTOCOL}':\/\/'${DOCUMENT_SERVER_HOST}'\/coauthoring\/CommandService\.ashx\"!' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
fi
fi
if [ "${MAIL_SERVER_ENABLED}" == "true" ]; then
timeout=120;
interval=10;
while [ "$interval" -lt "$timeout" ] ; do
interval=$((${interval} + 10));
MAIL_SERVER_HOSTNAME=$(mysql --silent --skip-column-names -h ${MAIL_SERVER_DB_HOST} \
--port=${MAIL_SERVER_DB_PORT} -u "${MAIL_SERVER_DB_USER}" \
--password="${MAIL_SERVER_DB_PASS}" -D "${MAIL_SERVER_DB_NAME}" -e "SELECT Comment from greylisting_whitelist where Source='SenderIP:${MAIL_SERVER_API_HOST}' limit 1;");
if [[ "$?" -eq "0" ]]; then
break;
fi
sleep 10;
if [ ${LOG_DEBUG} ]; then
log_debug "Waiting MAIL SERVER DB...";
fi
done
# change web.appsettings
sed -r '/web\.hide-settings/s/,AdministrationPage//' -i ${ONLYOFFICE_ROOT_DIR}/web.appsettings.config
MYSQL_MAIL_SERVER_ID=$(mysql_scalar_exec "select id from mail_server_server where mx_record='${MAIL_SERVER_HOSTNAME}' limit 1");
echo "MYSQL mail server id '${MYSQL_MAIL_SERVER_ID}'";
if [ -z ${MYSQL_MAIL_SERVER_ID} ]; then
VALID_IP_ADDRESS_REGEX="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
if [[ $EXTERNAL_IP =~ $VALID_IP_ADDRESS_REGEX ]]; then
log_debug "External ip $EXTERNAL_IP is valid";
else
log_debug "External ip $EXTERNAL_IP is not valid";
exit 502;
fi
mysql --silent --skip-column-names -h ${MAIL_SERVER_DB_HOST} \
--port=${MAIL_SERVER_DB_PORT} -u "${MAIL_SERVER_DB_USER}" \
--password="${MAIL_SERVER_DB_PASS}" -D "${MAIL_SERVER_DB_NAME}" \
-e "INSERT INTO greylisting_whitelist (Source, Comment, Disabled) VALUES (\"SenderIP:${EXTERNAL_IP}\", '', 0);";
mysql_scalar_exec < /dev/null;
break;
fi
sleep 5s;
done
}
if [ "${REDIS_SERVER_EXTERNAL}" == "true" ]; then
rm -f "${ONLYOFFICE_GOD_DIR}"/redis.god;
sed '/redis-cli/d' -i ${ONLYOFFICE_CRON_PATH}
service redis-server stop
else
service redis-server start
fi
if [ "${MYSQL_SERVER_EXTERNAL}" == "true" ]; then
rm -f "${ONLYOFFICE_GOD_DIR}"/mysql.god;
fi
if [ "${ONLYOFFICE_MODE}" == "SERVICES" ]; then
service nginx stop
rm -f "${ONLYOFFICE_GOD_DIR}"/nginx.god;
rm -f "${ONLYOFFICE_GOD_DIR}"/monoserveApiSystem.god;
service monoserveApiSystem stop
rm -f /etc/init.d/monoserveApiSystem
for serverID in $(seq 1 ${ONLYOFFICE_MONOSERVE_COUNT});
do
index=$serverID;
if [ $index == 1 ]; then
index="";
fi
rm -f "${ONLYOFFICE_GOD_DIR}"/monoserve$index.god;
service monoserve$index stop
rm -f /etc/init.d/monoserve$index
done
sed '/monoserve/d' -i ${ONLYOFFICE_CRON_PATH}
sed '/warmup/d' -i ${ONLYOFFICE_CRON_PATH}
else
if [ ${LOG_DEBUG} ]; then
echo "fix docker bug volume mapping for onlyoffice";
fi
chown -R onlyoffice:onlyoffice /var/log/onlyoffice
chown -R onlyoffice:onlyoffice ${ONLYOFFICE_DIR}/DocumentServerData
if [ "$(ls -alhd ${ONLYOFFICE_DATA_DIR} | awk '{ print $3 }')" != "onlyoffice" ]; then
chown -R onlyoffice:onlyoffice ${ONLYOFFICE_DATA_DIR}
fi
for serverID in $(seq 1 ${ONLYOFFICE_MONOSERVE_COUNT});
do
index=$serverID;
if [ $index == 1 ]; then
index="";
fi
service monoserve$index restart
# (ping_onlyoffice "http://localhost/warmup${index}/auth.aspx") &
done
service monoserveApiSystem restart
fi
if [ "${ONLYOFFICE_SERVICES_EXTERNAL}" == "true" ]; then
rm -f "${ONLYOFFICE_GOD_DIR}"/onlyoffice.god;
rm -f "${ONLYOFFICE_GOD_DIR}"/mail.god;
service onlyofficeFeed stop
service onlyofficeIndex stop
service onlyofficeJabber stop
service onlyofficeMailAggregator stop
service onlyofficeMailWatchdog stop
service onlyofficeNotify stop
service onlyofficeBackup stop
service onlyofficeAutoreply stop
rm -f /etc/init.d/onlyofficeFeed
rm -f /etc/init.d/onlyofficeIndex
rm -f /etc/init.d/onlyofficeJabber
rm -f /etc/init.d/onlyofficeMailAggregator
rm -f /etc/init.d/onlyofficeMailWatchdog
rm -f /etc/init.d/onlyofficeNotify
rm -f /etc/init.d/onlyofficeBackup
rm -f /etc/init.d/onlyofficeAutoreply
sed '/onlyoffice/d' -i ${ONLYOFFICE_CRON_PATH}
else
service onlyofficeFeed restart
service onlyofficeIndex restart
service onlyofficeJabber restart
service onlyofficeMailAggregator restart
service onlyofficeMailWatchdog restart
service onlyofficeNotify restart
service onlyofficeBackup restart
service onlyofficeSocketIO restart
service onlyofficeAutoreply stop
service onlyofficeHealthCheck stop
fi
service god restart
if [ "${ONLYOFFICE_MODE}" == "SERVER" ]; then
# wait
mv ${SYSCONF_TEMPLATES_DIR}/nginx/prepare-onlyoffice ${NGINX_CONF_DIR}/onlyoffice
service nginx reload
log_debug "reload nginx config";
log_debug "FINISH";
fi
PID=$(ps auxf | grep cron | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
cron
if [ "${DOCKER_ENABLED}" == "true" ]; then
exec tail -f /dev/null
fi