2021-03-19 12:50:47 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-05-20 14:39:38 +00:00
|
|
|
BASEDIR="$(cd $(dirname $0) && pwd)"
|
|
|
|
BUILD_PATH="$BASEDIR/modules"
|
|
|
|
|
|
|
|
while [ "$1" != "" ]; do
|
|
|
|
case $1 in
|
|
|
|
|
|
|
|
-bp | --buildpath )
|
|
|
|
if [ "$2" != "" ]; then
|
|
|
|
BUILD_PATH=$2
|
|
|
|
shift
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
-? | -h | --help )
|
|
|
|
echo " Usage: bash build.sh [PARAMETER] [[PARAMETER], ...]"
|
|
|
|
echo " Parameters:"
|
|
|
|
echo " -bp, --buildpath output path"
|
|
|
|
echo " -?, -h, --help this help"
|
|
|
|
echo " Examples"
|
|
|
|
echo " bash build.sh -bp /etc/systemd/system/"
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
|
|
|
|
* )
|
|
|
|
echo "Unknown parameter $1" 1>&2
|
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
PRODUCT="appserver"
|
|
|
|
BASE_DIR="/var/www/${PRODUCT}"
|
|
|
|
PATH_TO_CONF="/etc/onlyoffice/${PRODUCT}"
|
|
|
|
STORAGE_ROOT="${PATH_TO_CONF}/data"
|
|
|
|
LOG_DIR="/var/log/onlyoffice/${PRODUCT}"
|
2021-11-11 12:37:59 +00:00
|
|
|
DOTNET_RUN="/usr/share/dotnet/dotnet"
|
2021-03-19 12:50:47 +00:00
|
|
|
APP_URLS="http://0.0.0.0"
|
|
|
|
ENVIRONMENT=" --ENVIRONMENT=production"
|
|
|
|
|
2021-05-20 14:39:38 +00:00
|
|
|
SERVICE_NAME=(
|
2021-03-19 12:50:47 +00:00
|
|
|
api
|
2021-05-20 14:39:38 +00:00
|
|
|
api-system
|
2021-03-19 12:50:47 +00:00
|
|
|
urlshortener
|
|
|
|
thumbnails
|
|
|
|
socket
|
2021-05-20 14:39:38 +00:00
|
|
|
studio-notify
|
2021-03-19 12:50:47 +00:00
|
|
|
notify
|
2021-05-20 14:39:38 +00:00
|
|
|
people-server
|
2021-03-19 12:50:47 +00:00
|
|
|
files
|
2021-05-20 14:39:38 +00:00
|
|
|
files-services
|
2021-03-19 12:50:47 +00:00
|
|
|
studio
|
2021-05-20 14:39:38 +00:00
|
|
|
backup
|
|
|
|
storage-encryption
|
|
|
|
storage-migration
|
|
|
|
projects-server
|
|
|
|
telegram-service
|
|
|
|
crm
|
|
|
|
calendar
|
|
|
|
mail
|
2021-09-30 12:05:43 +00:00
|
|
|
ssoauth
|
2021-05-20 14:39:38 +00:00
|
|
|
)
|
2021-03-19 12:50:47 +00:00
|
|
|
|
|
|
|
reassign_values (){
|
|
|
|
case $1 in
|
2021-05-20 14:39:38 +00:00
|
|
|
api )
|
2021-03-19 12:50:47 +00:00
|
|
|
SERVICE_PORT="5000"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/studio/api/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Web.Api.dll"
|
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
api-system )
|
2021-03-19 12:50:47 +00:00
|
|
|
SERVICE_PORT="5010"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.ApiSystem/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.ApiSystem.dll"
|
|
|
|
;;
|
|
|
|
urlshortener )
|
2021-07-13 15:03:48 +00:00
|
|
|
SERVICE_PORT="9998"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.UrlShortener.Svc/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.UrlShortener.Svc.dll"
|
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
thumbnails )
|
2021-07-13 15:03:48 +00:00
|
|
|
SERVICE_PORT="9799"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Thumbnails.Svc/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Thumbnails.Svc.dll"
|
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
socket )
|
2021-07-13 15:03:48 +00:00
|
|
|
SERVICE_PORT="9898"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Socket.IO.Svc/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Socket.IO.Svc.dll"
|
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
studio-notify )
|
2021-03-19 12:50:47 +00:00
|
|
|
SERVICE_PORT="5006"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Studio.Notify/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Studio.Notify.dll"
|
2021-05-20 14:39:38 +00:00
|
|
|
CORE=" --core:products:folder=${BASE_DIR}/products --core:products:subfolder=server "
|
2021-03-19 12:50:47 +00:00
|
|
|
;;
|
|
|
|
notify )
|
|
|
|
SERVICE_PORT="5005"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Notify/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Notify.dll"
|
2021-05-20 14:39:38 +00:00
|
|
|
CORE=" --core:products:folder=${BASE_DIR}/products --core:products:subfolder=server "
|
2021-03-19 12:50:47 +00:00
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
people-server )
|
2021-03-19 12:50:47 +00:00
|
|
|
SERVICE_PORT="5004"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.People/server/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.People.dll"
|
|
|
|
;;
|
|
|
|
files )
|
|
|
|
SERVICE_PORT="5007"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.Files/server/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Files.dll"
|
|
|
|
;;
|
2021-05-20 14:39:38 +00:00
|
|
|
files-services )
|
2021-03-19 12:50:47 +00:00
|
|
|
SERVICE_PORT="5009"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.Files/service/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Files.Service.dll"
|
2021-05-20 14:39:38 +00:00
|
|
|
CORE=" --core:products:folder=${BASE_DIR}/products --core:products:subfolder=server"
|
2021-03-19 12:50:47 +00:00
|
|
|
;;
|
|
|
|
studio )
|
|
|
|
SERVICE_PORT="5003"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/studio/server/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Web.Studio.dll"
|
|
|
|
;;
|
|
|
|
backup )
|
|
|
|
SERVICE_PORT="5012"
|
2021-05-20 14:39:38 +00:00
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Data.Backup/"
|
2021-03-19 12:50:47 +00:00
|
|
|
EXEC_FILE="ASC.Data.Backup.dll"
|
2021-05-20 14:39:38 +00:00
|
|
|
CORE=" --core:products:folder=${BASE_DIR}/products --core:products:subfolder=server"
|
|
|
|
;;
|
|
|
|
storage-migration )
|
|
|
|
SERVICE_PORT="5018"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Data.Storage.Migration/"
|
|
|
|
EXEC_FILE="ASC.Data.Storage.Migration.dll"
|
|
|
|
;;
|
|
|
|
storage-encryption )
|
|
|
|
SERVICE_PORT="5019"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.Data.Storage.Encryption/"
|
|
|
|
EXEC_FILE="ASC.Data.Storage.Encryption.dll"
|
|
|
|
;;
|
|
|
|
projects-server )
|
|
|
|
SERVICE_PORT="5020"
|
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.Projects/server/"
|
|
|
|
EXEC_FILE="ASC.Projects.dll"
|
|
|
|
;;
|
|
|
|
telegram-service )
|
|
|
|
SERVICE_PORT="51702"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.TelegramService/"
|
|
|
|
EXEC_FILE="ASC.TelegramService.dll"
|
|
|
|
;;
|
|
|
|
crm )
|
|
|
|
SERVICE_PORT="5021"
|
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.CRM/server/"
|
|
|
|
EXEC_FILE="ASC.CRM.dll"
|
|
|
|
;;
|
|
|
|
calendar )
|
|
|
|
SERVICE_PORT="5023"
|
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.Calendar/server/"
|
|
|
|
EXEC_FILE="ASC.Calendar.dll"
|
|
|
|
;;
|
|
|
|
mail )
|
|
|
|
SERVICE_PORT="5022"
|
|
|
|
WORK_DIR="${BASE_DIR}/products/ASC.Mail/server/"
|
|
|
|
EXEC_FILE="ASC.Mail.dll"
|
2021-03-19 12:50:47 +00:00
|
|
|
;;
|
2021-09-30 12:05:43 +00:00
|
|
|
ssoauth )
|
|
|
|
SERVICE_PORT="9833"
|
|
|
|
WORK_DIR="${BASE_DIR}/services/ASC.SsoAuth.Svc/"
|
|
|
|
EXEC_FILE="ASC.SsoAuth.Svc.dll"
|
|
|
|
;;
|
2021-03-19 12:50:47 +00:00
|
|
|
esac
|
2021-05-20 14:39:38 +00:00
|
|
|
SERVICE_NAME="$1"
|
|
|
|
EXEC_START="${DOTNET_RUN} ${WORK_DIR}${EXEC_FILE} --urls=${APP_URLS}:${SERVICE_PORT} --pathToConf=${PATH_TO_CONF} \
|
|
|
|
--'\$STORAGE_ROOT'=${STORAGE_ROOT} --log:dir=${LOG_DIR} --log:name=${SERVICE_NAME}${CORE}${ENVIRONMENT}"
|
|
|
|
CORE=""
|
2021-03-19 12:50:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
write_to_file () {
|
|
|
|
sed -i -e 's#${SERVICE_NAME}#'$SERVICE_NAME'#g' -e 's#${WORK_DIR}#'$WORK_DIR'#g' -e \
|
2021-05-20 14:39:38 +00:00
|
|
|
"s#\${EXEC_START}#$EXEC_START#g" $BUILD_PATH/${PRODUCT}-${SERVICE_NAME[$i]}.service
|
2021-03-19 12:50:47 +00:00
|
|
|
}
|
|
|
|
|
2021-05-20 14:39:38 +00:00
|
|
|
mkdir -p $BUILD_PATH
|
2021-03-19 12:50:47 +00:00
|
|
|
|
2021-05-20 14:39:38 +00:00
|
|
|
for i in ${!SERVICE_NAME[@]}; do
|
|
|
|
cp $BASEDIR/service $BUILD_PATH/${PRODUCT}-${SERVICE_NAME[$i]}.service
|
|
|
|
reassign_values "${SERVICE_NAME[$i]}"
|
2021-03-19 12:50:47 +00:00
|
|
|
write_to_file $i
|
|
|
|
done
|