Merge branch 'release/v2.5.0' into hotfix/v2.0.5
This commit is contained in:
commit
a0c64dc8c8
28
.github/workflows/ci-oci-install.yml
vendored
28
.github/workflows/ci-oci-install.yml
vendored
@ -5,16 +5,14 @@ on:
|
||||
types: [opened, reopened, synchronize]
|
||||
paths:
|
||||
- 'install/OneClickInstall/**'
|
||||
- '!install/OneClickInstall/install-Docker.sh'
|
||||
- '!install/OneClickInstall/docspace-install.sh'
|
||||
|
||||
schedule:
|
||||
- cron: '00 20 * * 6' # At 23:00 on Saturday.
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
centos7:
|
||||
type: boolean
|
||||
description: 'CentOS 7'
|
||||
default: true
|
||||
centos8s:
|
||||
type: boolean
|
||||
description: 'CentOS 8 Stream'
|
||||
@ -23,10 +21,6 @@ on:
|
||||
type: boolean
|
||||
description: 'CentOS 9 Stream'
|
||||
default: true
|
||||
debian10:
|
||||
type: boolean
|
||||
description: 'Debian 10'
|
||||
default: true
|
||||
debian11:
|
||||
type: boolean
|
||||
description: 'Debian 11'
|
||||
@ -35,10 +29,6 @@ on:
|
||||
type: boolean
|
||||
description: 'Debian 12'
|
||||
default: true
|
||||
ubuntu1804:
|
||||
type: boolean
|
||||
description: 'Ubuntu 18.04'
|
||||
default: true
|
||||
ubuntu2004:
|
||||
type: boolean
|
||||
description: 'Ubuntu 20.04'
|
||||
@ -60,13 +50,10 @@ jobs:
|
||||
run: |
|
||||
matrix=$(echo '{
|
||||
"include": [
|
||||
{"execute": '${{ github.event.inputs.centos7 || true }}', "name": "CentOS7", "os": "centos7", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.centos8s || true }}', "name": "CentOS8S", "os": "centos8s", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.centos9s || true }}', "name": "CentOS9S", "os": "centos9s", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.debian10 || true }}', "name": "Debian10", "os": "debian10", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.debian11 || true }}', "name": "Debian11", "os": "debian11", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.debian12 || true }}', "name": "Debian12", "os": "debian12", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu1804 || true }}', "name": "Ubuntu18.04", "os": "ubuntu1804", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2004 || true }}', "name": "Ubuntu20.04", "os": "ubuntu2004", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2204 || true }}', "name": "Ubuntu22.04", "os": "ubuntu2204", "distr": "generic"}
|
||||
]
|
||||
@ -83,7 +70,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v5
|
||||
@ -96,9 +83,14 @@ jobs:
|
||||
sudo apt update -y
|
||||
sudo apt install vagrant virtualbox -y
|
||||
|
||||
- name: Free Disk Space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/lib/android /opt/ghc
|
||||
sudo docker image prune --all --force
|
||||
|
||||
- name: "Test production scripts with ${{matrix.name}}"
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
uses: nick-fields/retry@v2
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
max_attempts: 2
|
||||
timeout_minutes: 40
|
||||
@ -122,7 +114,7 @@ jobs:
|
||||
|
||||
- name: "Test Local scripts with ${{matrix.name}}"
|
||||
if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
|
||||
uses: nick-fields/retry@v2
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
max_attempts: 2
|
||||
timeout_minutes: 40
|
||||
|
113
.github/workflows/ci-oci-update.yml
vendored
Normal file
113
.github/workflows/ci-oci-update.yml
vendored
Normal file
@ -0,0 +1,113 @@
|
||||
name: Update OneClickInstall DocSpace
|
||||
|
||||
run-name: >
|
||||
Update DocSpace from older versions
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '00 20 * * 6' # At 23:00 on Saturday.
|
||||
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
centos8s:
|
||||
type: boolean
|
||||
description: 'CentOS 8 Stream'
|
||||
default: true
|
||||
centos9s:
|
||||
type: boolean
|
||||
description: 'CentOS 9 Stream'
|
||||
default: true
|
||||
debian11:
|
||||
type: boolean
|
||||
description: 'Debian 11'
|
||||
default: true
|
||||
debian12:
|
||||
type: boolean
|
||||
description: 'Debian 12'
|
||||
default: true
|
||||
ubuntu2004:
|
||||
type: boolean
|
||||
description: 'Ubuntu 20.04'
|
||||
default: true
|
||||
ubuntu2204:
|
||||
type: boolean
|
||||
description: 'Ubuntu 22.04'
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
|
||||
- name: Set matrix names
|
||||
id: set-matrix
|
||||
run: |
|
||||
matrix=$(echo '{
|
||||
"include": [
|
||||
{"execute": '${{ github.event.inputs.centos8s || true }}', "name": "CentOS8S", "os": "centos8s", "distr": "onlyoffice"},
|
||||
{"execute": '${{ github.event.inputs.centos9s || true }}', "name": "CentOS9S", "os": "centos9s", "distr": "onlyoffice"},
|
||||
{"execute": '${{ github.event.inputs.debian11 || true }}', "name": "Debian11", "os": "debian11", "distr": "onlyoffice"},
|
||||
{"execute": '${{ github.event.inputs.debian12 || true }}', "name": "Debian12", "os": "debian12", "distr": "onlyoffice"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2004 || true }}', "name": "Ubuntu20.04", "os": "ubuntu2004", "distr": "onlyoffice"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2204 || true }}', "name": "Ubuntu22.04", "os": "ubuntu2204", "distr": "onlyoffice"}
|
||||
]
|
||||
}' | jq -c '{include: [.include[] | select(.execute == true)]}')
|
||||
echo "matrix=${matrix}" >> $GITHUB_OUTPUT
|
||||
|
||||
update-boxes:
|
||||
name: "Update DocSpace on ${{ matrix.name}}"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: prepare
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{fromJSON(needs.prepare.outputs.matrix)}}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Free Disk Space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/lib/android /opt/ghc
|
||||
sudo docker image prune --all --force
|
||||
|
||||
- name: Get update and install vagrant
|
||||
run: |
|
||||
set -eux
|
||||
sudo apt update -y
|
||||
sudo apt install vagrant virtualbox -y
|
||||
|
||||
- name: Testing with update ${{matrix.name}}
|
||||
if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
max_attempts: 1
|
||||
timeout_minutes: 60
|
||||
retry_on: error
|
||||
command: |
|
||||
cd ./tests/vagrant
|
||||
set -eux
|
||||
|
||||
TEST_CASE='--local-install' \
|
||||
DISTR='${{matrix.distr}}' \
|
||||
RAM='5100' \
|
||||
CPU='3' \
|
||||
OS='docspace-${{ matrix.os }}' \
|
||||
DOWNLOAD_SCRIPT='-ds false' \
|
||||
TEST_REPO='-tr true' \
|
||||
ARGUMENTS="-arg '--skiphardwarecheck true --makeswap false --localscripts true --update true'" \
|
||||
vagrant up
|
||||
sleep 10
|
||||
vagrant destroy --force
|
||||
on_retry_command: |
|
||||
set -eux
|
||||
echo "Clean-up and one more try"
|
||||
cd ./tests/vagrant
|
||||
vagrant destroy --force
|
17
.github/workflows/cron-build.yml
vendored
17
.github/workflows/cron-build.yml
vendored
@ -28,6 +28,9 @@ jobs:
|
||||
matching_branches=${matching_branches#,}
|
||||
echo "json_output=[${matching_branches}]" >> $GITHUB_OUTPUT
|
||||
|
||||
last_branch=$(echo ${matching_branches} | awk -F, '{print $NF}' | sed 's/"//g')
|
||||
echo "last_branch=${last_branch}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Dispatch Action
|
||||
run: |
|
||||
echo "${{ steps.list-branches.outputs.json_output }}"
|
||||
@ -38,3 +41,17 @@ jobs:
|
||||
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \
|
||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
||||
--data '{"event_type": "cron-trigger-action", "client_payload": { "branches": ${{ steps.list-branches.outputs.json_output }}}}'
|
||||
|
||||
curl \
|
||||
-X POST \
|
||||
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
|
||||
https://api.github.com/repos/ONLYOFFICE/DocSpace/actions/workflows/59268961/dispatches \
|
||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
||||
--data '{
|
||||
"ref": "${{ steps.list-branches.outputs.last_branch }}",
|
||||
"inputs": {
|
||||
"branch-buildtools": "${{ steps.list-branches.outputs.last_branch }}",
|
||||
"branch-client": "${{ steps.list-branches.outputs.last_branch }}",
|
||||
"branch-server": "${{ steps.list-branches.outputs.last_branch }}"
|
||||
}
|
||||
}'
|
||||
|
2
.github/workflows/main-build.yml
vendored
2
.github/workflows/main-build.yml
vendored
@ -64,6 +64,8 @@ jobs:
|
||||
export DOCKER_TAG
|
||||
docker buildx bake -f build.yml \
|
||||
--set *.args.GIT_BRANCH=${{ matrix.branch }} \
|
||||
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
||||
--set *.args.BUILD_NUMBER=${BUILD_NUMBER} \
|
||||
--set *.platform=linux/amd64 \
|
||||
--set *.args.PRODUCT_VERSION=${PRODUCT_VERSION} \
|
||||
--set *.args.BUILD_NUMBER=${{github.run_number}} \
|
||||
|
123
.github/workflows/rebuild-boxes.yml
vendored
Normal file
123
.github/workflows/rebuild-boxes.yml
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
name: Rebuild boxes
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
centos8s:
|
||||
type: boolean
|
||||
description: 'CentOS 8 Stream'
|
||||
default: true
|
||||
centos9s:
|
||||
type: boolean
|
||||
description: 'CentOS 9 Stream'
|
||||
default: true
|
||||
debian11:
|
||||
type: boolean
|
||||
description: 'Debian 11'
|
||||
default: true
|
||||
debian12:
|
||||
type: boolean
|
||||
description: 'Debian 12'
|
||||
default: true
|
||||
ubuntu2004:
|
||||
type: boolean
|
||||
description: 'Ubuntu 20.04'
|
||||
default: true
|
||||
ubuntu2204:
|
||||
type: boolean
|
||||
description: 'Ubuntu 22.04'
|
||||
default: true
|
||||
|
||||
env:
|
||||
VAGRANT_TOKEN: ${{ secrets.VAGRANT_TOKEN }}
|
||||
VAGRANT_ACCOUNT: ${{ secrets.VAGRANT_ACCOUNT }}
|
||||
|
||||
jobs:
|
||||
prepare:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
|
||||
- name: Set matrix names
|
||||
id: set-matrix
|
||||
run: |
|
||||
matrix=$(echo '{
|
||||
"include": [
|
||||
{"execute": '${{ github.event.inputs.centos8s || true }}', "name": "CentOS8S", "os": "centos8s", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.centos9s || true }}', "name": "CentOS9S", "os": "centos9s", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.debian11 || true }}', "name": "Debian11", "os": "debian11", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.debian12 || true }}', "name": "Debian12", "os": "debian12", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2004 || true }}', "name": "Ubuntu20.04", "os": "ubuntu2004", "distr": "generic"},
|
||||
{"execute": '${{ github.event.inputs.ubuntu2204 || true }}', "name": "Ubuntu22.04", "os": "ubuntu2204", "distr": "generic"}
|
||||
]
|
||||
}' | jq -c '{include: [.include[] | select(.execute == true)]}')
|
||||
echo "matrix=${matrix}" >> $GITHUB_OUTPUT
|
||||
|
||||
rebuild-boxes:
|
||||
name: "Rebuild boxes DocSpace on ${{ matrix.name}}"
|
||||
runs-on: ubuntu-22.04
|
||||
needs: prepare
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix: ${{fromJSON(needs.prepare.outputs.matrix)}}
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python 3.
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Get update and install vagrant
|
||||
run: |
|
||||
set -eux
|
||||
sudo apt update -y
|
||||
sudo apt install vagrant virtualbox -y
|
||||
|
||||
- name: Login Vagrant cloud
|
||||
run: vagrant cloud auth login --token ${VAGRANT_TOKEN}
|
||||
|
||||
- name: Free Disk Space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/lib/android /opt/ghc
|
||||
sudo docker image prune --all --force
|
||||
|
||||
- name: Rebuild boxes
|
||||
uses: nick-fields/retry@v3
|
||||
with:
|
||||
max_attempts: 2
|
||||
timeout_minutes: 90
|
||||
retry_on: error
|
||||
command: |
|
||||
set -eux
|
||||
|
||||
cd tests/vagrant
|
||||
export date=$(date +%F)
|
||||
TEST_CASE='--production-install' \
|
||||
DISTR='${{matrix.distr}}' \
|
||||
OS='${{ matrix.os }}' \
|
||||
DOWNLOAD_SCRIPT='-ds true' \
|
||||
RAM='5100' \
|
||||
CPU='3' \
|
||||
ARGUMENTS="-arg '--skiphardwarecheck true --makeswap false'" \
|
||||
vagrant up
|
||||
sleep 300
|
||||
vagrant package --output repacked_${{ matrix.os }}.box
|
||||
vagrant cloud publish \
|
||||
${VAGRANT_ACCOUNT}/docspace-${{ matrix.os }} \
|
||||
$date virtualbox repacked_${{ matrix.os }}.box \
|
||||
-d "Box with pre-installed DocSpace" \
|
||||
--version-description "DocSpace <version>" \
|
||||
--release --short-description "Boxes for update testing" \
|
||||
--force \
|
||||
--no-private
|
||||
on_retry_command: |
|
||||
set -eux
|
||||
|
||||
echo "RUN CLEAN UP: Remove repacked box and destroy"
|
||||
cd tests/vagrant
|
||||
rm -rf repacked_${{ matrix.os }}.box
|
||||
vagrant destroy --force
|
@ -20,14 +20,24 @@ def help():
|
||||
print("d Run dnsmasq.")
|
||||
print()
|
||||
|
||||
|
||||
rd = os.path.dirname(os.path.abspath(__file__))
|
||||
dir = os.path.abspath(os.path.join(rd, ".."))
|
||||
dockerDir = os.path.join(dir, "buildtools", "install", "docker")
|
||||
local_ip = socket.gethostbyname_ex(socket.gethostname())[-1][-1]
|
||||
networks = socket.gethostbyname_ex(socket.gethostname())
|
||||
local_ip = networks[-1][-1]
|
||||
|
||||
if local_ip == "127.0.0.1":
|
||||
local_ip = networks[-1][0]
|
||||
|
||||
if local_ip == "127.0.0.1":
|
||||
print("Error: Local IP is 127.0.0.1", networks)
|
||||
sys.exit(1)
|
||||
|
||||
doceditor = f"{local_ip}:5013"
|
||||
login = f"{local_ip}:5011"
|
||||
client = f"{local_ip}:5001"
|
||||
management = f"{local_ip}:5015"
|
||||
portal_url = f"http://{local_ip}"
|
||||
|
||||
force = False
|
||||
@ -104,7 +114,7 @@ if arch_name == "x86_64" or arch_name == "AMD64":
|
||||
subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "db.yml"), "up", "-d"])
|
||||
elif arch_name == "arm64":
|
||||
print("CPU Type: arm64 -> run db.yml with arm64v8 image")
|
||||
os.environ["MYSQL_IMAGE"] = "arm64v8/mysql:8.0.32-oracle"
|
||||
os.environ["MYSQL_IMAGE"] = "arm64v8/mysql:8.3.0-oracle"
|
||||
subprocess.run(["docker", "compose", "-f", os.path.join(dockerDir, "db.yml"), "up", "-d"])
|
||||
else:
|
||||
print("Error: Unknown CPU Type:", arch_name)
|
||||
@ -170,6 +180,7 @@ os.environ["Baseimage_Proxy_Run"] = "onlyoffice/4testing-docspace-proxy-runtime:
|
||||
os.environ["DOCUMENT_SERVER_IMAGE_NAME"] = document_server_image_name
|
||||
os.environ["SERVICE_DOCEDITOR"] = doceditor
|
||||
os.environ["SERVICE_LOGIN"] = login
|
||||
os.environ["SERVICE_MANAGEMENT"] = management
|
||||
os.environ["SERVICE_CLIENT"] = client
|
||||
os.environ["ROOT_DIR"] = dir
|
||||
os.environ["BUILD_PATH"] = "/var/www"
|
||||
@ -187,6 +198,7 @@ print("Docker files root directory:", dockerDir)
|
||||
print()
|
||||
print(f"SERVICE_DOCEDITOR: {doceditor}")
|
||||
print(f"SERVICE_LOGIN: {login}")
|
||||
print(f"SERVICE_MANAGEMENT: {management}")
|
||||
print(f"SERVICE_CLIENT: {client}")
|
||||
print(f"DOCSPACE_APP_URL: {portal_url}")
|
||||
|
||||
|
@ -43,6 +43,7 @@ xcopy buildtools\config\nginx\sites-enabled\* publish\nginx\sites-enabled\ /E /R
|
||||
|
||||
REM fix paths
|
||||
powershell -Command "(gc publish\nginx\sites-enabled\onlyoffice-client.conf) -replace 'ROOTPATH', '%parentFolder%\publish\web\client' -replace '\\', '/' | Out-File -encoding ASCII publish\nginx\sites-enabled\onlyoffice-client.conf"
|
||||
powershell -Command "(gc publish\nginx\sites-enabled\onlyoffice-management.conf) -replace 'ROOTPATH', '%parentFolder%\publish\web\management' -replace '\\', '/' | Out-File -encoding ASCII publish\nginx\sites-enabled\onlyoffice-management.conf"
|
||||
|
||||
REM restart nginx
|
||||
echo service nginx stop
|
||||
|
42
campaigns.downloader.py
Normal file
42
campaigns.downloader.py
Normal file
@ -0,0 +1,42 @@
|
||||
import os
|
||||
from github import Github
|
||||
import requests
|
||||
import shutil
|
||||
|
||||
rd = os.path.dirname(os.path.abspath(__file__))
|
||||
dir = os.path.abspath(os.path.join(rd, ".."))
|
||||
publicDir = os.path.join(dir, "client/public")
|
||||
g = Github()
|
||||
repo = g.get_repo("ONLYOFFICE/ASC.Web.Campaigns")
|
||||
repoFolder = "src/campaigns"
|
||||
|
||||
def download(c, out):
|
||||
r = requests.get(c.download_url)
|
||||
output_path = f'{out}/{c.path}'
|
||||
os.makedirs(os.path.dirname(output_path), exist_ok=True)
|
||||
with open(output_path, 'wb') as f:
|
||||
f.write(r.content)
|
||||
|
||||
|
||||
def download_folder(repo, folder, out, recursive):
|
||||
contents = repo.get_contents(folder)
|
||||
for c in contents:
|
||||
if c.download_url is None:
|
||||
if recursive:
|
||||
download_folder(repo, c.path, out, recursive)
|
||||
continue
|
||||
download(c, out)
|
||||
|
||||
def move_folder():
|
||||
srcPath = publicDir + "/src"
|
||||
campaignsPath = srcPath + "/campaigns"
|
||||
newPath = publicDir + "/campaigns"
|
||||
|
||||
if os.path.exists(newPath):
|
||||
shutil.rmtree(newPath)
|
||||
shutil.move(campaignsPath, newPath)
|
||||
shutil.rmtree(srcPath)
|
||||
|
||||
download_folder(repo, repoFolder, publicDir, True)
|
||||
move_folder()
|
||||
print("It's OK")
|
@ -20,6 +20,7 @@ if containers or images:
|
||||
os.environ["Baseimage_Proxy_Run"] = "onlyoffice/4testing-docspace-proxy-runtime:dev"
|
||||
os.environ["DOCUMENT_SERVER_IMAGE_NAME"] = "onlyoffice/documentserver-de:latest"
|
||||
os.environ["SERVICE_CLIENT"] = "localhost:5001"
|
||||
os.environ["SERVICE_MANAGEMENT"] = "localhost:5015"
|
||||
os.environ["ROOT_DIR"] = root_dir
|
||||
os.environ["BUILD_PATH"] = "/var/www"
|
||||
os.environ["SRC_PATH"] = os.path.join(root_dir, "publish/services")
|
||||
|
@ -33,7 +33,7 @@
|
||||
"auth" : {
|
||||
"allowskip" : {
|
||||
"default" : false,
|
||||
"registerportal": true
|
||||
"registerportal": false
|
||||
}
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
|
@ -24,7 +24,7 @@
|
||||
"hosting": {
|
||||
"intervalCheckRegisterInstanceInSeconds": "1",
|
||||
"timeUntilUnregisterInSeconds": "15",
|
||||
"singletonMode": true,
|
||||
"singletonMode": false,
|
||||
"rateLimiterOptions": {
|
||||
"enable": "false",
|
||||
"knownNetworks": [],
|
||||
@ -32,7 +32,8 @@
|
||||
},
|
||||
"forwardedHeadersOptions": {
|
||||
"knownNetworks": [],
|
||||
"knownProxies": ["127.0.0.1"]
|
||||
"knownProxies": ["127.0.0.1"],
|
||||
"allowedHosts": []
|
||||
}
|
||||
},
|
||||
"themelimit": "9",
|
||||
@ -68,249 +69,17 @@
|
||||
}
|
||||
},
|
||||
"files": {
|
||||
"thirdparty": {
|
||||
"enable": [
|
||||
"box",
|
||||
"dropboxv2",
|
||||
"docusign",
|
||||
"google",
|
||||
"onedrive",
|
||||
"sharepoint",
|
||||
"nextcloud",
|
||||
"owncloud",
|
||||
"webdav",
|
||||
"kdrive"
|
||||
]
|
||||
},
|
||||
"thirdparty": { "enable": ["box", "dropboxv2", "docusign", "google", "onedrive", "nextcloud", "owncloud", "webdav", "kdrive" ] },
|
||||
"docservice": {
|
||||
"coauthor-docs": [
|
||||
".csv",
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".oform",
|
||||
".potm",
|
||||
".potx",
|
||||
".ppsm",
|
||||
".pptm",
|
||||
".ppsx",
|
||||
".pptx",
|
||||
".txt",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xltm",
|
||||
".xltx"
|
||||
],
|
||||
"commented-docs": [
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".potm",
|
||||
".potx",
|
||||
".ppsm",
|
||||
".pptm",
|
||||
".ppsx",
|
||||
".pptx",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xltm",
|
||||
".xltx"
|
||||
],
|
||||
"convert-docs": [
|
||||
".doc",
|
||||
".dot",
|
||||
".dps",
|
||||
".dpt",
|
||||
".epub",
|
||||
".et",
|
||||
".ett",
|
||||
".fb2",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".htm",
|
||||
".html",
|
||||
".mht",
|
||||
".mhtml",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pot",
|
||||
".pps",
|
||||
".ppt",
|
||||
".rtf",
|
||||
".stw",
|
||||
".sxc",
|
||||
".sxi",
|
||||
".sxw",
|
||||
".wps",
|
||||
".wpt",
|
||||
".xls",
|
||||
".xlsb",
|
||||
".xlt",
|
||||
".xml"
|
||||
],
|
||||
"edited-docs": [
|
||||
".csv",
|
||||
".doc",
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dot",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".dps",
|
||||
".dpt",
|
||||
".epub",
|
||||
".et",
|
||||
".ett",
|
||||
".fb2",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".htm",
|
||||
".html",
|
||||
".mht",
|
||||
".mhtml",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".oform",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pdf",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
".pps",
|
||||
".ppsm",
|
||||
".ppsx",
|
||||
".ppt",
|
||||
".pptm",
|
||||
".pptx",
|
||||
".rtf",
|
||||
".stw",
|
||||
".sxc",
|
||||
".sxi",
|
||||
".sxw",
|
||||
".txt",
|
||||
".wps",
|
||||
".wpt",
|
||||
".xls",
|
||||
".xlsb",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xlt",
|
||||
".xltm",
|
||||
".xltx",
|
||||
".xml"
|
||||
],
|
||||
"encrypted-docs":
|
||||
[
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".oform",
|
||||
".potm",
|
||||
".potx",
|
||||
".ppsm",
|
||||
".pptm",
|
||||
".ppsx",
|
||||
".pptx",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xltm",
|
||||
".xltx"
|
||||
],
|
||||
"coauthor-docs": [ ".csv", ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".oform", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".txt", ".xlsm", ".xlsx", ".xltm", ".xltx" ],
|
||||
"commented-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".xlsm", ".xlsx", ".xltm", ".xltx" ],
|
||||
"convert-docs": [ ".doc", ".dot", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".otp", ".ots", ".ott", ".pot", ".pps", ".ppt", ".rtf", ".stw", ".sxc", ".sxi", ".sxw", ".wps", ".wpt", ".xls", ".xlsb", ".xlt", ".xml" ],
|
||||
"edited-docs": [ ".csv", ".doc", ".docm", ".docx", ".docxf", ".dot", ".dotm", ".dotx", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".oform", ".otp", ".ots", ".ott", ".pdf", ".pot", ".potm", ".potx", ".pps", ".ppsm", ".ppsx", ".ppt", ".pptm", ".pptx", ".rtf", ".stw", ".sxc", ".sxi", ".sxw", ".txt", ".wps", ".wpt", ".xls", ".xlsb", ".xlsm", ".xlsx", ".xlt", ".xltm", ".xltx", ".xml" ],
|
||||
"encrypted-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx", ".oform", ".potm", ".potx", ".ppsm", ".pptm", ".ppsx", ".pptx", ".xlsm", ".xlsx", ".xltm", ".xltx", ".pdf" ],
|
||||
"formfilling-docs": [".pdf"],
|
||||
"customfilter-docs":
|
||||
[
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xltm",
|
||||
".xltx"
|
||||
],
|
||||
"reviewed-docs":
|
||||
[
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dotm",
|
||||
".dotx"
|
||||
],
|
||||
"viewed-docs":
|
||||
[
|
||||
".csv",
|
||||
".djvu",
|
||||
".doc",
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dot",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".dps",
|
||||
".dpt",
|
||||
".epub",
|
||||
".et",
|
||||
".ett",
|
||||
".fb2",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".gdoc",
|
||||
".gsheet",
|
||||
".gslides",
|
||||
".htm",
|
||||
".html",
|
||||
".mht",
|
||||
".mhtml",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".oform",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".oxps",
|
||||
".pdf",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
".pps",
|
||||
".ppsm",
|
||||
".ppsx",
|
||||
".ppt",
|
||||
".pptm",
|
||||
".pptx",
|
||||
".rtf",
|
||||
".stw",
|
||||
".sxc",
|
||||
".sxi",
|
||||
".sxw",
|
||||
".txt",
|
||||
".wps",
|
||||
".wpt",
|
||||
".xls",
|
||||
".xlsb",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xlt",
|
||||
".xltm",
|
||||
".xltx",
|
||||
".xml",
|
||||
".xps"
|
||||
],
|
||||
"customfilter-docs": [ ".xlsm", ".xlsx", ".xltm", ".xltx" ],
|
||||
"reviewed-docs": [ ".docm", ".docx", ".docxf", ".dotm", ".dotx" ],
|
||||
"viewed-docs": [ ".csv", ".djvu", ".doc", ".docm", ".docx", ".docxf", ".dot", ".dotm", ".dotx", ".dps", ".dpt", ".epub", ".et", ".ett", ".fb2", ".fodp", ".fods", ".fodt", ".gdoc", ".gsheet", ".gslides", ".htm", ".html", ".mht", ".mhtml", ".odp", ".ods", ".odt", ".oform", ".otp", ".ots", ".ott", ".oxps", ".pdf", ".pot", ".potm", ".potx", ".pps", ".ppsm", ".ppsx", ".ppt", ".pptm", ".pptx", ".rtf", ".stw", ".sxc", ".sxi", ".sxw", ".txt", ".wps", ".wpt", ".xls", ".xlsb", ".xlsm", ".xlsx", ".xlt", ".xltm", ".xltx", ".xml", ".xps" ],
|
||||
"secret": {
|
||||
"value": "secret",
|
||||
"header": "AuthorizationJwt"
|
||||
@ -329,34 +98,9 @@
|
||||
"chunk-size": 10485760,
|
||||
"url": "/"
|
||||
},
|
||||
"viewed-images": [
|
||||
".svg",
|
||||
".bmp",
|
||||
".gif",
|
||||
".jpeg",
|
||||
".jpg",
|
||||
".png",
|
||||
".ico",
|
||||
".tif",
|
||||
".tiff",
|
||||
".webp"
|
||||
],
|
||||
"viewed-media": [
|
||||
".aac",
|
||||
".flac",
|
||||
".m4a",
|
||||
".mp3",
|
||||
".oga",
|
||||
".ogg",
|
||||
".wav",
|
||||
".f4v",
|
||||
".m4v",
|
||||
".mov",
|
||||
".mp4",
|
||||
".ogv",
|
||||
".webm"
|
||||
],
|
||||
"index": [".pptx", ".xlsx", ".docx"],
|
||||
"viewed-images": [ ".svg", ".bmp", ".gif", ".jpeg", ".jpg", ".png", ".ico", ".tif", ".tiff", ".webp" ],
|
||||
"viewed-media": [ ".aac", ".flac", ".m4a", ".mp3", ".oga", ".ogg", ".wav", ".f4v", ".m4v", ".mov", ".mp4", ".ogv", ".webm" ],
|
||||
"index": [".pptx", ".xlsx", ".docx", ".pdf"],
|
||||
"oform": {
|
||||
"domain": "https://cmsoforms.teamlab.info",
|
||||
"path": "/api/oforms/",
|
||||
@ -373,7 +117,7 @@
|
||||
"api": "api/2.0",
|
||||
"alias": {
|
||||
"min": 3,
|
||||
"max": 100
|
||||
"max": 63
|
||||
},
|
||||
"api-system": "",
|
||||
"api-cache": "",
|
||||
@ -397,6 +141,7 @@
|
||||
"documentation-email": "documentation@onlyoffice.com",
|
||||
"max-upload-size": 5242880,
|
||||
"zendesk-key": "",
|
||||
"tagmanager-id": "",
|
||||
"samesite": "",
|
||||
"sso": {
|
||||
"saml": {
|
||||
@ -474,47 +219,16 @@
|
||||
"thumbnail": {
|
||||
"maxDegreeOfParallelism": 1,
|
||||
"sizes": [
|
||||
{
|
||||
"height": 156,
|
||||
"width": 216
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 240
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 264
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 288
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 312
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 336
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 360
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 400
|
||||
},
|
||||
{
|
||||
"height": 156,
|
||||
"width": 440
|
||||
},
|
||||
{
|
||||
"height": 720,
|
||||
"width": 1280,
|
||||
"resizeMode": "Max"
|
||||
}
|
||||
{ "height": 156, "width": 216 },
|
||||
{ "height": 156, "width": 240 },
|
||||
{ "height": 156, "width": 264 },
|
||||
{ "height": 156, "width": 288 },
|
||||
{ "height": 156, "width": 312 },
|
||||
{ "height": 156, "width": 336 },
|
||||
{ "height": 156, "width": 360 },
|
||||
{ "height": 156, "width": 400 },
|
||||
{ "height": 156, "width": 440 },
|
||||
{ "height": 720, "width": 1280, "resizeMode": "Max" }
|
||||
]
|
||||
},
|
||||
"csp": {
|
||||
@ -525,7 +239,7 @@
|
||||
"img": ["'self'", "data:", "blob:"],
|
||||
"frame": ["'self'"],
|
||||
"fonts": ["'self'", "data:"],
|
||||
"connect": ["'self'", "data:"],
|
||||
"connect": ["'self'", "data:", "ws:"],
|
||||
"media": ["'self'"]
|
||||
},
|
||||
"zendesk": {
|
||||
@ -537,6 +251,7 @@
|
||||
"firebase": {
|
||||
"script": ["*.googleapis.com", "*.firebaseio.com"],
|
||||
"frame": ["personal-teamlab-guru.firebaseapp.com"],
|
||||
"img": ["personal-teamlab-guru.firebaseapp.com"],
|
||||
"connect": ["personal-teamlab-guru.firebaseapp.com", "*.googleapis.com"]
|
||||
},
|
||||
"oform": {
|
||||
@ -599,5 +314,15 @@
|
||||
"fd00::/8",
|
||||
"fe80::/64"
|
||||
]
|
||||
},
|
||||
"openApi": {
|
||||
"enable": true,
|
||||
"enableUI": true,
|
||||
"endpoints": {
|
||||
"asc.web.api": "/openapi/asc.web.api/common.yaml",
|
||||
"asc.people": "/openapi/asc.people/common.yaml",
|
||||
"asc.files": "/openapi/asc.files/common.yaml",
|
||||
"asc.data.backup": "/openapi/asc.data.backup/common.yaml"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -146,9 +146,7 @@
|
||||
"dropboxClientSecret": ""
|
||||
},
|
||||
"additional": {
|
||||
"dropboxRedirectUrl" : "https://service.teamlab.info/oauth2.aspx",
|
||||
"dropboxappkey" : "",
|
||||
"dropboxappsecret" : ""
|
||||
"dropboxRedirectUrl" : "https://service.teamlab.info/oauth2.aspx"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"elastic": {
|
||||
"Scheme": "http",
|
||||
"Host": "onlyoffice-elasticsearch",
|
||||
"Host": "onlyoffice-opensearch",
|
||||
"Port": "9200",
|
||||
"Threads": "1"
|
||||
}
|
||||
|
89
config/nginx/html/custom_401.html
Normal file
89
config/nginx/html/custom_401.html
Normal file
@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="icon" type="image/x-icon" href="/logo.ashx?logotype=3" />
|
||||
<title>401 Error Page</title>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
font-family: "Open Sans", Arial, sans-serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.error-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
cursor: default;
|
||||
width: auto;
|
||||
height: 100vh;
|
||||
overflow-x: hidden;
|
||||
margin: 0px auto;
|
||||
padding-top: 36px;
|
||||
border: 0px;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-image {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 23px;
|
||||
line-height: 28px;
|
||||
font-weight: 700;
|
||||
color: #333333;
|
||||
margin: 0px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
font-weight: 400;
|
||||
color: #555f65;
|
||||
margin: 0px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.error-container {
|
||||
width: 343px;
|
||||
}
|
||||
.error-image {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
max-width: 287px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error-container">
|
||||
<img
|
||||
src="/static/images/error401.svg"
|
||||
alt="Error Character"
|
||||
class="error-image"
|
||||
/>
|
||||
<h1 class="error-header">401 Error!</h1>
|
||||
<p class="error-text">
|
||||
Unauthorized request. To access this file, you must enter a password or
|
||||
be a registered user.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
88
config/nginx/html/custom_403.html
Normal file
88
config/nginx/html/custom_403.html
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="icon" type="image/x-icon" href="/logo.ashx?logotype=3" />
|
||||
<title>403 Error Page</title>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
font-family: "Open Sans", Arial, sans-serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.error-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
cursor: default;
|
||||
width: auto;
|
||||
height: 100vh;
|
||||
overflow-x: hidden;
|
||||
margin: 0px auto;
|
||||
padding-top: 36px;
|
||||
border: 0px;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-image {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 23px;
|
||||
line-height: 28px;
|
||||
font-weight: 700;
|
||||
color: #333333;
|
||||
margin: 0px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
font-weight: 400;
|
||||
color: #555f65;
|
||||
margin: 0px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.error-container {
|
||||
width: 343px;
|
||||
}
|
||||
.error-image {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
max-width: 287px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error-container">
|
||||
<img
|
||||
src="/static/images/error403.svg"
|
||||
alt="Error Character"
|
||||
class="error-image"
|
||||
/>
|
||||
<h1 class="error-header">403 Error!</h1>
|
||||
<p class="error-text">
|
||||
Forbidden. You don't have permissions to access the requested resource.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
88
config/nginx/html/custom_404.html
Normal file
88
config/nginx/html/custom_404.html
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="icon" type="image/x-icon" href="/logo.ashx?logotype=3" />
|
||||
<title>404 Error Page</title>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
font-family: "Open Sans", Arial, sans-serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.error-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
cursor: default;
|
||||
width: auto;
|
||||
height: 100vh;
|
||||
overflow-x: hidden;
|
||||
margin: 0px auto;
|
||||
padding-top: 36px;
|
||||
border: 0px;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-image {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 23px;
|
||||
line-height: 28px;
|
||||
font-weight: 700;
|
||||
color: #333333;
|
||||
margin: 0px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
font-weight: 400;
|
||||
color: #555f65;
|
||||
margin: 0px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.error-container {
|
||||
width: 343px;
|
||||
}
|
||||
.error-image {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
max-width: 287px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error-container">
|
||||
<img
|
||||
src="/static/images/error404.svg"
|
||||
alt="Error Character"
|
||||
class="error-image"
|
||||
/>
|
||||
<h1 class="error-header">404 Error!</h1>
|
||||
<p class="error-text">
|
||||
Page not found. The server cannot find the requested resource.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
88
config/nginx/html/custom_50x.html
Normal file
88
config/nginx/html/custom_50x.html
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link rel="icon" type="image/x-icon" href="/logo.ashx?logotype=3" />
|
||||
<title>500 Error Page</title>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0px;
|
||||
font-family: "Open Sans", Arial, sans-serif;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #f0f0f0;
|
||||
}
|
||||
|
||||
.error-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
cursor: default;
|
||||
width: auto;
|
||||
height: 100vh;
|
||||
overflow-x: hidden;
|
||||
margin: 0px auto;
|
||||
padding-top: 36px;
|
||||
border: 0px;
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.error-image {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.error-header {
|
||||
font-size: 23px;
|
||||
line-height: 28px;
|
||||
font-weight: 700;
|
||||
color: #333333;
|
||||
margin: 0px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
font-weight: 400;
|
||||
color: #555f65;
|
||||
margin: 0px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.error-container {
|
||||
width: 343px;
|
||||
}
|
||||
.error-image {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.error-text {
|
||||
max-width: 287px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="error-container">
|
||||
<img
|
||||
src="/static/images/error500.svg"
|
||||
alt="Error Character"
|
||||
class="error-image"
|
||||
/>
|
||||
<h1 class="error-header">500 Error!</h1>
|
||||
<p class="error-text">
|
||||
The server is currently unable to handle this request.
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
9
config/nginx/onlyoffice-management.conf
Normal file
9
config/nginx/onlyoffice-management.conf
Normal file
@ -0,0 +1,9 @@
|
||||
server {
|
||||
listen 5015;
|
||||
root /var/www/management;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri /index.html =404;
|
||||
}
|
||||
}
|
@ -44,9 +44,9 @@ map $request_uri $header_x_frame_options {
|
||||
|
||||
map $request_uri $cache_control {
|
||||
default "no-cache, no-store, no-transform";
|
||||
~*\/(filehandler\.ashx\?action=(thumb|preview))|\/(storage\/room_logos\/root\/|storage\/userPhotos\/root\/) "must-revalidate, no-transform, immutable, max-age=31536000";
|
||||
~*\/(filehandler\.ashx\?action=(thumb|preview))|\/(storage\/room_logos\/root\/.*\?hash.*|storage\/userPhotos\/root\/.*\?hash.*|storage\/whitelabel\/root\/.*\?hash.*|storage\/static_partnerdata\/root\/.*\?hash.*) "must-revalidate, no-transform, immutable, max-age=31536000";
|
||||
~*\/(api\/2\.0.*|storage|login\.ashx|filehandler\.ashx|ChunkedUploader.ashx|ThirdPartyAppHandler|apisystem|sh|remoteEntry\.js|debuginfo\.md|static\/scripts\/api\.js|static\/scripts\/api\.poly\.js) "no-cache, no-store, no-transform";
|
||||
~*\/(images|favicon.ico.*)|\.(js|woff|woff2|css)|(locales.*\.json) "must-revalidate, no-transform, immutable, max-age=31536000";
|
||||
~*\/(images\/logo)|\.(js|woff|woff2|css)|(locales.*\.json) "must-revalidate, no-transform, immutable, max-age=31536000";
|
||||
}
|
||||
|
||||
map $request_uri $content_security_policy {
|
||||
@ -65,6 +65,8 @@ server {
|
||||
add_header X-Content-Type-Options "nosniff";
|
||||
add_header X-Frame-Options $header_x_frame_options;
|
||||
add_header Cache-Control $cache_control;
|
||||
add_header Permissions-Policy "autoplay=(), geolocation=(), camera=(), microphone=(), interest-cohort=()";
|
||||
|
||||
root $public_root;
|
||||
etag on;
|
||||
|
||||
@ -157,7 +159,8 @@ server {
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
location ~* /(manifest.json|sw.js|appIcon(.)*\.png|icon.svg|bg-error.png|favicon.ico|debuginfo.md) {
|
||||
proxy_redirect off;
|
||||
location ~* /(manifest.json|sw.js|appIcon(.)*\.png|icon.svg|bg-error.png|debuginfo.md) {
|
||||
try_files /$basename /index.html =404;
|
||||
}
|
||||
|
||||
@ -193,27 +196,20 @@ server {
|
||||
location ~* /static/images/(.*)$ {
|
||||
try_files /images/$1 /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/campaigns/(.*)$ {
|
||||
try_files /campaigns/$1 /index.html =404;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
location /doceditor {
|
||||
proxy_pass http://127.0.0.1:5013;
|
||||
proxy_redirect off;
|
||||
|
||||
location ~* /static/favicon.ico {
|
||||
try_files /$basename /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/images/(.*)$ {
|
||||
location ~* /_next/public/images/(.*)$ {
|
||||
try_files /images/$1 /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/css/ {
|
||||
try_files /css/$basename /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/fonts/(?<content>[^/]+) {
|
||||
try_files /fonts/$content/$basename /index.html =404;
|
||||
}
|
||||
}
|
||||
|
||||
location /login {
|
||||
@ -231,11 +227,30 @@ server {
|
||||
location ~* /static/css/ {
|
||||
try_files /css/$basename /index.html =404;
|
||||
}
|
||||
}
|
||||
|
||||
location /management {
|
||||
proxy_pass http://127.0.0.1:5015;
|
||||
proxy_redirect off;
|
||||
|
||||
location ~* /static/favicon.ico {
|
||||
try_files /$basename /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/images/(.*)$ {
|
||||
try_files /images/$1 /index.html =404;
|
||||
}
|
||||
|
||||
location ~* /static/fonts/(?<content>[^/]+) {
|
||||
try_files /fonts/$content/$basename /index.html =404;
|
||||
}
|
||||
}
|
||||
|
||||
rewrite management/(.*) /$1 break;
|
||||
}
|
||||
|
||||
location ~* /static/fonts/(?<content>[^/]+) {
|
||||
try_files /fonts/$content/$basename /index.html =404;
|
||||
}
|
||||
|
||||
location /sockjs-node {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
@ -246,16 +261,36 @@ server {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
|
||||
location /openapi {
|
||||
proxy_pass http://127.0.0.1:5003;
|
||||
|
||||
location ~*/asc.web.api {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
|
||||
location ~*/asc.people {
|
||||
proxy_pass http://127.0.0.1:5004;
|
||||
}
|
||||
|
||||
location ~*/asc.files {
|
||||
proxy_pass http://127.0.0.1:5007;
|
||||
}
|
||||
|
||||
location ~*/asc.data.backup {
|
||||
proxy_pass http://127.0.0.1:5012;
|
||||
}
|
||||
}
|
||||
|
||||
location /api/2.0 {
|
||||
location ~* /(files|privacyroom) {
|
||||
proxy_pass http://127.0.0.1:5007;
|
||||
}
|
||||
|
||||
location ~* /(people|group) {
|
||||
location ~* /(people|group|accounts) {
|
||||
proxy_pass http://127.0.0.1:5004;
|
||||
}
|
||||
|
||||
location ~* /(authentication|modules|portal|security|settings|smtpsettings|capabilities|thirdparty|encryption|feed) {
|
||||
location ~* /(authentication|modules|portal|security|settings|smtpsettings|capabilities|thirdparty|encryption|feed|migration) {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
|
||||
location ~* portal/(.*)(backup|restore)(.*) {
|
||||
@ -274,8 +309,12 @@ server {
|
||||
location ~* /backup {
|
||||
proxy_pass http://127.0.0.1:5012;
|
||||
}
|
||||
|
||||
location ~* /migration {
|
||||
|
||||
location ~* /plugins {
|
||||
proxy_pass http://127.0.0.1:5014;
|
||||
}
|
||||
|
||||
location ~* /migration {
|
||||
proxy_pass http://127.0.0.1:5034;
|
||||
}
|
||||
}
|
||||
@ -302,10 +341,18 @@ server {
|
||||
proxy_pass http://127.0.0.1:5012;
|
||||
}
|
||||
|
||||
location /migrationFileUpload.ashx {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
|
||||
location /logoUploader.ashx {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
|
||||
location /logo.ashx {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
|
||||
location /payment.ashx {
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
@ -336,4 +383,28 @@ server {
|
||||
rewrite /healthchecks/(.*)$ /$1 break;
|
||||
proxy_pass http://127.0.0.1:5033;
|
||||
}
|
||||
|
||||
error_page 401 /custom_401.html;
|
||||
location = /custom_401.html {
|
||||
root /etc/nginx/html;
|
||||
internal;
|
||||
}
|
||||
|
||||
error_page 403 /custom_403.html;
|
||||
location = /custom_403.html {
|
||||
root /etc/nginx/html;
|
||||
internal;
|
||||
}
|
||||
|
||||
error_page 404 /custom_404.html;
|
||||
location = /custom_404.html {
|
||||
root /etc/nginx/html;
|
||||
internal;
|
||||
}
|
||||
|
||||
error_page 500 502 503 504 /custom_50x.html;
|
||||
location = /custom_50x.html {
|
||||
root /etc/nginx/html;
|
||||
internal;
|
||||
}
|
||||
}
|
||||
|
9
config/nginx/sites-enabled/onlyoffice-management.conf
Normal file
9
config/nginx/sites-enabled/onlyoffice-management.conf
Normal file
@ -0,0 +1,9 @@
|
||||
server {
|
||||
listen 5015;
|
||||
root "ROOTPATH";
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri /index.html =404;
|
||||
}
|
||||
}
|
@ -6,6 +6,7 @@
|
||||
<extensions>
|
||||
<add assembly="NLog.Web.AspNetCore"/>
|
||||
<add assembly="NLog.AWS.Logger" />
|
||||
<add assembly="NLog.Targets.ElasticSearch"/>
|
||||
</extensions>
|
||||
|
||||
<variable name="dir" value="..\Logs\"/>
|
||||
@ -41,8 +42,12 @@
|
||||
<attribute name="commandText" layout="${replace:inner=${event-properties:item=commandText}:searchFor=\\r\\n|\\s:replaceWith= :regex=true}" />
|
||||
</layout>
|
||||
</target>
|
||||
<target name="elastic" xsi:type="BufferingWrapper" flushTimeout="5000">
|
||||
<target xsi:type="ElasticSearch" includeAllProperties="true" />
|
||||
</target>
|
||||
</targets>
|
||||
<rules>
|
||||
<logger name="ASC.Api.Core.Auth.CookieAuthHandler" maxlevel="Off" final="true" />
|
||||
<logger name="ASC.SQL" minlevel="Debug" writeTo="sql" final="true" />
|
||||
<logger name="ASC*" minlevel="Debug" writeTo="web">
|
||||
<filters defaultAction="Log">
|
||||
@ -54,6 +59,7 @@
|
||||
<when condition="regex-matches('${scope-property:RequestPath}', '^/health/?$', 'ignorecase,singleline')" action="Ignore" />
|
||||
</filters>
|
||||
</logger>
|
||||
<logger name="Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware" maxlevel="Information" writeTo="ownFile-web" final="true" />
|
||||
<logger name="Microsoft.*" maxlevel="Off" final="true" />
|
||||
<logger name="System.Net.Http.*" maxlevel="Info" final="true" />
|
||||
</rules>
|
||||
|
@ -9,6 +9,8 @@
|
||||
{
|
||||
"Host": "127.0.0.1",
|
||||
"Port": "6379"
|
||||
}]
|
||||
}],
|
||||
"PoolSize":1,
|
||||
"WorkCount": 10
|
||||
}
|
||||
}
|
@ -89,6 +89,15 @@
|
||||
"virtualpath": "~/studio/{0}/cobranding",
|
||||
"public": true
|
||||
},
|
||||
{
|
||||
"name": "static_partnerdata",
|
||||
"data": "00000000-0000-0000-0000-000000000000",
|
||||
"type": "disc",
|
||||
"path": "$STORAGE_ROOT\\Studio\\partnerdata",
|
||||
"virtualpath": "~/studio/partnerdata",
|
||||
"appendTenantId": false,
|
||||
"public": true
|
||||
},
|
||||
{
|
||||
"name": "backup",
|
||||
"visible": false,
|
||||
@ -105,6 +114,22 @@
|
||||
"path": "$STORAGE_ROOT\\Studio\\{0}\\temp\\backup",
|
||||
"expires": "0:10:0",
|
||||
"disableEncryption": true
|
||||
},
|
||||
{
|
||||
"name": "migration",
|
||||
"visible": false,
|
||||
"type": "disc",
|
||||
"path": "$STORAGE_ROOT\\Studio\\{0}\\migration",
|
||||
"expires": "0:10:0",
|
||||
"disableEncryption": true
|
||||
},
|
||||
{
|
||||
"name": "migration_log",
|
||||
"visible": false,
|
||||
"type": "disc",
|
||||
"path": "$STORAGE_ROOT\\Studio\\{0}\\log\\migration",
|
||||
"expires": "0:10:0",
|
||||
"disableEncryption": true
|
||||
},
|
||||
{
|
||||
"name": "customnavigation",
|
||||
|
5
config/zookeeper.json
Normal file
5
config/zookeeper.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"Zookeeper": {
|
||||
|
||||
}
|
||||
}
|
6
config/zookeeper.test.json
Normal file
6
config/zookeeper.test.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"Zookeeper": {
|
||||
"host": "localhost",
|
||||
"port": 2181
|
||||
}
|
||||
}
|
@ -35,6 +35,7 @@ PARAMETERS="$PARAMETERS -it COMMUNITY";
|
||||
DOCKER="";
|
||||
LOCAL_SCRIPTS="false"
|
||||
product="docspace"
|
||||
product_sysname="onlyoffice";
|
||||
FILE_NAME="$(basename "$0")"
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
@ -104,7 +105,7 @@ install_curl () {
|
||||
}
|
||||
|
||||
read_installation_method () {
|
||||
echo "Select 'Y' to install ONLYOFFICE $product using Docker (recommended). Select 'N' to install it using RPM/DEB packages.";
|
||||
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 )
|
||||
@ -135,14 +136,22 @@ if ! command_exists curl ; then
|
||||
install_curl;
|
||||
fi
|
||||
|
||||
if command_exists docker &> /dev/null && 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
|
||||
DOCKER="false"
|
||||
fi
|
||||
|
||||
if [ -z "$DOCKER" ]; then
|
||||
read_installation_method;
|
||||
fi
|
||||
|
||||
if [ -z $GIT_BRANCH ]; then
|
||||
DOWNLOAD_URL_PREFIX="https://download.onlyoffice.com/${product}"
|
||||
DOWNLOAD_URL_PREFIX="https://download.${product_sysname}.com/${product}"
|
||||
else
|
||||
DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/ONLYOFFICE/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall"
|
||||
DOWNLOAD_URL_PREFIX="https://raw.githubusercontent.com/${product_sysname^^}/${product}-buildtools/${GIT_BRANCH}/install/OneClickInstall"
|
||||
fi
|
||||
|
||||
if [ "$DOCKER" == "true" ]; then
|
||||
@ -155,16 +164,6 @@ if [ "$DOCKER" == "true" ]; then
|
||||
fi
|
||||
else
|
||||
if [ -f /etc/redhat-release ] ; then
|
||||
DIST=$(cat /etc/redhat-release |sed s/\ release.*//);
|
||||
REV=$(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//);
|
||||
|
||||
REV_PARTS=(${REV//\./ });
|
||||
REV=${REV_PARTS[0]};
|
||||
|
||||
if [[ "${DIST}" == CentOS* ]] && [ ${REV} -lt 7 ]; then
|
||||
echo "CentOS 7 or later is required";
|
||||
exit 1;
|
||||
fi
|
||||
if [ "$LOCAL_SCRIPTS" == "true" ]; then
|
||||
bash install-RedHat.sh ${PARAMETERS}
|
||||
else
|
||||
|
@ -79,7 +79,7 @@ elif [ "$UPDATE" = "true" ] && [ "$PRODUCT_INSTALLED" = "true" ]; then
|
||||
CURRENT_VERSION=$(dpkg-query -W -f='${Version}' ${product} 2>/dev/null)
|
||||
AVAILABLE_VERSIONS=$(apt show ${product} 2>/dev/null | grep -E '^Version:' | awk '{print $2}')
|
||||
if [[ "$AVAILABLE_VERSIONS" != *"$CURRENT_VERSION"* ]]; then
|
||||
apt-get install -o DPkg::options::="--force-confnew" -y --only-upgrade ${product} elasticsearch=${ELASTIC_VERSION}
|
||||
apt-get install -o DPkg::options::="--force-confnew" -y --only-upgrade ${product} opensearch=${ELASTIC_VERSION}
|
||||
elif [ "${RECONFIGURE_PRODUCT}" = "true" ]; then
|
||||
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure ${product}
|
||||
fi
|
||||
|
@ -31,26 +31,17 @@ fi
|
||||
|
||||
locale-gen en_US.UTF-8
|
||||
|
||||
# add elasticsearch repo
|
||||
ELASTIC_VERSION="7.16.3"
|
||||
ELASTIC_DIST=$(echo $ELASTIC_VERSION | awk '{ print int($1) }')
|
||||
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg --import
|
||||
echo "deb [signed-by=/usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg] https://artifacts.elastic.co/packages/${ELASTIC_DIST}.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-${ELASTIC_DIST}.x.list
|
||||
chmod 644 /usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg
|
||||
# add opensearch repo
|
||||
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
|
||||
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" >> /etc/apt/sources.list.d/opensearch-2.x.list
|
||||
ELASTIC_VERSION="2.11.1"
|
||||
|
||||
# add nodejs repo
|
||||
[[ "$DISTRIB_CODENAME" =~ ^(bionic|stretch)$ ]] && NODE_VERSION="16" || NODE_VERSION="18"
|
||||
NODE_VERSION="18"
|
||||
curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash -
|
||||
|
||||
#add dotnet repo
|
||||
if [ "$DIST" = "debian" ] && [ "$DISTRIB_CODENAME" = "stretch" ]; then
|
||||
curl https://packages.microsoft.com/config/$DIST/10/packages-microsoft-prod.deb -O
|
||||
elif [ "$DISTRIB_CODENAME" = "bookworm" ]; then
|
||||
#Temporary fix for missing dotnet repository for debian bookworm
|
||||
curl https://packages.microsoft.com/config/$DIST/11/packages-microsoft-prod.deb -O
|
||||
else
|
||||
curl https://packages.microsoft.com/config/$DIST/$REV/packages-microsoft-prod.deb -O
|
||||
fi
|
||||
curl https://packages.microsoft.com/config/$DIST/$REV/packages-microsoft-prod.deb -O
|
||||
echo -e "Package: *\nPin: origin \"packages.microsoft.com\"\nPin-Priority: 1002" | tee /etc/apt/preferences.d/99microsoft-prod.pref
|
||||
dpkg -i packages-microsoft-prod.deb && rm packages-microsoft-prod.deb
|
||||
|
||||
@ -71,9 +62,6 @@ if ! dpkg -l | grep -q "mysql-server"; then
|
||||
DEBIAN_FRONTEND=noninteractive dpkg -i ${MYSQL_PACKAGE_NAME}
|
||||
rm -f ${MYSQL_PACKAGE_NAME}
|
||||
|
||||
#Temporary fix for missing mysql repository for debian bookworm
|
||||
[ "$DISTRIB_CODENAME" = "bookworm" ] && sed -i "s/$DIST/ubuntu/g; s/$DISTRIB_CODENAME/jammy/g" /etc/apt/sources.list.d/mysql.list
|
||||
|
||||
echo mysql-community-server mysql-community-server/root-pass password ${MYSQL_SERVER_PASS} | debconf-set-selections
|
||||
echo mysql-community-server mysql-community-server/re-root-pass password ${MYSQL_SERVER_PASS} | debconf-set-selections
|
||||
echo mysql-community-server mysql-server/default-auth-override select "Use Strong Password Encryption (RECOMMENDED)" | debconf-set-selections
|
||||
@ -86,8 +74,12 @@ elif dpkg -l | grep -q "mysql-apt-config" && [ "$(apt-cache policy mysql-apt-con
|
||||
rm -f ${MYSQL_PACKAGE_NAME}
|
||||
fi
|
||||
|
||||
if [ "$DIST" = "debian" ] && [ "$DISTRIB_CODENAME" = "stretch" ]; then
|
||||
apt-get install -yq mysql-server mysql-client --allow-unauthenticated
|
||||
if ! grep -q "mysql-innovation" /etc/apt/sources.list.d/mysql.list; then
|
||||
echo "deb [signed-by=/usr/share/keyrings/mysql-apt-config.gpg] http://repo.mysql.com/apt/${DIST} ${DISTRIB_CODENAME} mysql-innovation" | sudo tee -a /etc/apt/sources.list.d/mysql.list
|
||||
|
||||
if apt-get -y update 2>&1 | grep -q "^W: .*mysql-innovation"; then
|
||||
sudo sed -i '/mysql-innovation/d' /etc/apt/sources.list.d/mysql.list
|
||||
fi
|
||||
fi
|
||||
|
||||
# add redis repo
|
||||
@ -101,15 +93,13 @@ fi
|
||||
curl -s http://nginx.org/keys/nginx_signing.key | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/nginx.gpg --import
|
||||
echo "deb [signed-by=/usr/share/keyrings/nginx.gpg] http://nginx.org/packages/$DIST/ $DISTRIB_CODENAME nginx" | tee /etc/apt/sources.list.d/nginx.list
|
||||
chmod 644 /usr/share/keyrings/nginx.gpg
|
||||
#Temporary fix for missing nginx repository for debian bookworm
|
||||
#f for missing nginx repository for debian bookworm
|
||||
[ "$DISTRIB_CODENAME" = "bookworm" ] && sed -i "s/$DISTRIB_CODENAME/buster/g" /etc/apt/sources.list.d/nginx.list
|
||||
|
||||
#add openresty repo
|
||||
curl -fsSL https://openresty.org/package/pubkey.gpg | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/openresty.gpg --import
|
||||
echo "deb [signed-by=/usr/share/keyrings/openresty.gpg] http://openresty.org/package/$DIST $DISTRIB_CODENAME $([ "$DIST" = "ubuntu" ] && echo "main" || echo "openresty" )" | tee /etc/apt/sources.list.d/openresty.list
|
||||
chmod 644 /usr/share/keyrings/openresty.gpg
|
||||
#Temporary fix for missing openresty repository for debian bookworm
|
||||
[ "$DISTRIB_CODENAME" = "bookworm" ] && sed -i "s/$DISTRIB_CODENAME/bullseye/g" /etc/apt/sources.list.d/openresty.list
|
||||
|
||||
# setup msttcorefonts
|
||||
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
|
||||
@ -122,7 +112,7 @@ apt-get install -o DPkg::options::="--force-confnew" -yq \
|
||||
nodejs \
|
||||
gcc \
|
||||
make \
|
||||
dotnet-sdk-7.0 \
|
||||
dotnet-sdk-8.0 \
|
||||
mysql-server \
|
||||
mysql-client \
|
||||
postgresql \
|
||||
@ -130,8 +120,8 @@ apt-get install -o DPkg::options::="--force-confnew" -yq \
|
||||
rabbitmq-server \
|
||||
ffmpeg
|
||||
|
||||
if ! dpkg -l | grep -q "elasticsearch"; then
|
||||
apt-get install -yq elasticsearch=${ELASTIC_VERSION}
|
||||
if ! dpkg -l | grep -q "opensearch"; then
|
||||
apt-get install -yq opensearch=${ELASTIC_VERSION}
|
||||
fi
|
||||
|
||||
# disable apparmor for mysql
|
||||
|
@ -4,11 +4,11 @@ set -e
|
||||
|
||||
make_swap () {
|
||||
DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
MEMORY_REQUIREMENTS=12000; #RAM ~12Gb
|
||||
SWAPFILE="/${PRODUCT}_swapfile";
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
@ -26,7 +26,7 @@ command_exists () {
|
||||
|
||||
check_hardware () {
|
||||
DISK_REQUIREMENTS=40960;
|
||||
MEMORY_REQUIREMENTS=8192;
|
||||
MEMORY_REQUIREMENTS=8000;
|
||||
CORE_REQUIREMENTS=4;
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
@ -36,7 +36,7 @@ check_hardware () {
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
|
||||
if [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ]; then
|
||||
echo "Minimal requirements are not met: need at least $MEMORY_REQUIREMENTS MB of RAM"
|
||||
@ -80,3 +80,10 @@ fi
|
||||
|
||||
DIST=`echo "$DIST" | tr '[:upper:]' '[:lower:]' | xargs`;
|
||||
DISTRIB_CODENAME=`echo "$DISTRIB_CODENAME" | tr '[:upper:]' '[:lower:]' | xargs`;
|
||||
|
||||
# Check if it's Ubuntu less than 20 or Debian less than 11
|
||||
if [[ ( "${DIST}" == "ubuntu" && "${REV%.*}" -lt 20 ) || ( "${DIST}" == "debian" && "${REV%.*}" -lt 11 ) ]]; then
|
||||
echo "Your ${DIST} ${REV} operating system has reached the end of its service life."
|
||||
echo "Please consider upgrading your operating system or using a Docker installation."
|
||||
exit 1
|
||||
fi
|
||||
|
@ -48,7 +48,7 @@ SWAPFILE="/${PRODUCT}_swapfile";
|
||||
MAKESWAP="true";
|
||||
|
||||
DISK_REQUIREMENTS=40960;
|
||||
MEMORY_REQUIREMENTS=8192;
|
||||
MEMORY_REQUIREMENTS=8000;
|
||||
CORE_REQUIREMENTS=4;
|
||||
|
||||
DIST="";
|
||||
@ -463,6 +463,13 @@ while [ "$1" != "" ]; do
|
||||
fi
|
||||
;;
|
||||
|
||||
-noni | --noninteractive )
|
||||
if [ "$2" != "" ]; then
|
||||
NON_INTERACTIVE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage: bash $HELP_TARGET [PARAMETER] [[PARAMETER], ...]"
|
||||
echo
|
||||
@ -511,6 +518,7 @@ while [ "$1" != "" ]; do
|
||||
echo " -lem, --letsencryptmail defines the domain administator mail address for Let's Encrypt certificate"
|
||||
echo " -cf, --certfile path to the certificate file for the domain"
|
||||
echo " -ckf, --certkeyfile path to the private key file for the certificate"
|
||||
echo " -noni, --noninteractive auto confirm all questions (true|false)"
|
||||
echo " -dbm, --databasemigration database migration (true|false)"
|
||||
echo " -ms, --makeswap make swap file (true|false)"
|
||||
echo " -?, -h, --help this help"
|
||||
@ -690,7 +698,7 @@ check_hardware () {
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
|
||||
if [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ]; then
|
||||
echo "Minimal requirements are not met: need at least $MEMORY_REQUIREMENTS MB of RAM"
|
||||
@ -884,6 +892,10 @@ create_network () {
|
||||
}
|
||||
|
||||
read_continue_installation () {
|
||||
if [[ "${NON_INTERACTIVE}" = "true" ]]; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
read -p "Continue installation [Y/N]? " CHOICE_INSTALLATION
|
||||
case "$CHOICE_INSTALLATION" in
|
||||
y|Y )
|
||||
@ -1109,6 +1121,7 @@ set_docspace_params() {
|
||||
APP_CORE_BASE_DOMAIN=${APP_CORE_BASE_DOMAIN:-$(get_env_parameter "APP_CORE_BASE_DOMAIN" "${CONTAINER_NAME}")};
|
||||
EXTERNAL_PORT=${EXTERNAL_PORT:-$(get_env_parameter "EXTERNAL_PORT" "${CONTAINER_NAME}")};
|
||||
|
||||
PREVIOUS_ELK_VERSION=$(get_env_parameter "ELK_VERSION");
|
||||
ELK_SHEME=${ELK_SHEME:-$(get_env_parameter "ELK_SHEME" "${CONTAINER_NAME}")};
|
||||
ELK_HOST=${ELK_HOST:-$(get_env_parameter "ELK_HOST" "${CONTAINER_NAME}")};
|
||||
ELK_PORT=${ELK_PORT:-$(get_env_parameter "ELK_PORT" "${CONTAINER_NAME}")};
|
||||
@ -1195,10 +1208,12 @@ install_mysql_server () {
|
||||
reconfigure MYSQL_USER ${MYSQL_USER}
|
||||
reconfigure MYSQL_PASSWORD ${MYSQL_PASSWORD}
|
||||
reconfigure MYSQL_ROOT_PASSWORD ${MYSQL_ROOT_PASSWORD}
|
||||
reconfigure MYSQL_VERSION ${MYSQL_VERSION}
|
||||
|
||||
if [[ -z ${MYSQL_HOST} ]] && [ "$INSTALL_MYSQL_SERVER" == "true" ]; then
|
||||
reconfigure MYSQL_VERSION ${MYSQL_VERSION}
|
||||
if [[ -z ${MYSQL_HOST} ]] && [ "$INSTALL_MYSQL_SERVER" == "true" ]; then
|
||||
docker-compose -f $BASE_DIR/db.yml up -d
|
||||
elif [ "$INSTALL_MYSQL_SERVER" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/db.yml pull
|
||||
elif [ ! -z "$MYSQL_HOST" ]; then
|
||||
establish_conn ${MYSQL_HOST} "${MYSQL_PORT:-"3306"}" "MySQL"
|
||||
reconfigure MYSQL_HOST ${MYSQL_HOST}
|
||||
@ -1209,9 +1224,11 @@ install_mysql_server () {
|
||||
install_document_server () {
|
||||
reconfigure DOCUMENT_SERVER_JWT_HEADER ${DOCUMENT_SERVER_JWT_HEADER}
|
||||
reconfigure DOCUMENT_SERVER_JWT_SECRET ${DOCUMENT_SERVER_JWT_SECRET}
|
||||
reconfigure DOCUMENT_SERVER_IMAGE_NAME "${DOCUMENT_SERVER_IMAGE_NAME}:${DOCUMENT_SERVER_VERSION:-$(get_available_version "$DOCUMENT_SERVER_IMAGE_NAME")}"
|
||||
if [[ -z ${DOCUMENT_SERVER_HOST} ]] && [ "$INSTALL_DOCUMENT_SERVER" == "true" ]; then
|
||||
reconfigure DOCUMENT_SERVER_IMAGE_NAME "${DOCUMENT_SERVER_IMAGE_NAME}:${DOCUMENT_SERVER_VERSION:-$(get_available_version "$DOCUMENT_SERVER_IMAGE_NAME")}"
|
||||
docker-compose -f $BASE_DIR/ds.yml up -d
|
||||
elif [ "$INSTALL_DOCUMENT_SERVER" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/ds.yml pull
|
||||
elif [ ! -z "$DOCUMENT_SERVER_HOST" ]; then
|
||||
APP_URL_PORTAL=${APP_URL_PORTAL:-"http://$(curl -s ifconfig.me):${EXTERNAL_PORT}"}
|
||||
establish_conn ${DOCUMENT_SERVER_HOST} ${DOCUMENT_SERVER_PORT} "${PACKAGE_SYSNAME^^} Docs"
|
||||
@ -1223,6 +1240,8 @@ install_document_server () {
|
||||
install_rabbitmq () {
|
||||
if [[ -z ${RABBIT_HOST} ]] && [ "$INSTALL_RABBITMQ" == "true" ]; then
|
||||
docker-compose -f $BASE_DIR/rabbitmq.yml up -d
|
||||
elif [ "$INSTALL_RABBITMQ" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/rabbitmq.yml pull
|
||||
elif [ ! -z "$RABBIT_HOST" ]; then
|
||||
establish_conn ${RABBIT_HOST} "${RABBIT_PORT:-"5672"}" "RabbitMQ"
|
||||
reconfigure RABBIT_HOST ${RABBIT_HOST}
|
||||
@ -1236,6 +1255,8 @@ install_rabbitmq () {
|
||||
install_redis () {
|
||||
if [[ -z ${REDIS_HOST} ]] && [ "$INSTALL_REDIS" == "true" ]; then
|
||||
docker-compose -f $BASE_DIR/redis.yml up -d
|
||||
elif [ "$INSTALL_REDIS" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/redis.yml pull
|
||||
elif [ ! -z "$REDIS_HOST" ]; then
|
||||
establish_conn ${REDIS_HOST} "${REDIS_PORT:-"6379"}" "Redis"
|
||||
reconfigure REDIS_HOST ${REDIS_HOST}
|
||||
@ -1246,16 +1267,18 @@ install_redis () {
|
||||
}
|
||||
|
||||
install_elasticsearch () {
|
||||
reconfigure ELK_VERSION ${ELK_VERSION}
|
||||
if [[ -z ${ELK_HOST} ]] && [ "$INSTALL_ELASTICSEARCH" == "true" ]; then
|
||||
if [ $(free -m | grep -oP '\d+' | head -n 1) -gt "12228" ]; then #RAM ~12Gb
|
||||
sed -i 's/Xms[0-9]g/Xms4g/g; s/Xmx[0-9]g/Xmx4g/g' $BASE_DIR/elasticsearch.yml
|
||||
if [ $(free --mega | grep -oP '\d+' | head -n 1) -gt "12000" ]; then #RAM ~12Gb
|
||||
sed -i 's/Xms[0-9]g/Xms4g/g; s/Xmx[0-9]g/Xmx4g/g' $BASE_DIR/opensearch.yml
|
||||
else
|
||||
sed -i 's/Xms[0-9]g/Xms1g/g; s/Xmx[0-9]g/Xmx1g/g' $BASE_DIR/elasticsearch.yml
|
||||
sed -i 's/Xms[0-9]g/Xms1g/g; s/Xmx[0-9]g/Xmx1g/g' $BASE_DIR/opensearch.yml
|
||||
fi
|
||||
reconfigure ELK_VERSION ${ELK_VERSION}
|
||||
docker-compose -f $BASE_DIR/elasticsearch.yml up -d
|
||||
docker-compose -f $BASE_DIR/opensearch.yml up -d
|
||||
elif [ "$INSTALL_ELASTICSEARCH" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/opensearch.yml pull
|
||||
elif [ ! -z "$ELK_HOST" ]; then
|
||||
establish_conn ${ELK_HOST} "${ELK_PORT:-"9200"}" "Elasticsearch"
|
||||
establish_conn ${ELK_HOST} "${ELK_PORT:-"9200"}" "search engine"
|
||||
reconfigure ELK_SHEME "${ELK_SHEME:-"http"}"
|
||||
reconfigure ELK_HOST ${ELK_HOST}
|
||||
reconfigure ELK_PORT "${ELK_PORT:-"9200"}"
|
||||
@ -1265,40 +1288,54 @@ install_elasticsearch () {
|
||||
install_product () {
|
||||
DOCKER_TAG="${DOCKER_TAG:-$(get_available_version ${IMAGE_NAME})}"
|
||||
reconfigure DOCKER_TAG ${DOCKER_TAG}
|
||||
if [ "$INSTALL_PRODUCT" == "true" ]; then
|
||||
[ "${UPDATE}" = "true" ] && LOCAL_CONTAINER_TAG="$(docker inspect --format='{{index .Config.Image}}' ${CONTAINER_NAME} | awk -F':' '{print $2}')"
|
||||
|
||||
[ "${UPDATE}" = "true" ] && LOCAL_CONTAINER_TAG="$(docker inspect --format='{{index .Config.Image}}' ${CONTAINER_NAME} | awk -F':' '{print $2}')"
|
||||
if [ "${UPDATE}" = "true" ] && [ "${LOCAL_CONTAINER_TAG}" != "${DOCKER_TAG}" ]; then
|
||||
docker-compose -f $BASE_DIR/build.yml pull
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml -f $BASE_DIR/notify.yml -f $BASE_DIR/healthchecks.yml -f ${PROXY_YML} down
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml down --volumes
|
||||
fi
|
||||
|
||||
if [ "${UPDATE}" = "true" ] && [ "${LOCAL_CONTAINER_TAG}" != "${DOCKER_TAG}" ]; then
|
||||
docker-compose -f $BASE_DIR/build.yml pull
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml -f $BASE_DIR/notify.yml -f $BASE_DIR/healthchecks.yml -f ${PROXY_YML} down
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml down --volumes
|
||||
fi
|
||||
reconfigure ENV_EXTENSION ${ENV_EXTENSION}
|
||||
reconfigure APP_CORE_MACHINEKEY ${APP_CORE_MACHINEKEY}
|
||||
reconfigure APP_CORE_BASE_DOMAIN ${APP_CORE_BASE_DOMAIN}
|
||||
reconfigure APP_URL_PORTAL "${APP_URL_PORTAL:-"http://${PACKAGE_SYSNAME}-router:8092"}"
|
||||
reconfigure EXTERNAL_PORT ${EXTERNAL_PORT}
|
||||
|
||||
reconfigure ENV_EXTENSION ${ENV_EXTENSION}
|
||||
reconfigure APP_CORE_MACHINEKEY ${APP_CORE_MACHINEKEY}
|
||||
reconfigure APP_CORE_BASE_DOMAIN ${APP_CORE_BASE_DOMAIN}
|
||||
reconfigure APP_URL_PORTAL "${APP_URL_PORTAL:-"http://${PACKAGE_SYSNAME}-router:8092"}"
|
||||
reconfigure EXTERNAL_PORT ${EXTERNAL_PORT}
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml up -d
|
||||
docker wait ${PACKAGE_SYSNAME}-migration-runner
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml up -d
|
||||
docker-compose -f ${PROXY_YML} up -d
|
||||
docker-compose -f $BASE_DIR/notify.yml up -d
|
||||
docker-compose -f $BASE_DIR/healthchecks.yml up -d
|
||||
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml up -d
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml up -d
|
||||
docker-compose -f ${PROXY_YML} up -d
|
||||
docker-compose -f $BASE_DIR/notify.yml up -d
|
||||
docker-compose -f $BASE_DIR/healthchecks.yml up -d
|
||||
if [[ -n "${PREVIOUS_ELK_VERSION}" && "$(get_env_parameter "ELK_VERSION")" != "${PREVIOUS_ELK_VERSION}" ]]; then
|
||||
MYSQL_TAG=$(docker images --format "{{.Tag}}" mysql | head -n1)
|
||||
MYSQL_CONTAINER_NAME=$(get_env_parameter "MYSQL_CONTAINER_NAME" | sed "s/\${CONTAINER_PREFIX}/${PACKAGE_SYSNAME}-/g")
|
||||
docker run --rm --network="$(get_env_parameter "NETWORK_NAME")" mysql:${MYSQL_TAG:-latest} mysql -h "${MYSQL_HOST:-${MYSQL_CONTAINER_NAME}}" -P "${MYSQL_PORT:-3306}" -u "${MYSQL_USER}" -p"${MYSQL_PASSWORD}" "${MYSQL_DATABASE}" -e "TRUNCATE webstudio_index;"
|
||||
fi
|
||||
|
||||
if [ ! -z "${CERTIFICATE_PATH}" ] && [ ! -z "${CERTIFICATE_KEY_PATH}" ] && [[ ! -z "${APP_DOMAIN_PORTAL}" ]]; then
|
||||
bash $BASE_DIR/config/${PRODUCT}-ssl-setup -f "${APP_DOMAIN_PORTAL}" "${CERTIFICATE_PATH}" "${CERTIFICATE_KEY_PATH}"
|
||||
elif [ ! -z "${LETS_ENCRYPT_DOMAIN}" ] && [ ! -z "${LETS_ENCRYPT_MAIL}" ]; then
|
||||
bash $BASE_DIR/config/${PRODUCT}-ssl-setup "${LETS_ENCRYPT_MAIL}" "${LETS_ENCRYPT_DOMAIN}"
|
||||
if [ ! -z "${CERTIFICATE_PATH}" ] && [ ! -z "${CERTIFICATE_KEY_PATH}" ] && [[ ! -z "${APP_DOMAIN_PORTAL}" ]]; then
|
||||
bash $BASE_DIR/config/${PRODUCT}-ssl-setup -f "${APP_DOMAIN_PORTAL}" "${CERTIFICATE_PATH}" "${CERTIFICATE_KEY_PATH}"
|
||||
elif [ ! -z "${LETS_ENCRYPT_DOMAIN}" ] && [ ! -z "${LETS_ENCRYPT_MAIL}" ]; then
|
||||
bash $BASE_DIR/config/${PRODUCT}-ssl-setup "${LETS_ENCRYPT_MAIL}" "${LETS_ENCRYPT_DOMAIN}"
|
||||
fi
|
||||
elif [ "$INSTALL_PRODUCT" == "pull" ]; then
|
||||
docker-compose -f $BASE_DIR/migration-runner.yml pull
|
||||
docker-compose -f $BASE_DIR/${PRODUCT}.yml pull
|
||||
docker-compose -f ${PROXY_YML} pull
|
||||
docker-compose -f $BASE_DIR/notify.yml pull
|
||||
docker-compose -f $BASE_DIR/healthchecks.yml pull
|
||||
fi
|
||||
}
|
||||
|
||||
make_swap () {
|
||||
DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
MEMORY_REQUIREMENTS=12000; #RAM ~12Gb
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
@ -1375,9 +1412,7 @@ start_installation () {
|
||||
|
||||
install_elasticsearch
|
||||
|
||||
if [ "$INSTALL_PRODUCT" == "true" ]; then
|
||||
install_product
|
||||
fi
|
||||
install_product
|
||||
|
||||
echo ""
|
||||
echo "Thank you for installing ${PACKAGE_SYSNAME^^} ${PRODUCT_NAME}."
|
||||
|
@ -15,16 +15,6 @@ ${package_manager} clean all
|
||||
|
||||
${package_manager} -y install yum-utils
|
||||
|
||||
DIST=$(rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release);
|
||||
DIST=$(echo $DIST | sed -n '/-.*/s///p');
|
||||
REV=$(cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//);
|
||||
REV_PARTS=(${REV//\./ });
|
||||
REV=${REV_PARTS[0]};
|
||||
|
||||
if ! [[ "$REV" =~ ^[0-9]+$ ]]; then
|
||||
REV=7;
|
||||
fi
|
||||
|
||||
{ yum check-update postgresql; PSQLExitCode=$?; } || true #Checking for postgresql update
|
||||
{ yum check-update $DIST*-release; exitCode=$?; } || true #Checking for distribution update
|
||||
|
||||
@ -43,53 +33,44 @@ if rpm -qa | grep mariadb.*config >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
#Add repositories: EPEL, REMI and RPMFUSION
|
||||
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-$REV.noarch.rpm || true
|
||||
rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-$REV.rpm || true
|
||||
yum localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$REV.noarch.rpm
|
||||
[ "$DIST" != "fedora" ] && { rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-$REV.noarch.rpm || true; }
|
||||
rpm -ivh https://rpms.remirepo.net/$REMI_DISTR_NAME/remi-release-$REV.rpm || true
|
||||
yum localinstall -y --nogpgcheck https://download1.rpmfusion.org/free/$RPMFUSION_DISTR_NAME/rpmfusion-free-release-$REV.noarch.rpm
|
||||
|
||||
if [ "$REV" = "9" ]; then
|
||||
[ $DIST != "redhat" ] && TESTING_REPO="--enablerepo=crb" || /usr/bin/crb enable
|
||||
update-crypto-policies --set DEFAULT:SHA1
|
||||
elif [ "$REV" = "8" ]; then
|
||||
[ $DIST != "redhat" ] && POWERTOOLS_REPO="--enablerepo=powertools" || /usr/bin/crb enable
|
||||
[ "$REV" = "9" ] && update-crypto-policies --set DEFAULT:SHA1
|
||||
if [ "$DIST" == "centos" ]; then
|
||||
[ "$REV" = "9" ] && TESTING_REPO="--enablerepo=crb" || POWERTOOLS_REPO="--enablerepo=powertools"
|
||||
elif [ "$DIST" == "redhat" ]; then
|
||||
/usr/bin/crb enable
|
||||
fi
|
||||
|
||||
#add rabbitmq & erlang repo
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | os=centos dist=$REV bash
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | os=centos dist=$REV bash
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | bash
|
||||
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | bash
|
||||
|
||||
#add nodejs repo
|
||||
[ "$REV" = "7" ] && NODE_VERSION="16" || NODE_VERSION="18"
|
||||
NODE_VERSION="18"
|
||||
curl -fsSL https://rpm.nodesource.com/setup_${NODE_VERSION}.x | sed '/update -y/d' | bash - || true
|
||||
|
||||
#add dotnet repo
|
||||
[ $REV = "7" ] && rpm -Uvh https://packages.microsoft.com/config/centos/$REV/packages-microsoft-prod.rpm || true
|
||||
|
||||
#add mysql repo
|
||||
[ "$REV" != "7" ] && dnf remove -y @mysql && dnf module -y reset mysql && dnf module -y disable mysql
|
||||
MYSQL_REPO_VERSION="$(curl https://repo.mysql.com | grep -oP "mysql80-community-release-el${REV}-\K.*" | grep -o '^[^.]*' | sort -n | tail -n1)"
|
||||
yum localinstall -y https://repo.mysql.com/mysql80-community-release-el${REV}-${MYSQL_REPO_VERSION}.noarch.rpm || true
|
||||
dnf remove -y @mysql && dnf module -y reset mysql && dnf module -y disable mysql
|
||||
MYSQL_REPO_VERSION="$(curl https://repo.mysql.com | grep -oP "mysql80-community-release-${MYSQL_DISTR_NAME}${REV}-\K.*" | grep -o '^[^.]*' | sort | tail -n1)"
|
||||
yum localinstall -y https://repo.mysql.com/mysql80-community-release-${MYSQL_DISTR_NAME}${REV}-${MYSQL_REPO_VERSION}.noarch.rpm || true
|
||||
|
||||
if ! yum repolist enabled | grep -q mysql-innovation-community; then
|
||||
sudo yum-config-manager --enable mysql-innovation-community
|
||||
fi
|
||||
|
||||
if ! rpm -q mysql-community-server; then
|
||||
MYSQL_FIRST_TIME_INSTALL="true";
|
||||
fi
|
||||
|
||||
#add elasticsearch repo
|
||||
ELASTIC_VERSION="7.16.3"
|
||||
ELASTIC_DIST=$(echo $ELASTIC_VERSION | awk '{ print int($1) }')
|
||||
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
|
||||
cat > /etc/yum.repos.d/elasticsearch.repo <<END
|
||||
[elasticsearch]
|
||||
name=Elasticsearch repository for ${ELASTIC_DIST}.x packages
|
||||
baseurl=https://artifacts.elastic.co/packages/${ELASTIC_DIST}.x/yum
|
||||
gpgcheck=1
|
||||
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
|
||||
enabled=0
|
||||
autorefresh=1
|
||||
type=rpm-md
|
||||
END
|
||||
#add opensearch repo
|
||||
curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo
|
||||
ELASTIC_VERSION="2.11.1"
|
||||
|
||||
# add nginx repo
|
||||
# add nginx repo, Fedora doesn't need it
|
||||
if [ "$DIST" != "fedora" ]; then
|
||||
cat > /etc/yum.repos.d/nginx.repo <<END
|
||||
[nginx-stable]
|
||||
name=nginx stable repo
|
||||
@ -99,17 +80,19 @@ enabled=1
|
||||
gpgkey=https://nginx.org/keys/nginx_signing.key
|
||||
module_hotfixes=true
|
||||
END
|
||||
fi
|
||||
|
||||
rpm --import https://openresty.org/package/pubkey.gpg
|
||||
OPENRESTY_REPO_FILE=$( [[ "$REV" -ge 9 ]] && echo "openresty2.repo" || echo "openresty.repo" )
|
||||
curl -o /etc/yum.repos.d/openresty.repo "https://openresty.org/package/centos/${OPENRESTY_REPO_FILE}"
|
||||
OPENRESTY_REPO_FILE=$( [[ "$REV" -ge 9 && "$DIST" != "fedora" ]] && echo "openresty2.repo" || echo "openresty.repo" )
|
||||
curl -o /etc/yum.repos.d/openresty.repo "https://openresty.org/package/${OPENRESTY_DISTR_NAME}/${OPENRESTY_REPO_FILE}"
|
||||
[ "$DIST" == "fedora" ] && sed -i "s/\$releasever/$OPENRESTY_REV/g" /etc/yum.repos.d/openresty.repo
|
||||
|
||||
${package_manager} -y install epel-release \
|
||||
${package_manager} -y install $([ $DIST != "fedora" ] && echo "epel-release") \
|
||||
python3 \
|
||||
nodejs ${NODEJS_OPTION} \
|
||||
dotnet-sdk-7.0 \
|
||||
elasticsearch-${ELASTIC_VERSION} --enablerepo=elasticsearch \
|
||||
mysql-server \
|
||||
dotnet-sdk-8.0 \
|
||||
opensearch-${ELASTIC_VERSION} --enablerepo=opensearch-2.x \
|
||||
mysql-community-server \
|
||||
postgresql \
|
||||
postgresql-server \
|
||||
rabbitmq-server$rabbitmq_version \
|
||||
|
@ -4,11 +4,11 @@ set -e
|
||||
|
||||
function make_swap () {
|
||||
local DISK_REQUIREMENTS=6144; #6Gb free space
|
||||
local MEMORY_REQUIREMENTS=11000; #RAM ~12Gb
|
||||
local MEMORY_REQUIREMENTS=12000; #RAM ~12Gb
|
||||
SWAPFILE="/${PRODUCT}_swapfile";
|
||||
|
||||
local AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
local TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
local TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
local EXIST=$(swapon -s | awk '{ print $1 }' | { grep -x ${SWAPFILE} || true; });
|
||||
|
||||
if [[ -z $EXIST ]] && [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ] && [ ${AVAILABLE_DISK_SPACE} -gt ${DISK_REQUIREMENTS} ]; then
|
||||
@ -22,7 +22,7 @@ function make_swap () {
|
||||
|
||||
check_hardware () {
|
||||
DISK_REQUIREMENTS=40960;
|
||||
MEMORY_REQUIREMENTS=8192;
|
||||
MEMORY_REQUIREMENTS=8000;
|
||||
CORE_REQUIREMENTS=4;
|
||||
|
||||
AVAILABLE_DISK_SPACE=$(df -m / | tail -1 | awk '{ print $4 }');
|
||||
@ -32,7 +32,7 @@ check_hardware () {
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
|
||||
if [ ${TOTAL_MEMORY} -lt ${MEMORY_REQUIREMENTS} ]; then
|
||||
echo "Minimal requirements are not met: need at least $MEMORY_REQUIREMENTS MB of RAM"
|
||||
@ -65,3 +65,32 @@ read_unsupported_installation () {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
DIST=$(rpm -q --queryformat '%{NAME}' centos-release redhat-release fedora-release | awk -F'[- ]|package' '{print tolower($1)}' | tr -cd '[:alpha:]')
|
||||
[ -z $DIST ] && DIST=$(cat /etc/redhat-release | awk -F 'Linux|release| ' '{print tolower($1)}')
|
||||
REV=$(sed -n 's/.*release\ \([0-9]*\).*/\1/p' /etc/redhat-release)
|
||||
REV=${REV:-"7"}
|
||||
|
||||
REMI_DISTR_NAME="enterprise"
|
||||
RPMFUSION_DISTR_NAME="el"
|
||||
MYSQL_DISTR_NAME="el"
|
||||
OPENRESTY_DISTR_NAME="centos"
|
||||
SUPPORTED_FEDORA_FLAG="true"
|
||||
|
||||
if [ "$DIST" == "fedora" ]; then
|
||||
REMI_DISTR_NAME="fedora"
|
||||
OPENRESTY_DISTR_NAME="fedora"
|
||||
RPMFUSION_DISTR_NAME="fedora"
|
||||
MYSQL_DISTR_NAME="fc"
|
||||
OPENRESTY_REV=$([ "$REV" -ge 37 ] && echo 36 || echo "$REV")
|
||||
|
||||
FEDORA_SUPP=$(curl https://docs.fedoraproject.org/en-US/releases/ | awk '/Supported Releases/,/EOL Releases/' | grep -oP 'F\d+' | tr -d 'F')
|
||||
[ ! "$(echo "$FEDORA_SUPP" | grep "$REV")" ] && SUPPORTED_FEDORA_FLAG="false"
|
||||
fi
|
||||
|
||||
# Check if it's Centos less than 8 or Fedora release is out of service
|
||||
if [ "${REV}" -lt 8 ] || [ "$SUPPORTED_FEDORA_FLAG" == "false" ]; then
|
||||
echo "Your ${DIST} ${REV} operating system has reached the end of its service life."
|
||||
echo "Please consider upgrading your operating system or using a Docker installation."
|
||||
exit 1
|
||||
fi
|
||||
|
@ -55,5 +55,6 @@ services_name_backend_nodejs+=(ASC.SsoAuth)
|
||||
# Build backend services (Nodejs)
|
||||
for i in ${!services_name_backend_nodejs[@]}; do
|
||||
echo "== Build ${services_name_backend_nodejs[$i]} project =="
|
||||
yarn install --cwd ${SRC_PATH}/server/common/${services_name_backend_nodejs[$i]} --frozen-lockfile
|
||||
cd ${SRC_PATH}/server/common/${services_name_backend_nodejs[$i]}
|
||||
yarn install --frozen-lockfile
|
||||
done
|
||||
|
@ -59,7 +59,7 @@ echo "== FRONT-END-BUILD =="
|
||||
cd ${SRC_PATH}
|
||||
# debug config
|
||||
if [ "$DEBUG_INFO" = true ]; then
|
||||
pip install -r ${SRC_PATH}/buildtools/requirements.txt
|
||||
pip install -r ${SRC_PATH}/buildtools/requirements.txt --break-system-packages
|
||||
python3 ${SRC_PATH}/buildtools/debuginfo.py
|
||||
fi
|
||||
cd ${SRC_PATH}/client
|
||||
|
@ -1,4 +1,4 @@
|
||||
/var/log/onlyoffice/{{product}}/*.log {
|
||||
/var/log/onlyoffice/docspace/*.log {
|
||||
daily
|
||||
missingok
|
||||
rotate 30
|
||||
@ -10,7 +10,7 @@
|
||||
sharedscripts
|
||||
postrotate
|
||||
if pgrep -x ""systemd"" >/dev/null; then
|
||||
systemctl restart {{product}}* > /dev/null
|
||||
systemctl restart docspace* > /dev/null
|
||||
fi
|
||||
endscript
|
||||
}
|
||||
|
@ -492,6 +492,13 @@ setup_openresty(){
|
||||
fi
|
||||
|
||||
if [ "$DIST" = "RedHat" ]; then
|
||||
# Remove default nginx settings [error] port 80 is already in use
|
||||
if [ -f /etc/nginx/nginx.conf ]; then
|
||||
if grep -q "server {" /etc/nginx/nginx.conf ; then
|
||||
sed -e '$a}' -e '/server {/,$d' -i /etc/nginx/nginx.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
shopt -s nocasematch
|
||||
PORTS=()
|
||||
if command -v getenforce &> /dev/null; then
|
||||
@ -601,15 +608,28 @@ setup_enterprise() {
|
||||
|
||||
change_elasticsearch_config(){
|
||||
|
||||
systemctl stop elasticsearch
|
||||
systemctl stop opensearch
|
||||
systemctl is-active --quiet elasticsearch && systemctl stop elasticsearch
|
||||
|
||||
local ELASTIC_SEARCH_CONF_PATH="/etc/elasticsearch/elasticsearch.yml"
|
||||
local ELASTIC_SEARCH_JAVA_CONF_PATH="/etc/elasticsearch/jvm.options";
|
||||
ELASTIC_VERSION=$(awk '/build:/{f=1} f&&/version:/{gsub(/"/,"",$2);print $2; exit}' /usr/share/opensearch/manifest.yml 2>/dev/null || echo "2.11.1")
|
||||
[[ -f "$APP_DIR/.private/opensearch-version" && $(cat $APP_DIR/.private/opensearch-version) != *$ELASTIC_VERSION* ]] && $MYSQL "$DB_NAME" -e "TRUNCATE webstudio_index";
|
||||
|
||||
if /usr/share/elasticsearch/bin/elasticsearch-plugin list | grep -q "ingest-attachment"; then
|
||||
/usr/share/elasticsearch/bin/elasticsearch-plugin remove -s ingest-attachment
|
||||
echo "$ELASTIC_VERSION" > $APP_DIR/.private/opensearch-version
|
||||
chmod o-rwx $APP_DIR/.private/opensearch-version
|
||||
|
||||
sed -i '/^plugins\.security/d' /etc/opensearch/opensearch.yml
|
||||
sed -i '/CN=kirk,OU=client,O=client,L=test, C=de/d' /etc/opensearch/opensearch.yml
|
||||
if /usr/share/opensearch/bin/opensearch-plugin list | grep -x "opensearch-security" > /dev/null 2>&1 ; then
|
||||
/usr/share/opensearch/bin/opensearch-plugin remove opensearch-security > /dev/null 2>&1
|
||||
fi
|
||||
/usr/share/elasticsearch/bin/elasticsearch-plugin install -s -b ingest-attachment
|
||||
|
||||
local ELASTIC_SEARCH_CONF_PATH="/etc/opensearch/opensearch.yml"
|
||||
local ELASTIC_SEARCH_JAVA_CONF_PATH="/etc/opensearch/jvm.options";
|
||||
|
||||
if /usr/share/opensearch/bin/opensearch-plugin list | grep -q "ingest-attachment"; then
|
||||
/usr/share/opensearch/bin/opensearch-plugin remove -s ingest-attachment
|
||||
fi
|
||||
/usr/share/opensearch/bin/opensearch-plugin install -s -b ingest-attachment
|
||||
|
||||
if [ -f ${ELASTIC_SEARCH_CONF_PATH}.rpmnew ]; then
|
||||
cp -rf ${ELASTIC_SEARCH_CONF_PATH}.rpmnew ${ELASTIC_SEARCH_CONF_PATH};
|
||||
@ -641,14 +661,8 @@ change_elasticsearch_config(){
|
||||
sed -i "s/Dlog4j2.formatMsgNoLookups.*/Dlog4j2.formatMsgNoLookups=true/" ${ELASTIC_SEARCH_JAVA_CONF_PATH}
|
||||
fi
|
||||
|
||||
if ! grep -q "ingest.geoip.downloader.enabled" ${ELASTIC_SEARCH_CONF_PATH}; then
|
||||
echo "ingest.geoip.downloader.enabled: false" >> ${ELASTIC_SEARCH_CONF_PATH}
|
||||
else
|
||||
sed -i "s/ingest.geoip.downloader.enabled.*/ingest.geoip.downloader.enabled: false/" ${ELASTIC_SEARCH_CONF_PATH}
|
||||
fi
|
||||
|
||||
local TOTAL_MEMORY=$(free -m | grep -oP '\d+' | head -n 1);
|
||||
local MEMORY_REQUIREMENTS=12228; #RAM ~4*3Gb
|
||||
local TOTAL_MEMORY=$(free --mega | grep -oP '\d+' | head -n 1);
|
||||
local MEMORY_REQUIREMENTS=12000; #RAM ~12Gb
|
||||
|
||||
if [ ${TOTAL_MEMORY} -gt ${MEMORY_REQUIREMENTS} ]; then
|
||||
ELASTICSEATCH_MEMORY="4g"
|
||||
@ -668,13 +682,13 @@ change_elasticsearch_config(){
|
||||
echo "-Xmx${ELASTICSEATCH_MEMORY}" >> "${ELASTIC_SEARCH_JAVA_CONF_PATH}"
|
||||
fi
|
||||
|
||||
if [ -d /etc/elasticsearch/ ]; then
|
||||
chmod g+ws /etc/elasticsearch/
|
||||
if [ -d /etc/opensearch/ ]; then
|
||||
chmod g+ws /etc/opensearch/
|
||||
fi
|
||||
}
|
||||
|
||||
setup_elasticsearch() {
|
||||
echo -n "Configuring elasticsearch... "
|
||||
echo -n "Configuring opensearch... "
|
||||
|
||||
#Save elasticsearch parameters in .json
|
||||
[[ $1 == "EXTERNAL_ELASTIC_SERVER" ]] && local EXTERNAL_ELASTIC_FLAG="rewrite"
|
||||
@ -686,8 +700,8 @@ setup_elasticsearch() {
|
||||
if [ $1 == "LOCAL_ELASTIC_SERVER" ]; then
|
||||
change_elasticsearch_config
|
||||
|
||||
systemctl enable elasticsearch >/dev/null 2>&1
|
||||
systemctl restart elasticsearch
|
||||
systemctl enable opensearch >/dev/null 2>&1
|
||||
systemctl restart opensearch
|
||||
fi
|
||||
echo "OK"
|
||||
}
|
||||
@ -766,6 +780,16 @@ check_connection_external_services() {
|
||||
return $HOST_RESPONCE
|
||||
}
|
||||
|
||||
# Function to prevent package auto-update
|
||||
hold_package_version(){
|
||||
if command -v apt >/dev/null 2>&1 &&
|
||||
dpkg -s $1 >/dev/null 2>&1 &&
|
||||
! apt-mark showhold | grep -q $1 >/dev/null 2>&1
|
||||
then
|
||||
apt-mark hold $1 >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
if command -v yum >/dev/null 2>&1; then
|
||||
DIST="RedHat"
|
||||
PACKAGE_MANAGER="rpm -q"
|
||||
@ -778,6 +802,7 @@ elif command -v apt >/dev/null 2>&1; then
|
||||
MYSQL_PACKAGE="mysql"
|
||||
REDIS_PACKAGE="redis-server"
|
||||
SYSTEMD_DIR="$(dirname $(dpkg-query -L ${PRODUCT}-api | grep systemd/system/))"
|
||||
hold_package_version dotnet-host
|
||||
fi
|
||||
|
||||
install_json
|
||||
@ -804,8 +829,9 @@ fi
|
||||
if [[ ! -z $EXTERNAL_ELK_FLAG ]]; then
|
||||
check_connection_external_services "$ELK_HOST" "$ELK_PORT" "Elasticsearch"
|
||||
setup_elasticsearch "EXTERNAL_ELASTIC_SERVER"
|
||||
elif $PACKAGE_MANAGER elasticsearch >/dev/null 2>&1; then
|
||||
elif $PACKAGE_MANAGER opensearch >/dev/null 2>&1; then
|
||||
setup_elasticsearch "LOCAL_ELASTIC_SERVER"
|
||||
hold_package_version opensearch
|
||||
fi
|
||||
|
||||
if [[ ! -z $EXTERNAL_REDIS_FLAG ]]; then
|
||||
@ -813,6 +839,7 @@ if [[ ! -z $EXTERNAL_REDIS_FLAG ]]; then
|
||||
setup_redis "EXTERNAL_REDIS_SERVER"
|
||||
elif $PACKAGE_MANAGER $REDIS_PACKAGE >/dev/null 2>&1; then
|
||||
setup_redis "LOCAL_REDIS_SERVER"
|
||||
hold_package_version $REDIS_PACKAGE
|
||||
fi
|
||||
|
||||
if [[ ! -z $EXTERNAL_RABBITMQ_FLAG ]]; then
|
||||
@ -820,6 +847,7 @@ if [[ ! -z $EXTERNAL_RABBITMQ_FLAG ]]; then
|
||||
setup_rabbitmq "EXTERNAL_RABBITMQ_SERVER"
|
||||
elif $PACKAGE_MANAGER rabbitmq-server >/dev/null 2>&1; then
|
||||
setup_rabbitmq "LOCAL_RABBITMQ_SERVER"
|
||||
hold_package_version rabbitmq-server
|
||||
fi
|
||||
|
||||
restart_services
|
||||
|
@ -8,6 +8,7 @@ LETSENCRYPT="/etc/letsencrypt/live";
|
||||
OPENRESTY="/etc/openresty/conf.d"
|
||||
DHPARAM_FILE="/etc/ssl/certs/dhparam.pem"
|
||||
WEBROOT_PATH="/var/www/${PRODUCT}"
|
||||
SYSTEMD_DIR="/usr/lib/systemd/system"
|
||||
|
||||
# Check if configuration files are present
|
||||
if [ ! -f "${OPENRESTY}/onlyoffice-proxy-ssl.conf.template" -a ! -f "${OPENRESTY}/onlyoffice-proxy.conf.template" ]; then
|
||||
@ -23,10 +24,12 @@ help(){
|
||||
echo " Use comma to register multiple emails, ex:"
|
||||
echo " u1@example.com,u2@example.com."
|
||||
echo " DOMAIN Domain name to apply"
|
||||
echo " Use comma to register multiple domains, ex:"
|
||||
echo " example.com,s1.example.com,s2.example.com."
|
||||
echo ""
|
||||
echo "Using your own certificates via the -f or --file parameter:"
|
||||
echo " docspace-ssl-setup --file DOMAIN CERTIFICATE PRIVATEKEY"
|
||||
echo " DOMAIN Domain name to apply."
|
||||
echo " DOMAIN Main domain name to apply."
|
||||
echo " CERTIFICATE Path to the certificate file for the domain."
|
||||
echo " PRIVATEKEY Path to the private key file for the certificate."
|
||||
echo ""
|
||||
@ -56,6 +59,14 @@ case $1 in
|
||||
sed "s!\(worker_connections\).*;!\1 $(ulimit -n);!" -i "${OPENRESTY}/onlyoffice-proxy.conf"
|
||||
[[ -f "${DIR}/${PRODUCT}-renew-letsencrypt" ]] && rm -rf "${DIR}/${PRODUCT}-renew-letsencrypt"
|
||||
[ $(pgrep -x ""systemd"" | wc -l) -gt 0 ] && systemctl reload openresty || service openresty reload
|
||||
|
||||
SYSTEMD_NODE_FILES=$(grep -l "NODE_EXTRA_CA_CERTS" ${SYSTEMD_DIR}/${PRODUCT}-*.service ${SYSTEMD_DIR}/ds-*.service || true)
|
||||
if [ -n "$SYSTEMD_NODE_FILES" ]; then
|
||||
sed -i '/NODE_EXTRA_CA_CERTS/d' ${SYSTEMD_NODE_FILES}
|
||||
systemctl daemon-reload
|
||||
echo "${SYSTEMD_NODE_FILES[@]}" | xargs -I % basename % | xargs systemctl restart
|
||||
fi
|
||||
|
||||
echo "OK"
|
||||
exit 0
|
||||
;;
|
||||
@ -63,7 +74,8 @@ case $1 in
|
||||
* )
|
||||
if [ "$#" -ge "2" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
DOMAINS=$2
|
||||
DOMAIN=$(cut -d ',' -f 1 <<< "$DOMAINS")
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
|
||||
# Install certbot if not already installed
|
||||
@ -79,8 +91,8 @@ case $1 in
|
||||
echo "Generating Let's Encrypt SSL Certificates..."
|
||||
|
||||
# Request and generate Let's Encrypt SSL certificate
|
||||
echo certbot certonly --expand --webroot -w ${WEBROOT_PATH} --cert-name ${PRODUCT} --noninteractive --agree-tos --email ${MAIL} -d ${DOMAIN} > /var/log/le-start.log
|
||||
certbot certonly --expand --webroot -w ${WEBROOT_PATH} --cert-name ${PRODUCT} --noninteractive --agree-tos --email ${MAIL} -d ${DOMAIN} > /var/log/le-new.log
|
||||
echo certbot certonly --expand --webroot -w ${WEBROOT_PATH} --cert-name ${PRODUCT} --noninteractive --agree-tos --email ${MAIL} -d ${DOMAINS[@]} > /var/log/le-start.log
|
||||
certbot certonly --expand --webroot -w ${WEBROOT_PATH} --cert-name ${PRODUCT} --noninteractive --agree-tos --email ${MAIL} -d ${DOMAINS[@]} > /var/log/le-new.log
|
||||
else
|
||||
help
|
||||
fi
|
||||
@ -118,6 +130,21 @@ if [ -f "${CERTIFICATE_FILE}" ]; then
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
else
|
||||
CERTIFICATE_SUBJECT=$(openssl x509 -subject -noout -in "${CERTIFICATE_FILE}" | sed 's/subject=//')
|
||||
CERTIFICATE_ISSUER=$(openssl x509 -issuer -noout -in "${CERTIFICATE_FILE}" | sed 's/issuer=//')
|
||||
|
||||
#Checking whether the certificate is self-signed
|
||||
if [[ -n "$CERTIFICATE_SUBJECT" && -n "$CERTIFICATE_ISSUER" && "$CERTIFICATE_SUBJECT" == "$CERTIFICATE_ISSUER" ]]; then
|
||||
SYSTEMD_NODE_FILES=$(grep -l "ExecStart=/usr/bin/node" ${SYSTEMD_DIR}/${PRODUCT}-*.service; ls ${SYSTEMD_DIR}/ds-*.service 2>/dev/null | grep -v "ds-example" || true)
|
||||
for SYSTEMD_NODE_FILE in ${SYSTEMD_NODE_FILES}; do
|
||||
if ! grep -q "NODE_EXTRA_CA_CERTS" "${SYSTEMD_NODE_FILE}"; then
|
||||
sed -i "/ExecStart=/i Environment=NODE_EXTRA_CA_CERTS=${CERTIFICATE_FILE}" "${SYSTEMD_NODE_FILE}"
|
||||
fi
|
||||
done
|
||||
systemctl daemon-reload
|
||||
echo "${SYSTEMD_NODE_FILES[@]}" | xargs -I % basename % | xargs systemctl restart
|
||||
fi
|
||||
fi
|
||||
|
||||
[ $(pgrep -x ""systemd"" | wc -l) -gt 0 ] && systemctl reload openresty || service openresty reload
|
||||
|
@ -120,7 +120,7 @@ reassign_values (){
|
||||
WORK_DIR="${BASE_DIR}/products/ASC.Files/service/"
|
||||
EXEC_FILE="ASC.Files.Service.dll"
|
||||
CORE_EVENT_BUS=" --core:eventBus:subscriptionClientName=asc_event_bus_files_service_queue"
|
||||
DEPENDENCY_LIST="${DEPENDENCY_LIST} elasticsearch.service"
|
||||
DEPENDENCY_LIST="${DEPENDENCY_LIST} opensearch.service"
|
||||
;;
|
||||
studio )
|
||||
SERVICE_PORT="5003"
|
||||
|
@ -2,7 +2,7 @@ Source: {{product}}
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: Ascensio System SIA <support@onlyoffice.com>
|
||||
Build-Depends: debhelper (>= 10), po-debconf, nodejs (>=18), dotnet-sdk-7.0, yarn
|
||||
Build-Depends: debhelper (>= 10), po-debconf, nodejs (>=18), dotnet-sdk-8.0, yarn
|
||||
Standards-Version: {{package_header_tag_version}}
|
||||
Homepage: https://www.onlyoffice.com/
|
||||
Architecture: all
|
||||
@ -48,15 +48,15 @@ Description: {{product}}-common
|
||||
Package: {{product}}-backup
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-backup
|
||||
The service which handles API requests related to backup
|
||||
|
||||
Package: {{product}}-files
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: elasticsearch (= 7.16.3)
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: opensearch (= 2.11.1)
|
||||
Description: {{product}}-files
|
||||
The service which handles API requests related to
|
||||
documents and launches the OFormService service
|
||||
@ -64,8 +64,8 @@ Description: {{product}}-files
|
||||
Package: {{product}}-files-services
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, elasticsearch (= 7.16.3)
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, opensearch (= 2.11.1)
|
||||
Description: {{product}}-files-services
|
||||
The service which launches additional services related to file management:
|
||||
- ElasticSearchIndexService - indexes documents using elasticsearch;
|
||||
@ -78,8 +78,8 @@ Description: {{product}}-files-services
|
||||
Package: {{product}}-notify
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, elasticsearch (= 7.16.3)
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, opensearch (= 2.11.1)
|
||||
Description: {{product}}-notify
|
||||
The service which launches additional services
|
||||
related to notifications about DocSpace events:
|
||||
@ -89,7 +89,7 @@ Description: {{product}}-notify
|
||||
Package: {{product}}-people-server
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-people-server
|
||||
The service which handles API requests related to the People module
|
||||
|
||||
@ -104,7 +104,7 @@ Description: {{product}}-socket
|
||||
Package: {{product}}-studio-notify
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-studio-notify
|
||||
The service responsible for creating notifications and
|
||||
sending them to other services, for example, TelegramService and NotifyService
|
||||
@ -112,7 +112,7 @@ Description: {{product}}-studio-notify
|
||||
Package: {{product}}-api
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: rabbitmq-server, apache-activemq, redis-server
|
||||
Description: {{product}}-api
|
||||
The service which is used for working with a certain portal. This service
|
||||
@ -122,14 +122,14 @@ Description: {{product}}-api
|
||||
Package: {{product}}-api-system
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-api-system
|
||||
The service which is used for working with portals (creating, removing, etc.)
|
||||
|
||||
Package: {{product}}-studio
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-studio
|
||||
The service which processes storage handlers and authorization pages
|
||||
|
||||
@ -154,7 +154,7 @@ Description: {{product}}-ssoauth
|
||||
Package: {{product}}-backup-background
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-backup-background
|
||||
The service which launches additional services related to backup creation:
|
||||
- BackupWorkerService - launches WorkerService which runs backup/restore, etc;
|
||||
@ -166,7 +166,7 @@ Description: {{product}}-backup-background
|
||||
Package: {{product}}-clear-events
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-clear-events
|
||||
The service responsible for clearing the login_events and audit_events tables
|
||||
by LoginHistoryLifeTime and AuditTrailLifeTime to log out users after a timeout
|
||||
@ -174,7 +174,7 @@ Description: {{product}}-clear-events
|
||||
Package: {{product}}-migration-runner
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-migration-runner
|
||||
The service responsible for the database creation.
|
||||
A database connection is transferred to the service and
|
||||
@ -206,6 +206,6 @@ Description: {{product}}-login
|
||||
Package: {{product}}-healthchecks
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-7.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: {{product}}-healthchecks
|
||||
The service which displays launched services
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.ApiSystem/service/* var/www/{{product}}/services/ASC.ApiSystem
|
||||
debian/build/server/publish/services/ASC.ApiSystem/service/* var/www/{{product}}/services/ASC.ApiSystem
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Web.Api/service/* var/www/{{product}}/studio/ASC.Web.Api
|
||||
debian/build/server/publish/services/ASC.Web.Api/service/* var/www/{{product}}/studio/ASC.Web.Api
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Data.Backup.BackgroundTasks/service/* var/www/{{product}}/services/ASC.Data.Backup.BackgroundTasks
|
||||
debian/build/server/publish/services/ASC.Data.Backup.BackgroundTasks/service/* var/www/{{product}}/services/ASC.Data.Backup.BackgroundTasks
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Data.Backup/service/* var/www/{{product}}/services/ASC.Data.Backup
|
||||
debian/build/server/publish/services/ASC.Data.Backup/service/* var/www/{{product}}/services/ASC.Data.Backup
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.ClearEvents/service/* var/www/{{product}}/services/ASC.ClearEvents
|
||||
debian/build/server/publish/services/ASC.ClearEvents/service/* var/www/{{product}}/services/ASC.ClearEvents
|
||||
|
@ -1,4 +1,4 @@
|
||||
../../config/*.json etc/onlyoffice/{{product}}
|
||||
../../config/*.config etc/onlyoffice/{{product}}
|
||||
../common/{{product}}-configuration usr/bin
|
||||
../common/logrotate/{{product}}-common etc/logrotate.d
|
||||
debian/build/buildtools/config/*.json etc/onlyoffice/{{product}}
|
||||
debian/build/buildtools/config/*.config etc/onlyoffice/{{product}}
|
||||
debian/build/buildtools/install/common/{{product}}-configuration usr/bin
|
||||
debian/build/buildtools/install/common/logrotate/{{product}}-common etc/logrotate.d
|
||||
|
@ -1 +1 @@
|
||||
../../../publish/web/editor var/www/{{product}}/products/ASC.Files
|
||||
debian/build/publish/web/editor var/www/{{product}}/products/ASC.Files
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Files.Service/service var/www/{{product}}/products/ASC.Files
|
||||
debian/build/server/publish/services/ASC.Files.Service/service var/www/{{product}}/products/ASC.Files
|
||||
|
@ -1,2 +1,2 @@
|
||||
../../../server/publish/products/ASC.Files/server var/www/{{product}}/products/ASC.Files
|
||||
../../../server/products/ASC.Files/Server/DocStore var/www/{{product}}/products/ASC.Files/server
|
||||
debian/build/server/publish/products/ASC.Files/server var/www/{{product}}/products/ASC.Files
|
||||
debian/build/server/products/ASC.Files/Server/DocStore var/www/{{product}}/products/ASC.Files/server
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Web.HealthChecks.UI/service/* var/www/{{product}}/services/ASC.Web.HealthChecks.UI
|
||||
debian/build/server/publish/services/ASC.Web.HealthChecks.UI/service/* var/www/{{product}}/services/ASC.Web.HealthChecks.UI
|
||||
|
@ -1 +1 @@
|
||||
../../../publish/web/login var/www/{{product}}/products/ASC.Login
|
||||
debian/build/publish/web/login var/www/{{product}}/products/ASC.Login
|
||||
|
@ -1 +1 @@
|
||||
../../../server/ASC.Migration.Runner/service/* var/www/{{product}}/services/ASC.Migration.Runner
|
||||
debian/build/server/ASC.Migration.Runner/service/* var/www/{{product}}/services/ASC.Migration.Runner
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Notify/service/* var/www/{{product}}/services/ASC.Notify
|
||||
debian/build/server/publish/services/ASC.Notify/service/* var/www/{{product}}/services/ASC.Notify
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/products/ASC.People/server var/www/{{product}}/products/ASC.People
|
||||
debian/build/server/publish/products/ASC.People/server var/www/{{product}}/products/ASC.People
|
||||
|
@ -1,9 +1,10 @@
|
||||
## COPY PUBLIC ##
|
||||
../../../buildtools/install/common/{{product}}-ssl-setup usr/bin
|
||||
../../../buildtools/install/docker/config/nginx/templates/*.template etc/onlyoffice/{{product}}/openresty
|
||||
../../../buildtools/install/docker/config/nginx/onlyoffice* etc/openresty/conf.d
|
||||
../../config/nginx/onlyoffice*.conf etc/openresty/conf.d
|
||||
../../../buildtools/install/docker/config/nginx/letsencrypt* etc/openresty/includes
|
||||
../../config/nginx/includes/onlyoffice*.conf etc/openresty/includes
|
||||
../../../publish/web/public/* var/www/{{product}}/public
|
||||
../../../publish/web/client/* var/www/{{product}}/client
|
||||
debian/build/buildtools/install/common/{{product}}-ssl-setup usr/bin
|
||||
debian/build/buildtools/install/docker/config/nginx/templates/*.template etc/onlyoffice/{{product}}/openresty
|
||||
debian/build/buildtools/config/nginx/html/*.html etc/openresty/html
|
||||
debian/build/buildtools/install/docker/config/nginx/onlyoffice* etc/openresty/conf.d
|
||||
debian/build/buildtools/config/nginx/onlyoffice*.conf etc/openresty/conf.d
|
||||
debian/build/buildtools/install/docker/config/nginx/letsencrypt* etc/openresty/includes
|
||||
debian/build/buildtools/config/nginx/includes/onlyoffice*.conf etc/openresty/includes
|
||||
debian/build/publish/web/public/* var/www/{{product}}/public
|
||||
debian/build/publish/web/client/* var/www/{{product}}/client
|
||||
|
@ -1 +1 @@
|
||||
../../../buildtools/install/RadicalePlugins/* var/www/{{product}}/Tools/radicale/plugins
|
||||
debian/build/buildtools/install/RadicalePlugins/* var/www/{{product}}/Tools/radicale/plugins
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Socket.IO/service/* var/www/{{product}}/services/ASC.Socket.IO
|
||||
debian/build/server/publish/services/ASC.Socket.IO/service/* var/www/{{product}}/services/ASC.Socket.IO
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.SsoAuth/service/* var/www/{{product}}/services/ASC.SsoAuth
|
||||
debian/build/server/publish/services/ASC.SsoAuth/service/* var/www/{{product}}/services/ASC.SsoAuth
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Studio.Notify/service/* var/www/{{product}}/services/ASC.Studio.Notify
|
||||
debian/build/server/publish/services/ASC.Studio.Notify/service/* var/www/{{product}}/services/ASC.Studio.Notify
|
||||
|
@ -1 +1 @@
|
||||
../../../server/publish/services/ASC.Web.Studio/service/* var/www/{{product}}/studio/ASC.Web.Studio
|
||||
debian/build/server/publish/services/ASC.Web.Studio/service/* var/www/{{product}}/studio/ASC.Web.Studio
|
||||
|
90
install/deb/debian/rules
Executable file → Normal file
90
install/deb/debian/rules
Executable file → Normal file
@ -9,16 +9,19 @@ export DH_OPTIONS=-v
|
||||
dh $@ --with=systemd
|
||||
|
||||
PRODUCT={{product}}
|
||||
CURRENT_PATH=${CURDIR}
|
||||
SRC_PATH=$(shell cd ../../../; pwd)
|
||||
SCRIPT_PATH=buildtools/install/common
|
||||
SOURCE_PATH=${CURDIR}/debian/source
|
||||
BUILD_PATH=${CURDIR}/debian/build
|
||||
BUILDTOOLS_PATH=${BUILD_PATH}/buildtools
|
||||
SERVER_PATH=${BUILD_PATH}/server
|
||||
CLENT_PATH=${BUILD_PATH}/client
|
||||
|
||||
override_dh_auto_clean:
|
||||
@echo "RULES.$@"
|
||||
dh_testdir
|
||||
rm -rf ${CURRENT_PATH}/debian/*.service
|
||||
rm -rf ${CURRENT_PATH}/debian/*.lintian-overrides
|
||||
rm -rf ${SRC_PATH}/buildtools/install/${PRODUCT}*
|
||||
rm -rf ${BUILD_PATH}
|
||||
rm -rf ${CURDIR}/debian/*.service
|
||||
rm -rf ${CURDIR}/debian/*.lintian-overrides
|
||||
find "${CURDIR}/../" -type f -regex ".\/${PRODUCT}.*\.\(deb\|tar\.gz\|dsc\|changes\|buildinfo\)" -delete
|
||||
|
||||
override_dh_auto_configure:
|
||||
@echo "RULES.$@"
|
||||
@ -26,45 +29,66 @@ override_dh_auto_configure:
|
||||
dh_auto_configure
|
||||
dh_lintian
|
||||
|
||||
override_dh_auto_build:
|
||||
cd ${SRC_PATH}/${SCRIPT_PATH}/systemd; \
|
||||
bash build.sh -pm "deb" -bp "${CURRENT_PATH}/debian/"; \
|
||||
cd ${SRC_PATH}/${SCRIPT_PATH}; \
|
||||
bash build-frontend.sh -sp ${SRC_PATH} -di "false"; \
|
||||
bash build-backend.sh -sp ${SRC_PATH}; \
|
||||
bash publish-backend.sh -sp ${SRC_PATH}/server
|
||||
extract_archive = \
|
||||
if [ ! -f "$1" ]; then \
|
||||
echo "Error: $2.tar.gz archive not found in ${SOURCE_PATH}"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
tar -xf "$1" $3 --transform='s,^[^/]\+,$2,'
|
||||
|
||||
find ${SRC_PATH}/**/publish/ \
|
||||
.PHONY: check_archives
|
||||
|
||||
check_archives:
|
||||
@echo "Checking for archives in sources directories..."
|
||||
mkdir -p ${BUILD_PATH}
|
||||
@$(call extract_archive,${SOURCE_PATH}/buildtools.tar.gz,buildtools,-C ${BUILD_PATH})
|
||||
@$(call extract_archive,${SOURCE_PATH}/server.tar.gz,server,-C ${BUILD_PATH})
|
||||
@$(call extract_archive,${SOURCE_PATH}/client.tar.gz,client,-C ${BUILD_PATH})
|
||||
@$(call extract_archive,${SOURCE_PATH}/dictionaries.tar.gz,dictionaries,-C ${CLENT_PATH}/common/Tests/Frontend.Translations.Tests)
|
||||
@$(call extract_archive,${SOURCE_PATH}/DocStore.tar.gz,DocStore,-C ${SERVER_PATH}/products/ASC.Files/Server)
|
||||
@echo "Source archives check passed."
|
||||
|
||||
override_dh_auto_build: check_archives
|
||||
cd ${BUILDTOOLS_PATH}/install/common/systemd; \
|
||||
bash build.sh -bp "${CURDIR}/debian/"; \
|
||||
cd ${BUILDTOOLS_PATH}/install/common; \
|
||||
bash build-frontend.sh -sp ${BUILD_PATH} -di "false"; \
|
||||
bash build-backend.sh -sp ${BUILD_PATH}; \
|
||||
bash publish-backend.sh -sp ${SERVER_PATH}
|
||||
|
||||
find ${BUILDTOOLS_PATH}/install/common -type f -exec rename -f -v "s/product([^\/]*)$$/${PRODUCT}\$$1/g" {} ';'
|
||||
|
||||
find ${BUILD_PATH}/**/publish/ \
|
||||
-depth -type f -regex '.*\(eslintrc.*\|npmignore\|gitignore\|gitattributes\|gitmodules\|un~\|DS_Store\)' -exec rm -f {} \;
|
||||
|
||||
rm -f ${SRC_PATH}/buildtools/config/nginx/onlyoffice-login.conf
|
||||
rm -f ${BUILDTOOLS_PATH}/config/nginx/onlyoffice-login.conf
|
||||
|
||||
if ! grep -q 'var/www/${PRODUCT}' ${SRC_PATH}/buildtools/config/nginx/*.conf; then find ${SRC_PATH}/buildtools/config/nginx/ -name "*.conf" -exec sed -i "s@\(var/www/\)@\1${PRODUCT}/@" {} +; fi
|
||||
if ! grep -q 'var/www/${PRODUCT}' ${BUILDTOOLS_PATH}/config/nginx/*.conf; then find ${BUILDTOOLS_PATH}/config/nginx/ -name "*.conf" -exec sed -i "s@\(var/www/\)@\1${PRODUCT}/@" {} +; fi
|
||||
|
||||
json -I -f ${SRC_PATH}/buildtools/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/${PRODUCT}\"" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
json -I -f ${BUILDTOOLS_PATH}/config/appsettings.services.json -e "this.logPath=\"/var/log/onlyoffice/${PRODUCT}\"" -e "this.socket={ 'path': '../ASC.Socket.IO/' }" \
|
||||
-e "this.ssoauth={ 'path': '../ASC.SsoAuth/' }" -e "this.logLevel=\"warning\"" -e "this.core={ 'products': { 'folder': '/var/www/${PRODUCT}/products', 'subfolder': 'server'} }"
|
||||
|
||||
find ${SRC_PATH}/buildtools/config/ -type f -regex '.*\.\(test\|dev\).*' -delete
|
||||
json -I -f ${SRC_PATH}/buildtools/config/appsettings.json -e "this.core.notify.postman=\"services\"" -e "this['debug-info'].enabled=\"false\"" -e "this.web.samesite=\"None\""
|
||||
json -I -f ${SRC_PATH}/buildtools/config/apisystem.json -e "this.core.notify.postman=\"services\""
|
||||
sed 's_\(minlevel=\)"[^"]*"_\1"Warn"_g' -i ${SRC_PATH}/buildtools/config/nlog.config
|
||||
find ${BUILDTOOLS_PATH}/config/ -type f -regex '.*\.\(test\|dev\).*' -delete
|
||||
json -I -f ${BUILDTOOLS_PATH}/config/appsettings.json -e "this.core.notify.postman=\"services\"" -e "this['debug-info'].enabled=\"false\"" -e "this.web.samesite=\"None\""
|
||||
json -I -f ${BUILDTOOLS_PATH}/config/apisystem.json -e "this.core.notify.postman=\"services\""
|
||||
sed 's_\(minlevel=\)"[^"]*"_\1"Warn"_g' -i ${BUILDTOOLS_PATH}/config/nlog.config
|
||||
|
||||
sed -e 's_etc/nginx_etc/openresty_g' -e 's/listen\s\+\([0-9]\+\);/listen 127.0.0.1:\1;/g' -i ${SRC_PATH}/buildtools/config/nginx/*.conf
|
||||
sed -i "s#\$$public_root#/var/www/${PRODUCT}/public/#g" ${SRC_PATH}/buildtools/config/nginx/onlyoffice.conf
|
||||
sed 's/teamlab.info/onlyoffice.com/g' -i ${SRC_PATH}/buildtools/config/autofac.consumers.json
|
||||
json -I -f ${SRC_PATH}/client/public/scripts/config.json -e "this.wrongPortalNameUrl=\"\""
|
||||
sed -e 's/$$router_host/127.0.0.1/g' -e 's/the_host/host/g' -e 's/the_scheme/scheme/g' -e 's_includes_/etc/openresty/includes_g' -i ${SRC_PATH}/buildtools/install/docker/config/nginx/onlyoffice-proxy*.conf
|
||||
sed "s_\(.*root\).*;_\1 \"/var/www/${PRODUCT}\";_g" -i ${SRC_PATH}/buildtools/install/docker/config/nginx/letsencrypt.conf
|
||||
sed -e '/.pid/d' -e '/temp_path/d' -e 's_etc/nginx_etc/openresty_g' -e 's/\.log/-openresty.log/g' -i ${SRC_PATH}/buildtools/install/docker/config/nginx/templates/nginx.conf.template
|
||||
mv -f ${SRC_PATH}/buildtools/install/docker/config/nginx/onlyoffice-proxy-ssl.conf ${SRC_PATH}/buildtools/install/docker/config/nginx/onlyoffice-proxy-ssl.conf.template
|
||||
cp -rf ${SRC_PATH}/buildtools/install/docker/config/nginx/onlyoffice-proxy.conf ${SRC_PATH}/buildtools/install/docker/config/nginx/onlyoffice-proxy.conf.template
|
||||
sed -e 's_etc/nginx_etc/openresty_g' -e 's/listen\s\+\([0-9]\+\);/listen 127.0.0.1:\1;/g' -i ${BUILDTOOLS_PATH}/config/nginx/*.conf
|
||||
sed -i "s#\$$public_root#/var/www/${PRODUCT}/public/#g" ${BUILDTOOLS_PATH}/config/nginx/onlyoffice.conf
|
||||
sed 's/teamlab.info/onlyoffice.com/g' -i ${BUILDTOOLS_PATH}/config/autofac.consumers.json
|
||||
json -I -f ${CLENT_PATH}/public/scripts/config.json -e "this.wrongPortalNameUrl=\"\""
|
||||
sed -e 's/$$router_host/127.0.0.1/g' -e 's/this_host\|proxy_x_forwarded_host/host/g' -e 's/proxy_x_forwarded_proto/scheme/g' -e 's/proxy_x_forwarded_port/server_port/g' -e 's_includes_/etc/openresty/includes_g' -i ${BUILDTOOLS_PATH}/install/docker/config/nginx/onlyoffice-proxy*.conf
|
||||
sed "s_\(.*root\).*;_\1 \"/var/www/${PRODUCT}\";_g" -i ${BUILDTOOLS_PATH}/install/docker/config/nginx/letsencrypt.conf
|
||||
sed -e '/.pid/d' -e '/temp_path/d' -e 's_etc/nginx_etc/openresty_g' -e 's/\.log/-openresty.log/g' -i ${BUILDTOOLS_PATH}/install/docker/config/nginx/templates/nginx.conf.template
|
||||
mv -f ${BUILDTOOLS_PATH}/install/docker/config/nginx/onlyoffice-proxy-ssl.conf ${BUILDTOOLS_PATH}/install/docker/config/nginx/onlyoffice-proxy-ssl.conf.template
|
||||
cp -rf ${BUILDTOOLS_PATH}/install/docker/config/nginx/onlyoffice-proxy.conf ${BUILDTOOLS_PATH}/install/docker/config/nginx/onlyoffice-proxy.conf.template
|
||||
|
||||
for i in ${PRODUCT} $$(ls ${CURRENT_PATH}/debian/*.install | grep -oP 'debian/\K.*' | grep -o '^[^.]*'); do \
|
||||
cp ${CURRENT_PATH}/debian/source/lintian-overrides ${CURRENT_PATH}/debian/$$i.lintian-overrides; \
|
||||
for i in ${PRODUCT} $$(ls ${CURDIR}/debian/*.install | grep -oP 'debian/\K.*' | grep -o '^[^.]*'); do \
|
||||
cp ${CURDIR}/debian/source/lintian-overrides ${CURDIR}/debian/$$i.lintian-overrides; \
|
||||
done
|
||||
|
||||
execute_after_dh_fixperms:
|
||||
chmod o-rwx debian/${PRODUCT}-common/etc/onlyoffice/${PRODUCT}/*
|
||||
chmod o-rwx ${CURDIR}/debian/${PRODUCT}-common/etc/onlyoffice/${PRODUCT}/*
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_systemd_enable --no-enable
|
||||
|
@ -6,9 +6,9 @@
|
||||
DOCKER_IMAGE_PREFIX=${STATUS}docspace
|
||||
DOCKER_TAG=latest
|
||||
CONTAINER_PREFIX=${PRODUCT}-
|
||||
MYSQL_VERSION=8.0.32
|
||||
MYSQL_VERSION=8.3.0
|
||||
MYSQL_IMAGE=mysql:${MYSQL_VERSION}
|
||||
ELK_VERSION=7.16.3
|
||||
ELK_VERSION=2.11.1
|
||||
SERVICE_PORT=5050
|
||||
DOCUMENT_SERVER_IMAGE_NAME=onlyoffice/4testing-documentserver-ee:latest
|
||||
DOCKERFILE=Dockerfile.app
|
||||
@ -31,7 +31,7 @@
|
||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
|
||||
|
||||
# elasticsearch #
|
||||
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}elasticsearch
|
||||
ELK_CONTAINER_NAME=${CONTAINER_PREFIX}opensearch
|
||||
ELK_SHEME=http
|
||||
ELK_HOST=""
|
||||
ELK_PORT=9200
|
||||
@ -107,6 +107,7 @@
|
||||
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 #
|
||||
@ -127,6 +128,7 @@
|
||||
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}
|
||||
|
@ -112,7 +112,7 @@ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onl
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
|
||||
FROM node:18.12.1-slim as noderun
|
||||
FROM node:20.11.0-slim as noderun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
@ -131,7 +131,7 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
@ -177,6 +177,7 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
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 && \
|
||||
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/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
|
@ -1,7 +1,7 @@
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
ARG BUILD_PATH="/var/www"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:7.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:7.0"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:8.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:8.0"
|
||||
|
||||
FROM $DOTNET_SDK AS base
|
||||
ARG RELEASE_DATE="2016-06-22"
|
||||
@ -39,7 +39,7 @@ RUN apt-get -y update && \
|
||||
apt-get install -y nodejs && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
#ADD https://api.github.com/repos/ONLYOFFICE/DocSpace/git/refs/heads/${GIT_BRANCH} version.json
|
||||
ADD https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/git/refs/heads/${GIT_BRANCH} version.json
|
||||
RUN git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-buildtools.git ${SRC_PATH}/buildtools && \
|
||||
git clone --recurse-submodules -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Server.git ${SRC_PATH}/server && \
|
||||
git clone -b ${GIT_BRANCH} https://github.com/ONLYOFFICE/DocSpace-Client.git ${SRC_PATH}/client
|
||||
@ -90,7 +90,7 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
vim \
|
||||
python3-pip \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
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/
|
||||
@ -119,7 +119,7 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
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/
|
||||
@ -148,9 +148,11 @@ COPY --from=base /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=base /etc/nginx/includes /etc/nginx/includes
|
||||
COPY --from=base ${SRC_PATH}/publish/web/client ${BUILD_PATH}/client
|
||||
COPY --from=base ${SRC_PATH}/publish/web/public ${BUILD_PATH}/public
|
||||
COPY --from=base ${SRC_PATH}/publish/web/management ${BUILD_PATH}/management
|
||||
COPY --from=base ${SRC_PATH}/buildtools/install/docker/config/nginx/docker-entrypoint.d /docker-entrypoint.d
|
||||
COPY --from=base ${SRC_PATH}/buildtools/install/docker/config/nginx/templates/upstream.conf.template /etc/nginx/templates/upstream.conf.template
|
||||
COPY --from=base ${SRC_PATH}/buildtools/install/docker/config/nginx/templates/nginx.conf.template /etc/nginx/nginx.conf.template
|
||||
COPY --from=base ${SRC_PATH}/buildtools/config/nginx/html /etc/nginx/html
|
||||
COPY --from=base ${SRC_PATH}/buildtools/install/docker/prepare-nginx-router.sh /docker-entrypoint.d/prepare-nginx-router.sh
|
||||
COPY --from=base ${SRC_PATH}/buildtools/install/docker/config/nginx/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
|
||||
@ -166,6 +168,8 @@ 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 && \
|
||||
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/$public_root/\/var\/www\/public\//' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/http:\/\/172.*/$document_server;/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
@ -245,6 +249,13 @@ FROM dotnetrun AS files_services
|
||||
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 keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 && \
|
||||
apt-key adv --keyserver keyserver.ubuntu.com --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/ .
|
||||
COPY --from=onlyoffice/ffvideo:6.0 --chown=onlyoffice:onlyoffice /usr/local /usr/local/
|
||||
|
@ -1,7 +1,7 @@
|
||||
ARG SRC_PATH="/app/onlyoffice/src"
|
||||
ARG BUILD_PATH="/var/www"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:7.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:7.0"
|
||||
ARG DOTNET_SDK="mcr.microsoft.com/dotnet/sdk:8.0"
|
||||
ARG DOTNET_RUN="mcr.microsoft.com/dotnet/aspnet:8.0"
|
||||
|
||||
FROM alpine:latest AS base
|
||||
ARG SRC_PATH
|
||||
@ -15,6 +15,7 @@ RUN find config/ -maxdepth 1 -name "*.json" | grep -v test | grep -v dev | xargs
|
||||
tar -C "/app/onlyoffice/" -xvf config.tar && \
|
||||
cp config/*.config /app/onlyoffice/config/ && \
|
||||
mkdir -p /etc/nginx/conf.d && cp -f config/nginx/onlyoffice*.conf /etc/nginx/conf.d/ && \
|
||||
mkdir -p /etc/nginx/html && cp -f config/nginx/html/* /etc/nginx/html/ && \
|
||||
mkdir -p /etc/nginx/includes/ && cp -f config/nginx/includes/onlyoffice*.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
|
||||
@ -40,7 +41,7 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
curl \
|
||||
vim \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
@ -48,7 +49,7 @@ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onl
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
|
||||
FROM node:18.12.1-slim as noderun
|
||||
FROM node:20.11.0-slim as noderun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
@ -67,7 +68,7 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
@ -92,6 +93,7 @@ RUN apt-get -y update && \
|
||||
|
||||
# copy static services files and config values
|
||||
COPY --from=base /etc/nginx/conf.d /etc/nginx/conf.d
|
||||
COPY --from=base /etc/nginx/html /etc/nginx/html
|
||||
|
||||
COPY /buildtools/install/docker/config/nginx/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY /buildtools/install/docker/config/nginx/docker-entrypoint.d /docker-entrypoint.d
|
||||
@ -121,6 +123,7 @@ RUN chown onlyoffice:onlyoffice /etc/nginx/* -R && \
|
||||
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: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 && \
|
||||
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 && \
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
onlyoffice-backup-background-tasks:
|
||||
build:
|
||||
|
@ -14,7 +14,7 @@ else
|
||||
echo "Error: yml files not found." && exit 1
|
||||
fi
|
||||
|
||||
FILES=("${PRODUCT}" "notify" "healthchecks" "proxy" "ds" "rabbitmq" "redis" "elasticsearch" "db")
|
||||
FILES=("${PRODUCT}" "notify" "healthchecks" "proxy" "ds" "rabbitmq" "redis" "opensearch" "db")
|
||||
|
||||
LOG_DIR="${DOCKERCOMPOSE}/logs"
|
||||
mkdir -p ${LOG_DIR}
|
||||
|
@ -28,10 +28,12 @@ help(){
|
||||
echo " Use comma to register multiple emails, ex:"
|
||||
echo " u1@example.com,u2@example.com."
|
||||
echo " DOMAIN Domain name to apply"
|
||||
echo " Use comma to register multiple domains, ex:"
|
||||
echo " example.com,s1.example.com,s2.example.com."
|
||||
echo ""
|
||||
echo "Using your own certificates via the -f or --file parameter:"
|
||||
echo " docspace-ssl-setup --file DOMAIN CERTIFICATE PRIVATEKEY"
|
||||
echo " DOMAIN Domain name to apply."
|
||||
echo " DOMAIN Main domain name to apply."
|
||||
echo " CERTIFICATE Path to the certificate file for the domain."
|
||||
echo " PRIVATEKEY Path to the private key file for the certificate."
|
||||
echo ""
|
||||
@ -69,8 +71,18 @@ case $1 in
|
||||
fi
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy.yml up -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml restart onlyoffice-files
|
||||
if grep -q '${CERTIFICATE_PATH}:' ${DOCKERCOMPOSE}/docspace.yml; then
|
||||
sed -i '/${CERTIFICATE_PATH}:/d' ${DOCKERCOMPOSE}/docspace.yml
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up --force-recreate -d onlyoffice-doceditor onlyoffice-login onlyoffice-socket onlyoffice-ssoauth
|
||||
fi
|
||||
|
||||
if grep -q 'USE_UNAUTHORIZED_STORAGE' ${DOCKERCOMPOSE}/ds.yml; then
|
||||
sed -i '/USE_UNAUTHORIZED_STORAGE/d' ${DOCKERCOMPOSE}/ds.yml
|
||||
docker-compose -f ${DOCKERCOMPOSE}/ds.yml up --force-recreate -d
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy.yml up --force-recreate -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up --force-recreate -d onlyoffice-files
|
||||
|
||||
echo "OK"
|
||||
exit 0
|
||||
@ -79,7 +91,8 @@ case $1 in
|
||||
* )
|
||||
if [ "$#" -ge "2" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
DOMAINS=$2
|
||||
DOMAIN=$(cut -d ',' -f 1 <<< "$DOMAINS")
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
|
||||
if ! docker volume inspect "onlyoffice_webroot_path" &> /dev/null; then
|
||||
@ -100,7 +113,7 @@ case $1 in
|
||||
-v onlyoffice_webroot_path:${WEBROOT_PATH} \
|
||||
certbot/certbot certonly \
|
||||
--expand --webroot -w ${WEBROOT_PATH} \
|
||||
--cert-name ${PRODUCT} --non-interactive --agree-tos --email ${MAIL} -d ${DOMAIN}
|
||||
--cert-name ${PRODUCT} --non-interactive --agree-tos --email ${MAIL} -d ${DOMAINS[@]}
|
||||
else
|
||||
help
|
||||
fi
|
||||
@ -113,9 +126,6 @@ PRIVATEKEY_FILE="${PRIVATEKEY_FILE:-"${LETSENCRYPT}/${PRODUCT}/privkey.pem"}"
|
||||
|
||||
if [ -f "${CERTIFICATE_FILE}" ]; then
|
||||
if [ -f "${PRIVATEKEY_FILE}" ]; then
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy.yml down
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml stop onlyoffice-files
|
||||
|
||||
sed -i "s~\(APP_URL_PORTAL=\).*~\1\"https://${DOMAIN}\"~g" ${DOCKERCOMPOSE}/.env
|
||||
sed -i "s~\(CERTIFICATE_PATH=\).*~\1\"${CERTIFICATE_FILE}\"~g" ${DOCKERCOMPOSE}/.env
|
||||
sed -i "s~\(CERTIFICATE_KEY_PATH=\).*~\1\"${PRIVATEKEY_FILE}\"~g" ${DOCKERCOMPOSE}/.env
|
||||
@ -137,10 +147,21 @@ if [ -f "${CERTIFICATE_FILE}" ]; then
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
else
|
||||
CERTIFICATE_SUBJECT=$(openssl x509 -subject -noout -in "${CERTIFICATE_FILE}" | sed 's/subject=//')
|
||||
CERTIFICATE_ISSUER=$(openssl x509 -issuer -noout -in "${CERTIFICATE_FILE}" | sed 's/issuer=//')
|
||||
|
||||
#Checking whether the certificate is self-signed
|
||||
if [[ -n "$CERTIFICATE_SUBJECT" && -n "$CERTIFICATE_ISSUER" && "$CERTIFICATE_SUBJECT" == "$CERTIFICATE_ISSUER" ]]; then
|
||||
sed -i '/app_data:\/.*/a \ - ${CERTIFICATE_PATH}:${CERTIFICATE_PATH}' ${DOCKERCOMPOSE}/docspace.yml
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up --force-recreate -d onlyoffice-doceditor onlyoffice-login onlyoffice-socket onlyoffice-ssoauth
|
||||
sed -i '/environment:/a \ - USE_UNAUTHORIZED_STORAGE=true' ${DOCKERCOMPOSE}/ds.yml
|
||||
docker-compose -f ${DOCKERCOMPOSE}/ds.yml up --force-recreate -d
|
||||
fi
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up -d onlyoffice-files
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up --force-recreate -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up --force-recreate -d onlyoffice-files
|
||||
|
||||
echo "OK"
|
||||
else
|
||||
|
@ -1,9 +1,11 @@
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $proxy_connection;
|
||||
proxy_set_header Host $the_host;
|
||||
proxy_set_header X-Forwarded-Host $the_host;
|
||||
proxy_set_header X-Forwarded-Proto $the_scheme;
|
||||
proxy_set_header Host $this_host;
|
||||
proxy_set_header X-Forwarded-Host $proxy_x_forwarded_host;
|
||||
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_hide_header 'Server';
|
||||
proxy_hide_header 'X-Powered-By';
|
||||
|
||||
## HTTP host
|
||||
server {
|
||||
|
@ -1,9 +1,11 @@
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $proxy_connection;
|
||||
proxy_set_header Host $the_host;
|
||||
proxy_set_header X-Forwarded-Host $the_host;
|
||||
proxy_set_header X-Forwarded-Proto $the_scheme;
|
||||
proxy_set_header Host $this_host;
|
||||
proxy_set_header X-Forwarded-Host $proxy_x_forwarded_host:$proxy_x_forwarded_port;
|
||||
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_hide_header 'Server';
|
||||
proxy_hide_header 'X-Powered-By';
|
||||
|
||||
server {
|
||||
listen 0.0.0.0:80;
|
||||
|
@ -5,19 +5,19 @@ map $http_host $this_host {
|
||||
default $http_host;
|
||||
}
|
||||
|
||||
map $http_x_forwarded_proto $the_scheme {
|
||||
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
|
||||
default $http_x_forwarded_proto;
|
||||
"" $scheme;
|
||||
}
|
||||
|
||||
map $http_x_forwarded_host $the_host {
|
||||
map $http_x_forwarded_host $proxy_x_forwarded_host {
|
||||
default $http_x_forwarded_host;
|
||||
"" $host;
|
||||
"" $this_host;
|
||||
}
|
||||
|
||||
map $http_x_forwarded_port $proxy_x_forwarded_port {
|
||||
default $http_x_forwarded_port;
|
||||
'' $server_port;
|
||||
default $EXTERNAL_PORT;
|
||||
~^(.*)$ $1;
|
||||
}
|
||||
|
||||
map $http_upgrade $proxy_connection {
|
||||
|
@ -12,6 +12,12 @@ map $SERVICE_DOCEDITOR $service_doceditor {
|
||||
default $SERVICE_DOCEDITOR;
|
||||
}
|
||||
|
||||
map $SERVICE_MANAGEMENT $service_management {
|
||||
volatile;
|
||||
"" 127.0.0.1:5015;
|
||||
default $SERVICE_MANAGEMENT;
|
||||
}
|
||||
|
||||
map $SERVICE_API_SYSTEM $service_api_system {
|
||||
volatile;
|
||||
"" 127.0.0.1:5010;
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
onlyoffice-mysql-server:
|
||||
image: ${MYSQL_IMAGE}
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
dnsmasq:
|
||||
image: jpillora/dnsmasq
|
||||
|
@ -39,6 +39,9 @@ LOG_LEVEL = os.environ["LOG_LEVEL"].lower() if environ.get("LOG_LEVEL") else Non
|
||||
DEBUG_INFO = os.environ["DEBUG_INFO"] if environ.get("DEBUG_INFO") else "false"
|
||||
SAMESITE = os.environ["SAMESITE"] if environ.get("SAMESITE") else "None"
|
||||
|
||||
CERTIFICATE_PATH = os.environ.get("CERTIFICATE_PATH")
|
||||
CERTIFICATE_PARAM = "NODE_EXTRA_CA_CERTS=" + CERTIFICATE_PATH + " " if CERTIFICATE_PATH and os.path.exists(CERTIFICATE_PATH) else ""
|
||||
|
||||
DOCUMENT_CONTAINER_NAME = os.environ["DOCUMENT_CONTAINER_NAME"] if environ.get("DOCUMENT_CONTAINER_NAME") else "onlyoffice-document-server"
|
||||
DOCUMENT_SERVER_JWT_SECRET = os.environ["DOCUMENT_SERVER_JWT_SECRET"] if environ.get("DOCUMENT_SERVER_JWT_SECRET") else "your_jwt_secret"
|
||||
DOCUMENT_SERVER_JWT_HEADER = os.environ["DOCUMENT_SERVER_JWT_HEADER"] if environ.get("DOCUMENT_SERVER_JWT_HEADER") else "AuthorizationJwt"
|
||||
@ -47,7 +50,7 @@ DOCUMENT_SERVER_URL_EXTERNAL = os.environ["DOCUMENT_SERVER_URL_EXTERNAL"] if env
|
||||
DOCUMENT_SERVER_URL_PUBLIC = DOCUMENT_SERVER_URL_EXTERNAL if DOCUMENT_SERVER_URL_EXTERNAL else os.environ["DOCUMENT_SERVER_URL_PUBLIC"] if environ.get("DOCUMENT_SERVER_URL_PUBLIC") else "/ds-vpath/"
|
||||
DOCUMENT_SERVER_CONNECTION_HOST = DOCUMENT_SERVER_URL_EXTERNAL if DOCUMENT_SERVER_URL_EXTERNAL else DOCUMENT_SERVER_URL_INTERNAL
|
||||
|
||||
ELK_CONTAINER_NAME = os.environ["ELK_CONTAINER_NAME"] if environ.get("ELK_CONTAINER_NAME") else "onlyoffice-elasticsearch"
|
||||
ELK_CONTAINER_NAME = os.environ["ELK_CONTAINER_NAME"] if environ.get("ELK_CONTAINER_NAME") else "onlyoffice-opensearch"
|
||||
ELK_SHEME = os.environ["ELK_SHEME"] if environ.get("ELK_SHEME") else "http"
|
||||
ELK_HOST = os.environ["ELK_HOST"] if environ.get("ELK_HOST") else None
|
||||
ELK_PORT = os.environ["ELK_PORT"] if environ.get("ELK_PORT") else "9200"
|
||||
@ -81,7 +84,7 @@ class RunServices:
|
||||
self.PATH_TO_CONF = PATH_TO_CONF
|
||||
@dispatch(str)
|
||||
def RunService(self, RUN_FILE):
|
||||
os.system("node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
|
||||
os.system(CERTIFICATE_PARAM + "node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
|
||||
" --app.appsettings=" + self.PATH_TO_CONF)
|
||||
return 1
|
||||
|
||||
@ -89,7 +92,7 @@ class RunServices:
|
||||
def RunService(self, RUN_FILE, ENV_EXTENSION):
|
||||
if ENV_EXTENSION == "none":
|
||||
self.RunService(RUN_FILE)
|
||||
os.system("node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
|
||||
os.system(CERTIFICATE_PARAM + "node " + RUN_FILE + " --app.port=" + self.SERVICE_PORT +\
|
||||
" --app.appsettings=" + self.PATH_TO_CONF +\
|
||||
" --app.environment=" + ENV_EXTENSION)
|
||||
return 1
|
||||
|
@ -50,7 +50,7 @@ DOCUMENT_SERVER_URL_PUBLIC=${DOCUMENT_SERVER_URL_PUBLIC:-"/ds-vpath/"}
|
||||
DOCUMENT_SERVER_URL_INTERNAL=${DOCUMENT_SERVER_URL_INTERNAL:-"${SHEME}://${PRODUCT}-document-server/"}
|
||||
|
||||
ELK_SHEME=${ELK_SHEME:-"http"}
|
||||
ELK_HOST=${ELK_HOST:-"${PRODUCT}-elasticsearch"}
|
||||
ELK_HOST=${ELK_HOST:-"${PRODUCT}-opensearch"}
|
||||
ELK_PORT=${ELK_PORT:-"9200"}
|
||||
ELK_THREADS=${ELK_THREADS:-"1"}
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-profiles-local: &x-profiles-local
|
||||
profiles: ["backend-local"]
|
||||
environment:
|
||||
@ -132,6 +131,21 @@ services:
|
||||
onlyoffice-migration-runner:
|
||||
condition: service_completed_successfully
|
||||
|
||||
onlyoffice-api-system:
|
||||
<<: *x-profiles-local
|
||||
image: ${Baseimage_Dotnet_Run}
|
||||
working_dir: ${BUILD_PATH}/services/ASC.ApiSystem/service/
|
||||
command: ["ASC.ApiSystem.dll", "ASC.ApiSystem"]
|
||||
volumes:
|
||||
- ${SRC_PATH}/ASC.ApiSystem/service:${BUILD_PATH}/services/ASC.ApiSystem/service/
|
||||
- ${SRC_PATH}/ASC.Files/service/:${BUILD_PATH}/products/ASC.Files/server/
|
||||
- ${SRC_PATH}/ASC.People/service/:${BUILD_PATH}/products/ASC.People/server/
|
||||
- ${ROOT_DIR}/config/appsettings.${ENV_EXTENSION}.json:/app/onlyoffice/config/appsettings.${ENV_EXTENSION}.json
|
||||
- ${ROOT_DIR}/config/apisystem.${ENV_EXTENSION}.json:/app/onlyoffice/config/apisystem.${ENV_EXTENSION}.json
|
||||
depends_on:
|
||||
onlyoffice-migration-runner:
|
||||
condition: service_completed_successfully
|
||||
|
||||
onlyoffice-studio:
|
||||
<<: *x-profiles-local
|
||||
image: ${Baseimage_Dotnet_Run}
|
||||
@ -170,6 +184,7 @@ services:
|
||||
image: ${Baseimage_Proxy_Run}
|
||||
environment:
|
||||
- SERVICE_CLIENT=${SERVICE_CLIENT}
|
||||
- SERVICE_MANAGEMENT=${SERVICE_MANAGEMENT}
|
||||
volumes:
|
||||
- ${ROOT_DIR}/client/public:/var/www/public/
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-healthcheck: &x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
interval: 60s
|
||||
@ -64,30 +63,31 @@ x-service: &x-service-base
|
||||
- people_data:/var/www/products/ASC.People/server/
|
||||
|
||||
services:
|
||||
onlyoffice-elasticsearch:
|
||||
onlyoffice-opensearch:
|
||||
<<: [*x-profiles-extra-services]
|
||||
image: onlyoffice/elasticsearch:${ELK_VERSION}
|
||||
container_name: ${ELK_HOST}
|
||||
image: onlyoffice/opensearch:${ELK_VERSION}
|
||||
container_name: ${ELK_CONTAINER_NAME}
|
||||
restart: always
|
||||
environment:
|
||||
- discovery.type=single-node
|
||||
- bootstrap.memory_lock=true
|
||||
- "ES_JAVA_OPTS=-Xms4g -Xmx4g -Dlog4j2.formatMsgNoLookups=true"
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms4g -Xmx4g -Dlog4j2.formatMsgNoLookups=true"
|
||||
- "indices.fielddata.cache.size=30%"
|
||||
- "indices.memory.index_buffer_size=30%"
|
||||
- "ingest.geoip.downloader.enabled=false"
|
||||
- "DISABLE_INSTALL_DEMO_CONFIG=true"
|
||||
- "DISABLE_SECURITY_PLUGIN=true"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65535
|
||||
hard: 65535
|
||||
soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
|
||||
hard: 65536
|
||||
volumes:
|
||||
- es_data:/usr/share/elasticsearch/data
|
||||
- os_data:/usr/share/opensearch/data
|
||||
expose:
|
||||
- "9200"
|
||||
- "9300"
|
||||
- "9600" # required for Performance Analyzer
|
||||
|
||||
onlyoffice-rabbitmq:
|
||||
<<: [*x-profiles-extra-services]
|
||||
@ -253,6 +253,7 @@ services:
|
||||
- "8081"
|
||||
- "8099"
|
||||
- "8092"
|
||||
- "80"
|
||||
ports:
|
||||
- 80:8092
|
||||
environment:
|
||||
@ -300,7 +301,7 @@ networks:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
es_data:
|
||||
os_data:
|
||||
router_log:
|
||||
app_data:
|
||||
files_data:
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-healthcheck:
|
||||
&x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
@ -52,6 +51,7 @@ x-service: &x-service-base
|
||||
ROUTER_HOST: ${ROUTER_HOST}
|
||||
LOG_LEVEL: ${LOG_LEVEL}
|
||||
DEBUG_INFO: ${DEBUG_INFO}
|
||||
CERTIFICATE_PATH: ${CERTIFICATE_PATH}
|
||||
volumes:
|
||||
#- /app/onlyoffice/CommunityServer/data:/app/onlyoffice/data
|
||||
- app_data:/app/onlyoffice/data
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: '3.6'
|
||||
services:
|
||||
onlyoffice-document-server:
|
||||
image: "${DOCUMENT_SERVER_IMAGE_NAME}"
|
||||
|
@ -1,32 +0,0 @@
|
||||
version: "3"
|
||||
services:
|
||||
onlyoffice-elasticsearch:
|
||||
image: onlyoffice/elasticsearch:${ELK_VERSION}
|
||||
container_name: ${ELK_CONTAINER_NAME}
|
||||
restart: always
|
||||
environment:
|
||||
- discovery.type=single-node
|
||||
- bootstrap.memory_lock=true
|
||||
- "ES_JAVA_OPTS=-Xms4g -Xmx4g -Dlog4j2.formatMsgNoLookups=true"
|
||||
- "indices.fielddata.cache.size=30%"
|
||||
- "indices.memory.index_buffer_size=30%"
|
||||
- "ingest.geoip.downloader.enabled=false"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65535
|
||||
hard: 65535
|
||||
volumes:
|
||||
- es_data:/usr/share/elasticsearch/data
|
||||
expose:
|
||||
- "9200"
|
||||
- "9300"
|
||||
networks:
|
||||
default:
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
es_data:
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-service:
|
||||
&x-service-base
|
||||
container_name: base
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.6"
|
||||
services:
|
||||
onlyoffice-zookeeper:
|
||||
image: zookeeper:latest
|
||||
|
@ -1,5 +1,3 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
onlyoffice-migration-runner:
|
||||
image: "${REPO}/${DOCKER_IMAGE_PREFIX}-migration-runner:${DOCKER_TAG}"
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-healthcheck:
|
||||
&x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
|
32
install/docker/opensearch.yml
Normal file
32
install/docker/opensearch.yml
Normal file
@ -0,0 +1,32 @@
|
||||
services:
|
||||
onlyoffice-opensearch:
|
||||
image: onlyoffice/opensearch:${ELK_VERSION}
|
||||
container_name: ${ELK_CONTAINER_NAME}
|
||||
restart: always
|
||||
environment:
|
||||
- discovery.type=single-node
|
||||
- bootstrap.memory_lock=true
|
||||
- "OPENSEARCH_JAVA_OPTS=-Xms4g -Xmx4g -Dlog4j2.formatMsgNoLookups=true"
|
||||
- "indices.fielddata.cache.size=30%"
|
||||
- "indices.memory.index_buffer_size=30%"
|
||||
- "DISABLE_INSTALL_DEMO_CONFIG=true"
|
||||
- "DISABLE_SECURITY_PLUGIN=true"
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
nofile:
|
||||
soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
|
||||
hard: 65536
|
||||
volumes:
|
||||
- os_data:/usr/share/opensearch/data
|
||||
expose:
|
||||
- "9200"
|
||||
- "9600" # required for Performance Analyzer
|
||||
networks:
|
||||
default:
|
||||
name: ${NETWORK_NAME}
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
os_data:
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-healthcheck:
|
||||
&x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
@ -20,6 +19,7 @@ services:
|
||||
- 443:443
|
||||
environment:
|
||||
- ROUTER_HOST=${ROUTER_HOST}
|
||||
- EXTERNAL_PORT=${EXTERNAL_PORT}
|
||||
volumes:
|
||||
- webroot_path:/letsencrypt
|
||||
- proxy_log:/var/log/nginx
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3.8"
|
||||
x-healthcheck:
|
||||
&x-healthcheck
|
||||
test: curl --fail http://127.0.0.1 || exit 1
|
||||
@ -19,6 +18,7 @@ services:
|
||||
- ${EXTERNAL_PORT}:80
|
||||
environment:
|
||||
- ROUTER_HOST=${ROUTER_HOST}
|
||||
- EXTERNAL_PORT=${EXTERNAL_PORT}
|
||||
volumes:
|
||||
- webroot_path:/letsencrypt
|
||||
- proxy_log:/var/log/nginx
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3"
|
||||
services:
|
||||
onlyoffice-rabbitmq:
|
||||
image: rabbitmq:3
|
||||
|
@ -1,4 +1,3 @@
|
||||
version: "3"
|
||||
services:
|
||||
onlyoffice-redis:
|
||||
image: redis:7
|
||||
|
@ -28,7 +28,7 @@ addFilter(r'W: only-non-binary-in-usr-lib')
|
||||
# Rpmbuild does not support different architectures for child packages
|
||||
addFilter(r'E: no-binary')
|
||||
|
||||
# There is no manual page for {{product}}-configuration.sh
|
||||
# There is no manual page for docspace-configuration.sh
|
||||
addFilter(r'W: no-manual-page-for-binary')
|
||||
|
||||
# Dependency on a non-existent package
|
||||
@ -63,7 +63,7 @@ addFilter(r'arch-independent-package-contains-binary-or-object')
|
||||
|
||||
# File is a static library that is used when building our application.
|
||||
# The presence of an executable bit on it is justified, since the object files that are used for linking when building the program are included.
|
||||
# /var/www/{{product}}/services/ASC.Web.HealthChecks.UI/runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a
|
||||
# /var/www/docspace/services/ASC.Web.HealthChecks.UI/runtimes/browser-wasm/nativeassets/net7.0/e_sqlite3.a
|
||||
addFilter(r'spurious-executable-perm')
|
||||
addFilter(r'devel-file-in-non-devel-package')
|
||||
|
||||
|
@ -9,7 +9,6 @@ bash install/common/build-backend.sh --srcpath %{_builddir}
|
||||
bash install/common/publish-backend.sh --srcpath %{_builddir}/server
|
||||
|
||||
rename -f -v "s/product([^\/]*)$/%{product}\$1/g" install/common/*
|
||||
sed -i "s/{{product}}/%{product}/g" install/common/logrotate/product-common
|
||||
|
||||
rm -f config/nginx/onlyoffice-login.conf
|
||||
find config/ -type f -regex '.*\.\(test\|dev\).*' -delete
|
||||
@ -27,7 +26,7 @@ sed 's/teamlab.info/onlyoffice.com/g' -i config/autofac.consumers.json
|
||||
|
||||
sed -e 's_etc/nginx_etc/openresty_g' -e 's/listen\s\+\([0-9]\+\);/listen 127.0.0.1:\1;/g' -i config/nginx/*.conf
|
||||
sed -i "s#\$public_root#/var/www/%{product}/public/#g" config/nginx/onlyoffice.conf
|
||||
sed -e 's/$router_host/127.0.0.1/g' -e 's/the_host/host/g' -e 's/the_scheme/scheme/g' -e 's_includes_/etc/openresty/includes_g' -i install/docker/config/nginx/onlyoffice-proxy*.conf
|
||||
sed -e 's/$router_host/127.0.0.1/g' -e 's/this_host\|proxy_x_forwarded_host/host/g' -e 's/proxy_x_forwarded_proto/scheme/g' -e 's/proxy_x_forwarded_port/server_port/g' -e 's_includes_/etc/openresty/includes_g' -i install/docker/config/nginx/onlyoffice-proxy*.conf
|
||||
sed -e '/.pid/d' -e '/temp_path/d' -e 's_etc/nginx_etc/openresty_g' -e 's/\.log/-openresty.log/g' -i install/docker/config/nginx/templates/nginx.conf.template
|
||||
sed -i "s_\(.*root\).*;_\1 \"/var/www/%{product}\";_g" -i install/docker/config/nginx/letsencrypt.conf
|
||||
|
||||
|
@ -76,6 +76,7 @@
|
||||
%defattr(-, onlyoffice, onlyoffice, -)
|
||||
%config %{_sysconfdir}/openresty/includes/*
|
||||
%config %{_sysconfdir}/openresty/conf.d/*
|
||||
%config %{_sysconfdir}/openresty/html/*
|
||||
%attr(744, root, root) %{_bindir}/%{product}-ssl-setup
|
||||
%config %{_sysconfdir}/onlyoffice/%{product}/openresty/nginx.conf.template
|
||||
%dir %{_sysconfdir}/onlyoffice/
|
||||
|
@ -22,11 +22,14 @@ mkdir -p "%{buildroot}%{buildpath}/products/ASC.Login/login/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/products/ASC.Files/service/"
|
||||
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.Files/client/"
|
||||
mkdir -p "%{buildroot}%{buildpath}/client/"
|
||||
mkdir -p "%{buildroot}%{_var}/log/onlyoffice/%{product}/"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/openresty/includes/"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/openresty/conf.d/"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/openresty/html/"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/onlyoffice/%{product}/openresty"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/onlyoffice/%{product}/.private/"
|
||||
mkdir -p "%{buildroot}%{_sysconfdir}/logrotate.d"
|
||||
@ -35,6 +38,8 @@ mkdir -p "%{buildroot}%{_bindir}/"
|
||||
cp -rf %{_builddir}/publish/web/public/* "%{buildroot}%{buildpath}/public/"
|
||||
cp -rf %{_builddir}/publish/web/login/* "%{buildroot}%{buildpath}/products/ASC.Login/login/"
|
||||
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/"
|
||||
cp -rf %{_builddir}/publish/web/client/* "%{buildroot}%{buildpath}/client/"
|
||||
cp -rf %{_builddir}/server/publish/services/ASC.Web.Studio/service/* "%{buildroot}%{buildpath}/studio/ASC.Web.Studio/"
|
||||
cp -rf %{_builddir}/server/publish/services/ASC.Web.HealthChecks.UI/service/* "%{buildroot}%{buildpath}/services/ASC.Web.HealthChecks.UI/"
|
||||
@ -52,7 +57,6 @@ cp -rf %{_builddir}/server/publish/products/ASC.People/server/* "%{buildroot}%{b
|
||||
cp -rf %{_builddir}/server/publish/products/ASC.Files/server/* "%{buildroot}%{buildpath}/products/ASC.Files/server/"
|
||||
cp -rf %{_builddir}/server/LICENSE "%{buildroot}%{_docdir}/%{name}-%{version}-%{release}/"
|
||||
cp -rf %{_builddir}/server/ASC.Migration.Runner/service/* "%{buildroot}%{buildpath}/services/ASC.Migration.Runner/"
|
||||
cp -rf %{_builddir}/document-templates-main-community-server/* "%{buildroot}%{buildpath}/products/ASC.Files/server/DocStore/"
|
||||
cp -rf %{_builddir}/buildtools/install/RadicalePlugins/* "%{buildroot}%{buildpath}/Tools/radicale/plugins/"
|
||||
cp -rf %{_builddir}/buildtools/install/docker/config/nginx/templates/nginx.conf.template "%{buildroot}%{_sysconfdir}/onlyoffice/%{product}/openresty/nginx.conf.template"
|
||||
cp -rf %{_builddir}/buildtools/install/docker/config/nginx/onlyoffice-proxy.conf "%{buildroot}%{_sysconfdir}/openresty/conf.d/onlyoffice-proxy.conf"
|
||||
@ -65,4 +69,5 @@ cp -rf %{_builddir}/buildtools/install/common/%{product}-ssl-setup "%{buildroot}
|
||||
cp -rf %{_builddir}/buildtools/install/common/%{product}-configuration "%{buildroot}%{_bindir}/%{product}-configuration"
|
||||
cp -rf %{_builddir}/buildtools/config/nginx/onlyoffice*.conf "%{buildroot}%{_sysconfdir}/openresty/conf.d/"
|
||||
cp -rf %{_builddir}/buildtools/config/nginx/includes/onlyoffice*.conf "%{buildroot}%{_sysconfdir}/openresty/includes/"
|
||||
cp -rf %{_builddir}/buildtools/config/nginx/html/*.html "%{buildroot}%{_sysconfdir}/openresty/html/"
|
||||
cp -rf %{_builddir}/buildtools/config/* "%{buildroot}%{_sysconfdir}/onlyoffice/%{product}/"
|
||||
|
@ -3,7 +3,7 @@ Packager: %{packager}
|
||||
Summary: Backup
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description backup
|
||||
@ -23,7 +23,7 @@ Packager: %{packager}
|
||||
Summary: Files-services
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
Requires: ffmpeg
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
@ -41,7 +41,7 @@ Packager: %{packager}
|
||||
Summary: Notify
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description notify
|
||||
@ -55,7 +55,7 @@ Packager: %{packager}
|
||||
Summary: Files
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description files
|
||||
@ -81,7 +81,7 @@ Packager: %{packager}
|
||||
Summary: Studio-notify
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description studio-notify
|
||||
@ -93,7 +93,7 @@ Packager: %{packager}
|
||||
Summary: People-server
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description people-server
|
||||
@ -115,7 +115,7 @@ Packager: %{packager}
|
||||
Summary: Studio
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description studio
|
||||
@ -126,7 +126,7 @@ Packager: %{packager}
|
||||
Summary: Api
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description api
|
||||
@ -139,7 +139,7 @@ Packager: %{packager}
|
||||
Summary: Api-system
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description api-system
|
||||
@ -163,7 +163,7 @@ Packager: %{packager}
|
||||
Summary: Clear-events
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description clear-events
|
||||
@ -175,7 +175,7 @@ Packager: %{packager}
|
||||
Summary: Backup-background
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description backup-background
|
||||
@ -218,7 +218,7 @@ Packager: %{packager}
|
||||
Summary: Migration-runner
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description migration-runner
|
||||
@ -242,7 +242,7 @@ Packager: %{packager}
|
||||
Summary: Healthchecks
|
||||
Group: Applications/Internet
|
||||
Requires: %name-common = %version-%release
|
||||
Requires: dotnet-sdk-7.0
|
||||
Requires: dotnet-sdk-8.0
|
||||
AutoReqProv: no
|
||||
BuildArch: noarch
|
||||
%description healthchecks
|
||||
|
@ -20,16 +20,16 @@ Vendor: Ascensio System SIA
|
||||
Packager: %{packager}
|
||||
License: AGPLv3
|
||||
|
||||
Source0: https://github.com/ONLYOFFICE/%{product}-buildtools/archive/%{BRANCH_BUILDTOOLS}.tar.gz#/%{product_name}-buildtools-%{BRANCH_BUILDTOOLS}.tar.gz
|
||||
Source1: https://github.com/ONLYOFFICE/%{product}-client/archive/%{BRANCH_CLIENT}.tar.gz#/%{product_name}-client-%{BRANCH_CLIENT}.tar.gz
|
||||
Source2: https://github.com/ONLYOFFICE/%{product}-server/archive/%{BRANCH_SERVER}.tar.gz#/%{product_name}-server-%{BRANCH_SERVER}.tar.gz
|
||||
Source3: https://github.com/ONLYOFFICE/document-templates/archive/main/community-server.tar.gz#/document-templates-main-community-server.tar.gz
|
||||
Source4: https://github.com/ONLYOFFICE/dictionaries/archive/master.tar.gz#/dictionaries-master.tar.gz
|
||||
Source0: https://github.com/ONLYOFFICE/%{product}-buildtools/archive/master.tar.gz#/buildtools.tar.gz
|
||||
Source1: https://github.com/ONLYOFFICE/%{product}-client/archive/master.tar.gz#/client.tar.gz
|
||||
Source2: https://github.com/ONLYOFFICE/%{product}-server/archive/master.tar.gz#/server.tar.gz
|
||||
Source3: https://github.com/ONLYOFFICE/document-templates/archive/main/community-server.tar.gz#/DocStore.tar.gz
|
||||
Source4: https://github.com/ONLYOFFICE/dictionaries/archive/master.tar.gz#/dictionaries.tar.gz
|
||||
Source5: %{product}.rpmlintrc
|
||||
|
||||
BuildRequires: nodejs >= 18.0
|
||||
BuildRequires: yarn
|
||||
BuildRequires: dotnet-sdk-7.0
|
||||
BuildRequires: dotnet-sdk-8.0
|
||||
|
||||
BuildRoot: %_tmppath/%name-%version-%release.%arch
|
||||
|
||||
@ -63,14 +63,13 @@ predefined permissions.
|
||||
%prep
|
||||
rm -rf %{_rpmdir}/%{_arch}/%{name}-* %{_builddir}/*
|
||||
|
||||
echo "%{SOURCE0} %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4}" | xargs -n 1 -P 5 tar -xzf
|
||||
tar -xf %{SOURCE0} --transform='s,^[^/]\+,buildtools,' -C %{_builddir}
|
||||
tar -xf %{SOURCE1} --transform='s,^[^/]\+,client,' -C %{_builddir}
|
||||
tar -xf %{SOURCE2} --transform='s,^[^/]\+,server,' -C %{_builddir}
|
||||
tar -xf %{SOURCE4} --transform='s,^[^/]\+,dictionaries,' -C %{_builddir}/client/common/Tests/Frontend.Translations.Tests
|
||||
tar -xf %{SOURCE3} --transform='s,^[^/]\+,DocStore,' -C %{_builddir}/server/products/ASC.Files/Server
|
||||
cp %{SOURCE5} .
|
||||
|
||||
mv -f %{product_name}-buildtools-%{BRANCH_BUILDTOOLS} buildtools
|
||||
mv -f %{product_name}-client-%{BRANCH_CLIENT} client
|
||||
mv -f %{product_name}-server-%{BRANCH_SERVER} server
|
||||
mv -f %{_builddir}/dictionaries-master/* %{_builddir}/client/common/Tests/Frontend.Translations.Tests/dictionaries/
|
||||
|
||||
%include build.spec
|
||||
|
||||
%include install.spec
|
||||
|
@ -33,6 +33,7 @@
|
||||
<ROW Property="ARPURLUPDATEINFO" Value="https://www.onlyoffice.com/download-docspace.aspx"/>
|
||||
<ROW Property="BASE_DOMAIN" Value="localhost"/>
|
||||
<ROW Property="COMMON_SHORTCUT_NAME" Value="ONLYOFFICE"/>
|
||||
<ROW Property="DASHBOARDS_PWD" Value=" "/>
|
||||
<ROW Property="DATABASE_MIGRATION" Value="true"/>
|
||||
<ROW Property="DB_HOST" Value="localhost"/>
|
||||
<ROW Property="DB_NAME" Value="onlyoffice"/>
|
||||
@ -41,10 +42,6 @@
|
||||
<ROW Property="DB_USER" Value="root"/>
|
||||
<ROW Property="DOCUMENT_SERVER_HOST" Value="localhost"/>
|
||||
<ROW Property="DOCUMENT_SERVER_PORT" Value="8083"/>
|
||||
<ROW Property="ELASTICSEARCH_HOST" Value="localhost" ValueLocId="-"/>
|
||||
<ROW Property="ELASTICSEARCH_MSG" Value="Unable to connect to remote Elasticsearch server at "/>
|
||||
<ROW Property="ELASTICSEARCH_PORT" Value="9200" ValueLocId="-"/>
|
||||
<ROW Property="ELASTICSEARCH_SCHEME" Value="http" ValueLocId="-"/>
|
||||
<ROW Property="ENVIRONMENT" Value="PRODUCT.ENVIRONMENT.SUB"/>
|
||||
<ROW Property="Editor_Port" Value="5013"/>
|
||||
<ROW Property="INSTALL_ROOT_FOLDER_NAME" Value="[|Manufacturer]"/>
|
||||
@ -57,7 +54,12 @@
|
||||
<ROW Property="MYSQLODBCDRIVER" Value="MySQL ODBC 8.0 Unicode Driver"/>
|
||||
<ROW Property="Manufacturer" Value="Ascensio System SIA"/>
|
||||
<ROW Property="MySQLConnector" Value="MySQL Connector/ODBC 8.0.21 x86"/>
|
||||
<ROW Property="NEED_REINDEX_ELASTICSEARCH" Value="FALSE" ValueLocId="-"/>
|
||||
<ROW Property="NEED_REINDEX_OPENSEARCH" Value="FALSE" ValueLocId="-"/>
|
||||
<ROW Property="OPENSEARCH_HOST" Value="localhost" ValueLocId="-"/>
|
||||
<ROW Property="OPENSEARCH_INDEX" Value="fluentbit" ValueLocId="-"/>
|
||||
<ROW Property="OPENSEARCH_MSG" Value="Unable to connect to remote OpenSearch server at "/>
|
||||
<ROW Property="OPENSEARCH_PORT" Value="9200" ValueLocId="-"/>
|
||||
<ROW Property="OPENSEARCH_SCHEME" Value="http" ValueLocId="-"/>
|
||||
<ROW Property="OPEN_INSTALL_CANCEL_URL" Value="1"/>
|
||||
<ROW Property="PACKAGE_NAME" Value="ONLYOFFICE_DocSpace_Community_Win-install.v[|ProductVersion]" MultiBuildValue="ExeBuild:ONLYOFFICE_DocSpace_Enterprise_Win-install.v[|ProductVersion]"/>
|
||||
<ROW Property="PRODUCT_NAME" Value="ONLYOFFICE DocSpace Community" MultiBuildValue="ExeBuild:ONLYOFFICE DocSpace Enterprise"/>
|
||||
@ -366,14 +368,14 @@
|
||||
<ROW JsonProperty="ConnectionString" Parent="__1" Name="ConnectionString" Condition="1" Order="0" Flags="57" Value="Server=[DB_HOST];Database=[DB_NAME];User ID=[DB_USER];Password=[DB_PWD]"/>
|
||||
<ROW JsonProperty="ConnectionStrings" Parent="Root_12" Name="ConnectionStrings" Condition="1" Order="1" Flags="60"/>
|
||||
<ROW JsonProperty="ConnectionStrings_1" Parent="Root_1" Name="ConnectionStrings" Condition="1" Order="0" Flags="60"/>
|
||||
<ROW JsonProperty="Host" Parent="elastic" Name="Host" Condition="1" Order="0" Flags="57" Value="[ELASTICSEARCH_HOST]"/>
|
||||
<ROW JsonProperty="Host" Parent="elastic" Name="Host" Condition="1" Order="0" Flags="57" Value="[OPENSEARCH_HOST]"/>
|
||||
<ROW JsonProperty="Host_1" Parent="_" Name="Host" Condition="1" Order="0" Flags="57" Value="[REDIS_HOST]"/>
|
||||
<ROW JsonProperty="Hostname" Parent="RabbitMQ" Name="Hostname" Condition="1" Order="0" Flags="57" Value="[AMQP_HOST]"/>
|
||||
<ROW JsonProperty="Hosts" Parent="Redis" Name="Hosts" Condition="1" Order="0" Flags="61"/>
|
||||
<ROW JsonProperty="PORT" Parent="Root_9" Name="PORT" Condition="1" Order="1" Flags="57" Value="[Login_Port]"/>
|
||||
<ROW JsonProperty="PORT_1" Parent="Root_10" Name="PORT" Condition="1" Order="1" Flags="57" Value="[Editor_Port]"/>
|
||||
<ROW JsonProperty="Password" Parent="RabbitMQ" Name="Password" Condition="1" Order="2" Flags="57" Value="[AMQP_PWD]"/>
|
||||
<ROW JsonProperty="Port" Parent="elastic" Name="Port" Condition="1" Order="2" Flags="57" Value="[ELASTICSEARCH_PORT]"/>
|
||||
<ROW JsonProperty="Port" Parent="elastic" Name="Port" Condition="1" Order="2" Flags="57" Value="[OPENSEARCH_PORT]"/>
|
||||
<ROW JsonProperty="Port_1" Parent="RabbitMQ" Name="Port" Condition="1" Order="3" Flags="59" Value="[AMQP_PORT]"/>
|
||||
<ROW JsonProperty="Port_2" Parent="_" Name="Port" Condition="1" Order="1" Flags="57" Value="[REDIS_PORT]"/>
|
||||
<ROW JsonProperty="Providers" Parent="options" Name="Providers" Condition="1" Order="0" Flags="61"/>
|
||||
@ -390,7 +392,7 @@
|
||||
<ROW JsonProperty="Root_6" Name="Root" Condition="1" Order="0" Flags="60"/>
|
||||
<ROW JsonProperty="Root_7" Name="Root" Condition="1" Order="0" Flags="60"/>
|
||||
<ROW JsonProperty="Root_9" Name="Root" Condition="1" Order="0" Flags="60"/>
|
||||
<ROW JsonProperty="Scheme" Parent="elastic" Name="Scheme" Condition="1" Order="1" Flags="57" Value="[ELASTICSEARCH_SCHEME]"/>
|
||||
<ROW JsonProperty="Scheme" Parent="elastic" Name="Scheme" Condition="1" Order="1" Flags="57" Value="[OPENSEARCH_SCHEME]"/>
|
||||
<ROW JsonProperty="UserName" Parent="RabbitMQ" Name="UserName" Condition="1" Order="1" Flags="57" Value="[AMQP_USER]"/>
|
||||
<ROW JsonProperty="VirtualHost" Parent="RabbitMQ" Name="VirtualHost" Condition="1" Order="4" Flags="57" Value="[AMQP_VHOST]"/>
|
||||
<ROW JsonProperty="_" Parent="Hosts" Name="0" Condition="1" Order="0" Flags="60"/>
|
||||
@ -468,6 +470,12 @@
|
||||
<ROW Action="AI_JsonRollback" Description="Rolling back JSON file configurations." DescriptionLocId="ActionText.Description.AI_JsonRollback" Template="Rolling back JSON file configurations." TemplateLocId="ActionText.Template.AI_JsonRollback"/>
|
||||
<ROW Action="AI_JsonUninstall" Description="Generating actions to configure JSON files" DescriptionLocId="ActionText.Description.AI_JsonUninstall"/>
|
||||
<ROW Action="AI_ProcessFailActions" Description="Generating actions to configure service failure actions" DescriptionLocId="ActionText.Description.AI_ProcessFailActions" Template="Service: [1]" TemplateLocId="ActionText.Template.AI_ProcessFailActions"/>
|
||||
<ROW Action="AI_SqlConfig" Description="Executing install SQL scripts" DescriptionLocId="ActionText.Description.AI_SqlConfig" Template="Connection: [1] Script: [2]" TemplateLocId="ActionText.Template.AI_SqlConfig"/>
|
||||
<ROW Action="AI_SqlInstall" Description="Generating actions to configure databases for install SQL script execution" DescriptionLocId="ActionText.Description.AI_SqlInstall"/>
|
||||
<ROW Action="AI_SqlMaint" Description="Executing maintenance SQL scripts" DescriptionLocId="ActionText.Description.AI_SqlMaint" Template="Connection: [1] Script: [2]" TemplateLocId="ActionText.Template.AI_SqlMaint"/>
|
||||
<ROW Action="AI_SqlRemove" Description="Executing uninstall SQL scripts" DescriptionLocId="ActionText.Description.AI_SqlRemove" Template="Connection: [1] Script: [2]" TemplateLocId="ActionText.Template.AI_SqlRemove"/>
|
||||
<ROW Action="AI_SqlRollback" Description="Executing rollback SQL scripts" DescriptionLocId="ActionText.Description.AI_SqlRollback" Template="Connection: [1] Script: [2]" TemplateLocId="ActionText.Template.AI_SqlRollback"/>
|
||||
<ROW Action="AI_SqlUninstall" Description="Generating actions to configure databases for uninstall SQL script execution" DescriptionLocId="ActionText.Description.AI_SqlUninstall"/>
|
||||
<ROW Action="AI_TxtUpdaterCommit" Description="Commit text file changes." DescriptionLocId="ActionText.Description.AI_TxtUpdaterCommit" Template="Commit text file changes." TemplateLocId="ActionText.Template.AI_TxtUpdaterCommit"/>
|
||||
<ROW Action="AI_TxtUpdaterConfig" Description="Executing text file updates" DescriptionLocId="ActionText.Description.AI_TxtUpdaterConfig" Template="Updating text file: "[1]"" TemplateLocId="ActionText.Template.AI_TxtUpdaterConfig"/>
|
||||
<ROW Action="AI_TxtUpdaterInstall" Description="Generating actions to configure text files updates" DescriptionLocId="ActionText.Description.AI_TxtUpdaterInstall"/>
|
||||
@ -491,9 +499,9 @@
|
||||
<ROW Property="PS_DB_PORT" Signature_="AppSearchSign_5"/>
|
||||
<ROW Property="PS_DB_NAME" Signature_="AppSearchSign_6"/>
|
||||
<ROW Property="PS_DB_HOST" Signature_="AppSearchSign_7"/>
|
||||
<ROW Property="ELASTICSEARCH_SCHEME" Signature_="AppSearchSign_8"/>
|
||||
<ROW Property="ELASTICSEARCH_PORT" Signature_="AppSearchSign_9"/>
|
||||
<ROW Property="ELASTICSEARCH_HOST" Signature_="AppSearchSign_10"/>
|
||||
<ROW Property="OPENSEARCH_SCHEME" Signature_="AppSearchSign_8"/>
|
||||
<ROW Property="OPENSEARCH_PORT" Signature_="AppSearchSign_9"/>
|
||||
<ROW Property="OPENSEARCH_HOST" Signature_="AppSearchSign_10"/>
|
||||
<ROW Property="DB_USER" Signature_="AppSearchSign_11"/>
|
||||
<ROW Property="DB_PWD" Signature_="AppSearchSign_12"/>
|
||||
<ROW Property="DB_PORT" Signature_="AppSearchSign_13"/>
|
||||
@ -509,6 +517,7 @@
|
||||
<ROW Property="DOCUMENT_SERVER_JWT_SECRET" Signature_="AppSearchSign_23"/>
|
||||
<ROW Property="DOCUMENT_SERVER_PORT" Signature_="AppSearchSign_24"/>
|
||||
<ROW Property="MACHINE_KEY" Signature_="AppSearchSign_25"/>
|
||||
<ROW Property="DASHBOARDS_PWD" Signature_="AppSearchSign_26"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
|
||||
<ROW Name="NetFirewall.dll" SourcePath="<AI_CUSTACTS>NetFirewall.dll"/>
|
||||
@ -523,6 +532,7 @@
|
||||
<ROW Name="file_deleter.ps1" SourcePath="<AI_SCRIPTS>file_deleter.ps1"/>
|
||||
<ROW Name="jsonCfg.dll" SourcePath="<AI_CUSTACTS>jsonCfg.dll"/>
|
||||
<ROW Name="lzmaextractor.dll" SourcePath="<AI_CUSTACTS>lzmaextractor.dll"/>
|
||||
<ROW Name="sql.dll" SourcePath="<AI_CUSTACTS>sql.dll"/>
|
||||
<ROW Name="userAccounts.dll" SourcePath="<AI_CUSTACTS>userAccounts.dll"/>
|
||||
<ROW Name="utils.vbs" SourcePath="utils.vbs"/>
|
||||
<ROW Name="viewer.exe" SourcePath="<AI_CUSTACTS>viewer.exe" DigSign="true"/>
|
||||
@ -601,20 +611,6 @@
|
||||
<ROW Dialog_="DiskCostDlg" Control="Text" Type="Text" X="20" Y="53" Width="330" Height="40" Attributes="3" Text="The highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s)." Order="600" TextLocId="Control.Text.DiskCostDlg#Text" MsiKey="DiskCostDlg#Text"/>
|
||||
<ROW Dialog_="DiskCostDlg" Control="Description" Type="Text" X="20" Y="20" Width="280" Height="20" Attributes="196611" Text="The disk space required for the installation of the selected features." Order="700" TextLocId="Control.Text.DiskCostDlg#Description" MsiKey="DiskCostDlg#Description"/>
|
||||
<ROW Dialog_="DiskCostDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="800" MsiKey="DiskCostDlg#BannerLine"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Order="100" Options="1"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Order="200" Options="1"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="300" Options="1"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="banner.bmp" Order="400"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="20" Attributes="196611" Text="Configure Elasticsearch Connection..." Order="700"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="Elasticsearch connection settings" TextStyle="[DlgTitleFont]" Order="800"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="900"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1000"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1100"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="ProtocolEdit" Type="Edit" X="98" Y="61" Width="253" Height="18" Attributes="3" Property="ELASTICSEARCH_SCHEME" Text="{5}" Order="1200"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="ServerEdit" Type="Edit" X="98" Y="89" Width="253" Height="18" Attributes="3" Property="ELASTICSEARCH_HOST" Text="[ComputerName]" Order="1300"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="ELASTICSEARCH_PORT" Text="{7}" Order="1400"/>
|
||||
<ROW Dialog_="ExitDialog" Control="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Attributes="1048577" Text="dialog.bmp" Order="300" MsiKey="ExitDialog#Bitmap"/>
|
||||
<ROW Dialog_="ExitDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="ExitDialog#Back" Options="1"/>
|
||||
<ROW Dialog_="FatalError" Control="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Attributes="1048577" Text="dialog.bmp" Order="300" MsiKey="FatalError#Bitmap"/>
|
||||
@ -650,6 +646,20 @@
|
||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" Attributes="1048577" Text="dialog.bmp" Order="300" MsiKey="MaintenanceWelcomeDlg#Bitmap"/>
|
||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="MaintenanceWelcomeDlg#Back" Options="1"/>
|
||||
<ROW Dialog_="MsiRMFilesInUse" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="banner.bmp" Order="300" MsiKey="MsiRMFilesInUse#BannerBitmap"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Order="100" Options="1"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Order="200" Options="1"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="300" Options="1"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="banner.bmp" Order="400"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="20" Attributes="196611" Text="Configure OpenSearch Connection..." Order="700"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="OpenSearch connection settings" TextStyle="[DlgTitleFont]" Order="800"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="900"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1000"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1100"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="ProtocolEdit" Type="Edit" X="98" Y="61" Width="253" Height="18" Attributes="3" Property="OPENSEARCH_SCHEME" Text="{5}" Order="1200"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="ServerEdit" Type="Edit" X="98" Y="89" Width="253" Height="18" Attributes="3" Property="OPENSEARCH_HOST" Text="[ComputerName]" Order="1300"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="OPENSEARCH_PORT" Text="{7}" Order="1400"/>
|
||||
<ROW Dialog_="OutOfDiskDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="banner.bmp" Order="200" MsiKey="OutOfDiskDlg#BannerBitmap"/>
|
||||
<ROW Dialog_="OutOfDiskDlg" Control="VolumeList" Type="VolumeCostList" X="20" Y="100" Width="330" Height="120" Attributes="393223" Text="{120}{70}{70}{70}{70}" Order="400" TextLocId="Control.Text.OutOfDiskDlg#VolumeList" MsiKey="OutOfDiskDlg#VolumeList"/>
|
||||
<ROW Dialog_="OutOfDiskDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="Out of Disk Space" TextStyle="[DlgTitleFont]" Order="500" TextLocId="Control.Text.OutOfDiskDlg#Title" MsiKey="OutOfDiskDlg#Title"/>
|
||||
@ -837,38 +847,38 @@
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[ButtonText_Next]" Argument="[[AI_CommitButton]]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="2"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[AI_Text_Next_Orig]" Argument="[Text_Next]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="1"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[Text_Next]" Argument="[Text_Install]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="0"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="2"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="20"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" AND OLDPRODUCTS <> "" )" Ordering="25"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" AND OLDPRODUCTS <> "" )" Ordering="25"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="222"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="222"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="3"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="201"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="202"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="5"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="3"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="5"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="2"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnectionMsgBox" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="4"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="3"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="5"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="3"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Back" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="5"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="DoAction" Argument="TestOpenSearchConnection" Condition="AI_INSTALL" Ordering="2"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="DoAction" Argument="TestOpenSearchConnectionMsgBox" Condition="AI_INSTALL AND ( OPENSEARCH_CONNECTION = "False" )" Ordering="4"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER" Condition="AI_INSTALL AND ( OPENSEARCH_CONNECTION = "False" )" Ordering="3"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="3"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="4"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="16"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="4"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestOpenSearchConnection" Condition="AI_INSTALL" Ordering="16"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="15"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" AND OLDPRODUCTS <> "" )" Ordering="22"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" AND OLDPRODUCTS <> "" )" Ordering="22"/>
|
||||
<ROW Dialog_="CancelDlg" Control_="Yes" Event="DoAction" Argument="OpenCancelUrl" Condition="OPEN_INSTALL_CANCEL_URL = "1"" Ordering="101"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL AND ( SqlConnectionError="" AND PostgreSqlConnectionError = "" )" Ordering="212"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestOpenSearchConnection" Condition="AI_INSTALL AND ( SqlConnectionError="" AND PostgreSqlConnectionError = "" )" Ordering="212"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL AND ( SqlConnectionError="" AND PostgreSqlConnectionError = "" )" Ordering="211"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" )" Ordering="218"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" )" Ordering="218"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="11"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Back" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="3"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="11"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Back" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND ( OPENSEARCH_CONNECTION = "False" )" Ordering="3"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="5"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="5"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Back" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( RabbitMQServerConnectionError = "" )" Ordering="3"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="2"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="2"/>
|
||||
@ -876,20 +886,20 @@
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="1"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestRabbitMQServerConnection" Condition="AI_INSTALL" Ordering="17"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestRedisServerConnection" Condition="AI_INSTALL" Ordering="18"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" AND RabbitMQServerConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="23"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="24"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="219"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="221"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestRabbitMQServerConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="213"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestRedisServerConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="214"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="10"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="11"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="12"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="10"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" AND RabbitMQServerConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="23"/>
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="24"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="219"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="221"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestRabbitMQServerConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="213"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestRedisServerConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="214"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="RabbitMQConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError <> "" )" Ordering="10"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="11"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="12"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="NewDialog" Argument="RedisServerConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="10"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="DoAction" Argument="TestRabbitMQConnectionMsgBox" Condition="AI_INSTALL AND ( RabbitMQServerConnectionError <> "" )" Ordering="10"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_18" Condition="AI_INSTALL AND ( RabbitMQServerConnectionError <> "" )" Ordering="9"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="12"/>
|
||||
<ROW Dialog_="RabbitMQConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="12"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Next" Event="DoAction" Argument="TestRedisServerConnection" Condition="AI_INSTALL" Ordering="2"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Next" Event="DoAction" Argument="TestRedisServerConnectionMsgBox" Condition="AI_INSTALL AND ( RedisServerConnectionError <> "" )" Ordering="4"/>
|
||||
<ROW Dialog_="RedisServerConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_17" Condition="AI_INSTALL AND ( RedisServerConnectionError <> "" )" Ordering="3"/>
|
||||
@ -901,7 +911,7 @@
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestPostgreSqlConnection" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestPostgreSqlConnectionMsgBox" Condition="AI_INSTALL AND ( PostgreSqlConnectionError <> "" )" Ordering="3"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_20" Condition="AI_INSTALL AND ( PostgreSqlConnectionError <> "" )" Ordering="2"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" )" Ordering="9"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" )" Ordering="9"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="1"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="2"/>
|
||||
<ROW Dialog_="CancelDlg" Control_="No" Event="EndDialog" Argument="Return" Condition="1" Ordering="100" MsiKey="CancelDlg#No#EndDialog#Return#1"/>
|
||||
@ -913,10 +923,10 @@
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="[PostgreSQLConnectionDlg_Cond]" Argument="1" Condition="((&DocumentServer = 3) AND NOT (!DocumentServer = 3))" Ordering="2"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="[PostgreSQLConnectionDlg_Cond]" Argument="{}" Condition="1" Ordering="1"/>
|
||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="PostgreSQLConnectionDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( SqlConnectionError = "" AND PostgreSqlConnectionError <> "" )" Ordering="8"/>
|
||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="PostgreSQLConnectionDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( PostgreSqlConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "False" )" Ordering="5"/>
|
||||
<ROW Dialog_="OpenSearchConnectionDlg" Control_="Back" Event="NewDialog" Argument="PostgreSQLConnectionDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( PostgreSqlConnectionError <> "" )" Ordering="6"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="OpenSearchConnectionDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "False" )" Ordering="5"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="SQLConnectionDlg" Condition="PostgreSQLConnectionDlg_Cond AND AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="3"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND ELK_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="6"/>
|
||||
<ROW Dialog_="PostgreSQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND PostgreSQLConnectionDlg_Cond AND ( SqlConnectionError = "" AND PostgreSqlConnectionError = "" AND OPENSEARCH_CONNECTION = "True" AND RabbitMQServerConnectionError = "" AND RedisServerConnectionError = "" )" Ordering="6"/>
|
||||
<ROW Dialog_="LicenseAgreementDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="LicenseAgreementDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
</COMPONENT>
|
||||
@ -930,12 +940,12 @@
|
||||
<ROW Action="AI_ConfigFailActions" Type="11265" Source="aicustact.dll" Target="ConfigureServFailActions" WithoutSeq="true"/>
|
||||
<ROW Action="AI_ConfigPermissions" Type="1" Source="userAccounts.dll" Target="OnConfigPermissions" AdditionalSeq="AI_DATA_SETTER_4"/>
|
||||
<ROW Action="AI_ConfigureChainer" Type="1" Source="Prereq.dll" Target="ConfigurePrereqLauncher"/>
|
||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[ELASTICSEARCH_MSG] \n[ELASTICSEARCH_SCHEME]://[ELASTICSEARCH_HOST]:[ELASTICSEARCH_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||
<ROW Action="AI_DATA_SETTER_1" Type="51" Source="CustomActionData" Target="HOST=[ELASTICSEARCH_HOST];PORT=[ELASTICSEARCH_PORT];OUTPUT=ELK_CONNECTION"/>
|
||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[OPENSEARCH_MSG] \n[OPENSEARCH_SCHEME]://[OPENSEARCH_HOST]:[OPENSEARCH_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||
<ROW Action="AI_DATA_SETTER_1" Type="51" Source="CustomActionData" Target="HOST=[OPENSEARCH_HOST];PORT=[OPENSEARCH_PORT];OUTPUT=OPENSEARCH_CONNECTION"/>
|
||||
<ROW Action="AI_DATA_SETTER_10" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
||||
<ROW Action="AI_DATA_SETTER_11" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
||||
<ROW Action="AI_DATA_SETTER_12" Type="51" Source="CustomActionData" Target="Elasticsearch"/>
|
||||
<ROW Action="AI_DATA_SETTER_13" Type="51" Source="StartElasticSearchService" Target="Elasticsearch"/>
|
||||
<ROW Action="AI_DATA_SETTER_12" Type="51" Source="CustomActionData" Target="OpenSearch"/>
|
||||
<ROW Action="AI_DATA_SETTER_13" Type="51" Source="StartOpenSearchService" Target="OpenSearch"/>
|
||||
<ROW Action="AI_DATA_SETTER_14" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_15" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_16" Type="51" Source="StopRedisService" Target="Redis"/>
|
||||
@ -948,7 +958,13 @@
|
||||
<ROW Action="AI_DATA_SETTER_22" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_23" Type="51" Source="CustomActionData" Target="OpenResty"/>
|
||||
<ROW Action="AI_DATA_SETTER_24" Type="51" Source="CustomActionData" Target="OpenResty"/>
|
||||
<ROW Action="AI_DATA_SETTER_25" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_26" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_27" Type="51" Source="StartOpenSearchDashboardsService" Target="OpenSearchDashboards"/>
|
||||
<ROW Action="AI_DATA_SETTER_28" Type="51" Source="CustomActionData" Target="OpenSearchDashboards"/>
|
||||
<ROW Action="AI_DATA_SETTER_29" Type="51" Source="CustomActionData" Target="Fluent-Bit"/>
|
||||
<ROW Action="AI_DATA_SETTER_3" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_30" Type="51" Source="CustomActionData" Target="Fluent-Bit"/>
|
||||
<ROW Action="AI_DATA_SETTER_4" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DATA_SETTER_5" Type="51" Source="CustomActionData" Target="[SqlConnectionError] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||
<ROW Action="AI_DATA_SETTER_6" Type="51" Source="CustomActionData" Target="[APPDIR_FORWARD_SLASH]"/>
|
||||
@ -998,6 +1014,12 @@
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="AI_SetPermissions" Type="11265" Source="userAccounts.dll" Target="OnSetPermissions" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SqlConfig" Type="9217" Source="sql.dll" Target="OnSqlConfig" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SqlInstall" Type="1" Source="sql.dll" Target="OnSqlInstall" AdditionalSeq="AI_DATA_SETTER_25"/>
|
||||
<ROW Action="AI_SqlMaint" Type="9217" Source="sql.dll" Target="OnSqlMaint" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SqlRemove" Type="9217" Source="sql.dll" Target="OnSqlRemove" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SqlRollback" Type="9473" Source="sql.dll" Target="OnSqlRollback" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SqlUninstall" Type="1" Source="sql.dll" Target="OnSqlUninstall" AdditionalSeq="AI_DATA_SETTER_26"/>
|
||||
<ROW Action="AI_TxtUpdaterCommit" Type="11777" Source="TxtUpdater.dll" Target="OnTxtUpdaterCommit" WithoutSeq="true"/>
|
||||
<ROW Action="AI_TxtUpdaterConfig" Type="11265" Source="TxtUpdater.dll" Target="OnTxtUpdaterConfig" WithoutSeq="true"/>
|
||||
<ROW Action="AI_TxtUpdaterInstall" Type="1" Source="TxtUpdater.dll" Target="OnTxtUpdaterInstall"/>
|
||||
@ -1010,16 +1032,17 @@
|
||||
<ROW Action="AI_XmlRollback" Type="11521" Source="xmlCfg.dll" Target="OnXmlRollback" WithoutSeq="true"/>
|
||||
<ROW Action="AI_XmlUninstall" Type="1" Source="xmlCfg.dll" Target="OnXmlUninstall" AdditionalSeq="AI_DATA_SETTER_15"/>
|
||||
<ROW Action="DetectMySQLService" Type="1" Source="aicustact.dll" Target="DetectProcess" Options="3" AdditionalSeq="AI_DATA_SETTER_9"/>
|
||||
<ROW Action="ElasticSearchInstallPlugin" Type="1030" Source="utils.vbs" Target="ElasticSearchInstallPlugin"/>
|
||||
<ROW Action="ElasticSearchSetup" Type="6" Source="utils.vbs" Target="ElasticSearchSetup"/>
|
||||
<ROW Action="MoveNginxConfigs" Type="4102" Source="utils.vbs" Target="MoveNginxConfigs"/>
|
||||
<ROW Action="MoveConfigs" Type="4102" Source="utils.vbs" Target="MoveConfigs"/>
|
||||
<ROW Action="MySQLConfigure" Type="262" Source="utils.vbs" Target="MySQLConfigure"/>
|
||||
<ROW Action="OpenCancelUrl" Type="194" Source="viewer.exe" Target="http://www.onlyoffice.com/install-canceled.aspx" WithoutSeq="true" Options="1"/>
|
||||
<ROW Action="OpenSearchInstallPlugin" Type="1030" Source="utils.vbs" Target="OpenSearchInstallPlugin"/>
|
||||
<ROW Action="OpenSearchSetup" Type="6" Source="utils.vbs" Target="OpenSearchSetup"/>
|
||||
<ROW Action="PostgreSQLConfigure" Type="4102" Source="utils.vbs" Target="PostgreSqlConfigure"/>
|
||||
<ROW Action="RedisSearchSetup" Type="6" Source="utils.vbs" Target="RedisSetup"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[ProgramFilesFolder][INSTALL_ROOT_FOLDER_NAME]\DocSpace#ExeBuild:[ProgramFilesFolder][INSTALL_ROOT_FOLDER_NAME]\DocSpace"/>
|
||||
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]" MultiBuildTarget="DefaultBuild:[ProgramMenuFolder][INSTALL_ROOT_FOLDER_NAME]\DocSpace#ExeBuild:[ProgramMenuFolder][INSTALL_ROOT_FOLDER_NAME]\DocSpace"/>
|
||||
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
||||
<ROW Action="SetDashboardsPwd" Type="6" Source="utils.vbs" Target="SetDashboardsPwd"/>
|
||||
<ROW Action="SetDocumentServerJWTSecretProp" Type="6" Source="utils.vbs" Target="SetDocumentServerJWTSecretProp"/>
|
||||
<ROW Action="SetMACHINEKEY" Type="262" Source="utils.vbs" Target="SetMACHINEKEY"/>
|
||||
<ROW Action="SetSERVERNAME" Type="51" Source="SERVER_NAME" Target="[ComputerName]"/>
|
||||
@ -1028,17 +1051,21 @@
|
||||
<ROW Action="Set_DS_JWT_HEADER" Type="51" Source="DOCUMENT_SERVER_JWT_HEADER" Target="[JWT_HEADER]"/>
|
||||
<ROW Action="Set_DS_JWT_SECRET" Type="51" Source="DOCUMENT_SERVER_JWT_SECRET" Target="[JWT_SECRET]"/>
|
||||
<ROW Action="Set_LICENSE_PATH" Type="51" Source="LICENSE_PATH" Target="[APPDIR]\Data\license.lic"/>
|
||||
<ROW Action="StartElasticSearchService" Type="3073" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_13"/>
|
||||
<ROW Action="StartFluentBitService" Type="1" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_30"/>
|
||||
<ROW Action="StartMigrationRunner" Type="3074" Source="viewer.exe" Target="/EnforcedRunAsAdmin /RunAsAdmin /HideWindow /dir "[APPDIR]services\ASC.Migration.Runner\service" "[APPDIR]services\ASC.Migration.Runner\service\ASC.Migration.Runner.exe" standalone=true" Options="1"/>
|
||||
<ROW Action="StartMySQLService" Type="1" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_11"/>
|
||||
<ROW Action="StartOpenResty" Type="1" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_24"/>
|
||||
<ROW Action="StartOpenSearchDashboardsService" Type="3073" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_27"/>
|
||||
<ROW Action="StartOpenSearchService" Type="3073" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_13"/>
|
||||
<ROW Action="StartService" Type="3073" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_19"/>
|
||||
<ROW Action="StopElasticSearchService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_12"/>
|
||||
<ROW Action="StopFluentBitService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_29"/>
|
||||
<ROW Action="StopMySQLService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_10"/>
|
||||
<ROW Action="StopOpenResty" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_23"/>
|
||||
<ROW Action="StopOpenSearchDashboardsService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_28"/>
|
||||
<ROW Action="StopOpenSearchService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_12"/>
|
||||
<ROW Action="StopRedisService" Type="3073" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_16"/>
|
||||
<ROW Action="TestElasticsearchConnection" Type="1" Source="Utils.CA.dll" Target="CheckTCPAvailability" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_1"/>
|
||||
<ROW Action="TestElasticsearchConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER"/>
|
||||
<ROW Action="TestOpenSearchConnection" Type="1" Source="Utils.CA.dll" Target="CheckTCPAvailability" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_1"/>
|
||||
<ROW Action="TestOpenSearchConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER"/>
|
||||
<ROW Action="TestPostgreSqlConnection" Type="4102" Source="utils.vbs" Target="TestPostgreSqlConnection" WithoutSeq="true"/>
|
||||
<ROW Action="TestPostgreSqlConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_20"/>
|
||||
<ROW Action="TestRabbitMQConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_18"/>
|
||||
@ -1049,7 +1076,7 @@
|
||||
<ROW Action="TestSqlConnection" Type="6" Source="utils.vbs" Target="TestSqlConnection" WithoutSeq="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
|
||||
<ROW Dialog="ELKConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||
<ROW Dialog="OpenSearchConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||
<ROW Dialog="PostgreSQLConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||
<ROW Dialog="PrereqLicenseAgreementDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel" TitleLocId="-"/>
|
||||
<ROW Dialog="RabbitMQConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||
@ -1182,16 +1209,16 @@
|
||||
<ROW Action="AI_DATA_SETTER_8" Condition="(REMOVE)" Sequence="3103"/>
|
||||
<ROW Action="StopMySQLService" Condition="( NOT Installed AND NOT OLDPRODUCTS ) AND ( AI_PROCESS_STATE <> "Not Found" )" Sequence="1611"/>
|
||||
<ROW Action="AI_DATA_SETTER_10" Condition="( NOT Installed AND NOT OLDPRODUCTS ) AND ( AI_PROCESS_STATE <> "Not Found" )" Sequence="1610"/>
|
||||
<ROW Action="Set_APPDIR_FORWARD_SLASH" Condition="( NOT Installed )" Sequence="1626"/>
|
||||
<ROW Action="AI_DATA_SETTER_6" Condition="( NOT Installed )" Sequence="1621"/>
|
||||
<ROW Action="Set_APPDIR_FORWARD_SLASH" Condition="( NOT Installed )" Sequence="1632"/>
|
||||
<ROW Action="AI_DATA_SETTER_6" Condition="( NOT Installed )" Sequence="1627"/>
|
||||
<ROW Action="DetectMySQLService" Condition="( ( NOT Installed AND NOT OLDPRODUCTS ) OR ( Installed AND REMOVE <> "ALL" AND AI_INSTALL_MODE <> "Remove" ) )" Sequence="1609"/>
|
||||
<ROW Action="AI_DATA_SETTER_9" Condition="( ( NOT Installed AND NOT OLDPRODUCTS ) OR ( Installed AND REMOVE <> "ALL" AND AI_INSTALL_MODE <> "Remove" ) )" Sequence="1608"/>
|
||||
<ROW Action="ElasticSearchSetup" Condition="( NOT Installed )" Sequence="1617"/>
|
||||
<ROW Action="StopElasticSearchService" Condition="( NOT Installed )" Sequence="1615"/>
|
||||
<ROW Action="AI_DATA_SETTER_12" Condition="( NOT Installed )" Sequence="1614"/>
|
||||
<ROW Action="ElasticSearchInstallPlugin" Condition="( NOT Installed )" Sequence="1616"/>
|
||||
<ROW Action="StartElasticSearchService" Condition="( NOT Installed )" Sequence="1619"/>
|
||||
<ROW Action="AI_DATA_SETTER_13" Condition="( NOT Installed )" Sequence="1618"/>
|
||||
<ROW Action="OpenSearchSetup" Condition="( NOT Installed )" Sequence="1621"/>
|
||||
<ROW Action="StopOpenSearchService" Condition="( NOT Installed )" Sequence="1617"/>
|
||||
<ROW Action="AI_DATA_SETTER_12" Condition="( NOT Installed )" Sequence="1616"/>
|
||||
<ROW Action="OpenSearchInstallPlugin" Condition="( NOT Installed )" Sequence="1620"/>
|
||||
<ROW Action="StartOpenSearchService" Condition="( NOT Installed )" Sequence="1623"/>
|
||||
<ROW Action="AI_DATA_SETTER_13" Condition="( NOT Installed )" Sequence="1622"/>
|
||||
<ROW Action="AI_GetArpIconPath" Sequence="1401"/>
|
||||
<ROW Action="StartMySQLService" Condition="( NOT Installed AND NOT OLDPRODUCTS ) AND ( AI_PROCESS_STATE <> "Not Found" )" Sequence="1613"/>
|
||||
<ROW Action="AI_DATA_SETTER_11" Condition="( NOT Installed AND NOT OLDPRODUCTS ) AND ( AI_PROCESS_STATE <> "Not Found" )" Sequence="1612"/>
|
||||
@ -1208,24 +1235,36 @@
|
||||
<ROW Action="AI_DATA_SETTER_15" Condition="(REMOVE)" Sequence="3101"/>
|
||||
<ROW Action="AI_ConfigPermissions" Condition="REMOVE <> "ALL"" Sequence="5852"/>
|
||||
<ROW Action="AI_DATA_SETTER_4" Condition="REMOVE <> "ALL"" Sequence="5851"/>
|
||||
<ROW Action="MsiUnpublishAssemblies" Condition="Installed" Sequence="1628" SeqType="0" MsiKey="MsiUnpublishAssemblies"/>
|
||||
<ROW Action="RedisSearchSetup" Condition="( NOT Installed )" Sequence="1620"/>
|
||||
<ROW Action="StopRedisService" Condition="( NOT Installed )" Sequence="1623"/>
|
||||
<ROW Action="AI_DATA_SETTER_16" Condition="( NOT Installed )" Sequence="1622"/>
|
||||
<ROW Action="StartService" Condition="( NOT Installed )" Sequence="1625"/>
|
||||
<ROW Action="AI_DATA_SETTER_19" Condition="( NOT Installed )" Sequence="1624"/>
|
||||
<ROW Action="MsiUnpublishAssemblies" Condition="Installed" Sequence="1635" SeqType="0" MsiKey="MsiUnpublishAssemblies"/>
|
||||
<ROW Action="RedisSearchSetup" Condition="( NOT Installed )" Sequence="1626"/>
|
||||
<ROW Action="StopRedisService" Condition="( NOT Installed )" Sequence="1629"/>
|
||||
<ROW Action="AI_DATA_SETTER_16" Condition="( NOT Installed )" Sequence="1628"/>
|
||||
<ROW Action="StartService" Condition="( NOT Installed )" Sequence="1631"/>
|
||||
<ROW Action="AI_DATA_SETTER_19" Condition="( NOT Installed )" Sequence="1630"/>
|
||||
<ROW Action="PostgreSQLConfigure" Condition="( NOT Installed )" Sequence="1607"/>
|
||||
<ROW Action="AI_FwInstall" Condition="(VersionNT >= 501) AND (REMOVE <> "ALL")" Sequence="5802"/>
|
||||
<ROW Action="AI_DATA_SETTER_21" Condition="(VersionNT >= 501) AND (REMOVE <> "ALL")" Sequence="5801"/>
|
||||
<ROW Action="AI_FwUninstall" Condition="(VersionNT >= 501) AND (REMOVE="ALL")" Sequence="1702"/>
|
||||
<ROW Action="AI_DATA_SETTER_22" Condition="(VersionNT >= 501) AND (REMOVE="ALL")" Sequence="1701"/>
|
||||
<ROW Action="SetSERVERNAME" Condition="( NOT Installed )" Sequence="1604"/>
|
||||
<ROW Action="MoveNginxConfigs" Condition="( NOT Installed )" Sequence="6601"/>
|
||||
<ROW Action="StopOpenResty" Condition="( NOT Installed )" Sequence="6603"/>
|
||||
<ROW Action="AI_DATA_SETTER_23" Condition="( NOT Installed )" Sequence="6602"/>
|
||||
<ROW Action="StartOpenResty" Condition="( NOT Installed )" Sequence="6605"/>
|
||||
<ROW Action="AI_DATA_SETTER_24" Condition="( NOT Installed )" Sequence="6604"/>
|
||||
<ROW Action="MoveConfigs" Condition="( NOT Installed )" Sequence="6601"/>
|
||||
<ROW Action="StopOpenResty" Condition="( NOT Installed )" Sequence="6605"/>
|
||||
<ROW Action="AI_DATA_SETTER_23" Condition="( NOT Installed )" Sequence="6604"/>
|
||||
<ROW Action="StartOpenResty" Condition="( NOT Installed )" Sequence="6607"/>
|
||||
<ROW Action="AI_DATA_SETTER_24" Condition="( NOT Installed )" Sequence="6606"/>
|
||||
<ROW Action="Set_LICENSE_PATH" Condition="( ( NOT Installed ) OR ( Installed AND REMOVE <> "ALL" AND AI_INSTALL_MODE <> "Remove" ) OR ( Installed AND ( REMOVE = "ALL" OR AI_INSTALL_MODE = "Remove" ) AND UPGRADINGPRODUCTCODE ) )" Sequence="201"/>
|
||||
<ROW Action="AI_SqlInstall" Condition="(VersionNT >= 500) AND (REMOVE <> "ALL")" Sequence="5502"/>
|
||||
<ROW Action="AI_DATA_SETTER_25" Condition="(VersionNT >= 500) AND (REMOVE <> "ALL")" Sequence="5501"/>
|
||||
<ROW Action="AI_SqlUninstall" Condition="(VersionNT >= 500) AND (REMOVE="ALL")" Sequence="1704"/>
|
||||
<ROW Action="AI_DATA_SETTER_26" Condition="(VersionNT >= 500) AND (REMOVE="ALL")" Sequence="1703"/>
|
||||
<ROW Action="StopOpenSearchDashboardsService" Condition="( NOT Installed )" Sequence="1619"/>
|
||||
<ROW Action="AI_DATA_SETTER_28" Condition="( NOT Installed )" Sequence="1618"/>
|
||||
<ROW Action="StopFluentBitService" Condition="( NOT Installed )" Sequence="1615"/>
|
||||
<ROW Action="AI_DATA_SETTER_29" Condition="( NOT Installed )" Sequence="1614"/>
|
||||
<ROW Action="StartFluentBitService" Condition="( NOT Installed )" Sequence="6603"/>
|
||||
<ROW Action="AI_DATA_SETTER_30" Condition="( NOT Installed )" Sequence="6602"/>
|
||||
<ROW Action="StartOpenSearchDashboardsService" Condition="( NOT Installed )" Sequence="1625"/>
|
||||
<ROW Action="AI_DATA_SETTER_27" Condition="( NOT Installed )" Sequence="1624"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
@ -1251,6 +1290,7 @@
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||
<ROW Action="AI_RestartElevated" Sequence="51" Builds="ExeBuild"/>
|
||||
<ROW Action="SetMACHINEKEY" Condition="( ( NOT Installed ) OR ( Installed AND REMOVE <> "ALL" AND AI_INSTALL_MODE <> "Remove" ) ) AND ( MACHINE_KEY = " " )" Sequence="1107"/>
|
||||
<ROW Action="SetDashboardsPwd" Condition="( ( NOT Installed ) OR ( Installed AND REMOVE <> "ALL" AND AI_INSTALL_MODE <> "Remove" ) ) AND ( DASHBOARDS_PWD = " " )" Sequence="1108"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 600) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 600) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 1100) OR (MsiNTProductType <> 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild;ExeBuild"/>
|
||||
@ -1272,7 +1312,7 @@
|
||||
<ROW Signature_="AI_EXE_PATH_LM" Root="2" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="REDIS_PWD" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_1" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="REDIS_PORT" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_10" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_HOST" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_10" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_HOST" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_11" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_USER" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_12" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_PWD" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_13" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_PORT" Type="2"/>
|
||||
@ -1289,13 +1329,14 @@
|
||||
<ROW Signature_="AppSearchSign_23" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DOCUMENT_SERVER_JWT_SECRET" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_24" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DOCUMENT_SERVER_PORT" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_25" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="MACHINE_KEY" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_26" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="DASHBOARDS_PWD" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_3" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_USER" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_4" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_PWD" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_5" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_PORT" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_6" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_NAME" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_7" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_HOST" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_8" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_SCHEME" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_9" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_PORT" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_8" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_SCHEME" Type="2"/>
|
||||
<ROW Signature_="AppSearchSign_9" Root="2" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_PORT" Type="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||
<ROW Registry="AI_ExePath" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Value="[AI_SETUPEXEPATH]" Component_="AI_ExePath"/>
|
||||
@ -1309,6 +1350,7 @@
|
||||
<ROW Registry="Comments" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Comments" Value="[ARPCOMMENTS]" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="Contact" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Contact" Value="[ARPCONTACT]" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="CurrentVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion" Name="\"/>
|
||||
<ROW Registry="DASHBOARDS_PWD" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="DASHBOARDS_PWD" Value="[DASHBOARDS_PWD]" Component_="APPDIR"/>
|
||||
<ROW Registry="DB_HOST" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_HOST" Value="[DB_HOST]" Component_="APPDIR"/>
|
||||
<ROW Registry="DB_NAME" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_NAME" Value="[DB_NAME]" Component_="APPDIR"/>
|
||||
<ROW Registry="DB_PORT" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="DB_PORT" Value="[DB_PORT]" Component_="APPDIR"/>
|
||||
@ -1327,9 +1369,6 @@
|
||||
<ROW Registry="HelpTelephone" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="HelpTelephone" Value="[ARPHELPTELEPHONE]" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="InstallLocation" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="InstallLocation" Value="[APPDIR]" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="DOCUMENT_SERVER_PORT" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="DOCUMENT_SERVER_PORT" Value="[DOCUMENT_SERVER_PORT]" Component_="APPDIR"/>
|
||||
<ROW Registry="ELASTICSEARCH_HOST" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_HOST" Value="[ELASTICSEARCH_HOST]" Component_="APPDIR"/>
|
||||
<ROW Registry="ELASTICSEARCH_PORT" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_PORT" Value="[ELASTICSEARCH_PORT]" Component_="APPDIR"/>
|
||||
<ROW Registry="ELASTICSEARCH_SCHEME" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="ELASTICSEARCH_SCHEME" Value="[ELASTICSEARCH_SCHEME]" Component_="APPDIR"/>
|
||||
<ROW Registry="LZMA" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA" Name="\"/>
|
||||
<ROW Registry="MACHINE_KEY" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="MACHINE_KEY" Value="[MACHINE_KEY]" Component_="MACHINE_KEY"/>
|
||||
<ROW Registry="Manufacturer_2" Root="2" Key="Software\[Manufacturer]" Name="\"/>
|
||||
@ -1337,6 +1376,9 @@
|
||||
<ROW Registry="ModifyPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="ModifyPath" Value="[AI_UNINSTALLER] /i [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||
<ROW Registry="NoModify" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoModify" Value="#1" Component_="AI_DisableModify" VirtualValue="#"/>
|
||||
<ROW Registry="NoRepair" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoRepair" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||
<ROW Registry="OPENSEARCH_HOST" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_HOST" Value="[OPENSEARCH_HOST]" Component_="APPDIR"/>
|
||||
<ROW Registry="OPENSEARCH_PORT" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_PORT" Value="[OPENSEARCH_PORT]" Component_="APPDIR"/>
|
||||
<ROW Registry="OPENSEARCH_SCHEME" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="OPENSEARCH_SCHEME" Value="[OPENSEARCH_SCHEME]" Component_="APPDIR"/>
|
||||
<ROW Registry="PS_DB_HOST" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_HOST" Value="[PS_DB_HOST]" Component_="APPDIR"/>
|
||||
<ROW Registry="PS_DB_NAME" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_NAME" Value="[PS_DB_NAME]" Component_="APPDIR"/>
|
||||
<ROW Registry="PS_DB_PORT" Root="-1" Key="Software\[Manufacturer]\[ShortProductName]" Name="PS_DB_PORT" Value="[PS_DB_PORT]" Component_="APPDIR"/>
|
||||
@ -1454,36 +1496,36 @@
|
||||
<ROW PrereqKey="Certbot" DisplayName="Certbot v2.6.0" VersionMin="2.6.0" SetupFileUrl="https://github.com/certbot/certbot/releases/download/v2.6.0/certbot-beta-installer-win_amd64_signed.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="yxm" TargetName="Certbot" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="DocumentServer" DisplayName="DocumentServer" SetupFileUrl="onlyoffice-documentserver.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LOG" BasicUiComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LOG" NoUiComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LOG" Options="fi=" TargetName="onlyoffice-documentserver.exe" Builds="DefaultBuild" Feature="DocumentServer" RepairComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LOG"/>
|
||||
<ROW PrereqKey="DocumentServer.EE" DisplayName="DocumentServer-EE" SetupFileUrl="onlyoffice-documentserver-ee.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LICENSE_PATH="[APPDIR]Data\license.lic" /LOG" BasicUiComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LICENSE_PATH="[APPDIR]Data\license.lic" /LOG" NoUiComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LICENSE_PATH="[APPDIR]Data\license.lic" /LOG" Options="fi=" TargetName="onlyoffice-documentserver-ee.exe" Builds="ExeBuild" Feature="DocumentServer.EE" RepairComLine="/VERYSILENT /norestart /DIR="[APPDIR]..\DocumentServer" /DS_PORT="[DOCUMENT_SERVER_PORT]" /JWT_ENABLED="[DOCUMENT_SERVER_JWT_ENABLED]" /JWT_SECRET="[DOCUMENT_SERVER_JWT_SECRET]" /JWT_HEADER="[DOCUMENT_SERVER_JWT_HEADER]" /DB_HOST="[PS_DB_HOST]" /DB_USER="[PS_DB_USER]" /DB_PWD="[PS_DB_PWD]" /DB_NAME="[PS_DB_NAME]" /LICENSE_PATH="[APPDIR]Data\license.lic" /LOG"/>
|
||||
<ROW PrereqKey="EA5B60A5CAD4115A8386D017CC889B9" DisplayName="ASP.NET Core Runtime 7.0.3 x64" VersionMin="7.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/d37efccc-2ba1-4fc9-a1ef-a8e1e77fb681/b9a20fc29ff05f18d81620ec88ade699/aspnetcore-runtime-7.0.3-win-x64.exe" Location="1" ExactSize="9562088" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="a87c53a62579d43c6e20683ad686c991" TargetName="ASP.NET Core 7.0" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="Elasticsearch7.16.3" DisplayName="Elasticsearch v7.16.3 x64" VersionMin="7.16.3" SetupFileUrl="redist\elasticsearch-7.16.3.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="Elasticsearch 7.16.3\elasticsearch-7.16.3.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="EA5B60A5CAD4115A8386D017CC889B9" DisplayName="ASP.NET Core Runtime 8.0.2 x64" VersionMin="8.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/34d3e426-9f3c-45a6-8496-f21b3adbbf5f/475aec17378cc8ab0fcfe535e84698f9/aspnetcore-runtime-8.0.2-win-x64.exe" Location="1" ExactSize="10416064" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="6928ea97bdbb2dbfd7da1d3ae9eaaf9f" TargetName="ASP.NET Core 8.0" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="ErlangOTP" DisplayName="Erlang v26.0.2 x64" VersionMin="26.0.2" SetupFileUrl="redist\otp_win64_26.0.2.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="ym" TargetName="ErlangOTP\otp_win64_26.0.2.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="Erlangv26.0x64" DisplayName="Erlang v26.0.2 x64" VersionMin="26.0.2" SetupFileUrl="https://github.com/erlang/otp/releases/download/OTP-26.0.2/otp_win64_26.0.2.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="ym" TargetName="Erlang v26.0 x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="F3520F64DA5998338D97129FAD2" DisplayName=".NET Runtime 7.0.3 x64" VersionMin="7.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/c69813b7-2ece-4c2e-8c45-e33006985e18/61cc8fe4693a662b2da55ad932a46446/dotnet-runtime-7.0.3-win-x64.exe" Location="1" ExactSize="28223424" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="c9d6796b57a1630d4f004302262c241e" TargetName=".NET 7.0" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="F3520F64DA5998338D97129FAD2" DisplayName=".NET Runtime 8.0.2 x64" VersionMin="8.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/a4bc7333-6e30-4e2d-b300-0b4f23537e5b/4b81af6d46a02fba5d9ce030af438c67/dotnet-runtime-8.0.2-win-x64.exe" Location="1" ExactSize="28409632" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="511beb27f4390b07c4c93d6d27fe9446" TargetName=".NET 8.0" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="FFmpegEssentials" DisplayName="FFmpeg v6.0 x64" VersionMin="6.0.0" SetupFileUrl="redist\FFmpeg_Essentials.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="FFmpeg Essentials\FFmpeg_Essentials.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="FFmpegx64" DisplayName="FFmpeg v6.0 x64" VersionMin="6.0.0" SetupFileUrl="https://github.com/icedterminal/ffmpeg-installer/releases/download/6.0.0.20230306/FFmpeg_Essentials.msi" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="FFmpeg x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="Microsoft.NETFrame" DisplayName=".NET Framework 4.8" VersionMin="4.8" SetupFileUrl="redist\.net_framework_4.8.exe" Location="0" ExactSize="0" Operator="1" ComLine="/q /promptrestart" BasicUiComLine="/q /promptrestart" NoUiComLine="/q /promptrestart" Options="ym" TargetName="Microsoft .NET Framework 4.8\.net_framework_4.8.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="Microsoft.NETRunti" DisplayName=".NET Runtime - 7.0.4" VersionMin="7.0" SetupFileUrl="redist\dotnet-runtime-7.0.4-win-x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" TargetName="Microsoft .NET Runtime - 7.0.4 (x64)\dotnet-runtime-7.0.4-win-x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MicrosoftASP.NETCo" DisplayName="ASP.NET Core Runtime 7.0.4 x64" VersionMin="7.0" SetupFileUrl="redist\aspnetcore-runtime-7.0.4-win-x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="yxm" TargetName="Microsoft ASP.NET Core 7.0.4 - Shared Framework (x64)\aspnetcore-runtime-7.0.4-win-x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="Microsoft.NETRunti" DisplayName=".NET Runtime - 8.0.2" VersionMin="8.0" SetupFileUrl="redist\dotnet-runtime-8.0.2-win-x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" TargetName="Microsoft .NET Runtime - 8.0.2 (x64)\dotnet-runtime-8.0.2-win-x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MicrosoftASP.NETCo" DisplayName="ASP.NET Core Runtime 8.0.2 x64" VersionMin="8.0" SetupFileUrl="redist\aspnetcore-runtime-8.0.2-win-x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="yxm" TargetName="Microsoft ASP.NET Core 8.0.2 - Shared Framework (x64)\aspnetcore-runtime-8.0.2-win-x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MicrosoftVisualC" DisplayName="Visual C++ Redistributable for Visual Studio 2013 Update 5 x64" VersionMin="12.0" SetupFileUrl="redist\vcredist_2013u5_x64.exe" Location="0" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="Microsoft Visual C++ 2013 Redistributable (x64) - 12.0.40649\vcredist_2013u5_x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MicrosoftVisualC_1" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x86" VersionMin="14.26" SetupFileUrl="redist\VC_redist.x86.exe" Location="0" ExactSize="0" Operator="0" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" TargetName="Microsoft Visual C++ 2015-2019 Redistributable (x86) - 14.26.28720\VC_redist.x86.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MicrosoftVisualC_2" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x64" VersionMin="14.26" SetupFileUrl="redist\VC_redist.x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 x64, Windows Server 2008 R2 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="yxm" TargetName="Microsoft Visual C++ 2015-2019 Redistributable (x64) - 14.26.28720\VC_redist.x64.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MySQLConnectorODBC" DisplayName="MySQL Connector/ODBC 8.0.33 x86" VersionMin="8.0.33" SetupFileUrl="redist\mysql-connector-odbc-8.0.33-win32.msi" Location="0" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="MySQL ConnectorODBC 8.0 (32-bit)\mysql-connector-odbc-8.0.33-win32.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MySQLInstallerCo" DisplayName="MySQL Installer Community 8.0.33 x86" VersionMin="1.6.6.0" SetupFileUrl="redist\mysql-installer-community-8.0.33.0.msi" Location="0" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="MySQL Installer - Community\mysql-installer-community-8.0.33.0.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="MySQLInstallerRunn" DisplayName="MySQL Installer Community 8.0.33 x86 Runner" SetupFileUrl="MySQL Installer Runner.exe" Location="0" ExactSize="0" Operator="1" ComLine="/VERYSILENT /DB_PWD="root" /MYSQL_VERSION="8.0.33"" BasicUiComLine="/VERYSILENT /DB_PWD="root" /MYSQL_VERSION="8.0.33"" NoUiComLine="/VERYSILENT /DB_PWD="root" /MYSQL_VERSION="8.0.33"" Options="y" TargetName="MySQL Installer Runner \MySQL Installer Runner.exe" ParentPrereq="RequiredApplication_2"/>
|
||||
<ROW PrereqKey="Node.js" DisplayName="Node.js 18.16.1" VersionMin="18.16.0" SetupFileUrl="redist\node-v18.16.1-x64.msi" Location="0" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="Node.js\node-v18.16.1-x64.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="Node.js" DisplayName="Node.js 20.11.1" VersionMin="20.11.1" SetupFileUrl="redist\node-v20.11.1-x64.msi" Location="0" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="Node.js\node-v20.11.1-x64.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="OpenResty" DisplayName="OpenResty v1.21.4" VersionMin="1.21.4.2" SetupFileUrl="publish\OpenResty.msi" Location="0" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="yxm" TargetName="OpenResty\OpenResty.msi"/>
|
||||
<ROW PrereqKey="OpenSearch2.11.1" DisplayName="OpenSearch v2.11.1 x64" VersionMin="2.11.1" SetupFileUrl="publish\OpenSearch-2.11.1.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="OpenSearch 2.11.1\OpenSearch-2.11.1.msi"/>
|
||||
<ROW PrereqKey="OpenSearchStack" DisplayName="OpenSearchStack v1.0.0 x64" VersionMin="1.0.0" SetupFileUrl="publish\OpenSearchStack.msi" Location="0" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="OpenSearchStack\OpenSearchStack.msi"/>
|
||||
<ROW PrereqKey="PostgreSQL_ODBC" DisplayName="PostgreSQL ODBC Driver v15.0 x64" SetupFileUrl="psqlodbc_15_x64.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="myx" TargetName="psqlodbc_x64.msi"/>
|
||||
<ROW PrereqKey="PostgresSQL" DisplayName="PostgreSQL v14.0 x64" VersionMin="14.0" SetupFileUrl="postgresql-14.0-1-windows-x64.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="--unattendedmodeui none --install_runtimes 0 --mode unattended --superaccount "postgres" --superpassword "postgres"" BasicUiComLine="--unattendedmodeui none --install_runtimes 0 --mode unattended --superaccount "postgres" --superpassword "postgres"" NoUiComLine="--unattendedmodeui none --install_runtimes 0 --mode unattended --superaccount "postgres" --superpassword "postgres"" Options="xy" TargetName="postgresql-14.0-1-windows-x64.exe"/>
|
||||
<ROW PrereqKey="RabbitMQServer" DisplayName="RabbitMQ v3.12.1 x64" VersionMin="3.12" SetupFileUrl="redist\rabbitmq-server-3.12.1.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="yx" TargetName="RabbitMQ Server\rabbitmq-server-3.12.1.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="RedisonWindows" DisplayName="Redis 5.0.10 x64" VersionMin="5.0" SetupFileUrl="redist\Redis-x64-5.0.10.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" BasicUiComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" NoUiComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" Options="yx" TargetName="Redis on Windows\Redis-x64-5.0.10.msi" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication" DisplayName="MySQL Connector/ODBC 8.0.33 x86" VersionMin="8.0.33" SetupFileUrl="https://cdn.mysql.com/archives/mysql-connector-odbc-8.0/mysql-connector-odbc-8.0.33-win32.msi" Location="1" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="MySQL Connector ODBC 8.0.33 x86" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_1" DisplayName="Node.js 18.16.1" VersionMin="18.16.0" SetupFileUrl="https://nodejs.org/dist/v18.16.1/node-v18.16.1-x64.msi" Location="1" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="my" TargetName="Node.js v18.16.1 x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_1" DisplayName="Node.js 20.11.1" VersionMin="20.11.1" SetupFileUrl="https://nodejs.org/dist/v20.11.1/node-v20.11.1-x64.msi" Location="1" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="my" TargetName="Node.js v20.11.1 x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_2" DisplayName="MySQL Installer Community 8.0.33 x86" VersionMin="1.6.6.0" SetupFileUrl="https://cdn.mysql.com/archives/mysql-installer/mysql-installer-community-8.0.33.0.msi" Location="1" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="MySQL Installer Community 8.0.33 x86" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_3" DisplayName="Certbot v2.6.0" VersionMin="2.6.0" SetupFileUrl="redist\certbot-2.6.0.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="yxm" TargetName="Required Application\certbot-2.6.0.exe" Builds="ExeBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_4" DisplayName="Elasticsearch v7.16.3 x64" VersionMin="7.16.3" SetupFileUrl="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.3.msi" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="y" TargetName="Elasticsearch v7.16.3 x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_5" DisplayName="RabbitMQ v3.12.1 x64" VersionMin="3.12" SetupFileUrl="https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.1/rabbitmq-server-3.12.1.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/S" BasicUiComLine="/S" NoUiComLine="/S" Options="yx" TargetName="RabbitMQ v3.12.1 x64" Builds="DefaultBuild"/>
|
||||
<ROW PrereqKey="RequiredApplication_6" DisplayName="Redis 5.0.10 x64" VersionMin="5.0" SetupFileUrl="http://download.onlyoffice.com/install/windows/redist/Redis-x64-5.0.10.msi" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" BasicUiComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" NoUiComLine="/quiet ADD_INSTALLFOLDER_TO_PATH=1" Options="yx" TargetName="Redis 5.0.10 x64" Builds="DefaultBuild"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="B96F93FA27E74B02866727AAE83982D0 Microsoft.NETFrame F3520F64DA5998338D97129FAD2 Microsoft.NETRunti EA5B60A5CAD4115A8386D017CC889B9 MicrosoftASP.NETCo CA62D813A4E74FA2AAE86A7D7B7B1493 MicrosoftVisualC A918597FE054CCCB65ABDBA0AD8F63C MicrosoftVisualC_1 C4FE6FD5B7C4D07B3A313E754A9A6A8 MicrosoftVisualC_2 RequiredApplication MySQLConnectorODBC RequiredApplication_2 MySQLInstallerCo MySQLInstallerRunn RequiredApplication_1 Node.js RequiredApplication_4 Elasticsearch7.16.3 Erlangv26.0x64 ErlangOTP RequiredApplication_5 RabbitMQServer RequiredApplication_6 RedisonWindows FFmpegx64 FFmpegEssentials Certbot RequiredApplication_3 PostgreSQL_ODBC PostgresSQL OpenResty DocumentServer DocumentServer.EE"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="B96F93FA27E74B02866727AAE83982D0 Microsoft.NETFrame F3520F64DA5998338D97129FAD2 Microsoft.NETRunti EA5B60A5CAD4115A8386D017CC889B9 MicrosoftASP.NETCo CA62D813A4E74FA2AAE86A7D7B7B1493 MicrosoftVisualC A918597FE054CCCB65ABDBA0AD8F63C MicrosoftVisualC_1 C4FE6FD5B7C4D07B3A313E754A9A6A8 MicrosoftVisualC_2 RequiredApplication MySQLConnectorODBC RequiredApplication_2 MySQLInstallerCo MySQLInstallerRunn RequiredApplication_1 Node.js OpenSearch2.11.1 Erlangv26.0x64 ErlangOTP RequiredApplication_5 RabbitMQServer RequiredApplication_6 RedisonWindows FFmpegx64 FFmpegEssentials Certbot RequiredApplication_3 PostgreSQL_ODBC PostgresSQL OpenResty OpenSearchStack DocumentServer DocumentServer.EE"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent">
|
||||
<ROW SearchKey="A918597FE054CCCB65ABDBA0AD8F63CSyst" Prereq="A918597FE054CCCB65ABDBA0AD8F63C" SearchType="0" SearchString="[SystemFolder]vcruntime140.dll" VerMin="14.26.28720" Order="2" Property="PreReqSearch_A918597FE054CCCB65ABDB"/>
|
||||
@ -1491,13 +1533,13 @@
|
||||
<ROW SearchKey="B96F93FA27E74B02866727AAE83982D0Rel" Prereq="B96F93FA27E74B02866727AAE83982D0" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release" RefContent="G528048" Order="1" Property="PreReqSearch_B96F93FA27E74B02866727"/>
|
||||
<ROW SearchKey="C4FE6FD5B7C4D07B3A313E754A9A6A8Vers" Prereq="C4FE6FD5B7C4D07B3A313E754A9A6A8" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum\Version" VerMin="14.26.28720" Order="1" Property="PreReqSearch_C4FE6FD5B7C4D07B3A313E"/>
|
||||
<ROW SearchKey="CA62D813A4E74FA2AAE86A7D7B7B1493Ver" Prereq="CA62D813A4E74FA2AAE86A7D7B7B1493" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\12.0\RuntimeMinimum\Version" VerMin="12.0.40649" Order="1" Property="PreReqSearch_CA62D813A4E74FA2AAE86A"/>
|
||||
<ROW SearchKey="EA5B60A5CAD4115A8386D017CC889B9ASP.N" Prereq="EA5B60A5CAD4115A8386D017CC889B9" SearchType="1" SearchString="HKLM\SOFTWARE\Microsoft\ASP.NET Core\Shared Framework\v7.0" VerMin="7.0.0" Order="1" Property="PreReqSearch_EA5B60A5CAD4115A8386D0"/>
|
||||
<ROW SearchKey="F3520F64DA5998338D97129FAD2Mic" Prereq="F3520F64DA5998338D97129FAD2" SearchType="12" SearchString="HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App" VerMin="7.0.0" Order="1" Property="PreReqSearch_F3520F64DA5998338D9712"/>
|
||||
<ROW SearchKey="EA5B60A5CAD4115A8386D017CC889B9ASP.N" Prereq="EA5B60A5CAD4115A8386D017CC889B9" SearchType="1" SearchString="HKLM\SOFTWARE\Microsoft\ASP.NET Core\Shared Framework\v8.0" VerMin="8.0.0" Order="1" Property="PreReqSearch_EA5B60A5CAD4115A8386D0"/>
|
||||
<ROW SearchKey="F3520F64DA5998338D97129FAD2Mic" Prereq="F3520F64DA5998338D97129FAD2" SearchType="12" SearchString="HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App" VerMin="8.0.0" Order="1" Property="PreReqSearch_F3520F64DA5998338D9712"/>
|
||||
<ROW SearchKey="FFmpeg" Prereq="FFmpegx64" SearchType="4" SearchString="{384A74EC-865A-4907-8561-9DE765EE6E14}" Order="1" Property="PreReqSearch_3"/>
|
||||
<ROW SearchKey="ONLYOFFICEDocumentServer_is1" Prereq="DocumentServer" SearchType="5" SearchString="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ONLYOFFICE DocumentServer_is1" Order="1" Property="PreReqSearch_1_1" Platform="1"/>
|
||||
<ROW SearchKey="RabbitMQ_1" Prereq="RequiredApplication_5" SearchType="2" SearchString="HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\RabbitMQ\DisplayVersion" VerMin="3.12.1" Order="2" Property="PreReqSearch_9"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll" Prereq="RequiredApplication" SearchType="4" SearchString="{7AEDB3F3-7B9D-4FE2-8D8F-3CE3DE6F5B6B}" VerMin="8.0.33" Order="1" Property="PreReqSearch"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_1" Prereq="RequiredApplication_1" SearchType="4" SearchString="{47C07A3A-42EF-4213-A85D-8F5A59077C28}" VerMin="18.16.0" Order="1" Property="PreReqSearch_1"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_1" Prereq="RequiredApplication_1" SearchType="4" SearchString="{47C07A3A-42EF-4213-A85D-8F5A59077C28}" VerMin="20.11.1" Order="1" Property="PreReqSearch_1"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_10" Prereq="MicrosoftVisualC_2" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum\Version" VerMin="14.26.28720" Order="1" Property="PreReqSearch_20"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_11" Prereq="ErlangOTP" SearchType="5" SearchString="HKLM\SOFTWARE\Wow6432Node\Ericsson\Erlang\14.0.2" Order="1" Property="PreReqSearch_24"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_12" Prereq="RabbitMQServer" SearchType="2" SearchString="HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\RabbitMQ\DisplayVersion" VerMin="3.12.1" Order="1" Property="PreReqSearch_25"/>
|
||||
@ -1507,27 +1549,31 @@
|
||||
<ROW SearchKey="SystemFolderfile.dll_3" Prereq="OpenResty" SearchType="4" SearchString="{264FA774-91E5-4854-8010-4AB58CA830BD}" VerMin="1.21.4.2" Order="1" Property="PreReqSearch_8"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_4" Prereq="Certbot" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Certbot\DisplayVersion" VerMin="2.6.0" Order="1" Property="PreReqSearch_10"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_5" Prereq="Microsoft.NETFrame" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release" RefContent="G528048" Order="1" Property="PreReqSearch_13"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_6" Prereq="Microsoft.NETRunti" SearchType="12" SearchString="HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App" VerMin="7.0.0" Order="1" Property="PreReqSearch_15"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_7" Prereq="MicrosoftASP.NETCo" SearchType="1" SearchString="HKLM\SOFTWARE\Microsoft\ASP.NET Core\Shared Framework\v7.0" VerMin="7.0.0" Order="1" Property="PreReqSearch_16"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_6" Prereq="Microsoft.NETRunti" SearchType="12" SearchString="HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App" VerMin="8.0.0" Order="1" Property="PreReqSearch_15"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_7" Prereq="MicrosoftASP.NETCo" SearchType="1" SearchString="HKLM\SOFTWARE\Microsoft\ASP.NET Core\Shared Framework\v8.0" VerMin="8.0.0" Order="1" Property="PreReqSearch_16"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_8" Prereq="MicrosoftVisualC" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\12.0\RuntimeMinimum\Version" VerMin="12.0.40649" Order="1" Property="PreReqSearch_17"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_9" Prereq="MicrosoftVisualC_1" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum\Version" VerMin="14.26.28720" Order="1" Property="PreReqSearch_18"/>
|
||||
<ROW SearchKey="SystemFoldervcruntime140.dll" Prereq="MicrosoftVisualC_1" SearchType="0" SearchString="[SystemFolder]vcruntime140.dll" VerMin="14.26.28720" Order="2" Property="PreReqSearch_19"/>
|
||||
<ROW SearchKey="UpgradeCode" Prereq="PostgreSQL_ODBC" SearchType="4" SearchString="{BBD29DF5-89F6-4B8B-BDC9-C3EA3A4AFDBB}" VerMin="15.0" Order="1" Property="PreReqSearch_14"/>
|
||||
<ROW SearchKey="UpgradeCode_1" Prereq="RequiredApplication_4" SearchType="4" SearchString="{DAAA2CBA-A1ED-4F29-AFBF-5478617B00F6}" VerMin="7.16.3" Order="2" Property="PreReqSearch_7"/>
|
||||
<ROW SearchKey="UpgradeCode_1" Prereq="OpenSearchStack" SearchType="4" SearchString="{93CD82F0-18A5-4803-AC50-9A0021E92A56}" VerMin="1.0.0" Order="1" Property="PreReqSearch_7"/>
|
||||
<ROW SearchKey="UpgradeCode_2" Prereq="MySQLConnectorODBC" SearchType="4" SearchString="{7AEDB3F3-7B9D-4FE2-8D8F-3CE3DE6F5B6B}" VerMin="8.0.33" Order="1" Property="PreReqSearch_21"/>
|
||||
<ROW SearchKey="UpgradeCode_3" Prereq="RequiredApplication_6" SearchType="4" SearchString="{05410198-7212-4FC4-B7C8-AFEFC3DA0FBC}" VerMin="5.0.10" Order="2" Property="PreReqSearch_12"/>
|
||||
<ROW SearchKey="UpgradeCode_4" Prereq="MySQLInstallerCo" SearchType="4" SearchString="{18B94B70-06F1-4AC0-B308-37280DB868C2}" VerMin="1.6.6.0" Order="1" Property="PreReqSearch_22"/>
|
||||
<ROW SearchKey="UpgradeCode_5" Prereq="Node.js" SearchType="4" SearchString="{47C07A3A-42EF-4213-A85D-8F5A59077C28}" VerMin="18.16.0" Order="1" Property="PreReqSearch_23"/>
|
||||
<ROW SearchKey="UpgradeCode_5" Prereq="Node.js" SearchType="4" SearchString="{47C07A3A-42EF-4213-A85D-8F5A59077C28}" VerMin="20.11.1" Order="1" Property="PreReqSearch_23"/>
|
||||
<ROW SearchKey="UpgradeCode_6" Prereq="RedisonWindows" SearchType="4" SearchString="{05410198-7212-4FC4-B7C8-AFEFC3DA0FBC}" VerMin="5.0.10" Order="1" Property="PreReqSearch_26"/>
|
||||
<ROW SearchKey="UpgradeCode_7" Prereq="FFmpegEssentials" SearchType="4" SearchString="{384A74EC-865A-4907-8561-9DE765EE6E14}" Order="1" Property="PreReqSearch_27"/>
|
||||
<ROW SearchKey="UpgradeCode_8" Prereq="Elasticsearch7.16.3" SearchType="4" SearchString="{DAAA2CBA-A1ED-4F29-AFBF-5478617B00F6}" VerMin="7.16.3" Order="1" Property="PreReqSearch_29"/>
|
||||
<ROW SearchKey="UpgradeCode_8" Prereq="OpenSearch2.11.1" SearchType="4" SearchString="{F8561DF7-6238-4927-8DAC-AD0EBC117F6C}" VerMin="2.11.1" Order="1" Property="PreReqSearch_29"/>
|
||||
<ROW SearchKey="Version" Prereq="MySQLInstallerRunn" SearchType="2" SearchString="HKLM\SOFTWARE\MySQL AB\MySQL Server 5.7\Version" Order="1" Property="PreReqSearch_4"/>
|
||||
<ROW SearchKey="Version_1" Prereq="MySQLInstallerRunn" SearchType="2" SearchString="HKLM\SOFTWARE\MySQL AB\MySQL Server 8.0\Version" Order="2" Property="PreReqSearch_5"/>
|
||||
<ROW SearchKey="Version_2" Prereq="MySQLInstallerRunn" SearchType="2" SearchString="HKLM\SOFTWARE\MySQL AB\MySQL Server 5.5\Version" VerMin="5.5" Order="0" Property="PreReqSearch_6"/>
|
||||
<ROW SearchKey="__1" Prereq="Erlangv26.0x64" SearchType="5" SearchString="HKLM\SOFTWARE\Wow6432Node\Ericsson\Erlang\14.0.2" Order="2" Property="PreReqSearch_11"/>
|
||||
<ROW SearchKey="postgresqlx649.5" Prereq="PostgresSQL" SearchType="5" SearchString="HKLM\SOFTWARE\PostgreSQL\Installations\postgresql-x64-14" Order="1" Property="PreReqSearch_2_1"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.SqlConnectionComponent">
|
||||
<ROW ConnectionName="MySql.Conection" Condition="1" Dbms="1" Flags="4" Order="0" LoginTimeout="60" ConnectionString="Driver={[MYSQLODBCDRIVER]};Server=[DB_HOST];Port=[DB_PORT];Database=[DB_NAME];User=[DB_USER];Password=[DB_PWD];charset=UTF8;GET_SERVER_PUBLIC_KEY=1;"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.SqlScriptComponent">
|
||||
<ROW ScriptName="SQL_SCRIPT_REINDEX_OPENSEARCH" ConnectionName="MySql.Conection" Condition="NEED_REINDEX_OPENSEARCH = "TRUE" AND OLDPRODUCTS <> """ Separator=";" ScriptInline="TRUNCATE webstudio_index; " Flags="18" Order="0"/>
|
||||
<ATTRIBUTE name="ImpersonateUser" value="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent">
|
||||
@ -1542,6 +1588,12 @@
|
||||
<ROW Name="ReplaceRoot" TxtUpdateSet="YourFile.txt_2" FindPattern="/var/www/public/" ReplacePattern=""[APPDIR]public/"" Options="2" Order="0" FileEncoding="-1"/>
|
||||
<ROW Name="ReplaceDsProxyPass" TxtUpdateSet="YourFile.txt" FindPattern="proxy_pass .*;" ReplacePattern="proxy_pass http://[DOCUMENT_SERVER_HOST]:[DOCUMENT_SERVER_PORT];" Options="19" Order="1" FileEncoding="-1"/>
|
||||
<ROW Name="ReplaceRouter" TxtUpdateSet="YourFile.txt_3" FindPattern="$router_host" ReplacePattern="127.0.0.1" Options="2" Order="0" FileEncoding="-1"/>
|
||||
<ROW Name="Replace" TxtUpdateSet="fluentbit.conf" FindPattern="{APPDIR}" ReplacePattern="[APPDIR]" Options="2" Order="0" FileEncoding="-1"/>
|
||||
<ROW Name="ReplaceHost" TxtUpdateSet="fluentbit.conf" FindPattern="OPENSEARCH_HOST" ReplacePattern="[OPENSEARCH_HOST]" Options="2" Order="1" FileEncoding="-1"/>
|
||||
<ROW Name="ReplacePort" TxtUpdateSet="fluentbit.conf" FindPattern="OPENSEARCH_PORT" ReplacePattern="[OPENSEARCH_PORT]" Options="2" Order="2" FileEncoding="-1"/>
|
||||
<ROW Name="ReplaceScheme" TxtUpdateSet="fluentbit.conf" FindPattern="OPENSEARCH_SCHEME" ReplacePattern="[OPENSEARCH_SCHEME]" Options="2" Order="3" FileEncoding="-1"/>
|
||||
<ROW Name="ReplaceIndex" TxtUpdateSet="fluentbit.conf" FindPattern="OPENSEARCH_INDEX" ReplacePattern="[OPENSEARCH_INDEX]" Options="2" Order="4" FileEncoding="-1"/>
|
||||
<ROW Name="Append/Create" TxtUpdateSet="htpasswd_dashboards" FindPattern="onlyoffice:[DASHBOARDS_PWD]" Options="160" Order="0" FileEncoding="0"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.TxtUpdateSetComponent">
|
||||
<ROW Key="YourFile.txt" Component="conf" FileName="onlyoffice.conf" Directory="conf_Dir" Options="17"/>
|
||||
@ -1549,6 +1601,8 @@
|
||||
<ROW Key="YourFile.txt_2" Component="includes" FileName="onlyoffice-public.conf" Directory="includes_Dir" Options="17"/>
|
||||
<ROW Key="YourFile.txt_3" Component="conf" FileName="onlyoffice-proxy*" Directory="conf_Dir" Options="17"/>
|
||||
<ROW Key="YourFile.txt_5" Component="includes" FileName="letsencrypt.conf" Directory="includes_Dir" Options="17"/>
|
||||
<ROW Key="fluentbit.conf" Component="config" FileName="fluent-bit.conf" Directory="config_Dir" Options="17"/>
|
||||
<ROW Key="htpasswd_dashboards" Component="conf" FileName=".htpasswd_dashboards" Directory="conf_Dir" Options="17"/>
|
||||
<ROW Key="xml" Component="tools" FileName="*.xml" Directory="tools_Dir" Options="17"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.XmlAttributeComponent">
|
||||
|
188
install/win/OpenSearch.aip
Normal file
188
install/win/OpenSearch.aip
Normal file
@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<DOCUMENT Type="Advanced Installer" CreateVersion="20.7.1" version="20.7.1" Modules="enterprise" RootPath="." Language="en" Id="{68315B90-D4BE-45B1-96B9-DE7BC2F7AA93}">
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.ProjectOptionsComponent">
|
||||
<ROW Name="HiddenItems" Value="AppXProductDetailsComponent;AppXDependenciesComponent;AppXAppDetailsComponent;AppXVisualAssetsComponent;AppXCapabilitiesComponent;AppXAppDeclarationsComponent;AppXUriRulesComponent;SccmComponent;ActSyncAppComponent;CPLAppletComponent;AutorunComponent;GameUxComponent;SilverlightSlnComponent;SharePointSlnComponent;FixupComponent;MsiXDiffComponent;MsixManifestEditorComponent"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||
<ROW Property="ALLUSERS" Value="1"/>
|
||||
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
|
||||
<ROW Property="Manufacturer" Value="Ascensio System SIA"/>
|
||||
<ROW Property="PACKAGE_NAME" Value="[|ProductName]-[|ProductVersion]"/>
|
||||
<ROW Property="ProductCode" Value="1033:{5D3E60C0-55B7-4680-97C2-B52C4509753F} " Type="16"/>
|
||||
<ROW Property="ProductLanguage" Value="1033"/>
|
||||
<ROW Property="ProductName" Value="OpenSearch"/>
|
||||
<ROW Property="ProductVersion" Value="2.11.1" Options="32"/>
|
||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
||||
<ROW Property="ServiceName_OpenSearch" Value="OpenSearch"/>
|
||||
<ROW Property="UpgradeCode" Value="{F8561DF7-6238-4927-8DAC-AD0EBC117F6C}"/>
|
||||
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
|
||||
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
|
||||
<ROW Directory="tools_Dir" Directory_Parent="APPDIR" DefaultDir="tools"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
||||
<ROW Component="APPDIR" ComponentId="{D87E51BE-6C42-47EC-A172-D74909714645}" Directory_="APPDIR" Attributes="0"/>
|
||||
<ROW Component="OpenSearch.exe" ComponentId="{AA41040E-4700-4321-A395-E927BC227A47}" Directory_="tools_Dir" Attributes="256" KeyPath="OpenSearch.exe"/>
|
||||
<ROW Component="OpenSearch.xml" ComponentId="{B61018A1-737F-4055-84D1-FC44D5C677A0}" Directory_="tools_Dir" Attributes="0" KeyPath="OpenSearch.xml" Type="0"/>
|
||||
<ROW Component="ProductInformation" ComponentId="{4C89C7F7-A1EE-44C3-B4A9-A4AC20C0F672}" Directory_="APPDIR" Attributes="260" KeyPath="Version"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
|
||||
<ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
|
||||
<ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
|
||||
<ROW File="OpenSearch.xml" Component_="OpenSearch.xml" FileName="OPENSE~1.XML|OpenSearch.xml" Attributes="0" SourcePath="tools\OpenSearch.xml" SelfReg="false"/>
|
||||
<ROW File="OpenSearch.exe" Component_="OpenSearch.exe" FileName="WINSW-~1.EXE|OpenSearch.exe" Attributes="0" SourcePath="tools\OpenSearch.exe" SelfReg="false" DigSign="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent">
|
||||
<ROW BootstrOptKey="GlobalOptions" DownloadFolder="[AppDataFolder][|Manufacturer]\[|ProductName]\prerequisites" Options="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="publish" PackageFileName="[|PACKAGE_NAME]" Languages="en" InstallationType="4" UseLargeSchema="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_en.ail"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
||||
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
||||
<ROW Fragment="FolderDlg.aip" Path="<AI_THEMES>classic\fragments\FolderDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceTypeDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceWelcomeDlg.aip"/>
|
||||
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
||||
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
||||
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
||||
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
||||
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
||||
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
||||
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
||||
<ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRepairDlg.aip"/>
|
||||
<ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomeDlg.aip"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
|
||||
<ROW Action="AI_ConfigFailActions" Description="Configure service failure actions" DescriptionLocId="ActionText.Description.AI_ConfigFailActions" Template="Service: [1]" TemplateLocId="ActionText.Template.AI_ConfigFailActions"/>
|
||||
<ROW Action="AI_ProcessFailActions" Description="Generating actions to configure service failure actions" DescriptionLocId="ActionText.Description.AI_ProcessFailActions" Template="Service: [1]" TemplateLocId="ActionText.Template.AI_ProcessFailActions"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
|
||||
<ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399" Options="1"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299" Options="1"/>
|
||||
<ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/>
|
||||
<ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
||||
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_ConfigFailActions" Type="11265" Source="aicustact.dll" Target="ConfigureServFailActions" WithoutSeq="true"/>
|
||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||
<ROW Action="AI_ProcessFailActions" Type="1" Source="aicustact.dll" Target="ProcessFailActions" AdditionalSeq="AI_DATA_SETTER"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="DisableElasticsearch" Type="38" Target="Script Text" TargetUnformatted="Set objShell = CreateObject("WScript.Shell") Set objFSO = CreateObject("Scripting.FileSystemObject") tempFolderPath = objShell.ExpandEnvironmentStrings("%TEMP%") outputFilePath = tempFolderPath & "\ElasticsearchQueryOutput.txt" objShell.Run "cmd /c sc query Elasticsearch > " & outputFilePath, 0, True strOutput = objFSO.OpenTextFile(outputFilePath).ReadAll() objFSO.DeleteFile(outputFilePath) If InStr(strOutput, "SERVICE_NAME: Elasticsearch") > 0 Then objShell.Run "cmd /c sc stop Elasticsearch", 0, True objShell.Run "cmd /c sc config Elasticsearch start=disabled", 0, True End If"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[WindowsVolume]\[ProductName]"/>
|
||||
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
|
||||
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
|
||||
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
||||
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
|
||||
<ROW Feature_="MainFeature" Component_="OpenSearch.xml"/>
|
||||
<ROW Feature_="MainFeature" Component_="OpenSearch.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1397"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_ProcessFailActions" Sequence="5848"/>
|
||||
<ROW Action="AI_DATA_SETTER" Sequence="5847"/>
|
||||
<ROW Action="DisableElasticsearch" Condition="( NOT Installed AND NOT OLDPRODUCTS )" Sequence="6401"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
|
||||
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="101"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServConfigComponent">
|
||||
<ROW MsiServiceConfig="ServiceName_OpenSearch" Name="[ServiceName_OpenSearch]" Event="1" ConfigType="3" Argument="1" Component_="OpenSearch.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServConfigFailureActionsComponent">
|
||||
<ROW MsiServiceConfigFailureActions="ServiceName_OpenSearch" Name="[ServiceName_OpenSearch]" Event="1" ResetPeriod="0" Actions="1[~]1[~]1" DelayActions="1[~]1[~]1" Component_="OpenSearch.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServCtrlComponent">
|
||||
<ROW ServiceControl="ServiceName_OpenSearch" Name="[ServiceName_OpenSearch]" Event="161" Wait="0" Component_="OpenSearch.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServInstComponent">
|
||||
<ROW ServiceInstall="ServiceName_OpenSearch" Name="[ServiceName_OpenSearch]" DisplayName="[ServiceName_OpenSearch]" ServiceType="16" StartType="2" ErrorControl="1" Component_="OpenSearch.exe" Description="[ServiceName_OpenSearch]"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent">
|
||||
<ROW Directory_="APPDIR" SourcePath="OpenSearch" Feature="MainFeature" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6" FileAddOptions="4"/>
|
||||
</COMPONENT>
|
||||
</DOCUMENT>
|
234
install/win/OpenSearchStack.aip
Normal file
234
install/win/OpenSearchStack.aip
Normal file
@ -0,0 +1,234 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<DOCUMENT Type="Advanced Installer" CreateVersion="20.7.1" version="20.7.1" Modules="enterprise" RootPath="." Language="en" Id="{8675EE16-F689-45A4-A9B4-47F4B5A57C14}">
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.ProjectOptionsComponent">
|
||||
<ROW Name="HiddenItems" Value="AppXProductDetailsComponent;AppXDependenciesComponent;AppXAppDetailsComponent;AppXVisualAssetsComponent;AppXCapabilitiesComponent;AppXAppDeclarationsComponent;AppXUriRulesComponent;SccmComponent;ActSyncAppComponent;CPLAppletComponent;AutorunComponent;GameUxComponent;SilverlightSlnComponent;SharePointSlnComponent;FixupComponent;MsiXDiffComponent;MsixManifestEditorComponent"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||
<ROW Property="ALLUSERS" Value="1"/>
|
||||
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
|
||||
<ROW Property="MSIFASTINSTALL" MultiBuildValue="DefaultBuild:3"/>
|
||||
<ROW Property="Manufacturer" Value="Ascensio System SIA"/>
|
||||
<ROW Property="MsiLogging" MultiBuildValue="DefaultBuild:vp"/>
|
||||
<ROW Property="ProductCode" Value="1033:{9705A0E0-DF9C-4B0B-B6D9-7A2FB97C4DA9} " Type="16"/>
|
||||
<ROW Property="ProductLanguage" Value="1033"/>
|
||||
<ROW Property="ProductName" Value="OpenSearchStack"/>
|
||||
<ROW Property="ProductVersion" Value="1.0.0" Options="32"/>
|
||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
|
||||
<ROW Property="UpgradeCode" Value="{93CD82F0-18A5-4803-AC50-9A0021E92A56}"/>
|
||||
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
|
||||
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
||||
<ROW Component="APPDIR" ComponentId="{A9D710AE-1F08-48CB-BE89-3C028ECC4714}" Directory_="APPDIR" Attributes="0"/>
|
||||
<ROW Component="ProductInformation" ComponentId="{66125B7F-2A78-4EA0-906F-ACB892BC3BC8}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
|
||||
<ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
|
||||
<ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
|
||||
<ROW RemoveFile="_" Options="3"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BootstrOptComponent">
|
||||
<ROW BootstrOptKey="GlobalOptions" DownloadFolder="[AppDataFolder][|Manufacturer]\[|ProductName]\prerequisites" Options="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="publish" Languages="en" InstallationType="4" UseLargeSchema="true" UACExecutionLevel="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_en.ail"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.ExpandArchiveComponent">
|
||||
<ROW ExpandArchive="ExpandArchive" DestFolder="APPDIR" SourcePath="[APPDIR]opensearch-dashboards-2.11.1-windows-x64.zip" Flags="57"/>
|
||||
<ROW ExpandArchive="ExpandArchive_1" DestFolder="APPDIR" SourcePath="[APPDIR]fluent-bit-2.2.2-win64.zip" Flags="57"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.FileDownloadComponent">
|
||||
<ROW FileDownload="fluentbit2.2.2win64.zip" FileName="FLUENT~1.ZIP|fluent-bit-2.2.2-win64.zip" DirProperty="APPDIR" Source="https://packages.fluentbit.io/windows/fluent-bit-2.2.2-win64.zip" ExactSize="30001957" MD5="6c5b495aa2f55f41182841792a4cfa28" Flags="57"/>
|
||||
<ROW FileDownload="opensearchdashboards2.11.1windowsx6" FileName="OPENSE~1.ZIP|opensearch-dashboards-2.11.1-windows-x64.zip" DirProperty="APPDIR" Source="https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.11.1/opensearch-dashboards-2.11.1-windows-x64.zip" ExactSize="370856962" MD5="ea88b808fce5154e76b0b082bca97833" Flags="41"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
||||
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
||||
<ROW Fragment="FolderDlg.aip" Path="<AI_THEMES>classic\fragments\FolderDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceTypeDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceWelcomeDlg.aip"/>
|
||||
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
||||
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
||||
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
||||
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
||||
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
||||
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
||||
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
||||
<ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRepairDlg.aip"/>
|
||||
<ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomeDlg.aip"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
|
||||
<ROW Action="AI_AiRemoveFilesCommit" Description="Executing file removal operations" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesCommit" Template="Executing file removal: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesCommit"/>
|
||||
<ROW Action="AI_AiRemoveFilesCommit_Impersonate" Description="Executing file removal operations" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesCommit" Template="Executing file removal: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesCommit"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Permanent" Description="Preparing files for removal" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesDeferred_Permanent" Template="Preparing file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesDeferred_Permanent"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Permanent_Impersonate" Description="Preparing files for removal" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesDeferred_Permanent" Template="Preparing file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesDeferred_Permanent"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Undoable" Description="Preparing files for removal" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesDeferred_Undoable" Template="Preparing file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesDeferred_Undoable"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Undoable_Impersonate" Description="Preparing files for removal" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesDeferred_Undoable" Template="Preparing file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesDeferred_Undoable"/>
|
||||
<ROW Action="AI_AiRemoveFilesImmediate" Description="Preparing files for removal" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesImmediate" Template="Preparing file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesImmediate"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootDeferred" Description="ActionText.Description.AI_AiRemoveFilesRebootDeferred" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesRebootDeferred"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootImmediate" Description="ActionText.Description.AI_AiRemoveFilesRebootImmediate" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesRebootImmediate"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootRollback" Description="ActionText.Description.AI_AiRemoveFilesRebootRollback" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesRebootRollback"/>
|
||||
<ROW Action="AI_AiRemoveFilesRollback" Description="Restoring removed files" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesRollback" Template="Restoring file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesRollback"/>
|
||||
<ROW Action="AI_AiRemoveFilesRollback_Impersonate" Description="Restoring removed files" DescriptionLocId="ActionText.Description.AI_AiRemoveFilesRollback" Template="Restoring file: [1]" TemplateLocId="ActionText.Template.AI_AiRemoveFilesRollback"/>
|
||||
<ROW Action="AI_ExpandArchConfig" Description="Extracting archives" DescriptionLocId="ActionText.Description.AI_ExpandArchConfig" Template="Extracting archive: "[1]"" TemplateLocId="ActionText.Template.AI_ExpandArchConfig"/>
|
||||
<ROW Action="AI_ExpandArchInstall" Description="Generating actions for extracting archives" DescriptionLocId="ActionText.Description.AI_ExpandArchInstall"/>
|
||||
<ROW Action="AI_ExpandArchRemove" Description="Cleanup extracted files" DescriptionLocId="ActionText.Description.AI_ExpandArchRemove" Template="Removing contents of extracted archive: "[1]"" TemplateLocId="ActionText.Template.AI_ExpandArchRemove"/>
|
||||
<ROW Action="AI_ExpandArchRollback" Description="Rolling back extracted files" DescriptionLocId="ActionText.Description.AI_ExpandArchRollback" Template="Rolling back contents of extracted archive: "[1]"" TemplateLocId="ActionText.Template.AI_ExpandArchRollback"/>
|
||||
<ROW Action="AI_ExpandArchUninstall" Description="Generating actions for extracting archives" DescriptionLocId="ActionText.Description.AI_ExpandArchUninstall"/>
|
||||
<ROW Action="AI_FdConfig" Description="Downloading files" DescriptionLocId="ActionText.Description.AI_FdConfig" Template="Downloading file: "[1]"" TemplateLocId="ActionText.Template.AI_FdConfig"/>
|
||||
<ROW Action="AI_FdInstall" Description="Generating actions for file download operations" DescriptionLocId="ActionText.Description.AI_FdInstall"/>
|
||||
<ROW Action="AI_FdRemove" Description="Cleanup downloaded files" DescriptionLocId="ActionText.Description.AI_FdRemove" Template="Removing downloaded file: "[1]"" TemplateLocId="ActionText.Template.AI_FdRemove"/>
|
||||
<ROW Action="AI_FdRollback" Description="Rolling back downloaded files" DescriptionLocId="ActionText.Description.AI_FdRollback" Template="Rolling back downloaded file: "[1]"" TemplateLocId="ActionText.Template.AI_FdRollback"/>
|
||||
<ROW Action="AI_FdUninstall" Description="Generating actions for file download operations" DescriptionLocId="ActionText.Description.AI_FdUninstall"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
|
||||
<ROW Name="FileOperations.dll" SourcePath="<AI_CUSTACTS>FileOperations.dll"/>
|
||||
<ROW Name="ResourceCleaner.dll" SourcePath="<AI_CUSTACTS>ResourceCleaner.dll"/>
|
||||
<ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/>
|
||||
<ROW Name="utils.vbs" SourcePath="utils.vbs"/>
|
||||
<ROW Name="viewer.exe" SourcePath="<AI_CUSTACTS>viewer.exe" DigSign="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399" Options="1"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299" Options="1"/>
|
||||
<ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/>
|
||||
<ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
||||
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
|
||||
<ROW Action="AI_AiRemoveFilesCommit" Type="11777" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesCommit" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesCommit_Impersonate" Type="9729" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesCommitImpersonate" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Permanent" Type="11265" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesPermanent" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Permanent_Impersonate" Type="9217" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesPermanentImpersonate" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Undoable" Type="11265" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesUndoable" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesDeferred_Undoable_Impersonate" Type="9217" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesUndoableImpersonate" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesImmediate" Type="1" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesImmediate"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootDeferred" Type="11265" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesRebootDeferred" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootImmediate" Type="1" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesRebootImmediate"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootRollback" Type="11521" Source="ResourceCleaner.dll" Target="OnAiRemoveFilesRebootRollback" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesRollback" Type="11521" Source="ResourceCleaner.dll" Target="OnAiUndoRemoveFiles" WithoutSeq="true"/>
|
||||
<ROW Action="AI_AiRemoveFilesRollback_Impersonate" Type="9473" Source="ResourceCleaner.dll" Target="OnAiUndoRemoveFilesImpersonate" WithoutSeq="true"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||
<ROW Action="AI_ExpandArchConfig" Type="11265" Source="FileOperations.dll" Target="OnExpandArchConfig" WithoutSeq="true"/>
|
||||
<ROW Action="AI_ExpandArchInstall" Type="1" Source="FileOperations.dll" Target="OnExpandArchInstall"/>
|
||||
<ROW Action="AI_ExpandArchRemove" Type="11265" Source="FileOperations.dll" Target="OnExpandArchRemove" WithoutSeq="true"/>
|
||||
<ROW Action="AI_ExpandArchRollback" Type="11521" Source="FileOperations.dll" Target="OnExpandArchRollback" WithoutSeq="true"/>
|
||||
<ROW Action="AI_ExpandArchUninstall" Type="1" Source="FileOperations.dll" Target="OnExpandArchUninstall"/>
|
||||
<ROW Action="AI_FdConfig" Type="11265" Source="FileOperations.dll" Target="OnFdConfig" WithoutSeq="true"/>
|
||||
<ROW Action="AI_FdInstall" Type="1" Source="FileOperations.dll" Target="OnFdInstall"/>
|
||||
<ROW Action="AI_FdRemove" Type="11265" Source="FileOperations.dll" Target="OnFdRemove" WithoutSeq="true"/>
|
||||
<ROW Action="AI_FdRollback" Type="11521" Source="FileOperations.dll" Target="OnFdRollback" WithoutSeq="true"/>
|
||||
<ROW Action="AI_FdUninstall" Type="1" Source="FileOperations.dll" Target="OnFdUninstall"/>
|
||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||
<ROW Action="AI_RestartElevated" Type="1" Source="aicustact.dll" Target="RestartElevated"/>
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="OpenSearchStackSetup" Type="4102" Source="utils.vbs" Target="OpenSearchStackSetup"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[WindowsVolume]\[ProductName]"/>
|
||||
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
|
||||
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
|
||||
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
||||
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1397"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_FdInstall" Condition="(VersionNT >= 501) AND (REMOVE <> "ALL")" Sequence="5799"/>
|
||||
<ROW Action="AI_FdUninstall" Condition="(VersionNT >= 501) AND (REMOVE="ALL")" Sequence="1702"/>
|
||||
<ROW Action="AI_ExpandArchInstall" Condition="(VersionNT >= 501) AND (REMOVE <> "ALL")" Sequence="5851"/>
|
||||
<ROW Action="AI_ExpandArchUninstall" Condition="(VersionNT >= 501) AND (REMOVE="ALL")" Sequence="1701"/>
|
||||
<ROW Action="OpenSearchStackSetup" Condition="( NOT Installed )" Sequence="6601"/>
|
||||
<ROW Action="AI_AiRemoveFilesImmediate" Sequence="3498"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootImmediate" Sequence="3499"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="54"/>
|
||||
<ROW Action="AI_DpiContentScale" Sequence="53"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="52"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="101"/>
|
||||
<ROW Action="AI_RestartElevated" Sequence="51" Builds="DefaultBuild"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRemoveFileComponent">
|
||||
<ROW FileKey="_" Component_="APPDIR" DirProperty="APPDIR" InstallMode="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServCtrlComponent">
|
||||
<ROW ServiceControl="ServiceName" Name="OpenSearchDashboards" Event="160" Wait="1" Component_="APPDIR"/>
|
||||
<ROW ServiceControl="ServiceName_1" Name="Fluent-Bit" Event="160" Wait="1" Component_="APPDIR"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.SynchronizedFolderComponent">
|
||||
<ROW Directory_="APPDIR" SourcePath="OpenSearchStack" Feature="MainFeature" ExcludePattern="*~|#*#|%*%|._|CVS|.cvsignore|SCCS|vssver.scc|mssccprj.scc|vssver2.scc|.svn|.DS_Store" ExcludeFlags="6" FileAddOptions="4"/>
|
||||
</COMPONENT>
|
||||
</DOCUMENT>
|
@ -5,7 +5,6 @@
|
||||
|
||||
\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li720\sa200\sl276\slmult1 .NET/C# RabbitMQ client library. It is distributed dual-licensed under the Apache License v2 and the Mozilla Public License v1.1 that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs20 {{\field{\*\fldinst{HYPERLINK https://www.rabbitmq.com/mpl.html }}{\fldrslt{https://www.rabbitmq.com/mpl.html\ul0\cf0}}}}\f0\fs20\par
|
||||
{\pntext\f1\'B7\tab}Certbot. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/certbot/certbot/blob/master/LICENSE.txt }}{\fldrslt{https://github.com/certbot/certbot/blob/master/LICENSE.txt\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Elasticsearch. It is distributed under the Apache License v2 license that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Erlang. It is distributed under the ERLANG PUBLIC LICENSE Version 1.1 license that can be found here: {{\field{\*\fldinst{HYPERLINK https://www.erlang.org/EPLICENSE }}{\fldrslt{https://www.erlang.org/EPLICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}FFmpeg. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/rvs/ffmpeg/blob/master/LICENSE }}{\fldrslt{https://github.com/rvs/ffmpeg/blob/master/LICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Java SE Runtime Environment 8u171. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://www.oracle.com/technetwork/java/javase/terms/license/index.html }}{\fldrslt{https://www.oracle.com/technetwork/java/javase/terms/license/index.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
@ -14,6 +13,7 @@
|
||||
{\pntext\f1\'B7\tab}MySQL Connector / ODBC. It is distributed under the GNU GPL license v. 2.0. You may use it free of charge due to FOSS License Exception {{\field{\*\fldinst{HYPERLINK http://www.mysql.com/about/legal/licensing/foss-exception/ }}{\fldrslt{http://www.mysql.com/about/legal/licensing/foss-exception/\ul0\cf0}}}}\f0\fs20 The text of the GNU GPL license v. 2.0 can be found here: {{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/old-licenses/gpl-2.0.html }}{\fldrslt{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Node.js. It is distributed under the MIT license that can be found here: {{\field{\*\fldinst{HYPERLINK https://github.com/nodejs/node/blob/v18.x/LICENSE }}{\fldrslt{https://github.com/nodejs/node/blob/v18.x/LICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}OpenResty. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/openresty/openresty/blob/master/COPYRIGHT }}{\fldrslt{https://github.com/openresty/openresty/blob/master/COPYRIGHT\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}OpenSearch. It is distributed under the Apache License v2 license that can be found here: {{\field{\*\fldinst{HYPERLINK https://github.com/opensearch-project/OpenSearch/blob/main/LICENSE.txt }}{\fldrslt{https://github.com/opensearch-project/OpenSearch/blob/main/LICENSE.txt\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}PostgresSQL. It is distributed under the PostgreSQL License that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.opensource.org/licenses/postgresql }}{\fldrslt{http://www.opensource.org/licenses/postgresql\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}PostgreSQL ODBC driver. It is distributed under the LGPL License that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.opensource.org/licenses/lgpl-license.php }}{\fldrslt{http://www.opensource.org/licenses/lgpl-license.php\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}RabbitMQ. It is distributed under the Mozilla Public License 1.1 that can be found here: {{\field{\*\fldinst{HYPERLINK https://www.rabbitmq.com/mpl.html }}{\fldrslt{https://www.rabbitmq.com/mpl.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
\pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li720\sa200\sl276\slmult1 .NET/C# RabbitMQ client library. It is distributed dual-licensed under the Apache License v2 and the Mozilla Public License v1.1 that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs20 {{\field{\*\fldinst{HYPERLINK https://www.rabbitmq.com/mpl.html }}{\fldrslt{https://www.rabbitmq.com/mpl.html\ul0\cf0}}}}\f0\fs20\par
|
||||
{\pntext\f1\'B7\tab}Certbot. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/certbot/certbot/blob/master/LICENSE.txt }}{\fldrslt{https://github.com/certbot/certbot/blob/master/LICENSE.txt\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Elasticsearch. It is distributed under the Apache License v2 license that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.apache.org/licenses/LICENSE-2.0 }}{\fldrslt{http://www.apache.org/licenses/LICENSE-2.0\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Erlang. It is distributed under the ERLANG PUBLIC LICENSE Version 1.1 license that can be found here: {{\field{\*\fldinst{HYPERLINK https://www.erlang.org/EPLICENSE }}{\fldrslt{https://www.erlang.org/EPLICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}FFmpeg. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/rvs/ffmpeg/blob/master/LICENSE }}{\fldrslt{https://github.com/rvs/ffmpeg/blob/master/LICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Java SE Runtime Environment 8u171. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://www.oracle.com/technetwork/java/javase/terms/license/index.html }}{\fldrslt{https://www.oracle.com/technetwork/java/javase/terms/license/index.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
@ -14,6 +13,7 @@
|
||||
{\pntext\f1\'B7\tab}MySQL Connector / ODBC. It is distributed under the GNU GPL license v. 2.0. You may use it free of charge due to FOSS License Exception {{\field{\*\fldinst{HYPERLINK http://www.mysql.com/about/legal/licensing/foss-exception/ }}{\fldrslt{http://www.mysql.com/about/legal/licensing/foss-exception/\ul0\cf0}}}}\f0\fs20 The text of the GNU GPL license v. 2.0 can be found here: {{\field{\*\fldinst{HYPERLINK http://www.gnu.org/licenses/old-licenses/gpl-2.0.html }}{\fldrslt{http://www.gnu.org/licenses/old-licenses/gpl-2.0.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}Node.js. It is distributed under the MIT license that can be found here: {{\field{\*\fldinst{HYPERLINK https://github.com/nodejs/node/blob/v18.x/LICENSE }}{\fldrslt{https://github.com/nodejs/node/blob/v18.x/LICENSE\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}OpenResty. It is distributed under the following license: {{\field{\*\fldinst{HYPERLINK https://github.com/openresty/openresty/blob/master/COPYRIGHT }}{\fldrslt{https://github.com/openresty/openresty/blob/master/COPYRIGHT\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}OpenSearch. It is distributed under the Apache License v2 license that can be found here: {{\field{\*\fldinst{HYPERLINK https://github.com/opensearch-project/OpenSearch/blob/main/LICENSE.txt }}{\fldrslt{https://github.com/opensearch-project/OpenSearch/blob/main/LICENSE.txt\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}PostgresSQL. It is distributed under the PostgreSQL License that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.opensource.org/licenses/postgresql }}{\fldrslt{http://www.opensource.org/licenses/postgresql\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}PostgreSQL ODBC driver. It is distributed under the LGPL License that can be found here: {{\field{\*\fldinst{HYPERLINK http://www.opensource.org/licenses/lgpl-license.php }}{\fldrslt{http://www.opensource.org/licenses/lgpl-license.php\ul0\cf0}}}}\f0\fs20 .\par
|
||||
{\pntext\f1\'B7\tab}RabbitMQ. It is distributed under the Mozilla Public License 1.1 that can be found here: {{\field{\*\fldinst{HYPERLINK https://www.rabbitmq.com/mpl.html }}{\fldrslt{https://www.rabbitmq.com/mpl.html\ul0\cf0}}}}\f0\fs20 .\par
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user