Compare commits
89 Commits
master
...
feature/oc
Author | SHA1 | Date | |
---|---|---|---|
f5951e06c1 | |||
0b08a09a40 | |||
43138434ce | |||
b3bca84335 | |||
60c92a50fc | |||
c312ba632b | |||
13f67192bf | |||
a9d9ba70a8 | |||
2813bd572f | |||
1cd5d9a2e9 | |||
6d0c14ebc3 | |||
33ac365992 | |||
9d9e76acb1 | |||
26f8014056 | |||
aff3c13d5c | |||
58f8ef4d27 | |||
415fe6e605 | |||
3f2087a60c | |||
5c567ad109 | |||
f4e91b7b3d | |||
|
9f88fc61f0 | ||
0cb0448c44 | |||
191ab2db6f | |||
3545708a25 | |||
5aa3339a6f | |||
c959e430f2 | |||
dc099c3eb1 | |||
bbd4d8013d | |||
2ee869d9bb | |||
3d8d1c5e21 | |||
b567e10880 | |||
1517c48add | |||
e248c9d317 | |||
bbc46c5676 | |||
893e3dca78 | |||
bb30917778 | |||
4a3b1d943e | |||
e1c2632e09 | |||
67821b7297 | |||
5edc87293a | |||
40d19b1746 | |||
f745a71e43 | |||
8f0ed06219 | |||
d4efd04825 | |||
d8eff9bdb8 | |||
242340255b | |||
d7ea6fad02 | |||
ad047bc372 | |||
e02510be1d | |||
bb5b8cccdd | |||
ba23f9bb7b | |||
84afb50b66 | |||
aa6545bfe1 | |||
4b888c6640 | |||
a34bedef1e | |||
f6dca051ac | |||
ca73c5b0c4 | |||
807215a0cb | |||
2381fcf68f | |||
8ee516850b | |||
0f9d61b9f0 | |||
bbce172bba | |||
5f8718c78d | |||
76e439bad3 | |||
d8a535432d | |||
6956adc231 | |||
310f2d5dc5 | |||
61c920555b | |||
8b0bca3a44 | |||
74e94c0a10 | |||
dc1274fb88 | |||
3b9c56c5f4 | |||
a56a46236c | |||
17f6195d8c | |||
31bf677340 | |||
8e751923d9 | |||
ebdffb55ea | |||
ac496b82a2 | |||
6d6116c5ce | |||
11c322f03b | |||
2a36d19707 | |||
4a7f1710de | |||
a4d69eebe8 | |||
e173c5932d | |||
fbaace1941 | |||
a0b9e56097 | |||
06c63bdb6f | |||
d5b009554e | |||
eefb4b5e2e |
@ -11,13 +11,14 @@ def help():
|
||||
# Display Help
|
||||
print("Build and run backend and working environment. (Use 'yarn start' to run client -> https://github.com/ONLYOFFICE/DocSpace-client)")
|
||||
print()
|
||||
print("Syntax: available params [-h|f|s|c|d|]")
|
||||
print("Syntax: available params [-h|f|s|c|d|i")
|
||||
print("options:")
|
||||
print("h Print this Help.")
|
||||
print("f Force rebuild base images.")
|
||||
print("s Run as SAAS otherwise as STANDALONE.")
|
||||
print("c Run as COMMUNITY otherwise ENTERPRISE.")
|
||||
print("d Run dnsmasq.")
|
||||
print("i Run identity (oauth2).")
|
||||
print()
|
||||
|
||||
|
||||
@ -37,6 +38,8 @@ if local_ip == "127.0.0.1":
|
||||
doceditor = f"{local_ip}:5013"
|
||||
login = f"{local_ip}:5011"
|
||||
client = f"{local_ip}:5001"
|
||||
identity_auth = f"{local_ip}:8080"
|
||||
identity_api = f"{local_ip}:9090"
|
||||
management = f"{local_ip}:5015"
|
||||
portal_url = f"http://{local_ip}"
|
||||
|
||||
@ -44,13 +47,14 @@ force = False
|
||||
dns = False
|
||||
standalone = True
|
||||
community = False
|
||||
identity = False
|
||||
|
||||
migration_type = "STANDALONE" # SAAS
|
||||
installation_type = "ENTERPRISE"
|
||||
document_server_image_name = "onlyoffice/documentserver-de:latest"
|
||||
|
||||
# Get the options
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hfscd")
|
||||
opts, args = getopt.getopt(sys.argv[1:], "hfscdi")
|
||||
for opt, arg in opts:
|
||||
if opt == "-h":
|
||||
help()
|
||||
@ -63,6 +67,8 @@ for opt, arg in opts:
|
||||
community = arg if arg else True
|
||||
elif opt == "-d":
|
||||
dns = arg if arg else True
|
||||
elif opt == "-i":
|
||||
identity = arg if arg else True
|
||||
else:
|
||||
print("Error: Invalid '-" + opt + "' option")
|
||||
sys.exit()
|
||||
@ -80,6 +86,7 @@ print(f"DOCSPACE_APP_URL: {portal_url}")
|
||||
print()
|
||||
print("FORCE REBUILD BASE IMAGES:", force)
|
||||
print("Run dnsmasq:", dns)
|
||||
print("Run identity:", identity)
|
||||
|
||||
if standalone == False:
|
||||
migration_type = "SAAS"
|
||||
@ -182,6 +189,8 @@ os.environ["SERVICE_DOCEDITOR"] = doceditor
|
||||
os.environ["SERVICE_LOGIN"] = login
|
||||
os.environ["SERVICE_MANAGEMENT"] = management
|
||||
os.environ["SERVICE_CLIENT"] = client
|
||||
os.environ["SERVICE_IDENTITY"] = identity_auth
|
||||
os.environ["SERVICE_IDENTITY_API"] = identity_api
|
||||
os.environ["ROOT_DIR"] = dir
|
||||
os.environ["BUILD_PATH"] = "/var/www"
|
||||
os.environ["SRC_PATH"] = os.path.join(dir, "publish/services")
|
||||
@ -190,6 +199,10 @@ os.environ["APP_URL_PORTAL"] = portal_url
|
||||
os.environ["MIGRATION_TYPE"] = migration_type
|
||||
subprocess.run(["docker-compose", "-f", os.path.join(dockerDir, "docspace.profiles.yml"), "-f", os.path.join(dockerDir, "docspace.overcome.yml"), "--profile", "migration-runner", "--profile", "backend-local", "up", "-d"])
|
||||
|
||||
if identity:
|
||||
print("Run identity")
|
||||
subprocess.run(["docker-compose", "-f",os.path.join(dockerDir, "identity.yml"), "up", "-d" ])
|
||||
|
||||
print()
|
||||
print("Run script directory:", dir)
|
||||
print("Root directory:", dir)
|
||||
|
26
build.backend.dotnet.bat
Normal file
26
build.backend.dotnet.bat
Normal file
@ -0,0 +1,26 @@
|
||||
@echo off
|
||||
|
||||
echo Start build backend...
|
||||
echo.
|
||||
|
||||
cd /D "%~dp0"
|
||||
call runasadmin.bat "%~dpnx0"
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
call start\stop.bat nopause
|
||||
dotnet build ..\server\asc.web.slnf /fl1 /flp1:logfile=asc.web.log;verbosity=normal
|
||||
echo.
|
||||
)
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
call start\start.bat nopause
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
if "%1"=="nopause" goto end
|
||||
pause
|
||||
|
||||
|
||||
|
||||
:end
|
@ -31,6 +31,10 @@ if containers or images:
|
||||
db_command = f"docker compose -f {os.path.join(docker_dir, 'db.yml')} down --volumes"
|
||||
subprocess.run(db_command, shell=True)
|
||||
|
||||
print("Remove docker contatiners 'Identity'")
|
||||
identity_command = f"docker compose -f {os.path.join(docker_dir, 'identity.yml')} down --volumes"
|
||||
subprocess.run(identity_command, shell=True)
|
||||
|
||||
print("Remove docker volumes")
|
||||
volumes_command = f"docker volume prune -fa"
|
||||
subprocess.run(volumes_command, shell=True)
|
||||
|
@ -38,7 +38,10 @@
|
||||
},
|
||||
"themelimit": "9",
|
||||
"oidc": {
|
||||
"authority": ""
|
||||
"authority": "",
|
||||
"disableValidateToken": "true",
|
||||
"requireHttps": "false",
|
||||
"showPII": "true"
|
||||
},
|
||||
"server-root": "",
|
||||
"username": {
|
||||
@ -122,7 +125,7 @@
|
||||
"api-system": "",
|
||||
"api-cache": "",
|
||||
"images": "static/images",
|
||||
"hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch",
|
||||
"hide-settings": "Monitoring,LdapSettings,DocService,MailService,PublicPortal,ProxyHttpContent,SpamSubscription,FullTextSearch,IdentityServer",
|
||||
"hub": {
|
||||
"url": "/socket.io",
|
||||
"internal": "http://localhost:9899/"
|
||||
|
@ -9,6 +9,6 @@ server=8.8.4.4
|
||||
server=8.8.8.8
|
||||
strict-order
|
||||
#serve all .company queries using a specific nameserver
|
||||
server=/site/127.0.0.1
|
||||
server=/site/192.168.0.18
|
||||
#explicitly define host-ip mappings
|
||||
address=/docspace.site/127.0.0.1
|
||||
address=/docspace.site/192.168.0.18
|
12
config/nginx/includes/server-dashboards.conf
Normal file
12
config/nginx/includes/server-dashboards.conf
Normal file
@ -0,0 +1,12 @@
|
||||
location ^~ /dashboards/ {
|
||||
auth_basic "Restricted Access";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
|
||||
|
||||
rewrite ^/dashboards(/.*)$ $1 break;
|
||||
proxy_pass http://127.0.0.1:5601;
|
||||
proxy_redirect off;
|
||||
proxy_buffering off;
|
||||
|
||||
proxy_set_header Connection "Keep-Alive";
|
||||
proxy_set_header Proxy-Connection "Keep-Alive";
|
||||
}
|
@ -104,7 +104,7 @@ server {
|
||||
local accept_header = ngx.req.get_headers()["Accept"]
|
||||
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath|/api/") then
|
||||
|
||||
if not ngx.re.match(ngx.var.request_uri, "login|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*") then
|
||||
if not ngx.re.match(ngx.var.request_uri, "login|oauth2|thirdparty|confirm|error|wizard|preparation-portal|unavailable|share=.|rooms/share(.*)key=.|/s/*") then
|
||||
if ngx.var.http_cookie == nil or not string.find(ngx.var.http_cookie, "asc_auth_key") then
|
||||
if ngx.var.request_uri == "/" then
|
||||
return ngx.redirect("/login")
|
||||
@ -168,18 +168,7 @@ server {
|
||||
|
||||
}
|
||||
|
||||
location ^~ /dashboards/ {
|
||||
auth_basic "Restricted Access";
|
||||
auth_basic_user_file /etc/nginx/.htpasswd_dashboards;
|
||||
|
||||
rewrite ^/dashboards(/.*)$ $1 break;
|
||||
proxy_pass http://127.0.0.1:5601;
|
||||
proxy_redirect off;
|
||||
proxy_buffering off;
|
||||
|
||||
proxy_set_header Connection "Keep-Alive";
|
||||
proxy_set_header Proxy-Connection "Keep-Alive";
|
||||
}
|
||||
include /etc/nginx/includes/server-*.conf;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
@ -333,7 +322,26 @@ server {
|
||||
location ~* /migration {
|
||||
proxy_pass http://127.0.0.1:5034;
|
||||
}
|
||||
|
||||
location ~* /(clients|scopes) {
|
||||
proxy_pass http://127.0.0.1:9090;
|
||||
}
|
||||
|
||||
location ~* /oauth2 {
|
||||
rewrite api/2.0/(.*) /$1 break;
|
||||
proxy_redirect off;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
}
|
||||
}
|
||||
|
||||
location /oauth2/.well-known/openid-configuration {
|
||||
rewrite oauth2/(.*) /$1 break;
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
}
|
||||
|
||||
location /oauth2 {
|
||||
proxy_pass http://127.0.0.1:8080;
|
||||
}
|
||||
|
||||
location /sso {
|
||||
rewrite sso/(.*) /$1 break;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# (c) Copyright Ascensio System SIA 2021
|
||||
# (c) Copyright Ascensio System SIA 2024
|
||||
#
|
||||
# This program is a free software product. You can redistribute it and/or
|
||||
# modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -37,39 +37,22 @@ LOCAL_SCRIPTS="false"
|
||||
product="docspace"
|
||||
product_sysname="onlyoffice";
|
||||
FILE_NAME="$(basename "$0")"
|
||||
ENABLE_LOGGING="true"
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
-ls | --localscripts )
|
||||
if [ "$2" == "true" ] || [ "$2" == "false" ]; then
|
||||
PARAMETERS="$PARAMETERS ${1}";
|
||||
LOCAL_SCRIPTS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-gb | --gitbranch )
|
||||
if [ "$2" != "" ]; then
|
||||
PARAMETERS="$PARAMETERS ${1}";
|
||||
GIT_BRANCH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
docker )
|
||||
DOCKER="true";
|
||||
shift && continue
|
||||
;;
|
||||
|
||||
package )
|
||||
DOCKER="false";
|
||||
shift && continue
|
||||
;;
|
||||
-log | --logging ) [ "$2" == "true" -o "$2" == "false" ] && { ENABLE_LOGGING=$2; shift; } ;;
|
||||
-ls | --localscripts ) [ "$2" == "true" -o "$2" == "false" ] && { PARAMETERS+=" $1"; LOCAL_SCRIPTS=$2; shift; } ;;
|
||||
-gb | --gitbranch ) [ -n "$2" ] && { PARAMETERS+=" $1"; GIT_BRANCH=$2; shift; } ;;
|
||||
docker ) DOCKER="true"; shift && continue ;;
|
||||
package ) DOCKER="false"; shift && continue ;;
|
||||
|
||||
"-?" | -h | --help )
|
||||
if [ -z "$DOCKER" ]; then
|
||||
echo "Run 'bash $FILE_NAME docker' to install docker version of application or 'bash $FILE_NAME package' to install deb/rpm version."
|
||||
echo "Run 'bash $FILE_NAME docker' to install Docker version of application."
|
||||
echo "Run 'bash $FILE_NAME package' to install DEB/RPM version."
|
||||
echo "Run 'bash $FILE_NAME docker -h' or 'bash $FILE_NAME package -h' to get more details."
|
||||
echo "To disable logging, use the '-log' environment variable with a value of 'false'"
|
||||
exit 0;
|
||||
fi
|
||||
PARAMETERS="$PARAMETERS -ht $FILE_NAME";
|
||||
@ -80,10 +63,7 @@ while [ "$1" != "" ]; do
|
||||
done
|
||||
|
||||
root_checking () {
|
||||
if [ ! $( id -u ) -eq 0 ]; then
|
||||
echo "To perform this action you must be logged in with root rights"
|
||||
exit 1;
|
||||
fi
|
||||
[ "$(id -u)" -eq 0 ] || { echo "To perform this action you must be logged in with root rights"; exit 1; }
|
||||
}
|
||||
|
||||
command_exists () {
|
||||
@ -98,91 +78,58 @@ install_curl () {
|
||||
yum -y install curl
|
||||
fi
|
||||
|
||||
if ! command_exists curl; then
|
||||
echo "command curl not found"
|
||||
exit 1;
|
||||
fi
|
||||
command_exists curl || { echo "Command curl not found."; exit 1; }
|
||||
}
|
||||
|
||||
read_installation_method () {
|
||||
echo "Select 'Y' to install ${product_sysname^^} $product using Docker (recommended). Select 'N' to install it using RPM/DEB packages.";
|
||||
read -p "Install with Docker [Y/N/C]? " choice
|
||||
case "$choice" in
|
||||
y|Y )
|
||||
DOCKER="true";
|
||||
;;
|
||||
|
||||
n|N )
|
||||
DOCKER="false";
|
||||
;;
|
||||
|
||||
c|C )
|
||||
exit 0;
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Please, enter Y, N or C to cancel";
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "$DOCKER" == "" ]; then
|
||||
read_installation_method;
|
||||
fi
|
||||
read_installation_method() {
|
||||
echo "Select 'Y' to install ${product_sysname^^} $product using Docker (recommended)."
|
||||
echo "Select 'N' to install it using RPM/DEB packages."
|
||||
while true; do
|
||||
read -p "Install with Docker [Y/N/C]? " choice
|
||||
case "$choice" in
|
||||
[yY]) DOCKER="true"; break ;;
|
||||
[nN]) DOCKER="false"; break ;;
|
||||
[cC]) exit 0 ;;
|
||||
*) echo "Please, enter Y, N, or C to cancel." ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
root_checking
|
||||
|
||||
if ! command_exists curl ; then
|
||||
install_curl;
|
||||
fi
|
||||
command_exists curl || install_curl
|
||||
|
||||
if command_exists docker &> /dev/null && docker ps -a --format '{{.Names}}' | grep -q "${product_sysname}-api"; then
|
||||
if command_exists docker && docker ps -a --format '{{.Names}}' | grep -q "${product_sysname}-api"; then
|
||||
DOCKER="true"
|
||||
elif command_exists apt-get &> /dev/null && dpkg -s ${product}-api >/dev/null 2>&1; then
|
||||
DOCKER="false"
|
||||
elif command_exists yum &> /dev/null && rpm -q ${product}-api >/dev/null 2>&1; then
|
||||
elif (command_exists dpkg && dpkg -s ${product}-api >/dev/null 2>&1) || (command_exists rpm && rpm -q ${product}-api >/dev/null 2>&1); then
|
||||
DOCKER="false"
|
||||
fi
|
||||
|
||||
if [ -z "$DOCKER" ]; then
|
||||
read_installation_method;
|
||||
fi
|
||||
[ -z "$DOCKER" ] && read_installation_method
|
||||
|
||||
if [ -z $GIT_BRANCH ]; then
|
||||
DOWNLOAD_URL_PREFIX="https://download.${product_sysname}.com/${product}"
|
||||
else
|
||||
DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/${product_sysname^^}/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall"
|
||||
fi
|
||||
DOWNLOAD_URL_PREFIX="https://download.${product_sysname}.com/${product}"
|
||||
[ -n "$GIT_BRANCH" ] && DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/${product_sysname^^}/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall"
|
||||
|
||||
if [ "$DOCKER" == "true" ]; then
|
||||
if [ "$LOCAL_SCRIPTS" == "true" ]; then
|
||||
bash install-Docker.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
else
|
||||
curl -s -O ${DOWNLOAD_URL_PREFIX}/install-Docker.sh
|
||||
bash install-Docker.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
rm install-Docker.sh
|
||||
fi
|
||||
SCRIPT_NAME="install-Docker.sh"
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
SCRIPT_NAME="install-RedHat.sh"
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
SCRIPT_NAME="install-Debian.sh"
|
||||
else
|
||||
if [ -f /etc/redhat-release ] ; then
|
||||
if [ "$LOCAL_SCRIPTS" == "true" ]; then
|
||||
bash install-RedHat.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
else
|
||||
curl -s -O ${DOWNLOAD_URL_PREFIX}/install-RedHat.sh
|
||||
bash install-RedHat.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
rm install-RedHat.sh
|
||||
fi
|
||||
elif [ -f /etc/debian_version ] ; then
|
||||
if [ "$LOCAL_SCRIPTS" == "true" ]; then
|
||||
bash install-Debian.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
else
|
||||
curl -s -O ${DOWNLOAD_URL_PREFIX}/install-Debian.sh
|
||||
bash install-Debian.sh ${PARAMETERS} || EXIT_CODE=$?
|
||||
rm install-Debian.sh
|
||||
fi
|
||||
else
|
||||
echo "Not supported OS";
|
||||
exit 1;
|
||||
fi
|
||||
echo "Not supported OS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$ENABLE_LOGGING" = "true" ]; then
|
||||
LOG_FILE="OneClick${SCRIPT_NAME%.sh}_$(date +%Y%m%d_%H%M%S).log"
|
||||
touch "${LOG_FILE}" || { echo "Failed to create log file"; exit 1; }
|
||||
exec > >(tee "${LOG_FILE}") 2>&1
|
||||
fi
|
||||
|
||||
[ "$LOCAL_SCRIPTS" != "true" ] && curl -s -O ${DOWNLOAD_URL_PREFIX}/${SCRIPT_NAME}
|
||||
bash ${SCRIPT_NAME} ${PARAMETERS} || EXIT_CODE=$?
|
||||
[ "$LOCAL_SCRIPTS" != "true" ] && rm ${SCRIPT_NAME}
|
||||
[ "$ENABLE_LOGGING" = "true" ] && [ $EXIT_CODE -eq 0 ] && rm "${LOG_FILE}"
|
||||
|
||||
exit ${EXIT_CODE:-0}
|
||||
|
@ -17,93 +17,19 @@ INSTALL_FLUENT_BIT="true"
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
|
||||
-u | --update )
|
||||
if [ "$2" != "" ]; then
|
||||
UPDATE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-je | --jwtenabled )
|
||||
if [ "$2" != "" ]; then
|
||||
DS_JWT_ENABLED=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-jh | --jwtheader )
|
||||
if [ "$2" != "" ]; then
|
||||
DS_JWT_HEADER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-js | --jwtsecret )
|
||||
if [ "$2" != "" ]; then
|
||||
DS_JWT_SECRET=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-gb | --gitbranch )
|
||||
if [ "$2" != "" ]; then
|
||||
PARAMETERS="$PARAMETERS ${1}";
|
||||
GIT_BRANCH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ifb | --installfluentbit )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_FLUENT_BIT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-du | --dashboadrsusername )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_USERNAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dp | --dashboadrspassword )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ls | --localscripts )
|
||||
if [ "$2" != "" ]; then
|
||||
LOCAL_SCRIPTS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-skiphc | --skiphardwarecheck )
|
||||
if [ "$2" != "" ]; then
|
||||
SKIP_HARDWARE_CHECK=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-it | --installation_type )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}');
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
-u | --update ) [ -n "$2" ] && UPDATE=$2 && shift ;;
|
||||
-je | --jwtenabled ) [ -n "$2" ] && DS_JWT_ENABLED=$2 && shift ;;
|
||||
-jh | --jwtheader ) [ -n "$2" ] && DS_JWT_HEADER=$2 && shift ;;
|
||||
-js | --jwtsecret ) [ -n "$2" ] && DS_JWT_SECRET=$2 && shift ;;
|
||||
-gb | --gitbranch ) [ -n "$2" ] && GIT_BRANCH=$2 && shift ;;
|
||||
-ifb | --installfluentbit ) [ -n "$2" ] && INSTALL_FLUENT_BIT=$2 && shift ;;
|
||||
-du | --dashboadrsusername ) [ -n "$2" ] && DASHBOARDS_USERNAME=$2 && shift ;;
|
||||
-dp | --dashboadrspassword ) [ -n "$2" ] && DASHBOARDS_PASSWORD=$2 && shift ;;
|
||||
-ls | --localscripts ) [ "$2" == "true" -o "$2" == "false" ] && LOCAL_SCRIPTS=$2 && shift ;;
|
||||
-skiphc | --skiphardwarecheck ) [ "$2" == "true" -o "$2" == "false" ] && SKIP_HARDWARE_CHECK=$2 && shift ;;
|
||||
-ms | --makeswap ) [ "$2" == "true" -o "$2" == "false" ] && MAKESWAP=$2 && shift ;;
|
||||
-it | --installation_type ) [ -n "$2" ] && INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}') && shift ;;
|
||||
-? | -h | --help )
|
||||
echo " Usage $0 [PARAMETER] [[PARAMETER], ...]"
|
||||
echo " Parameters:"
|
||||
echo " -it, --installation_type installation type (community|enterprise)"
|
||||
@ -121,39 +47,23 @@ while [ "$1" != "" ]; do
|
||||
echo
|
||||
exit 0
|
||||
;;
|
||||
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -z "${UPDATE}" ]; then
|
||||
UPDATE="false";
|
||||
fi
|
||||
|
||||
if [ -z "${LOCAL_SCRIPTS}" ]; then
|
||||
LOCAL_SCRIPTS="false";
|
||||
fi
|
||||
|
||||
if [ -z "${SKIP_HARDWARE_CHECK}" ]; then
|
||||
SKIP_HARDWARE_CHECK="false";
|
||||
fi
|
||||
UPDATE="${UPDATE:-false}"
|
||||
LOCAL_SCRIPTS="${LOCAL_SCRIPTS:-false}"
|
||||
SKIP_HARDWARE_CHECK="${SKIP_HARDWARE_CHECK:-false}"
|
||||
|
||||
apt-get update -y --allow-releaseinfo-change;
|
||||
if [ $(dpkg-query -W -f='${Status}' curl 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
apt-get install -yq curl;
|
||||
fi
|
||||
|
||||
if [ -z $GIT_BRANCH ]; then
|
||||
DOWNLOAD_URL_PREFIX="https://download.onlyoffice.com/${product}/install-Debian"
|
||||
else
|
||||
DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/ONLYOFFICE/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall/install-Debian"
|
||||
fi
|
||||
DOWNLOAD_URL_PREFIX="https://download.${product_sysname}.com/${product}/install-RedHat"
|
||||
[ -n "$GIT_BRANCH" ] && DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/${product_sysname^^}/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall/install-RedHat"
|
||||
|
||||
if [ "${LOCAL_SCRIPTS}" == "true" ]; then
|
||||
source install-Debian/bootstrap.sh
|
||||
else
|
||||
source <(curl ${DOWNLOAD_URL_PREFIX}/bootstrap.sh)
|
||||
fi
|
||||
[[ "${LOCAL_SCRIPTS}" == "true" ]] && source install-Debian/bootstrap.sh || source <(curl ${DOWNLOAD_URL_PREFIX}/bootstrap.sh)
|
||||
|
||||
# add onlyoffice repo
|
||||
mkdir -p -m 700 $HOME/.gnupg
|
||||
|
@ -10,6 +10,8 @@ cat<<EOF
|
||||
|
||||
EOF
|
||||
|
||||
hold_package_version
|
||||
|
||||
if [ "$DIST" = "debian" ] && [ $(apt-cache search ttf-mscorefonts-installer | wc -l) -eq 0 ]; then
|
||||
echo "deb http://ftp.uk.debian.org/debian/ $DISTRIB_CODENAME main contrib" >> /etc/apt/sources.list
|
||||
echo "deb-src http://ftp.uk.debian.org/debian/ $DISTRIB_CODENAME main contrib" >> /etc/apt/sources.list
|
||||
@ -144,5 +146,3 @@ if which apparmor_parser && [ ! -f /etc/apparmor.d/disable/usr.sbin.mysqld ] &&
|
||||
ln -sf /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/;
|
||||
apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld;
|
||||
fi
|
||||
|
||||
hold_package_version "dotnet-*" "aspnetcore-*" opensearch redis-server rabbitmq-server opensearch-dashboards fluent-bit
|
||||
|
@ -26,13 +26,23 @@ command_exists () {
|
||||
|
||||
# Function to prevent package auto-update
|
||||
hold_package_version() {
|
||||
for package in "$@"; do
|
||||
if command -v apt-mark >/dev/null 2>&1 &&
|
||||
dpkg-query -l "$package" >/dev/null 2>&1
|
||||
then
|
||||
apt-mark hold "$package"
|
||||
fi
|
||||
done
|
||||
packages=("dotnet-*" "aspnetcore-*" opensearch redis-server rabbitmq-server opensearch-dashboards fluent-bit)
|
||||
for package in "${packages[@]}"; do
|
||||
command -v apt-mark >/dev/null 2>&1 && apt-mark showhold | grep -q "^$package" && apt-mark unhold "$package"
|
||||
done
|
||||
|
||||
UNATTENDED_UPGRADES_FILE="/etc/apt/apt.conf.d/50unattended-upgrades"
|
||||
if [ -f ${UNATTENDED_UPGRADES_FILE} ] && grep -q "Package-Blacklist" ${UNATTENDED_UPGRADES_FILE}; then
|
||||
for package in "${packages[@]}"; do
|
||||
if ! grep -q "$package" ${UNATTENDED_UPGRADES_FILE}; then
|
||||
sed -i "/Package-Blacklist/a \\\t\"$package\";" ${UNATTENDED_UPGRADES_FILE}
|
||||
fi
|
||||
done
|
||||
|
||||
if systemctl list-units --type=service --state=running | grep -q "unattended-upgrades"; then
|
||||
systemctl restart unattended-upgrades
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
check_hardware () {
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# (c) Copyright Ascensio System SIA 2021
|
||||
# (c) Copyright Ascensio System SIA 2024
|
||||
#
|
||||
# This program is a free software product. You can redistribute it and/or
|
||||
# modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
@ -112,387 +112,61 @@ EXTERNAL_PORT="80"
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
|
||||
-u | --update )
|
||||
if [ "$2" != "" ]; then
|
||||
UPDATE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-hub | --hub )
|
||||
if [ "$2" != "" ]; then
|
||||
HUB=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-un | --username )
|
||||
if [ "$2" != "" ]; then
|
||||
USERNAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-p | --password )
|
||||
if [ "$2" != "" ]; then
|
||||
PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ids | --installdocspace )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_PRODUCT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-idocs | --installdocs )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_DOCUMENT_SERVER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-imysql | --installmysql )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_MYSQL_SERVER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-irbt | --installrabbitmq )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_RABBITMQ=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-irds | --installredis )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_REDIS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ht | --helptarget )
|
||||
if [ "$2" != "" ]; then
|
||||
HELP_TARGET=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqld | --mysqldatabase )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_DATABASE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqlrp | --mysqlrootpassword )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_ROOT_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqlu | --mysqluser )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_USER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqlh | --mysqlhost )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_HOST=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqlport | --mysqlport )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mysqlp | --mysqlpassword )
|
||||
if [ "$2" != "" ]; then
|
||||
MYSQL_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-espr | --elasticprotocol )
|
||||
if [ "$2" != "" ]; then
|
||||
ELK_SHEME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-esh | --elastichost )
|
||||
if [ "$2" != "" ]; then
|
||||
ELK_HOST=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-esp | --elasticport )
|
||||
if [ "$2" != "" ]; then
|
||||
ELK_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-skiphc | --skiphardwarecheck )
|
||||
if [ "$2" != "" ]; then
|
||||
SKIP_HARDWARE_CHECK=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ep | --externalport )
|
||||
if [ "$2" != "" ]; then
|
||||
EXTERNAL_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dsh | --docspacehost )
|
||||
if [ "$2" != "" ]; then
|
||||
APP_URL_PORTAL=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-mk | --machinekey )
|
||||
if [ "$2" != "" ]; then
|
||||
APP_CORE_MACHINEKEY=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-env | --environment )
|
||||
if [ "$2" != "" ]; then
|
||||
ENV_EXTENSION=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-s | --status )
|
||||
if [ "$2" != "" ]; then
|
||||
STATUS=$2
|
||||
IMAGE_NAME="${PACKAGE_SYSNAME}/${STATUS}${PRODUCT}-api"
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ls | --localscripts )
|
||||
if [ "$2" != "" ]; then
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dsv | --docspaceversion )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCKER_TAG=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-gb | --gitbranch )
|
||||
if [ "$2" != "" ]; then
|
||||
PARAMETERS="$PARAMETERS ${1}";
|
||||
GIT_BRANCH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-docsi | --docsimage )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCUMENT_SERVER_IMAGE_NAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-docsv | --docsversion )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCUMENT_SERVER_VERSION=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-docsurl | --docsurl )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCUMENT_SERVER_URL_EXTERNAL=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dbm | --databasemigration )
|
||||
if [ "$2" != "" ]; then
|
||||
DATABASE_MIGRATION=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-jh | --jwtheader )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCUMENT_SERVER_JWT_HEADER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-js | --jwtsecret )
|
||||
if [ "$2" != "" ]; then
|
||||
DOCUMENT_SERVER_JWT_SECRET=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-it | --installation_type )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}');
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ies | --installelastic )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_ELASTICSEARCH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ifb | --installfluentbit )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_FLUENT_BIT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rdsh | --redishost )
|
||||
if [ "$2" != "" ]; then
|
||||
REDIS_HOST=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rdsp | --redisport )
|
||||
if [ "$2" != "" ]; then
|
||||
REDIS_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rdsu | --redisusername )
|
||||
if [ "$2" != "" ]; then
|
||||
REDIS_USER_NAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rdspass | --redispassword )
|
||||
if [ "$2" != "" ]; then
|
||||
REDIS_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rbth | --rabbitmqhost )
|
||||
if [ "$2" != "" ]; then
|
||||
RABBIT_HOST=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rbtp | --rabbitmqport )
|
||||
if [ "$2" != "" ]; then
|
||||
RABBIT_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rbtu | --rabbitmqusername )
|
||||
if [ "$2" != "" ]; then
|
||||
RABBIT_USER_NAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rbtpass | --rabbitmqpassword )
|
||||
if [ "$2" != "" ]; then
|
||||
RABBIT_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-rbtvh | --rabbitmqvirtualhost )
|
||||
if [ "$2" != "" ]; then
|
||||
RABBIT_VIRTUAL_HOST=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-led | --letsencryptdomain )
|
||||
if [ "$2" != "" ]; then
|
||||
LETS_ENCRYPT_DOMAIN=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-lem | --letsencryptmail )
|
||||
if [ "$2" != "" ]; then
|
||||
LETS_ENCRYPT_MAIL=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-cf | --certfile )
|
||||
if [ "$2" != "" ]; then
|
||||
CERTIFICATE_PATH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ckf | --certkeyfile )
|
||||
if [ "$2" != "" ]; then
|
||||
CERTIFICATE_KEY_PATH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-du | --dashboadrsusername )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_USERNAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dp | --dashboadrspassword )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-noni | --noninteractive )
|
||||
if [ "$2" != "" ]; then
|
||||
NON_INTERACTIVE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
-u | --update ) [ -n "$2" ] && UPDATE=$2 && shift ;;
|
||||
-hub | --hub ) [ -n "$2" ] && HUB=$2 && shift ;;
|
||||
-un | --username ) [ -n "$2" ] && USERNAME=$2 && shift ;;
|
||||
-p | --password ) [ -n "$2" ] && PASSWORD=$2 && shift ;;
|
||||
-ids | --installdocspace ) [ -n "$2" ] && INSTALL_PRODUCT=$2 && shift ;;
|
||||
-idocs | --installdocs ) [ -n "$2" ] && INSTALL_DOCUMENT_SERVER=$2 && shift ;;
|
||||
-imysql | --installmysql ) [ -n "$2" ] && INSTALL_MYSQL_SERVER=$2 && shift ;;
|
||||
-irbt | --installrabbitmq ) [ -n "$2" ] && INSTALL_RABBITMQ=$2 && shift ;;
|
||||
-irds | --installredis ) [ -n "$2" ] && INSTALL_REDIS=$2 && shift ;;
|
||||
-ht | --helptarget ) [ -n "$2" ] && HELP_TARGET=$2 && shift ;;
|
||||
-mysqld | --mysqldatabase ) [ -n "$2" ] && MYSQL_DATABASE=$2 && shift ;;
|
||||
-mysqlrp | --mysqlrootpassword ) [ -n "$2" ] && MYSQL_ROOT_PASSWORD=$2 && shift ;;
|
||||
-mysqlu | --mysqluser ) [ -n "$2" ] && MYSQL_USER=$2 && shift ;;
|
||||
-mysqlh | --mysqlhost ) [ -n "$2" ] && MYSQL_HOST=$2 && shift ;;
|
||||
-mysqlport | --mysqlport ) [ -n "$2" ] && MYSQL_PORT=$2 && shift ;;
|
||||
-mysqlp | --mysqlpassword ) [ -n "$2" ] && MYSQL_PASSWORD=$2 && shift ;;
|
||||
-espr | --elasticprotocol ) [ -n "$2" ] && ELK_SHEME=$2 && shift ;;
|
||||
-esh | --elastichost ) [ -n "$2" ] && ELK_HOST=$2 && shift ;;
|
||||
-esp | --elasticport ) [ -n "$2" ] && ELK_PORT=$2 && shift ;;
|
||||
-skiphc | --skiphardwarecheck ) [ -n "$2" ] && SKIP_HARDWARE_CHECK=$2 && shift ;;
|
||||
-ep | --externalport ) [ -n "$2" ] && EXTERNAL_PORT=$2 && shift ;;
|
||||
-dsh | --docspacehost ) [ -n "$2" ] && APP_URL_PORTAL=$2 && shift ;;
|
||||
-mk | --machinekey ) [ -n "$2" ] && APP_CORE_MACHINEKEY=$2 && shift ;;
|
||||
-env | --environment ) [ -n "$2" ] && ENV_EXTENSION=$2 && shift ;;
|
||||
-dsv | --docspaceversion ) [ -n "$2" ] && DOCKER_TAG=$2 && shift ;;
|
||||
-gb | --gitbranch ) [ -n "$2" ] && GIT_BRANCH=$2 && shift ;;
|
||||
-docsi | --docsimage ) [ -n "$2" ] && DOCUMENT_SERVER_IMAGE_NAME=$2 && shift ;;
|
||||
-docsv | --docsversion ) [ -n "$2" ] && DOCUMENT_SERVER_VERSION=$2 && shift ;;
|
||||
-docsurl | --docsurl ) [ -n "$2" ] && DOCUMENT_SERVER_URL_EXTERNAL=$2 && shift ;;
|
||||
-dbm | --databasemigration ) [ -n "$2" ] && DATABASE_MIGRATION=$2 && shift ;;
|
||||
-jh | --jwtheader ) [ -n "$2" ] && DOCUMENT_SERVER_JWT_HEADER=$2 && shift ;;
|
||||
-js | --jwtsecret ) [ -n "$2" ] && DOCUMENT_SERVER_JWT_SECRET=$2 && shift ;;
|
||||
-ies | --installelastic ) [ -n "$2" ] && INSTALL_ELASTICSEARCH=$2 && shift ;;
|
||||
-ifb | --installfluentbit ) [ -n "$2" ] && INSTALL_FLUENT_BIT=$2 && shift ;;
|
||||
-rdsh | --redishost ) [ -n "$2" ] && REDIS_HOST=$2 && shift ;;
|
||||
-rdsp | --redisport ) [ -n "$2" ] && REDIS_PORT=$2 && shift ;;
|
||||
-rdsu | --redisusername ) [ -n "$2" ] && REDIS_USER_NAME=$2 && shift ;;
|
||||
-rdspass | --redispassword ) [ -n "$2" ] && REDIS_PASSWORD=$2 && shift ;;
|
||||
-rbth | --rabbitmqhost ) [ -n "$2" ] && RABBIT_HOST=$2 && shift ;;
|
||||
-rbtp | --rabbitmqport ) [ -n "$2" ] && RABBIT_PORT=$2 && shift ;;
|
||||
-rbtu | --rabbitmqusername ) [ -n "$2" ] && RABBIT_USER_NAME=$2 && shift ;;
|
||||
-rbtpass | --rabbitmqpassword ) [ -n "$2" ] && RABBIT_PASSWORD=$2 && shift ;;
|
||||
-rbtvh | --rabbitmqvirtualhost) [ -n "$2" ] && RABBIT_VIRTUAL_HOST=$2 && shift ;;
|
||||
-led | --letsencryptdomain ) [ -n "$2" ] && LETS_ENCRYPT_DOMAIN=$2 && shift ;;
|
||||
-lem | --letsencryptmail ) [ -n "$2" ] && LETS_ENCRYPT_MAIL=$2 && shift ;;
|
||||
-cf | --certfile ) [ -n "$2" ] && CERTIFICATE_PATH=$2 && shift ;;
|
||||
-ckf | --certkeyfile ) [ -n "$2" ] && CERTIFICATE_KEY_PATH=$2 && shift ;;
|
||||
-du | --dashboadrsusername ) [ -n "$2" ] && DASHBOARDS_USERNAME=$2 && shift ;;
|
||||
-dp | --dashboadrspassword ) [ -n "$2" ] && DASHBOARDS_PASSWORD=$2 && shift ;;
|
||||
-s | --status ) [ -n "$2" ] && STATUS=$2 && IMAGE_NAME="${PACKAGE_SYSNAME}/${STATUS}${PRODUCT}-api" && shift ;;
|
||||
-it | --installation_type ) [ -n "$2" ] && INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}') && shift ;;
|
||||
-noni | --noninteractive ) [ "$2" == "true" -o "$2" == "false" ] && NON_INTERACTIVE=$2 && shift ;;
|
||||
-ls | --localscripts ) [ "$2" == "true" -o "$2" == "false" ] && LOCAL_SCRIPTS=$2 && shift ;;
|
||||
-ms | --makeswap ) [ "$2" == "true" -o "$2" == "false" ] && MAKESWAP=$2 && shift ;;
|
||||
-? | -h | --help )
|
||||
echo " Usage: bash $HELP_TARGET [PARAMETER] [[PARAMETER], ...]"
|
||||
echo
|
||||
echo " Parameters:"
|
||||
@ -548,21 +222,21 @@ while [ "$1" != "" ]; do
|
||||
echo " -ms, --makeswap make swap file (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
echo
|
||||
echo " Install all the components without document server:"
|
||||
echo " Install all the components without Document Server:"
|
||||
echo " bash $HELP_TARGET -idocs false"
|
||||
echo
|
||||
echo " Install Document Server only. Skip the installation of mysql, $PRODUCT, rabbitmq, redis:"
|
||||
echo " bash $HELP_TARGET -ids false -idocs true -imysql false -irbt false -irds false"
|
||||
echo " Install Document Server only. Skip the installation of $PRODUCT, mysql, rabbitmq, redis, elasticsearch, fluent-bit:"
|
||||
echo " bash $HELP_TARGET -idocs true -ids false -imysql false -irbt false -irds false -ies false -ifb false"
|
||||
echo
|
||||
echo " Update all installed components. Stop the containers that need to be updated, remove them and run the latest versions of the corresponding components."
|
||||
echo " The portal data should be picked up automatically:"
|
||||
echo " bash $HELP_TARGET -u true"
|
||||
echo
|
||||
echo " Update Document Server only to version 7.2.1.34 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -docsi ${PACKAGE_SYSNAME}/documentserver-ee -docsv 7.2.1.34 -idocs true -ids false -irbt false -irds false"
|
||||
echo " Update Document Server only to version 8.1.0 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -docsi ${PACKAGE_SYSNAME}/documentserver-ee -docsv 8.1.0 -idocs true -ids false -imysql false -irbt false -irds false -ies false -ifb false"
|
||||
echo
|
||||
echo " Update $PRODUCT only to version 1.2.0 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -dsv v1.2.0 -idocs false -irbt false -irds false"
|
||||
echo " Update $PRODUCT only to version 2.5.1 and skip the update for all other components:"
|
||||
echo " bash $HELP_TARGET -u true -dsv 2.5.1 -idocs false -imysql false -irbt false -irds false -ies false -ifb false"
|
||||
echo
|
||||
exit 0
|
||||
;;
|
||||
@ -577,29 +251,13 @@ done
|
||||
|
||||
root_checking () {
|
||||
PID=$$
|
||||
if [ ! $( id -u ) -eq 0 ]; then
|
||||
echo "To perform this action you must be logged in with root rights"
|
||||
exit 1;
|
||||
fi
|
||||
[ $(id -u) -ne 0 ] && echo "To perform this action you must be logged in with root rights" && exit 1
|
||||
}
|
||||
|
||||
command_exists () {
|
||||
type "$1" &> /dev/null;
|
||||
}
|
||||
|
||||
file_exists () {
|
||||
if [ -z "$1" ]; then
|
||||
echo "file path is empty"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ -f "$1" ]; then
|
||||
return 0; #true
|
||||
else
|
||||
return 1; #false
|
||||
fi
|
||||
}
|
||||
|
||||
to_lowercase () {
|
||||
echo "$1" | awk '{print tolower($0)}'
|
||||
}
|
||||
@ -609,14 +267,9 @@ trim () {
|
||||
}
|
||||
|
||||
get_random_str () {
|
||||
LENGTH=$1;
|
||||
|
||||
if [[ -z ${LENGTH} ]]; then
|
||||
LENGTH=12;
|
||||
fi
|
||||
|
||||
VALUE=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c ${LENGTH});
|
||||
echo "$VALUE"
|
||||
LENGTH=${1:-12}
|
||||
VALUE=$(tr -dc A-Za-z0-9 < /dev/urandom | head -c "$LENGTH")
|
||||
echo "$VALUE"
|
||||
}
|
||||
|
||||
get_os_info () {
|
||||
@ -926,25 +579,16 @@ create_network () {
|
||||
}
|
||||
|
||||
read_continue_installation () {
|
||||
if [[ "${NON_INTERACTIVE}" = "true" ]]; then
|
||||
return 0
|
||||
fi
|
||||
[ "$NON_INTERACTIVE" = "true" ] && return 0
|
||||
|
||||
read -p "Continue installation [Y/N]? " CHOICE_INSTALLATION
|
||||
case "$CHOICE_INSTALLATION" in
|
||||
y|Y )
|
||||
return 0
|
||||
;;
|
||||
|
||||
n|N )
|
||||
exit 0;
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "Please, enter Y or N";
|
||||
read_continue_installation
|
||||
;;
|
||||
esac
|
||||
while true; do
|
||||
read -p "Continue installation [Y/N]? " CHOICE_INSTALLATION
|
||||
case "$CHOICE_INSTALLATION" in
|
||||
[yY]) return 0 ;;
|
||||
[nN]) exit 0 ;;
|
||||
*) echo "Please, enter Y or N" ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
domain_check () {
|
||||
|
@ -26,93 +26,19 @@ res_unsupported_version () {
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
|
||||
-u | --update )
|
||||
if [ "$2" != "" ]; then
|
||||
UPDATE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-je | --jwtenabled )
|
||||
if [ "$2" != "" ]; then
|
||||
JWT_ENABLED=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-jh | --jwtheader )
|
||||
if [ "$2" != "" ]; then
|
||||
JWT_HEADER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-js | --jwtsecret )
|
||||
if [ "$2" != "" ]; then
|
||||
JWT_SECRET=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-gb | --gitbranch )
|
||||
if [ "$2" != "" ]; then
|
||||
PARAMETERS="$PARAMETERS ${1}";
|
||||
GIT_BRANCH=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ifb | --installfluentbit )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALL_FLUENT_BIT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-du | --dashboadrsusername )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_USERNAME=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-dp | --dashboadrspassword )
|
||||
if [ "$2" != "" ]; then
|
||||
DASHBOARDS_PASSWORD=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ls | --localscripts )
|
||||
if [ "$2" != "" ]; then
|
||||
LOCAL_SCRIPTS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-skiphc | --skiphardwarecheck )
|
||||
if [ "$2" != "" ]; then
|
||||
SKIP_HARDWARE_CHECK=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-it | --installation_type )
|
||||
if [ "$2" != "" ]; then
|
||||
INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}');
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-ms | --makeswap )
|
||||
if [ "$2" != "" ]; then
|
||||
MAKESWAP=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
-u | --update ) [ -n "$2" ] && UPDATE=$2 && shift ;;
|
||||
-je | --jwtenabled ) [ -n "$2" ] && JWT_ENABLED=$2 && shift ;;
|
||||
-jh | --jwtheader ) [ -n "$2" ] && JWT_HEADER=$2 && shift ;;
|
||||
-js | --jwtsecret ) [ -n "$2" ] && JWT_SECRET=$2 && shift ;;
|
||||
-gb | --gitbranch ) [ -n "$2" ] && GIT_BRANCH=$2 && shift ;;
|
||||
-ifb | --installfluentbit ) [ -n "$2" ] && INSTALL_FLUENT_BIT=$2 && shift ;;
|
||||
-du | --dashboadrsusername ) [ -n "$2" ] && DASHBOARDS_USERNAME=$2 && shift ;;
|
||||
-dp | --dashboadrspassword ) [ -n "$2" ] && DASHBOARDS_PASSWORD=$2 && shift ;;
|
||||
-ls | --localscripts ) [ "$2" == "true" -o "$2" == "false" ] && LOCAL_SCRIPTS=$2 && shift ;;
|
||||
-skiphc | --skiphardwarecheck ) [ "$2" == "true" -o "$2" == "false" ] && SKIP_HARDWARE_CHECK=$2 && shift ;;
|
||||
-ms | --makeswap ) [ "$2" == "true" -o "$2" == "false" ] && MAKESWAP=$2 && shift ;;
|
||||
-it | --installation_type ) [ -n "$2" ] && INSTALLATION_TYPE=$(echo "$2" | awk '{print toupper($0)}') && shift ;;
|
||||
-? | -h | --help )
|
||||
echo " Usage $0 [PARAMETER] [[PARAMETER], ...]"
|
||||
echo " Parameters:"
|
||||
echo " -it, --installation_type installation type (community|enterprise)"
|
||||
@ -130,22 +56,13 @@ while [ "$1" != "" ]; do
|
||||
echo
|
||||
exit 0
|
||||
;;
|
||||
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -z "${UPDATE}" ]; then
|
||||
UPDATE="false";
|
||||
fi
|
||||
|
||||
if [ -z "${LOCAL_SCRIPTS}" ]; then
|
||||
LOCAL_SCRIPTS="false";
|
||||
fi
|
||||
|
||||
if [ -z "${SKIP_HARDWARE_CHECK}" ]; then
|
||||
SKIP_HARDWARE_CHECK="false";
|
||||
fi
|
||||
UPDATE="${UPDATE:-false}"
|
||||
LOCAL_SCRIPTS="${LOCAL_SCRIPTS:-false}"
|
||||
SKIP_HARDWARE_CHECK="${SKIP_HARDWARE_CHECK:-false}"
|
||||
|
||||
cat > /etc/yum.repos.d/onlyoffice.repo <<END
|
||||
[onlyoffice]
|
||||
@ -156,11 +73,8 @@ enabled=1
|
||||
gpgkey=https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE
|
||||
END
|
||||
|
||||
if [ -z $GIT_BRANCH ]; then
|
||||
DOWNLOAD_URL_PREFIX="https://download.onlyoffice.com/${product}/install-RedHat"
|
||||
else
|
||||
DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/ONLYOFFICE/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall/install-RedHat"
|
||||
fi
|
||||
DOWNLOAD_URL_PREFIX="https://download.${product_sysname}.com/${product}/install-RedHat"
|
||||
[ -n "$GIT_BRANCH" ] && DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/${product_sysname^^}/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall/install-RedHat"
|
||||
|
||||
if [ "$LOCAL_SCRIPTS" = "true" ]; then
|
||||
source install-RedHat/tools.sh
|
||||
|
@ -39,7 +39,7 @@ yum localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/$RPMFUSION
|
||||
|
||||
[ "$REV" = "9" ] && update-crypto-policies --set DEFAULT:SHA1
|
||||
if [ "$DIST" == "centos" ]; then
|
||||
[ "$REV" = "9" ] && TESTING_REPO="--enablerepo=crb" || POWERTOOLS_REPO="--enablerepo=powertools"
|
||||
[ "$REV" = "9" ] && { ${package_manager} -y install xorg-x11-font-utils; TESTING_REPO="--enablerepo=crb"; } || POWERTOOLS_REPO="--enablerepo=powertools"
|
||||
elif [ "$DIST" == "redhat" ]; then
|
||||
/usr/bin/crb enable
|
||||
fi
|
||||
|
@ -88,7 +88,7 @@ override_dh_auto_build: check_archives
|
||||
sed -i '/^\[OUTPUT\]/i\[INPUT]' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Name exec' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Interval_Sec 86400' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Command curl -s -X POST OPENSEARCH_SCHEME://OPENSEARCH_HOST:OPENSEARCH_PORT/OPENSEARCH_INDEX/_delete_by_query -H '\''Content-Type: application/json'\'' -d '\''{"query": {"range": {"@timestamp": {"lt": "now-30d"}}}}'\'' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Command curl -s -X POST OPENSEARCH_SCHEME://OPENSEARCH_HOST:OPENSEARCH_PORT/OPENSEARCH_INDEX/_delete_by_query -H '\''Content-Type: application/json'\'' -d '\''{"query": {"range": {"@timestamp": {"lt": "now-30d"}}}}'\''' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\\' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
|
||||
for i in ${PRODUCT} $$(ls ${CURDIR}/debian/*.install | grep -oP 'debian/\K.*' | grep -o '^[^.]*'); do \
|
||||
|
@ -1,127 +1,145 @@
|
||||
# docker-compose tags #
|
||||
PRODUCT=onlyoffice
|
||||
REPO=${PRODUCT}
|
||||
INSTALLATION_TYPE=COMMUNITY
|
||||
STATUS=""
|
||||
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
||||
DOCKER_TAG=latest
|
||||
CONTAINER_PREFIX=${PRODUCT}-
|
||||
MYSQL_VERSION=8.3.0
|
||||
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
||||
SERVICE_PORT=5050
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCKERFILE=Dockerfile.app
|
||||
APP_DOTNET_ENV=""
|
||||
EXTERNAL_PORT="80"
|
||||
|
||||
# opensearch stack #
|
||||
ELK_VERSION=2.11.1
|
||||
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
|
||||
ELK_SHEME=http
|
||||
ELK_HOST=""
|
||||
ELK_PORT=9200
|
||||
DASHBOARDS_VERSION=2.11.1
|
||||
DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards
|
||||
DASHBOARDS_USERNAME=onlyoffice
|
||||
DASHBOARDS_PASSWORD=onlyoffice
|
||||
FLUENT_BIT_VERSION=3.0.2
|
||||
FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit
|
||||
|
||||
# app service environment #
|
||||
ENV_EXTENSION=none
|
||||
APP_CORE_BASE_DOMAIN=localhost
|
||||
APP_URL_PORTAL="http://localhost:8092"
|
||||
OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx"
|
||||
WRONG_PORTAL_NAME_URL=""
|
||||
LOG_LEVEL="Warning"
|
||||
DEBUG_INFO="false"
|
||||
|
||||
APP_KNOWN_PROXIES=""
|
||||
APP_KNOWN_NETWORKS=""
|
||||
APP_CORE_MACHINEKEY=your_core_machinekey
|
||||
|
||||
CERTIFICATE_PATH=""
|
||||
CERTIFICATE_KEY_PATH=""
|
||||
DHPARAM_PATH=""
|
||||
|
||||
# docs #
|
||||
DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server
|
||||
DOCUMENT_SERVER_URL_EXTERNAL=""
|
||||
DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret
|
||||
DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
|
||||
DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/
|
||||
|
||||
# redis #
|
||||
REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis
|
||||
REDIS_HOST=""
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER_NAME=""
|
||||
REDIS_PASSWORD=""
|
||||
|
||||
# rabbitmq #
|
||||
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
|
||||
RABBIT_HOST=""
|
||||
RABBIT_PORT=5672
|
||||
RABBIT_VIRTUAL_HOST=/
|
||||
RABBIT_USER_NAME=guest
|
||||
RABBIT_PASSWORD=guest
|
||||
|
||||
# mysql #
|
||||
MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server
|
||||
MYSQL_HOST=""
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_ROOT_PASSWORD=my-secret-pw
|
||||
MYSQL_DATABASE=docspace
|
||||
MYSQL_USER=${PRODUCT}_user
|
||||
MYSQL_PASSWORD=${PRODUCT}_pass
|
||||
DATABASE_MIGRATION=false
|
||||
MIGRATION_TYPE="SAAS"
|
||||
|
||||
# service host #
|
||||
API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system
|
||||
BACKUP_HOST=${CONTAINER_PREFIX}backup
|
||||
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
|
||||
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
|
||||
FILES_HOST=${CONTAINER_PREFIX}files
|
||||
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
|
||||
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
|
||||
NOTIFY_HOST=${CONTAINER_PREFIX}notify
|
||||
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
|
||||
SOCKET_HOST=${CONTAINER_PREFIX}socket
|
||||
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
|
||||
API_HOST=${CONTAINER_PREFIX}api
|
||||
STUDIO_HOST=${CONTAINER_PREFIX}studio
|
||||
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
|
||||
TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports
|
||||
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
|
||||
PROXY_HOST=${CONTAINER_PREFIX}proxy
|
||||
ROUTER_HOST=${CONTAINER_PREFIX}router
|
||||
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
|
||||
LOGIN_HOST=${CONTAINER_PREFIX}login
|
||||
MANAGEMENT_HOST={CONTAINER_PREFIX}management
|
||||
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
|
||||
|
||||
# router upstream environment #
|
||||
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
|
||||
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
|
||||
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
|
||||
SERVICE_API=${API_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
|
||||
SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
|
||||
SERVICE_LOGIN=${LOGIN_HOST}:5011
|
||||
SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT}
|
||||
SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT}
|
||||
|
||||
NETWORK_NAME=${PRODUCT}
|
||||
|
||||
COMPOSE_IGNORE_ORPHANS=True
|
||||
# docker-compose tags #
|
||||
PRODUCT=onlyoffice
|
||||
REPO=${PRODUCT}
|
||||
INSTALLATION_TYPE=COMMUNITY
|
||||
STATUS=""
|
||||
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
||||
DOCKER_TAG=latest
|
||||
CONTAINER_PREFIX=${PRODUCT}-
|
||||
MYSQL_VERSION=8.3.0
|
||||
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
||||
SERVICE_PORT=5050
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCKERFILE=Dockerfile.app
|
||||
APP_DOTNET_ENV=""
|
||||
EXTERNAL_PORT="80"
|
||||
|
||||
# opensearch stack #
|
||||
ELK_VERSION=2.11.1
|
||||
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
|
||||
ELK_SHEME=http
|
||||
ELK_HOST=""
|
||||
ELK_PORT=9200
|
||||
DASHBOARDS_VERSION=2.11.1
|
||||
DASHBOARDS_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch-dashboards
|
||||
DASHBOARDS_USERNAME=onlyoffice
|
||||
DASHBOARDS_PASSWORD=onlyoffice
|
||||
FLUENT_BIT_VERSION=3.0.2
|
||||
FLUENT_BIT_CONTAINER_NAME=${CONTAINER_PREFIX}fluent-bit
|
||||
|
||||
# app service environment #
|
||||
ENV_EXTENSION=none
|
||||
APP_CORE_BASE_DOMAIN=localhost
|
||||
APP_URL_PORTAL="http://localhost:8092"
|
||||
OAUTH_REDIRECT_URL="https://service.onlyoffice.com/oauth2.aspx"
|
||||
WRONG_PORTAL_NAME_URL=""
|
||||
LOG_LEVEL="Warning"
|
||||
DEBUG_INFO="false"
|
||||
|
||||
APP_KNOWN_PROXIES=""
|
||||
APP_KNOWN_NETWORKS=""
|
||||
APP_CORE_MACHINEKEY=your_core_machinekey
|
||||
|
||||
CERTIFICATE_PATH=""
|
||||
CERTIFICATE_KEY_PATH=""
|
||||
DHPARAM_PATH=""
|
||||
|
||||
# docs #
|
||||
DOCUMENT_CONTAINER_NAME=${CONTAINER_PREFIX}document-server
|
||||
DOCUMENT_SERVER_URL_EXTERNAL=""
|
||||
DOCUMENT_SERVER_JWT_SECRET=your_jwt_secret
|
||||
DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt
|
||||
DOCUMENT_SERVER_URL_PUBLIC=/ds-vpath/
|
||||
|
||||
# redis #
|
||||
REDIS_CONTAINER_NAME=${CONTAINER_PREFIX}redis
|
||||
REDIS_HOST=""
|
||||
REDIS_PORT=6379
|
||||
REDIS_USER_NAME=""
|
||||
REDIS_PASSWORD=""
|
||||
|
||||
# rabbitmq #
|
||||
RABBIT_CONTAINER_NAME=${CONTAINER_PREFIX}rabbitmq
|
||||
RABBIT_HOST=""
|
||||
RABBIT_PORT=5672
|
||||
RABBIT_VIRTUAL_HOST=/
|
||||
RABBIT_USER_NAME=guest
|
||||
RABBIT_PASSWORD=guest
|
||||
|
||||
# mysql #
|
||||
MYSQL_CONTAINER_NAME=${CONTAINER_PREFIX}mysql-server
|
||||
MYSQL_HOST=""
|
||||
MYSQL_PORT=3306
|
||||
MYSQL_ROOT_PASSWORD=my-secret-pw
|
||||
MYSQL_DATABASE=docspace
|
||||
MYSQL_USER=${PRODUCT}_user
|
||||
MYSQL_PASSWORD=${PRODUCT}_pass
|
||||
DATABASE_MIGRATION=false
|
||||
MIGRATION_TYPE="SAAS"
|
||||
|
||||
# service host #
|
||||
API_SYSTEM_HOST=${CONTAINER_PREFIX}api-system
|
||||
BACKUP_HOST=${CONTAINER_PREFIX}backup
|
||||
BACKUP_BACKGRUOND_TASKS_HOST=${CONTAINER_PREFIX}backup-background-tasks
|
||||
CLEAR_EVENTS_HOST=${CONTAINER_PREFIX}clear-events
|
||||
FILES_HOST=${CONTAINER_PREFIX}files
|
||||
FILES_SERVICES_HOST=${CONTAINER_PREFIX}files-services
|
||||
STORAGE_MIGRATION_HOST=${CONTAINER_PREFIX}storage-migration
|
||||
NOTIFY_HOST=${CONTAINER_PREFIX}notify
|
||||
PEOPLE_SERVER_HOST=${CONTAINER_PREFIX}people-server
|
||||
SOCKET_HOST=${CONTAINER_PREFIX}socket
|
||||
STUDIO_NOTIFY_HOST=${CONTAINER_PREFIX}studio-notify
|
||||
API_HOST=${CONTAINER_PREFIX}api
|
||||
STUDIO_HOST=${CONTAINER_PREFIX}studio
|
||||
SSOAUTH_HOST=${CONTAINER_PREFIX}ssoauth
|
||||
TELEGRAMREPORTS_HOST=${CONTAINER_PREFIX}telegramreports
|
||||
MIGRATION_RUNNER_HOST=${CONTAINER_PREFIX}migration-runner
|
||||
PROXY_HOST=${CONTAINER_PREFIX}proxy
|
||||
ROUTER_HOST=${CONTAINER_PREFIX}router
|
||||
DOCEDITOR_HOST=${CONTAINER_PREFIX}doceditor
|
||||
LOGIN_HOST=${CONTAINER_PREFIX}login
|
||||
MANAGEMENT_HOST={CONTAINER_PREFIX}management
|
||||
HELTHCHECKS_HOST=${CONTAINER_PREFIX}healthchecks
|
||||
|
||||
# router upstream environment #
|
||||
SERVICE_API_SYSTEM=${API_SYSTEM_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP=${BACKUP_HOST}:${SERVICE_PORT}
|
||||
SERVICE_BACKUP_BACKGRUOND_TASKS=${BACKUP_BACKGRUOND_TASKS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_CLEAR_EVENTS=${CLEAR_EVENTS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES=${FILES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_FILES_SERVICES=${FILES_SERVICES_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STORAGE_MIGRATION=${STORAGE_MIGRATION_HOST}:${SERVICE_PORT}
|
||||
SERVICE_NOTIFY=${NOTIFY_HOST}:${SERVICE_PORT}
|
||||
SERVICE_PEOPLE_SERVER=${PEOPLE_SERVER_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SOCKET=${SOCKET_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO_NOTIFY=${STUDIO_NOTIFY_HOST}:${SERVICE_PORT}
|
||||
SERVICE_API=${API_HOST}:${SERVICE_PORT}
|
||||
SERVICE_STUDIO=${STUDIO_HOST}:${SERVICE_PORT}
|
||||
SERVICE_SSOAUTH=${SSOAUTH_HOST}:${SERVICE_PORT}
|
||||
SERVICE_TELEGRAMREPORTS=${TELEGRAMREPORTS_HOST}:${SERVICE_PORT}
|
||||
SERVICE_DOCEDITOR=${DOCEDITOR_HOST}:5013
|
||||
SERVICE_LOGIN=${LOGIN_HOST}:5011
|
||||
SERVICE_MANAGEMENT={MANAGEMENT_HOST}:${SERVICE_PORT}
|
||||
SERVICE_HELTHCHECKS=${HELTHCHECKS_HOST}:${SERVICE_PORT}
|
||||
|
||||
NETWORK_NAME=${PRODUCT}
|
||||
|
||||
COMPOSE_IGNORE_ORPHANS=True
|
||||
# identity #
|
||||
IDENTITY_DOCKERFILE=/Dockerfile
|
||||
|
||||
JDBC_USER_NAME=root
|
||||
JDBC_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
JDBC_URL=${MYSQL_CONTAINER_NAME}
|
||||
JDBC_DATABASE=${MYSQL_DATABASE}
|
||||
|
||||
IDENTITY_PROFILE="dev"
|
||||
|
||||
IDENTITY_MIGRATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity_migration
|
||||
IDENTITY_MIGRATION_SERVER_PORT=8081
|
||||
IDENTITY_AUTHORIZATION_CONTAINER_NAME=${CONTAINER_PREFIX}identity-authorization
|
||||
IDENTITY_AUTHORIZATION_SERVER_PORT=8080
|
||||
IDENTITY_API_CONTAINER_NAME=${CONTAINER_PREFIX}identity-api
|
||||
IDENTITY_API_SERVER_PORT=9090
|
||||
|
||||
REDIS_ADDRESSES=redis://onlyoffice-redis:6379
|
||||
|
@ -28,7 +28,7 @@ ARG PRODUCT_VERSION=0.0.0
|
||||
ARG BUILD_NUMBER=0
|
||||
|
||||
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US:en \
|
||||
@ -40,10 +40,10 @@ COPY . .
|
||||
|
||||
RUN apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
locales \
|
||||
git \
|
||||
npm && \
|
||||
sudo \
|
||||
locales \
|
||||
git \
|
||||
npm && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
npm install --global yarn && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
@ -81,7 +81,7 @@ RUN mkdir -p /app/onlyoffice/ && \
|
||||
rm -rf ${SRC_PATH}/products/ASC.Files/Service/* && \
|
||||
rm -rf ${SRC_PATH}/products/ASC.Files/Server/* && \
|
||||
rm -rf ${SRC_PATH}/products/ASC.People/Server/*
|
||||
|
||||
|
||||
FROM $DOTNET_RUN as dotnetrun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
@ -98,16 +98,16 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
python3-pip \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
libgdiplus && \
|
||||
python3-pip \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
|
||||
|
||||
#USER onlyoffice
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
@ -127,10 +127,10 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@ -176,6 +176,8 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
|
@ -17,7 +17,7 @@ ARG DEBUG_INFO="true"
|
||||
ARG PUBLISH_CNF="Release"
|
||||
|
||||
LABEL onlyoffice.appserver.release-date="${RELEASE_DATE}" \
|
||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||
maintainer="Ascensio System SIA <support@onlyoffice.com>"
|
||||
|
||||
ENV LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US:en \
|
||||
@ -25,11 +25,11 @@ ENV LANG=en_US.UTF-8 \
|
||||
|
||||
RUN apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
locales \
|
||||
git \
|
||||
python3-pip \
|
||||
npm && \
|
||||
sudo \
|
||||
locales \
|
||||
git \
|
||||
python3-pip \
|
||||
npm && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
npm install --global yarn && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
@ -52,7 +52,7 @@ RUN cd ${SRC_PATH} && \
|
||||
cd ${SRC_PATH} && \
|
||||
cp buildtools/config/*.config /app/onlyoffice/config/ && \
|
||||
mkdir -p /etc/nginx/conf.d && cp -f buildtools/config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
|
||||
mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && \
|
||||
mkdir -p /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/onlyoffice*.conf /etc/nginx/includes/ && cp -f buildtools/config/nginx/includes/server-*.conf /etc/nginx/includes/ && \
|
||||
sed -i "s/\"number\".*,/\"number\": \"${PRODUCT_VERSION}.${BUILD_NUMBER}\",/g" /app/onlyoffice/config/appsettings.json && \
|
||||
sed -e 's/#//' -i /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
cd ${SRC_PATH}/buildtools/install/common/ && \
|
||||
@ -66,7 +66,7 @@ RUN cd ${SRC_PATH} && \
|
||||
rm -rf ${SRC_PATH}/server/products/ASC.Files/Server/* && \
|
||||
rm -rf ${SRC_PATH}/server/products/ASC.Files/Service/* && \
|
||||
rm -rf ${SRC_PATH}/server/products/ASC.People/Server/*
|
||||
|
||||
|
||||
COPY config/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
|
||||
|
||||
FROM $DOTNET_RUN as dotnetrun
|
||||
@ -85,17 +85,17 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip \
|
||||
libgdiplus && \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
|
||||
|
||||
#USER onlyoffice
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
@ -115,12 +115,12 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
@ -170,10 +170,12 @@ RUN sed -i 's/127.0.0.1:5010/$service_api_system/' /etc/nginx/conf.d/onlyoffice.
|
||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
if [[ -z "${SERVICE_CLIENT}" ]] ; then sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||
if [[ -z "${SERVICE_MANAGEMENT}" ]] ; then sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf; fi && \
|
||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5601/$dashboards_host:5601/' /etc/nginx/includes/server-dashboards.conf && \
|
||||
sed -i 's/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i '/client_body_temp_path/ i \ \ \ \ $MAP_HASH_BUCKET_SIZE' /etc/nginx/nginx.conf.template && \
|
||||
@ -253,11 +255,11 @@ ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
|
||||
WORKDIR ${BUILD_PATH}/products/ASC.Files/service/
|
||||
|
||||
RUN echo "deb http://security.ubuntu.com/ubuntu focal-security main" | tee /etc/apt/sources.list && \
|
||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \
|
||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq libssl1.1 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 3B4FE6ACC0B21F32 && \
|
||||
apt-key adv --keyserver keys.gnupg.net --recv-keys 871920D1991BC93C && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq libssl1.1 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --chown=onlyoffice:onlyoffice docker-entrypoint.py ./docker-entrypoint.py
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice ${BUILD_PATH}/services/ASC.Files.Service/service/ .
|
||||
|
@ -36,11 +36,11 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
python3-pip \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
libgdiplus && \
|
||||
python3-pip \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@ -64,10 +64,10 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@ -122,6 +122,8 @@ RUN chown onlyoffice:onlyoffice /etc/nginx/* -R && \
|
||||
sed -i 's/127.0.0.1:9834/$service_sso/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5013/$service_doceditor/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5011/$service_login/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:9090/$service_identity_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:8080/$service_identity/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5001/$service_client/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5015/$service_management/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:5033/$service_healthchecks/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
|
@ -54,6 +54,18 @@ map $SERVICE_API $service_api {
|
||||
default $SERVICE_API;
|
||||
}
|
||||
|
||||
map $SERVICE_IDENTITY_API $service_identity_api {
|
||||
volatile;
|
||||
"" 127.0.0.1:9090;
|
||||
default $SERVICE_IDENTITY_API;
|
||||
}
|
||||
|
||||
map $SERVICE_IDENTITY $service_identity {
|
||||
volatile;
|
||||
"" 127.0.0.1:8080;
|
||||
default $SERVICE_IDENTITY;
|
||||
}
|
||||
|
||||
map $SERVICE_STUDIO $service_studio {
|
||||
volatile;
|
||||
"" 127.0.0.1:5003;
|
||||
|
@ -264,6 +264,8 @@ services:
|
||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
|
||||
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
|
||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||
- SERVICE_API=${SERVICE_API}
|
||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||
|
@ -1,5 +1,5 @@
|
||||
x-healthcheck:
|
||||
&x-healthcheck
|
||||
version: "3.8"
|
||||
x-healthcheck: &x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
interval: 60s
|
||||
retries: 5
|
||||
@ -64,48 +64,48 @@ services:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup-background:${DOCKER_TAG}"
|
||||
container_name: ${BACKUP_BACKGRUOND_TASKS_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_BACKUP_BACKGRUOND_TASKS}/health/ || exit 1
|
||||
|
||||
onlyoffice-backup:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-backup:${DOCKER_TAG}"
|
||||
container_name: ${BACKUP_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_BACKUP}/health/ || exit 1
|
||||
|
||||
onlyoffice-clear-events:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-clear-events:${DOCKER_TAG}"
|
||||
container_name: ${CLEAR_EVENTS_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_CLEAR_EVENTS}/health/ || exit 1
|
||||
|
||||
onlyoffice-files:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files:${DOCKER_TAG}"
|
||||
container_name: ${FILES_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_FILES}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_FILES}/health/ || exit 1
|
||||
|
||||
onlyoffice-files-services:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-files-services:${DOCKER_TAG}"
|
||||
container_name: ${FILES_SERVICES_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_FILES_SERVICES}/health/ || exit 1
|
||||
|
||||
onlyoffice-people-server:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-people-server:${DOCKER_TAG}"
|
||||
container_name: ${PEOPLE_SERVER_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_PEOPLE_SERVER}/health/ || exit 1
|
||||
|
||||
onlyoffice-socket:
|
||||
<<: *x-service-base
|
||||
@ -119,32 +119,32 @@ services:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio-notify:${DOCKER_TAG}"
|
||||
container_name: ${STUDIO_NOTIFY_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_STUDIO_NOTIFY}/health/ || exit 1
|
||||
|
||||
onlyoffice-api:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api:${DOCKER_TAG}"
|
||||
container_name: ${API_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_API}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_API}/health/ || exit 1
|
||||
|
||||
onlyoffice-api-system:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-api-system:${DOCKER_TAG}"
|
||||
container_name: ${API_SYSTEM_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_API_SYSTEM}/health/ || exit 1
|
||||
|
||||
onlyoffice-studio:
|
||||
<<: *x-service-base
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-studio:${DOCKER_TAG}"
|
||||
container_name: ${STUDIO_HOST}
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_STUDIO}/health/ || exit 1
|
||||
|
||||
onlyoffice-ssoauth:
|
||||
<<: *x-service-base
|
||||
@ -161,8 +161,8 @@ services:
|
||||
expose:
|
||||
- "5013"
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_DOCEDITOR}/doceditor/health || exit 1
|
||||
|
||||
onlyoffice-login:
|
||||
<<: *x-service-base
|
||||
@ -171,16 +171,16 @@ services:
|
||||
expose:
|
||||
- "5011"
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: curl --fail http://${SERVICE_LOGIN}/login/health || exit 1
|
||||
|
||||
onlyoffice-router:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-router:${DOCKER_TAG}"
|
||||
container_name: ${ROUTER_HOST}
|
||||
restart: always
|
||||
healthcheck:
|
||||
<<: *x-healthcheck
|
||||
test: nginx -t || exit 1
|
||||
<<: *x-healthcheck
|
||||
test: nginx -t || exit 1
|
||||
expose:
|
||||
- "8081"
|
||||
- "8099"
|
||||
@ -208,6 +208,8 @@ services:
|
||||
- SERVICE_NOTIFY=${SERVICE_NOTIFY}
|
||||
- SERVICE_PEOPLE_SERVER=${SERVICE_PEOPLE_SERVER}
|
||||
- SERVICE_SOCKET=${SERVICE_SOCKET}
|
||||
- SERVICE_IDENTITY_API=${SERVICE_IDENTITY_API}
|
||||
- SERVICE_IDENTITY=${SERVICE_IDENTITY}
|
||||
- SERVICE_STUDIO_NOTIFY=${SERVICE_STUDIO_NOTIFY}
|
||||
- SERVICE_API=${SERVICE_API}
|
||||
- SERVICE_API_SYSTEM=${SERVICE_API_SYSTEM}
|
||||
|
69
install/docker/identity.yml
Normal file
69
install/docker/identity.yml
Normal file
@ -0,0 +1,69 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
onlyoffice-identity-authorization:
|
||||
build:
|
||||
context: ../../../server/common/ASC.Identity
|
||||
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||
args:
|
||||
- MODULE=authorization/authorization-container
|
||||
container_name: ${IDENTITY_AUTHORIZATION_CONTAINER_NAME}
|
||||
restart: always
|
||||
ports:
|
||||
- 8080:8080
|
||||
environment:
|
||||
- SPRING_PROFILES_ACTIVE=${IDENTITY_PROFILE}
|
||||
- SPRING_APPLICATION_NAME=ASC.Identity.Authorization
|
||||
- SERVER_PORT=${IDENTITY_AUTHORIZATION_SERVER_PORT}
|
||||
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||
- JDBC_URL=${JDBC_URL}
|
||||
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||
- REDIS_HOST=onlyoffice-redis
|
||||
depends_on:
|
||||
- onlyoffice-identity-migration
|
||||
|
||||
onlyoffice-identity-api:
|
||||
build:
|
||||
context: ../../../server/common/ASC.Identity
|
||||
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||
args:
|
||||
- MODULE=registration/registration-container
|
||||
container_name: ${IDENTITY_API_CONTAINER_NAME}
|
||||
ports:
|
||||
- 9090:9090
|
||||
environment:
|
||||
- SPRING_PROFILES_ACTIVE=${PROFILE}
|
||||
- SPRING_APPLICATION_NAME=ASC.Identity.Registration
|
||||
- SERVER_PORT=${IDENTITY_API_SERVER_PORT}
|
||||
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||
- JDBC_URL=${JDBC_URL}
|
||||
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||
- REDIS_HOST=onlyoffice-redis
|
||||
depends_on:
|
||||
- onlyoffice-identity-migration
|
||||
|
||||
onlyoffice-identity-migration:
|
||||
build:
|
||||
context: ../../../server/common/ASC.Identity
|
||||
dockerfile: ${IDENTITY_DOCKERFILE}
|
||||
args:
|
||||
- MODULE=infrastructure/infrastructure-migration-runner
|
||||
container_name: ${IDENTITY_MIGRATION_CONTAINER_NAME}
|
||||
restart: "no"
|
||||
ports:
|
||||
- 8081:8081
|
||||
environment:
|
||||
- JDBC_PASSWORD=${JDBC_PASSWORD}
|
||||
- JDBC_URL=${JDBC_URL}
|
||||
- JDBC_USER_NAME=${JDBC_USER_NAME}
|
||||
- JDBC_DATABASE=${JDBC_DATABASE}
|
||||
- RABBIT_HOST=onlyoffice-rabbitmq
|
||||
- REDIS_HOST=onlyoffice-redis
|
||||
networks:
|
||||
default:
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
@ -34,7 +34,7 @@ sed -i "s#\(/var/log/onlyoffice/\)#\1%{product}#" install/docker/config/fluent-b
|
||||
sed -i '/^\[OUTPUT\]/i\[INPUT]' install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Name exec' install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Interval_Sec 86400' install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Command curl -s -X POST OPENSEARCH_SCHEME://OPENSEARCH_HOST:OPENSEARCH_PORT/OPENSEARCH_INDEX/_delete_by_query -H '\''Content-Type: application/json'\'' -d '\''{"query": {"range": {"@timestamp": {"lt": "now-30d"}}}}'\'' ${BUILDTOOLS_PATH}/install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\ Command curl -s -X POST OPENSEARCH_SCHEME://OPENSEARCH_HOST:OPENSEARCH_PORT/OPENSEARCH_INDEX/_delete_by_query -H '\''Content-Type: application/json'\'' -d '\''{"query": {"range": {"@timestamp": {"lt": "now-30d"}}}}'\''' install/docker/config/fluent-bit.conf
|
||||
sed -i '/^\[OUTPUT\]/i\\' install/docker/config/fluent-bit.conf
|
||||
|
||||
find %{_builddir}/server/publish/ \
|
||||
|
@ -25,6 +25,7 @@ mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/server/DocStore/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/editor/"
|
||||
# Hidden folders are not copied when applying a mask * (only in RPM), so we explicitly copy .next directory in this way
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/editor/.next/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Login/login/.next/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/client/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/client/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/management/"
|
||||
@ -40,6 +41,7 @@ mkdir -p "%{buildroot}%{_bindir}/"
|
||||
cp -rf %{_builddir}/publish/web/public/* "%{buildroot}%{buildpath}/public/"
|
||||
cp -rf %{_builddir}/campaigns/src/campaigns/* "%{buildroot}%{buildpath}/public/campaigns"
|
||||
cp -rf %{_builddir}/publish/web/login/* "%{buildroot}%{buildpath}/products/ASC.Login/login/"
|
||||
cp -rf %{_builddir}/publish/web/login/.next/* "%{buildroot}%{buildpath}/products/ASC.Login/login/.next/"
|
||||
cp -rf %{_builddir}/publish/web/editor/* "%{buildroot}%{buildpath}/products/ASC.Files/editor/"
|
||||
cp -rf %{_builddir}/publish/web/editor/.next/* "%{buildroot}%{buildpath}/products/ASC.Files/editor/.next/"
|
||||
cp -rf %{_builddir}/server/products/ASC.Files/Server/DocStore/* "%{buildroot}%{buildpath}/products/ASC.Files/server/DocStore/"
|
||||
|
12
run/IdentityApi.xml
Normal file
12
run/IdentityApi.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<service>
|
||||
<id>OnlyofficeIdentityApi</id>
|
||||
<name>ONLYOFFICE IdentityApi</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>java</executable>
|
||||
<env name="LOG_FILE_PATH" value="../../Logs/identity-api.log"/>
|
||||
<env name="SPRING_PROFILES_ACTIVE" value=""/>
|
||||
<arguments>-jar ../../server/common/ASC.Identity/registration/registration-container/target/registration-container-1.0.0.jar</arguments>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="5 sec" />
|
||||
</service>
|
12
run/IdentityMigration.xml
Normal file
12
run/IdentityMigration.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<service>
|
||||
<id>OnlyofficeIdentityMigration</id>
|
||||
<name>ONLYOFFICE IdentityMigration</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>java</executable>
|
||||
<env name="LOG_FILE_PATH" value="../../Logs/identity-migration.log"/>
|
||||
<env name="SPRING_PROFILES_ACTIVE" value="dev"/>
|
||||
<arguments>-jar ../../server/common/ASC.Identity/infrastructure/infrastructure-migration-runner/target/infrastructure-migration-runner-1.0.0.jar</arguments>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="5 sec" />
|
||||
</service>
|
13
run/IdentityService.xml
Normal file
13
run/IdentityService.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<service>
|
||||
<id>OnlyofficeIdentityService</id>
|
||||
<name>ONLYOFFICE IdentityService</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>java</executable>
|
||||
<env name="LOG_FILE_PATH" value="../../Logs/identity-authorization.log"/>
|
||||
<env name="SERVER_PORT" value="8080"/>
|
||||
<env name="SPRING_PROFILES_ACTIVE" value=""/>
|
||||
<arguments>-jar ../../server/common/ASC.Identity/authorization/authorization-container/target/authorization-container-1.0.0.jar</arguments>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="5 sec" />
|
||||
</service>
|
@ -3,7 +3,8 @@
|
||||
<name>ONLYOFFICE Login SSR</name>
|
||||
<startmode>manual</startmode>
|
||||
<executable>node</executable>
|
||||
<arguments>../../publish/web/login/server.js</arguments>
|
||||
<arguments>server.js</arguments>
|
||||
<workingdirectory>%BASE%\..\..\client\packages\login</workingdirectory>
|
||||
<log mode="none"/>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="none" />
|
||||
|
28
scripts/identity.bat
Normal file
28
scripts/identity.bat
Normal file
@ -0,0 +1,28 @@
|
||||
PUSHD %~dp0..
|
||||
|
||||
cd %~dp0../../server/common/ASC.Identity/
|
||||
|
||||
echo Start build ASC.Identity project...
|
||||
echo.
|
||||
|
||||
echo ASC.Identity: resolves all project dependencies...
|
||||
echo.
|
||||
|
||||
call mvn dependency:go-offline -q
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
|
||||
echo ASC.Identity: take the compiled code and package it in its distributable format, such as a JAR...
|
||||
call mvn package -DskipTests -q
|
||||
|
||||
)
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
|
||||
echo ASC.Identity: build completed
|
||||
echo.
|
||||
|
||||
)
|
||||
|
||||
|
||||
POPD
|
@ -208,7 +208,7 @@ function install_docspace() {
|
||||
sed 's/set -e/set -xe/' -i *.sh
|
||||
fi
|
||||
|
||||
printf "N\nY\nY" | bash docspace-install.sh ${ARGUMENTS}
|
||||
printf "N\nY\nY" | bash docspace-install.sh ${ARGUMENTS} -log false
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Exit code non-zero. Exit with 1."
|
||||
|
Loading…
Reference in New Issue
Block a user