Merge branch 'develop' into feature/oauth2-client
This commit is contained in:
commit
b567e10880
131
.github/workflows/ci-oci-install.yml
vendored
Normal file
131
.github/workflows/ci-oci-install.yml
vendored
Normal file
@ -0,0 +1,131 @@
|
||||
name: Install OneClickInstall DocSpace
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize]
|
||||
paths:
|
||||
- 'install/OneClickInstall/**'
|
||||
|
||||
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": "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
|
||||
|
||||
vagrant-up:
|
||||
name: "Test DocSpace with ${{ 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@v3
|
||||
|
||||
- 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: "Test production scripts with ${{matrix.name}}"
|
||||
if: ${{ github.event_name == 'schedule' }}
|
||||
uses: nick-fields/retry@v2
|
||||
with:
|
||||
max_attempts: 2
|
||||
timeout_minutes: 40
|
||||
retry_on: error
|
||||
command: |
|
||||
set -eux
|
||||
cd tests/vagrant
|
||||
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
|
||||
on_retry_command: |
|
||||
echo "RUN CLEAN UP: Destroy vagrant and one more try"
|
||||
cd tests/vagrant
|
||||
sleep 10
|
||||
vagrant destroy --force
|
||||
|
||||
- name: "Test Local scripts with ${{matrix.name}}"
|
||||
if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
|
||||
uses: nick-fields/retry@v2
|
||||
with:
|
||||
max_attempts: 2
|
||||
timeout_minutes: 40
|
||||
retry_on: error
|
||||
command: |
|
||||
set -eux
|
||||
cd tests/vagrant
|
||||
TEST_CASE='--local-install' \
|
||||
DISTR='${{ matrix.distr }}' \
|
||||
OS='${{matrix.os}}' \
|
||||
RAM='5100' \
|
||||
CPU='3' \
|
||||
DOWNLOAD_SCRIPT='-ds false' \
|
||||
TEST_REPO='-tr true' \
|
||||
ARGUMENTS="-arg '--skiphardwarecheck true --makeswap false --localscripts true'" \
|
||||
vagrant up
|
||||
on_retry_command: |
|
||||
echo "RUN CLEAN UP: Destroy vagrant and one more try"
|
||||
cd tests/vagrant
|
||||
sleep 10
|
||||
vagrant destroy --force
|
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@v3
|
||||
|
||||
- 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@v2
|
||||
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
|
32
.github/workflows/config-build.yml
vendored
Normal file
32
.github/workflows/config-build.yml
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
name: 4testing multiarch-config-build
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'hotfix/v*'
|
||||
- 'release/v*'
|
||||
- 'develop'
|
||||
paths:
|
||||
- 'config/**'
|
||||
- 'install/docker/Dockerfile.app'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
|
||||
select-branches:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out the code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Dispatch Action
|
||||
run: |
|
||||
echo "${GITHUB_REF_NAME}"
|
||||
|
||||
curl \
|
||||
-X POST \
|
||||
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
|
||||
"https://api.github.com/repos/ONLYOFFICE/DocSpace-buildtools/dispatches" \
|
||||
-H "Accept: application/vnd.github.everest-preview+json" \
|
||||
--data '{"event_type": "config-trigger-action", "client_payload": { "branches": ["'"${GITHUB_REF_NAME}"'"]}}'
|
40
.github/workflows/cron-build.yml
vendored
Normal file
40
.github/workflows/cron-build.yml
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
name: 4testing multiarch-cron-build
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 20 * * *'
|
||||
|
||||
jobs:
|
||||
|
||||
select-branches:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out the code
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: List Branches
|
||||
id: list-branches
|
||||
run: |
|
||||
all_branches=$(git ls-remote -hq | sed -n 's/^[0-9a-f]\{40\}\s\+refs\/heads\//''/p')
|
||||
matching_branches=""
|
||||
|
||||
for branch in $all_branches; do
|
||||
if [[ $branch =~ ^release/v[0-9]+ || $branch =~ ^hotfix/v[0-9]+ || $branch == "develop" ]]; then
|
||||
matching_branches="${matching_branches},\"${branch}\""
|
||||
fi
|
||||
done
|
||||
|
||||
matching_branches=${matching_branches#,}
|
||||
echo "json_output=[${matching_branches}]" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Dispatch Action
|
||||
run: |
|
||||
echo "${{ steps.list-branches.outputs.json_output }}"
|
||||
|
||||
curl \
|
||||
-X POST \
|
||||
-u "${{ secrets.USERNAME}}:${{secrets.TOKEN}}" \
|
||||
"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 }}}}'
|
84
.github/workflows/main-build.yml
vendored
Normal file
84
.github/workflows/main-build.yml
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
name: 4testing multiarch-build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
zap:
|
||||
description: 'Run ZAP scanning after build?'
|
||||
type: boolean
|
||||
|
||||
repository_dispatch:
|
||||
types:
|
||||
- cron-trigger-action
|
||||
- config-trigger-action
|
||||
- client-trigger-action
|
||||
- server-trigger-action
|
||||
|
||||
env:
|
||||
DOCKER_PATH: "/install/docker"
|
||||
REPO: "onlyoffice"
|
||||
DOCKER_IMAGE_PREFIX: "4testing-docspace"
|
||||
DOCKERFILE: "Dockerfile.app"
|
||||
|
||||
jobs:
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
platform: [linux/amd64]
|
||||
branch: ${{ github.event.client_payload.branches }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: ${{ matrix.branch }}
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Free Disk Space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/lib/android /opt/ghc
|
||||
sudo docker image prune --all --force
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Build 4testing
|
||||
id: build
|
||||
run: |
|
||||
cd .${DOCKER_PATH}
|
||||
if [ "${{ matrix.branch }}" = "develop" ]; then
|
||||
DOCKER_TAG="develop.${{ github.run_number }}"
|
||||
else
|
||||
DOCKER_TAG=$(echo "${{ matrix.branch }}" | sed '/^release\b\|^hotfix\b\|^feature\b/s/release.*\/\|hotfix.*\/\|feature.*\///; s/-git-action$//; s/^v//').${{github.run_number}}
|
||||
fi
|
||||
export DOCKER_TAG
|
||||
docker buildx bake -f build.yml \
|
||||
--set *.args.GIT_BRANCH=${{ matrix.branch }} \
|
||||
--set *.platform=linux/amd64 \
|
||||
--push
|
||||
|
||||
echo "version=${DOCKER_TAG}" >> "$GITHUB_OUTPUT"
|
||||
shell: bash
|
||||
|
||||
- name: Run zap action if needed
|
||||
if: ${{ github.event.action == 'cron-trigger-action' || github.event_name == 'workflow_dispatch' }}
|
||||
env:
|
||||
RUN_ZAP: ${{ github.event.inputs.zap || 'true' }}
|
||||
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
||||
VERSION: ${{ steps.build.outputs.version }}
|
||||
shell: bash
|
||||
run: |
|
||||
if [[ ${{ matrix.branch }} =~ release || ${{ matrix.branch }} =~ hotfix && ${RUN_ZAP} == true ]]; then
|
||||
gh workflow run zap-scan.yaml \
|
||||
--repo ONLYOFFICE/DocSpace \
|
||||
-f branch=${{ matrix.branch }} \
|
||||
-f version=${VERSION}
|
||||
fi
|
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@v3
|
||||
|
||||
- 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@v2
|
||||
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
|
@ -30,6 +30,7 @@ login = f"{local_ip}:5011"
|
||||
client = f"{local_ip}:5001"
|
||||
oauth = f"{local_ip}:8080"
|
||||
oauth_api = f"{local_ip}:9090"
|
||||
management = f"{local_ip}:5015"
|
||||
portal_url = f"http://{local_ip}"
|
||||
|
||||
force = False
|
||||
@ -172,6 +173,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["SERVICE_OAUTH"] = oauth
|
||||
os.environ["SERVICE_OAUTH_API"] = oauth_api
|
||||
@ -195,6 +197,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
|
||||
|
@ -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")
|
||||
|
@ -2,7 +2,7 @@
|
||||
"AllowedHosts": "*",
|
||||
"core": {
|
||||
"base-domain": "",
|
||||
"cors": "",
|
||||
"cors": "*",
|
||||
"machinekey": "1123askdasjklasbnd",
|
||||
"notify": {
|
||||
"postman": "log"
|
||||
@ -24,7 +24,12 @@
|
||||
"hosting": {
|
||||
"intervalCheckRegisterInstanceInSeconds": "1",
|
||||
"timeUntilUnregisterInSeconds": "15",
|
||||
"singletonMode": true,
|
||||
"singletonMode": false,
|
||||
"rateLimiterOptions": {
|
||||
"enable": "false",
|
||||
"knownNetworks": [],
|
||||
"knownIPAddresses": ["127.0.0.1"]
|
||||
},
|
||||
"forwardedHeadersOptions": {
|
||||
"knownNetworks": [],
|
||||
"knownProxies": ["127.0.0.1"]
|
||||
@ -178,6 +183,7 @@
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pdf",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
@ -221,9 +227,10 @@
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xltm",
|
||||
".xltx"
|
||||
".xltx",
|
||||
".pdf"
|
||||
],
|
||||
"formfilling-docs": [".oform"],
|
||||
"formfilling-docs": [".pdf"],
|
||||
"customfilter-docs":
|
||||
[
|
||||
".xlsm",
|
||||
@ -374,7 +381,7 @@
|
||||
"url": "/socket.io",
|
||||
"internal": "http://localhost:9899/"
|
||||
},
|
||||
"cultures": "az,cs,el-GR,es,fr,hy-AM,ja-JP,lo-LA,nl,pt,ro,sk,tr,vi,bg,de,en-US,en-GB,fi,it,ko-KR,lv,pl,pt-BR,ru,sl,uk-UA,ar-SA,zh-CN",
|
||||
"cultures": "az,bg,cs,de,el-GR,en-GB,en-US,es,fi,fr,hy-AM,it,lv,nl,pl,pt,pt-BR,ro,ru,sk,sl,vi,tr,uk-UA,ar-SA,lo-LA,ja-JP,zh-CN,ko-KR",
|
||||
"controlpanel": {
|
||||
"url": ""
|
||||
},
|
||||
@ -383,6 +390,7 @@
|
||||
"teamlab-site": "http://www.onlyoffice.com",
|
||||
"help-center": "https://helpcenter.onlyoffice.com/{ru|de|fr|es|it}",
|
||||
"api-docs": "https://api.onlyoffice.com",
|
||||
"user-forum": "https://forum.onlyoffice.com/",
|
||||
"book-training-email": "training@onlyoffice.com",
|
||||
"documentation-email": "documentation@onlyoffice.com",
|
||||
"max-upload-size": 5242880,
|
||||
@ -525,7 +533,7 @@
|
||||
"media": ["*.zdassets.com"]
|
||||
},
|
||||
"firebase": {
|
||||
"script": ["*.googleapis.com"],
|
||||
"script": ["*.googleapis.com", "*.firebaseio.com"],
|
||||
"frame": ["personal-teamlab-guru.firebaseapp.com"],
|
||||
"connect": ["personal-teamlab-guru.firebaseapp.com", "*.googleapis.com"]
|
||||
},
|
||||
@ -553,9 +561,10 @@
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "true",
|
||||
"upload": "true",
|
||||
"delete": "true",
|
||||
"extension": ".zip",
|
||||
"maxSize": 5242880,
|
||||
"allow": [],
|
||||
"assetExtensions": [".jpg", ".jpeg", ".png", ".svg"]
|
||||
},
|
||||
"aws": {
|
||||
@ -572,5 +581,21 @@
|
||||
"region": "us-east-1",
|
||||
"tableName": ""
|
||||
}
|
||||
},
|
||||
"webhooks": {
|
||||
"blacklist": [
|
||||
"0.0.0.0/8",
|
||||
"10.0.0.0/8",
|
||||
"100.64.0.0/10",
|
||||
"127.0.0.0/8",
|
||||
"169.254.0.0/16",
|
||||
"172.16.0.0/12",
|
||||
"192.168.0.0/16",
|
||||
"::/128",
|
||||
"::1/128",
|
||||
"fc00::/8",
|
||||
"fd00::/8",
|
||||
"fe80::/64"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"kafka": {
|
||||
"BootstrapServers": "localhost:9092"
|
||||
}
|
||||
}
|
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;
|
||||
}
|
||||
}
|
@ -45,10 +45,15 @@ 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";
|
||||
~*\/(api\/2\.0.*|storage|login\.ashx|filehandler\.ashx|ChunkedUploader.ashx|ThirdPartyAppHandler|apisystem|sh|remoteEntry\.js|debuginfo\.md|static\/scripts\/api\.poly\.js) "no-cache, no-store, no-transform";
|
||||
~*\/(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";
|
||||
}
|
||||
|
||||
map $request_uri $content_security_policy {
|
||||
"" "";
|
||||
~*\/(ds-vpath)\/ "default-src *; script-src * 'unsafe-inline' 'unsafe-eval'; script-src-elem * 'unsafe-inline'; img-src * data:; style-src * 'unsafe-inline' data:; font-src * data:; frame-src * ascdesktop:; object-src; connect-src * ascdesktop:;";
|
||||
}
|
||||
|
||||
include /etc/nginx/includes/onlyoffice-*.conf;
|
||||
|
||||
server_names_hash_bucket_size 128;
|
||||
@ -60,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;
|
||||
|
||||
@ -95,7 +102,7 @@ server {
|
||||
set $csp "";
|
||||
access_by_lua '
|
||||
local accept_header = ngx.req.get_headers()["Accept"]
|
||||
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") then
|
||||
if ngx.req.get_method() == "GET" and accept_header ~= nil and string.find(accept_header, "html") and not ngx.re.match(ngx.var.request_uri, "ds-vpath") then
|
||||
local key = string.format("csp:%s",ngx.var.host)
|
||||
local redis = require "resty.redis"
|
||||
local red = redis:new()
|
||||
@ -146,11 +153,13 @@ server {
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $proxy_x_forwarded_host/ds-vpath;
|
||||
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
|
||||
add_header Content-Security-Policy $content_security_policy;
|
||||
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
proxy_redirect off;
|
||||
location ~* /(manifest.json|sw.js|appIcon(.)*\.png|icon.svg|bg-error.png|favicon.ico|debuginfo.md) {
|
||||
try_files /$basename /index.html =404;
|
||||
}
|
||||
@ -225,11 +234,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;
|
||||
|
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;
|
||||
}
|
||||
}
|
@ -9,6 +9,8 @@
|
||||
{
|
||||
"Host": "127.0.0.1",
|
||||
"Port": "6379"
|
||||
}]
|
||||
}],
|
||||
"PoolSize":1,
|
||||
"WorkCount": 10
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@
|
||||
"data": "e67be73d-f9ae-4ce1-8fec-1880cb518cb4",
|
||||
"type": "disc",
|
||||
"path": "$STORAGE_ROOT\\Products\\Files",
|
||||
"validatorType":"ASC.Files.Core.Security.FileValidator, ASC.Files.Core",
|
||||
"expires": "0:16:0",
|
||||
"domain": [
|
||||
{
|
||||
@ -88,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,
|
||||
@ -138,6 +148,7 @@
|
||||
},
|
||||
{
|
||||
"name": "systemwebplugins",
|
||||
"visible": false,
|
||||
"data": "00000000-0000-0000-0000-000000000000",
|
||||
"type": "disc",
|
||||
"path": "$STORAGE_ROOT\\Studio\\webplugins",
|
||||
|
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
|
||||
}
|
||||
}
|
@ -155,16 +155,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
|
||||
|
@ -113,8 +113,8 @@ if [ -z "${SKIP_HARDWARE_CHECK}" ]; then
|
||||
SKIP_HARDWARE_CHECK="false";
|
||||
fi
|
||||
|
||||
apt-get update -y --allow-releaseinfo-change;
|
||||
if [ $(dpkg-query -W -f='${Status}' curl 2>/dev/null | grep -c "ok installed") -eq 0 ]; then
|
||||
apt-get update;
|
||||
apt-get install -yq curl;
|
||||
fi
|
||||
|
||||
|
@ -39,20 +39,11 @@ echo "deb [signed-by=/usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg] https://
|
||||
chmod 644 /usr/share/keyrings/elastic-${ELASTIC_DIST}.x.gpg
|
||||
|
||||
# add nodejs repo
|
||||
[[ "$DISTRIB_CODENAME" =~ ^(bionic|stretch)$ ]] && NODE_VERSION="16" || NODE_VERSION="18"
|
||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_VERSION.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/nodesource.gpg --import
|
||||
chmod 644 /usr/share/keyrings/nodesource.gpg
|
||||
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
|
||||
|
||||
@ -73,9 +64,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
|
||||
@ -88,10 +76,6 @@ 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
|
||||
fi
|
||||
|
||||
# add redis repo
|
||||
if [ "$DIST" = "ubuntu" ]; then
|
||||
curl -fsSL https://packages.redis.io/gpg | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/redis.gpg --import
|
||||
@ -103,15 +87,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
|
||||
@ -124,7 +106,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 \
|
||||
|
@ -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="";
|
||||
@ -690,7 +690,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"
|
||||
@ -1156,22 +1156,23 @@ download_files () {
|
||||
|
||||
echo -n "Downloading configuration files to the ${BASE_DIR} directory..."
|
||||
|
||||
if ! command_exists tar; then
|
||||
install_service tar
|
||||
fi
|
||||
|
||||
[ -d "${BASE_DIR}" ] && rm -rf "${BASE_DIR}"
|
||||
mkdir -p ${BASE_DIR}
|
||||
|
||||
if [ -z "${GIT_BRANCH}" ]; then
|
||||
if ! command_exists tar; then
|
||||
install_service tar
|
||||
fi
|
||||
[ -d "${BASE_DIR}" ] && rm -rf "${BASE_DIR}"
|
||||
mkdir -p ${BASE_DIR}
|
||||
curl -s -O https://download.onlyoffice.com/${PRODUCT}/docker.tar.gz
|
||||
tar -xzvf docker.tar.gz -C ${BASE_DIR} >/dev/null
|
||||
rm -rf docker.tar.gz
|
||||
curl -sL -o docker.tar.gz "https://download.${PACKAGE_SYSNAME}.com/${PRODUCT}/docker.tar.gz"
|
||||
tar -xf docker.tar.gz -C ${BASE_DIR}
|
||||
else
|
||||
if ! command_exists svn; then
|
||||
install_service svn subversion
|
||||
fi
|
||||
svn export --force https://github.com/${PACKAGE_SYSNAME}/${PRODUCT}-buildtools/branches/${GIT_BRANCH}/install/docker/ ${BASE_DIR} >/dev/null
|
||||
curl -sL -o docker.tar.gz "https://github.com/${PACKAGE_SYSNAME}/${PRODUCT}-buildtools/archive/${GIT_BRANCH}.tar.gz"
|
||||
tar -xf docker.tar.gz --strip-components=3 -C ${BASE_DIR} --wildcards '*/install/docker/*'
|
||||
fi
|
||||
|
||||
rm -rf docker.tar.gz
|
||||
|
||||
echo "OK"
|
||||
|
||||
reconfigure STATUS ${STATUS}
|
||||
@ -1246,7 +1247,7 @@ install_redis () {
|
||||
|
||||
install_elasticsearch () {
|
||||
if [[ -z ${ELK_HOST} ]] && [ "$INSTALL_ELASTICSEARCH" == "true" ]; then
|
||||
if [ $(free -m | grep -oP '\d+' | head -n 1) -gt "12228" ]; then #RAM ~12Gb
|
||||
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/elasticsearch.yml
|
||||
else
|
||||
sed -i 's/Xms[0-9]g/Xms1g/g; s/Xmx[0-9]g/Xmx1g/g' $BASE_DIR/elasticsearch.yml
|
||||
@ -1294,10 +1295,10 @@ install_product () {
|
||||
|
||||
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
|
||||
|
@ -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
|
||||
|
||||
@ -47,28 +37,20 @@ rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-$REV.noarch.r
|
||||
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
|
||||
|
||||
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
|
||||
fi
|
||||
[ "$REV" = "9" ] && update-crypto-policies --set DEFAULT:SHA1
|
||||
[ "$DIST" != "redhat" ] && { [ "$REV" = "9" ] && TESTING_REPO="--enablerepo=crb" || POWERTOOLS_REPO="--enablerepo=powertools"; } || /usr/bin/crb enable
|
||||
|
||||
#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
|
||||
|
||||
#add nodejs repo
|
||||
[ "$REV" = "8" ] && NODEJS_OPTION="--setopt=nodesource-nodejs.module_hotfixes=1"
|
||||
[ "$REV" = "7" ] && NODE_VERSION="16" || NODE_VERSION="18"
|
||||
yum install -y https://rpm.nodesource.com/pub_${NODE_VERSION}.x/nodistro/repo/nodesource-release-nodistro-1.noarch.rpm || true
|
||||
|
||||
#add dotnet repo
|
||||
[ $REV = "7" ] && rpm -Uvh https://packages.microsoft.com/config/centos/$REV/packages-microsoft-prod.rpm || true
|
||||
NODE_VERSION="18"
|
||||
curl -fsSL https://rpm.nodesource.com/setup_${NODE_VERSION}.x | sed '/update -y/d' | bash - || 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 | tail -n1)"
|
||||
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
|
||||
|
||||
if ! rpm -q mysql-community-server; then
|
||||
@ -108,7 +90,7 @@ curl -o /etc/yum.repos.d/openresty.repo "https://openresty.org/package/centos/${
|
||||
${package_manager} -y install epel-release \
|
||||
python3 \
|
||||
nodejs ${NODEJS_OPTION} \
|
||||
dotnet-sdk-7.0 \
|
||||
dotnet-sdk-8.0 \
|
||||
elasticsearch-${ELASTIC_VERSION} --enablerepo=elasticsearch \
|
||||
mysql-server \
|
||||
postgresql \
|
||||
|
@ -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,17 @@ read_unsupported_installation () {
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
DIST=$(rpm -q --whatprovides redhat-release || rpm -q --whatprovides centos-release)
|
||||
DIST=$(echo "${DIST}" | sed -n '/-.*/s///p')
|
||||
DIST_LOWER=$(echo "${DIST}" | tr '[:upper:]' '[:lower:]')
|
||||
|
||||
REV=$(sed -n 's/.*release\ \([0-9]*\).*/\1/p' /etc/redhat-release)
|
||||
REV=${REV:-"7"}
|
||||
|
||||
# Check if it's Centos less than 8
|
||||
if [ "${REV}" -lt 8 ]; 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
|
||||
|
@ -647,21 +647,25 @@ change_elasticsearch_config(){
|
||||
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
|
||||
if ! grep -q "[-]Xms1g" ${ELASTIC_SEARCH_JAVA_CONF_PATH}; then
|
||||
echo "-Xms4g" >> ${ELASTIC_SEARCH_JAVA_CONF_PATH}
|
||||
else
|
||||
sed -i "s/-Xms1g/-Xms4g/" ${ELASTIC_SEARCH_JAVA_CONF_PATH}
|
||||
fi
|
||||
ELASTICSEATCH_MEMORY="4g"
|
||||
else
|
||||
ELASTICSEATCH_MEMORY="1g"
|
||||
fi
|
||||
|
||||
if ! grep -q "[-]Xmx1g" ${ELASTIC_SEARCH_JAVA_CONF_PATH}; then
|
||||
echo "-Xmx4g" >> ${ELASTIC_SEARCH_JAVA_CONF_PATH}
|
||||
else
|
||||
sed -i "s/-Xmx1g/-Xmx4g/" ${ELASTIC_SEARCH_JAVA_CONF_PATH}
|
||||
fi
|
||||
if grep -qE "^[^#]*-Xms[0-9]g" "${ELASTIC_SEARCH_JAVA_CONF_PATH}"; then
|
||||
sed -i "s/-Xms[0-9]g/-Xms${ELASTICSEATCH_MEMORY}/" "${ELASTIC_SEARCH_JAVA_CONF_PATH}"
|
||||
else
|
||||
echo "-Xms${ELASTICSEATCH_MEMORY}" >> "${ELASTIC_SEARCH_JAVA_CONF_PATH}"
|
||||
fi
|
||||
|
||||
if grep -qE "^[^#]*-Xmx[0-9]g" "${ELASTIC_SEARCH_JAVA_CONF_PATH}"; then
|
||||
sed -i "s/-Xmx[0-9]g/-Xmx${ELASTICSEATCH_MEMORY}/" "${ELASTIC_SEARCH_JAVA_CONF_PATH}"
|
||||
else
|
||||
echo "-Xmx${ELASTICSEATCH_MEMORY}" >> "${ELASTIC_SEARCH_JAVA_CONF_PATH}"
|
||||
fi
|
||||
|
||||
if [ -d /etc/elasticsearch/ ]; then
|
||||
|
@ -9,78 +9,12 @@ OPENRESTY="/etc/openresty/conf.d"
|
||||
DHPARAM_FILE="/etc/ssl/certs/dhparam.pem"
|
||||
WEBROOT_PATH="/var/www/${PRODUCT}"
|
||||
|
||||
if [ "$#" -ge "2" ]; then
|
||||
if [ "$1" != "-f" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
# Check if configuration files are present
|
||||
if [ ! -f "${OPENRESTY}/onlyoffice-proxy-ssl.conf.template" -a ! -f "${OPENRESTY}/onlyoffice-proxy.conf.template" ]; then
|
||||
echo "Error: proxy configuration file not found." && exit 1
|
||||
fi
|
||||
|
||||
# Install certbot if not already installed
|
||||
if ! type "certbot" &> /dev/null; then
|
||||
if type "apt-get" &> /dev/null; then
|
||||
apt-get -y update -qq
|
||||
apt-get -y -q install certbot
|
||||
elif type "yum" &> /dev/null; then
|
||||
yum -y install certbot
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
else
|
||||
echo "Using specified files to configure SSL..."
|
||||
|
||||
DOMAIN=$2
|
||||
CERTIFICATE_FILE=$3
|
||||
PRIVATEKEY_FILE=$4
|
||||
fi
|
||||
|
||||
[[ ! -f "${DHPARAM_FILE}" ]] && openssl dhparam -out ${DHPARAM_FILE} 2048
|
||||
|
||||
CERTIFICATE_FILE="${CERTIFICATE_FILE:-"${LETSENCRYPT}/${PRODUCT}/fullchain.pem"}"
|
||||
PRIVATEKEY_FILE="${PRIVATEKEY_FILE:-"${LETSENCRYPT}/${PRODUCT}/privkey.pem"}"
|
||||
|
||||
if [ -f "${CERTIFICATE_FILE}" -a -f ${PRIVATEKEY_FILE} ]; then
|
||||
if [ -f "${OPENRESTY}/onlyoffice-proxy-ssl.conf.template" ]; then
|
||||
cp -f ${OPENRESTY}/onlyoffice-proxy-ssl.conf.template ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
|
||||
ENVIRONMENT=$(grep -oP 'ENVIRONMENT=\K.*' $(dirname $(dpkg-query -L ${PRODUCT}-api | grep systemd/system/))/${PRODUCT}-api.service)
|
||||
sed -i "s/\(\"portal\":\).*/\1 \"https:\/\/${DOMAIN}\"/" /etc/onlyoffice/docspace/appsettings.$ENVIRONMENT.json
|
||||
sed -i "s~\(ssl_certificate \).*;~\1${CERTIFICATE_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
sed -i "s~\(ssl_certificate_key \).*;~\1${PRIVATEKEY_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
sed -i "s~\(ssl_dhparam \).*;~\1${DHPARAM_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
|
||||
if [[ "${LETSENCRYPT_ENABLE}" = "true" ]]; then
|
||||
# Create and set permissions for ${PRODUCT}-renew-letsencrypt
|
||||
echo '#!/bin/bash' > ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "certbot renew >> /var/log/le-renew.log" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
if [ $(pgrep -x ""systemd"" | wc -l) -gt 0 ]; then
|
||||
echo 'systemctl reload openresty' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
else
|
||||
echo 'service openresty reload' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
fi
|
||||
|
||||
chmod a+x ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
# Add cron job if /etc/cron.d directory exists
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
fi
|
||||
|
||||
[ $(pgrep -x ""systemd"" | wc -l) -gt 0 ] && systemctl reload openresty || service openresty reload
|
||||
|
||||
echo "OK"
|
||||
else
|
||||
echo "Error: proxy configuration file not found." && exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: certificate or private key file not found." && exit 1
|
||||
fi
|
||||
else
|
||||
help(){
|
||||
echo ""
|
||||
echo "This script provided to automatically setup SSL Certificates for DocSpace"
|
||||
echo "Automatically get Let's Encrypt SSL Certificates:"
|
||||
@ -90,10 +24,108 @@ else
|
||||
echo " u1@example.com,u2@example.com."
|
||||
echo " DOMAIN Domain name to apply"
|
||||
echo ""
|
||||
echo "Using your own certificates via the -f parameter:"
|
||||
echo " docspace-ssl-setup -f DOMAIN CERTIFICATE PRIVATEKEY"
|
||||
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 " CERTIFICATE Path to the certificate file for the domain."
|
||||
echo " PRIVATEKEY Path to the private key file for the certificate."
|
||||
echo ""
|
||||
echo "Return to the default proxy configuration using the -d or --default parameter:"
|
||||
echo " docspace-ssl-setup --default"
|
||||
echo ""
|
||||
exit 0
|
||||
}
|
||||
|
||||
case $1 in
|
||||
-f | --file )
|
||||
if [ -n "$2" ] && [ -n "$3" ] && [ -n "$4" ]; then
|
||||
echo "Using specified files to configure SSL..."
|
||||
|
||||
DOMAIN=$2
|
||||
CERTIFICATE_FILE=$3
|
||||
PRIVATEKEY_FILE=$4
|
||||
else
|
||||
help
|
||||
fi
|
||||
;;
|
||||
|
||||
-d | --default )
|
||||
echo "Return to the default proxy configuration..."
|
||||
cp -f ${OPENRESTY}/onlyoffice-proxy.conf.template ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
sed "s!\(^worker_processes\).*;!\1 $(grep processor /proc/cpuinfo | wc -l);!" -i "${OPENRESTY}/onlyoffice-proxy.conf"
|
||||
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
|
||||
echo "OK"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
* )
|
||||
if [ "$#" -ge "2" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
|
||||
# Install certbot if not already installed
|
||||
if ! type "certbot" &> /dev/null; then
|
||||
if type "apt-get" &> /dev/null; then
|
||||
apt-get -y update -qq
|
||||
apt-get -y -q install certbot
|
||||
elif type "yum" &> /dev/null; then
|
||||
yum -y install certbot
|
||||
fi
|
||||
fi
|
||||
|
||||
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
|
||||
else
|
||||
help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ ! -f "${DHPARAM_FILE}" ]] && openssl dhparam -out ${DHPARAM_FILE} 2048
|
||||
CERTIFICATE_FILE="${CERTIFICATE_FILE:-"${LETSENCRYPT}/${PRODUCT}/fullchain.pem"}"
|
||||
PRIVATEKEY_FILE="${PRIVATEKEY_FILE:-"${LETSENCRYPT}/${PRODUCT}/privkey.pem"}"
|
||||
|
||||
if [ -f "${CERTIFICATE_FILE}" ]; then
|
||||
if [ -f "${PRIVATEKEY_FILE}" ]; then
|
||||
cp -f ${OPENRESTY}/onlyoffice-proxy-ssl.conf.template ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
|
||||
PACKAGE_FILE_CHECKER=$(command -v dpkg-query &> /dev/null && echo "dpkg-query -L" || echo "rpm -ql")
|
||||
ENVIRONMENT=$(grep -oP 'ENVIRONMENT=\K.*' $(dirname $(${PACKAGE_FILE_CHECKER} ${PRODUCT}-api | grep systemd/system/))/${PRODUCT}-api.service)
|
||||
sed -i "s/\(\"portal\":\).*/\1 \"https:\/\/${DOMAIN}\"/" /etc/onlyoffice/docspace/appsettings.$ENVIRONMENT.json
|
||||
sed -i "s~\(ssl_certificate \).*;~\1${CERTIFICATE_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
sed -i "s~\(ssl_certificate_key \).*;~\1${PRIVATEKEY_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
sed -i "s~\(ssl_dhparam \).*;~\1${DHPARAM_FILE};~g" ${OPENRESTY}/onlyoffice-proxy.conf
|
||||
|
||||
if [[ "${LETSENCRYPT_ENABLE}" = "true" ]]; then
|
||||
# Create and set permissions for ${PRODUCT}-renew-letsencrypt
|
||||
echo '#!/bin/bash' > ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "certbot renew >> /var/log/le-renew.log" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
if [ $(pgrep -x ""systemd"" | wc -l) -gt 0 ]; then
|
||||
echo 'systemctl reload openresty' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
else
|
||||
echo 'service openresty reload' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
fi
|
||||
|
||||
chmod a+x ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
# Add cron job if /etc/cron.d directory exists
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
fi
|
||||
|
||||
[ $(pgrep -x ""systemd"" | wc -l) -gt 0 ] && systemctl reload openresty || service openresty reload
|
||||
|
||||
echo "OK"
|
||||
else
|
||||
echo "Error: private key file at path ${PRIVATEKEY_FILE} not found." && exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: certificate file at path ${CERTIFICATE_FILE} not found." && exit 1
|
||||
fi
|
||||
|
@ -101,7 +101,6 @@ done
|
||||
services_name_backend_nodejs=()
|
||||
services_name_backend_nodejs+=(ASC.Socket.IO)
|
||||
services_name_backend_nodejs+=(ASC.SsoAuth)
|
||||
services_name_backend_nodejs+=(ASC.TelegramReports)
|
||||
|
||||
# Publish backend services (Nodejs)
|
||||
for i in ${!services_name_backend_nodejs[@]}; do
|
||||
|
@ -13,10 +13,18 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-pm | --packagemanager )
|
||||
if [ "$2" != "" ]; then
|
||||
PACKAGE_MANAGER=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-? | -h | --help )
|
||||
echo " Usage: bash build.sh [PARAMETER] [[PARAMETER], ...]"
|
||||
echo " Parameters:"
|
||||
echo " -pm, --packagemanager dependencies for package manager"
|
||||
echo " -bp, --buildpath output path"
|
||||
echo " -?, -h, --help this help"
|
||||
echo " Examples"
|
||||
@ -64,6 +72,11 @@ SERVICE_NAME=(
|
||||
)
|
||||
|
||||
reassign_values (){
|
||||
if [[ "${PACKAGE_MANAGER}" = "deb" ]]; then
|
||||
DEPENDENCY_LIST="mysql.service redis-server.service rabbitmq-server.service"
|
||||
else
|
||||
DEPENDENCY_LIST="mysqld.service redis.service rabbitmq-server.service"
|
||||
fi
|
||||
case $1 in
|
||||
api )
|
||||
SERVICE_PORT="5000"
|
||||
@ -79,6 +92,7 @@ reassign_values (){
|
||||
SERVICE_PORT="9899"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Socket.IO/"
|
||||
EXEC_FILE="server.js"
|
||||
DEPENDENCY_LIST=""
|
||||
;;
|
||||
studio-notify )
|
||||
SERVICE_PORT="5006"
|
||||
@ -106,6 +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"
|
||||
;;
|
||||
studio )
|
||||
SERVICE_PORT="5003"
|
||||
@ -122,6 +137,7 @@ reassign_values (){
|
||||
SERVICE_PORT="9834"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.SsoAuth/"
|
||||
EXEC_FILE="app.js"
|
||||
DEPENDENCY_LIST=""
|
||||
;;
|
||||
clear-events )
|
||||
SERVICE_PORT="5027"
|
||||
@ -138,6 +154,7 @@ reassign_values (){
|
||||
SERVICE_PORT="5013"
|
||||
WORK_DIR="${BASE_DIR}/products/ASC.Files/editor/"
|
||||
EXEC_FILE="server.js"
|
||||
DEPENDENCY_LIST=""
|
||||
;;
|
||||
migration-runner )
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Migration.Runner/"
|
||||
@ -147,11 +164,13 @@ reassign_values (){
|
||||
SERVICE_PORT="5011"
|
||||
WORK_DIR="${BASE_DIR}/products/ASC.Login/login/"
|
||||
EXEC_FILE="server.js"
|
||||
DEPENDENCY_LIST="openresty.service"
|
||||
;;
|
||||
healthchecks )
|
||||
SERVICE_PORT="5033"
|
||||
WORK_DIR="${BASE_DIR}/services/ASC.Web.HealthChecks.UI/"
|
||||
EXEC_FILE="ASC.Web.HealthChecks.UI.dll"
|
||||
DEPENDENCY_LIST=""
|
||||
;;
|
||||
esac
|
||||
SERVICE_NAME="$1"
|
||||
@ -173,6 +192,7 @@ reassign_values (){
|
||||
}
|
||||
|
||||
write_to_file () {
|
||||
[[ -n ${DEPENDENCY_LIST} ]] && sed -e "s_\(After=.*\)_\1 ${DEPENDENCY_LIST}_" -e "/After=/a Wants=${DEPENDENCY_LIST}" -i $BUILD_PATH/${PRODUCT}-${SERVICE_NAME[$i]}.service
|
||||
sed -i -e 's#${SERVICE_NAME}#'$SERVICE_NAME'#g' -e 's#${WORK_DIR}#'$WORK_DIR'#g' -e "s#\${RESTART}#$RESTART#g" \
|
||||
-e "s#\${EXEC_START}#$EXEC_START#g" -e "s#\${SERVICE_TYPE}#$SERVICE_TYPE#g" $BUILD_PATH/${PRODUCT}-${SERVICE_NAME[$i]}.service
|
||||
}
|
||||
|
@ -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,14 +48,14 @@ 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}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: elasticsearch (= 7.16.3)
|
||||
Description: {{product}}-files
|
||||
The service which handles API requests related to
|
||||
@ -64,7 +64,7 @@ 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}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, elasticsearch (= 7.16.3)
|
||||
Description: {{product}}-files-services
|
||||
The service which launches additional services related to file management:
|
||||
@ -78,7 +78,7 @@ 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}
|
||||
Depends: {{product}}-common (= {{package_header_tag_version}}), dotnet-sdk-8.0, ${misc:Depends}, ${shlibs:Depends}
|
||||
Recommends: ffmpeg, elasticsearch (= 7.16.3)
|
||||
Description: {{product}}-notify
|
||||
The service which launches additional services
|
||||
@ -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
install/deb/debian/rules
Executable file → Normal file
1
install/deb/debian/rules
Executable file → Normal file
@ -81,6 +81,7 @@ override_dh_auto_build: check_archives
|
||||
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 ${CURDIR}/debian/*.install | grep -oP 'debian/\K.*' | grep -o '^[^.]*'); do \
|
||||
cp ${CURDIR}/debian/source/lintian-overrides ${CURDIR}/debian/$$i.lintian-overrides; \
|
||||
|
@ -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/
|
||||
@ -179,6 +179,7 @@ RUN chown nginx:nginx /etc/nginx/* -R && \
|
||||
sed -i 's/127.0.0.1:9090/$service_oauth_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:8080/$service_oauth/' /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"
|
||||
@ -32,7 +32,7 @@ RUN apt-get -y update && \
|
||||
npm && \
|
||||
locale-gen en_US.UTF-8 && \
|
||||
npm install --global yarn && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_18.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/nodesource.gpg --import && \
|
||||
chmod 644 /usr/share/keyrings/nodesource.gpg && \
|
||||
apt-get -y update && \
|
||||
@ -84,13 +84,13 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip \
|
||||
libgdiplus && \
|
||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
@ -99,7 +99,7 @@ COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onl
|
||||
EXPOSE 5050
|
||||
ENTRYPOINT ["python3", "docker-entrypoint.py"]
|
||||
|
||||
FROM node:18-slim as noderun
|
||||
FROM node:20-slim as noderun
|
||||
ARG BUILD_PATH
|
||||
ARG SRC_PATH
|
||||
ENV BUILD_PATH=${BUILD_PATH}
|
||||
@ -114,12 +114,12 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces --break-system-packages && \
|
||||
sudo \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade --break-system-packages jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=base --chown=onlyoffice:onlyoffice /app/onlyoffice/config/* /app/onlyoffice/config/
|
||||
|
@ -48,7 +48,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}
|
||||
@ -63,11 +63,11 @@ RUN mkdir -p /var/log/onlyoffice && \
|
||||
chown onlyoffice:onlyoffice /var/www -R && \
|
||||
apt-get -y update && \
|
||||
apt-get install -yq \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
pip3 install --upgrade jsonpath-ng multipledispatch netaddr netifaces && \
|
||||
nano \
|
||||
curl \
|
||||
vim \
|
||||
python3-pip && \
|
||||
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/
|
||||
@ -123,6 +123,7 @@ RUN chown onlyoffice:onlyoffice /etc/nginx/* -R && \
|
||||
sed -i 's/127.0.0.1:9090/$service_oauth_api/' /etc/nginx/conf.d/onlyoffice.conf && \
|
||||
sed -i 's/127.0.0.1:8080/$service_oauth/' /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 && \
|
||||
|
@ -9,92 +9,17 @@ LETSENCRYPT="/etc/letsencrypt/live";
|
||||
DHPARAM_FILE="/etc/ssl/certs/dhparam.pem"
|
||||
WEBROOT_PATH="/letsencrypt"
|
||||
|
||||
if [ "$#" -ge "2" ]; then
|
||||
if [ "$1" != "-f" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
|
||||
if [ -f "${DOCKERCOMPOSE}/proxy.yml" ]; then
|
||||
:
|
||||
elif [ -f "/app/onlyoffice/proxy.yml" ]; then
|
||||
DOCKERCOMPOSE="/app/onlyoffice"
|
||||
DIR="/app/onlyoffice/config"
|
||||
else
|
||||
echo "Error: proxy configuration file not found." && exit 1
|
||||
fi
|
||||
|
||||
if ! docker ps -f "name=onlyoffice-proxy" --format '{{.Names}}' | grep -q "onlyoffice-proxy"; then
|
||||
echo "Error: the proxy container is not running" && exit 1
|
||||
fi
|
||||
|
||||
if ! docker volume inspect "onlyoffice_webroot_path" &> /dev/null; then
|
||||
echo "Error: missing webroot_path volume" && exit 1
|
||||
fi
|
||||
|
||||
echo "Generating Let's Encrypt SSL Certificates..."
|
||||
|
||||
# Request and generate Let's Encrypt SSL certificate
|
||||
docker run -it --rm \
|
||||
-v /etc/letsencrypt:/etc/letsencrypt \
|
||||
-v /var/lib/letsencrypt:/var/lib/letsencrypt \
|
||||
-v /var/log:/var/log \
|
||||
-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}
|
||||
else
|
||||
echo "Using specified files to configure SSL..."
|
||||
|
||||
DOMAIN=$2
|
||||
CERTIFICATE_FILE=$3
|
||||
PRIVATEKEY_FILE=$4
|
||||
fi
|
||||
|
||||
[[ ! -f "${DHPARAM_FILE}" ]] && openssl dhparam -out ${DHPARAM_FILE} 2048
|
||||
|
||||
CERTIFICATE_FILE="${CERTIFICATE_FILE:-"${LETSENCRYPT}/${PRODUCT}/fullchain.pem"}"
|
||||
PRIVATEKEY_FILE="${PRIVATEKEY_FILE:-"${LETSENCRYPT}/${PRODUCT}/privkey.pem"}"
|
||||
|
||||
if [ -f "${CERTIFICATE_FILE}" -a -f ${PRIVATEKEY_FILE} ]; then
|
||||
if [ -f ${DOCKERCOMPOSE}/.env -a -f ${DOCKERCOMPOSE}/proxy-ssl.yml ]; 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
|
||||
sed -i "s~\(DHPARAM_PATH=\).*~\1\"${DHPARAM_FILE}\"~g" ${DOCKERCOMPOSE}/.env
|
||||
|
||||
if [[ "${LETSENCRYPT_ENABLE}" = "true" ]]; then
|
||||
# Create and set permissions for docspace-renew-letsencrypt
|
||||
echo '#!/bin/bash' > ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml down" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo 'docker run -it --rm \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' -v /etc/letsencrypt:/etc/letsencrypt \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' -v /var/lib/letsencrypt:/var/lib/letsencrypt \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' certbot/certbot renew' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up -d" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
chmod a+x ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
# Add cron job if /etc/cron.d directory exists
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up -d onlyoffice-files
|
||||
|
||||
echo "OK"
|
||||
else
|
||||
echo "Error: proxy configuration file not found." && exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: certificate or private key file not found." && exit 1
|
||||
fi
|
||||
# Check if configuration files are present
|
||||
if [ -f "/app/onlyoffice/.env" -a -f "/app/onlyoffice/proxy.yml" -a -f "/app/onlyoffice/proxy-ssl.yml" ]; then
|
||||
DOCKERCOMPOSE="/app/onlyoffice"
|
||||
DIR="/app/onlyoffice/config"
|
||||
elif [ -f "${DOCKERCOMPOSE}/.env" -a -f "${DOCKERCOMPOSE}/proxy.yml" -a -f "${DOCKERCOMPOSE}/proxy-ssl.yml" ]; then
|
||||
:
|
||||
else
|
||||
echo "Error: configuration files not found." && exit 1
|
||||
fi
|
||||
|
||||
help(){
|
||||
echo ""
|
||||
echo "This script provided to automatically setup SSL Certificates for DocSpace"
|
||||
echo "Automatically get Let's Encrypt SSL Certificates:"
|
||||
@ -104,10 +29,123 @@ else
|
||||
echo " u1@example.com,u2@example.com."
|
||||
echo " DOMAIN Domain name to apply"
|
||||
echo ""
|
||||
echo "Using your own certificates via the -f parameter:"
|
||||
echo " docspace-ssl-setup -f DOMAIN CERTIFICATE PRIVATEKEY"
|
||||
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 " CERTIFICATE Path to the certificate file for the domain."
|
||||
echo " PRIVATEKEY Path to the private key file for the certificate."
|
||||
echo ""
|
||||
echo "Return to the default proxy configuration using the -d or --default parameter:"
|
||||
echo " docspace-ssl-setup --default"
|
||||
echo ""
|
||||
exit 0
|
||||
}
|
||||
|
||||
case $1 in
|
||||
-f | --file )
|
||||
if [ -n "$2" ] && [ -n "$3" ] && [ -n "$4" ]; then
|
||||
echo "Using specified files to configure SSL..."
|
||||
DOMAIN=$2
|
||||
CERTIFICATE_FILE=$3
|
||||
PRIVATEKEY_FILE=$4
|
||||
else
|
||||
help
|
||||
fi
|
||||
;;
|
||||
|
||||
-d | --default )
|
||||
echo "Return to the default proxy configuration..."
|
||||
if [ -z "$(awk -F '=' '/^\s*DOCUMENT_SERVER_URL_EXTERNAL/{gsub(/^[[:space:]]*"|"[[:space:]]*$/, "", $2); print $2}' ${DOCKERCOMPOSE}/.env)" ]; then
|
||||
sed "s#\(APP_URL_PORTAL=\).*#\1\"http://onlyoffice-router:8092\"#g" -i ${DOCKERCOMPOSE}/.env
|
||||
else
|
||||
sed "s#\(APP_URL_PORTAL=\).*#\1\"http://$(curl -s ifconfig.me)\"#g" -i ${DOCKERCOMPOSE}/.env
|
||||
fi
|
||||
|
||||
[[ -f "${DIR}/${PRODUCT}-renew-letsencrypt" ]] && rm -rf "${DIR}/${PRODUCT}-renew-letsencrypt"
|
||||
|
||||
if docker ps -f "name=onlyoffice-proxy" --format '{{.Names}}' | grep -q "onlyoffice-proxy"; then
|
||||
if docker ps -f "name=onlyoffice-proxy" --format "{{.Ports}}" | grep -q "443"; then
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml down
|
||||
fi
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy.yml up -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml restart onlyoffice-files
|
||||
|
||||
echo "OK"
|
||||
exit 0
|
||||
;;
|
||||
|
||||
* )
|
||||
if [ "$#" -ge "2" ]; then
|
||||
MAIL=$1
|
||||
DOMAIN=$2
|
||||
LETSENCRYPT_ENABLE="true"
|
||||
|
||||
if ! docker volume inspect "onlyoffice_webroot_path" &> /dev/null; then
|
||||
echo "Error: missing webroot_path volume" && exit 1
|
||||
fi
|
||||
|
||||
if ! docker ps -f "name=onlyoffice-proxy" --format '{{.Names}}' | grep -q "onlyoffice-proxy"; then
|
||||
echo "Error: the proxy container is not running" && exit 1
|
||||
fi
|
||||
|
||||
echo "Generating Let's Encrypt SSL Certificates..."
|
||||
|
||||
# Request and generate Let's Encrypt SSL certificate
|
||||
docker run -it --rm \
|
||||
-v /etc/letsencrypt:/etc/letsencrypt \
|
||||
-v /var/lib/letsencrypt:/var/lib/letsencrypt \
|
||||
-v /var/log:/var/log \
|
||||
-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}
|
||||
else
|
||||
help
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ ! -f "${DHPARAM_FILE}" ]] && openssl dhparam -out ${DHPARAM_FILE} 2048
|
||||
CERTIFICATE_FILE="${CERTIFICATE_FILE:-"${LETSENCRYPT}/${PRODUCT}/fullchain.pem"}"
|
||||
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
|
||||
sed -i "s~\(DHPARAM_PATH=\).*~\1\"${DHPARAM_FILE}\"~g" ${DOCKERCOMPOSE}/.env
|
||||
|
||||
if [[ "${LETSENCRYPT_ENABLE}" = "true" ]]; then
|
||||
# Create and set permissions for docspace-renew-letsencrypt
|
||||
echo '#!/bin/bash' > ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml down" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo 'docker run -it --rm \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' -v /etc/letsencrypt:/etc/letsencrypt \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' -v /var/lib/letsencrypt:/var/lib/letsencrypt \' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo ' certbot/certbot renew' >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
echo "docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up -d" >> ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
chmod a+x ${DIR}/${PRODUCT}-renew-letsencrypt
|
||||
|
||||
# Add cron job if /etc/cron.d directory exists
|
||||
if [ -d /etc/cron.d ]; then
|
||||
echo -e "@weekly root ${DIR}/${PRODUCT}-renew-letsencrypt" | tee /etc/cron.d/${PRODUCT}-letsencrypt
|
||||
fi
|
||||
fi
|
||||
|
||||
docker-compose -f ${DOCKERCOMPOSE}/proxy-ssl.yml up -d
|
||||
docker-compose -f ${DOCKERCOMPOSE}/docspace.yml up -d onlyoffice-files
|
||||
|
||||
echo "OK"
|
||||
else
|
||||
echo "Error: private key file at path ${PRIVATEKEY_FILE} not found." && exit 1
|
||||
fi
|
||||
else
|
||||
echo "Error: certificate file at path ${CERTIFICATE_FILE} not found." && exit 1
|
||||
fi
|
||||
|
@ -4,6 +4,8 @@ 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 X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
more_clear_headers 'Server';
|
||||
more_clear_headers 'X-Powered-By';
|
||||
|
||||
## HTTP host
|
||||
server {
|
||||
|
@ -4,6 +4,8 @@ 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 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;
|
||||
|
@ -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;
|
||||
|
@ -132,6 +132,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 +185,7 @@ services:
|
||||
image: ${Baseimage_Proxy_Run}
|
||||
environment:
|
||||
- SERVICE_CLIENT=${SERVICE_CLIENT}
|
||||
- SERVICE_MANAGEMENT=${SERVICE_MANAGEMENT}
|
||||
volumes:
|
||||
- ${ROOT_DIR}/client/public:/var/www/public/
|
||||
|
||||
|
@ -253,6 +253,7 @@ services:
|
||||
- "8081"
|
||||
- "8099"
|
||||
- "8092"
|
||||
- "80"
|
||||
ports:
|
||||
- 80:8092
|
||||
environment:
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
cd %{_builddir}/buildtools
|
||||
|
||||
bash install/common/systemd/build.sh
|
||||
bash install/common/systemd/build.sh -pm "rpm"
|
||||
|
||||
bash install/common/build-frontend.sh --srcpath %{_builddir} -di "false"
|
||||
bash install/common/build-backend.sh --srcpath %{_builddir}
|
||||
|
@ -55,6 +55,7 @@ cp -rf %{_builddir}/server/ASC.Migration.Runner/service/* "%{buildroot}%{buildpa
|
||||
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"
|
||||
cp -rf %{_builddir}/buildtools/install/docker/config/nginx/onlyoffice-proxy.conf "%{buildroot}%{_sysconfdir}/openresty/conf.d/onlyoffice-proxy.conf.template"
|
||||
cp -rf %{_builddir}/buildtools/install/docker/config/nginx/onlyoffice-proxy-ssl.conf "%{buildroot}%{_sysconfdir}/openresty/conf.d/onlyoffice-proxy-ssl.conf.template"
|
||||
cp -rf %{_builddir}/buildtools/install/docker/config/nginx/letsencrypt.conf "%{buildroot}%{_sysconfdir}/openresty/includes/letsencrypt.conf"
|
||||
cp -rf %{_builddir}/buildtools/install/common/systemd/modules/* "%{buildroot}/usr/lib/systemd/system/"
|
||||
|
@ -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
|
||||
|
@ -29,7 +29,7 @@ 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
|
||||
|
||||
|
@ -23,14 +23,14 @@
|
||||
<ROW Property="APP_URLS" Value="http://0.0.0.0"/>
|
||||
<ROW Property="ARPCOMMENTS" Value="[|PRODUCT_NAME] is a platform based on .NET Core and React engines which comprises document management features and makes it possible to implement advanced folder management." ValueLocId="*"/>
|
||||
<ROW Property="ARPCONTACT" Value="20A-6, Ernesta Birznieka-Upisha str., Riga, LV-1050"/>
|
||||
<ROW Property="ARPHELPLINK" Value="http://dev.onlyoffice.org/"/>
|
||||
<ROW Property="ARPHELPLINK" Value="https://forum.onlyoffice.com"/>
|
||||
<ROW Property="ARPHELPTELEPHONE" Value="+371 66016425"/>
|
||||
<ROW Property="ARPNOMODIFY" MultiBuildValue="DefaultBuild:1"/>
|
||||
<ROW Property="ARPNOREPAIR" Value="1" MultiBuildValue="DefaultBuild:1#ExeBuild:1"/>
|
||||
<ROW Property="ARPPRODUCTICON" Value="icon.exe" Type="8"/>
|
||||
<ROW Property="ARPSYSTEMCOMPONENT" Value="1"/>
|
||||
<ROW Property="ARPURLINFOABOUT" Value="http://www.onlyoffice.com"/>
|
||||
<ROW Property="ARPURLUPDATEINFO" Value="http://www.onlyoffice.com/download.aspx"/>
|
||||
<ROW Property="ARPURLINFOABOUT" Value="https://helpdesk.onlyoffice.com"/>
|
||||
<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="DATABASE_MIGRATION" Value="true"/>
|
||||
@ -41,10 +41,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 +53,11 @@
|
||||
<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_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 +366,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 +390,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 +468,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 +497,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"/>
|
||||
@ -523,6 +529,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 +608,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 +643,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 +844,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 +883,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 +908,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 +920,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 +937,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,6 +955,8 @@
|
||||
<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_3" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||
<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]"/>
|
||||
@ -998,6 +1007,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,11 +1025,11 @@
|
||||
<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="6" Source="utils.vbs" Target="MoveNginxConfigs"/>
|
||||
<ROW Action="MoveNginxConfigs" Type="4102" Source="utils.vbs" Target="MoveNginxConfigs"/>
|
||||
<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"/>
|
||||
@ -1028,17 +1043,17 @@
|
||||
<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="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="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="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="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 +1064,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"/>
|
||||
@ -1186,11 +1201,11 @@
|
||||
<ROW Action="AI_DATA_SETTER_6" Condition="( NOT Installed )" Sequence="1621"/>
|
||||
<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="OpenSearchSetup" Condition="( NOT Installed )" Sequence="1617"/>
|
||||
<ROW Action="StopOpenSearchService" 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="OpenSearchInstallPlugin" Condition="( NOT Installed )" Sequence="1616"/>
|
||||
<ROW Action="StartOpenSearchService" Condition="( NOT Installed )" Sequence="1619"/>
|
||||
<ROW Action="AI_DATA_SETTER_13" Condition="( NOT Installed )" Sequence="1618"/>
|
||||
<ROW Action="AI_GetArpIconPath" Sequence="1401"/>
|
||||
<ROW Action="StartMySQLService" Condition="( NOT Installed AND NOT OLDPRODUCTS ) AND ( AI_PROCESS_STATE <> "Not Found" )" Sequence="1613"/>
|
||||
@ -1226,6 +1241,10 @@
|
||||
<ROW Action="StartOpenResty" Condition="( NOT Installed )" Sequence="6605"/>
|
||||
<ROW Action="AI_DATA_SETTER_24" Condition="( NOT Installed )" Sequence="6604"/>
|
||||
<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"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
@ -1272,7 +1291,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"/>
|
||||
@ -1294,8 +1313,8 @@
|
||||
<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"/>
|
||||
@ -1327,9 +1346,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 +1353,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"/>
|
||||
@ -1455,7 +1474,6 @@
|
||||
<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="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"/>
|
||||
@ -1472,18 +1490,18 @@
|
||||
<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="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="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/Downloads/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" 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_2" DisplayName="MySQL Installer Community 8.0.33 x86" VersionMin="1.6.6.0" SetupFileUrl="https://cdn.mysql.com/Downloads/MySQLInstaller/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_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 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"/>
|
||||
@ -1513,21 +1531,24 @@
|
||||
<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_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_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,14 +1563,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="ReplaceRouter1" TxtUpdateSet="YourFile.txt_4" FindPattern="$router_host" ReplacePattern="127.0.0.1" Options="2" Order="0" FileEncoding="-1"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.TxtUpdateSetComponent">
|
||||
<ROW Key="YourFile.txt" Component="conf" FileName="onlyoffice.conf" Directory="conf_Dir" Options="17"/>
|
||||
<ROW Key="YourFile.txt_1" Component="conf" FileName="onlyoffice-client.conf" Directory="conf_Dir" Options="17"/>
|
||||
<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.conf" Directory="conf_Dir" Options="17"/>
|
||||
<ROW Key="YourFile.txt_4" Component="conf" FileName="onlyoffice-proxy-ssl.conf.tmpl" Directory="conf_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="xml" Component="tools" FileName="*.xml" Directory="tools_Dir" Options="17"/>
|
||||
</COMPONENT>
|
||||
|
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>
|
@ -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
|
||||
|
@ -2,8 +2,17 @@ REM echo ######## Set variables ########
|
||||
set "publisher="Ascensio System SIA""
|
||||
set "nuget="%cd%\server\thirdparty\SimpleRestServices\src\.nuget\NuGet.exe""
|
||||
set "environment=production"
|
||||
set "opensearch_version=2.11.1"
|
||||
|
||||
REM echo ######## Extracting and preparing files to build ########
|
||||
%sevenzip% x buildtools\install\win\opensearch-%opensearch_version%.zip -o"buildtools\install\win" -y
|
||||
xcopy "buildtools\install\win\opensearch-%opensearch_version%\plugins\opensearch-security" "buildtools\install\win\OpenSearch\plugins\opensearch-security" /s /y /b /i
|
||||
xcopy "buildtools\install\win\opensearch-%opensearch_version%\plugins\opensearch-job-scheduler" "buildtools\install\win\OpenSearch\plugins\opensearch-job-scheduler" /s /y /b /i
|
||||
xcopy "buildtools\install\win\opensearch-%opensearch_version%\plugins\opensearch-index-management" "buildtools\install\win\OpenSearch\plugins\opensearch-index-management" /s /y /b /i
|
||||
rmdir buildtools\install\win\opensearch-%opensearch_version%\plugins /s /q
|
||||
xcopy "buildtools\install\win\opensearch-%opensearch_version%" "buildtools\install\win\OpenSearch" /s /y /b /i
|
||||
rmdir buildtools\install\win\opensearch-%opensearch_version% /s /q
|
||||
md buildtools\install\win\OpenSearch\tools
|
||||
md buildtools\install\win\OpenResty\tools
|
||||
md buildtools\install\win\Files\tools
|
||||
md buildtools\install\win\Files\Logs
|
||||
@ -30,16 +39,19 @@ copy buildtools\install\win\WinSW3.0.0.exe "buildtools\install\win\Files\tools\D
|
||||
copy buildtools\install\win\tools\DocEditor.xml "buildtools\install\win\Files\tools\DocEditor.xml" /y
|
||||
copy buildtools\install\win\WinSW3.0.0.exe "buildtools\install\win\Files\tools\Login.exe" /y
|
||||
copy buildtools\install\win\tools\Login.xml "buildtools\install\win\Files\tools\Login.xml" /y
|
||||
copy buildtools\install\win\WinSW3.0.0.exe "buildtools\install\win\OpenSearch\tools\OpenSearch.exe" /y
|
||||
copy buildtools\install\win\tools\OpenSearch.xml "buildtools\install\win\OpenSearch\tools\OpenSearch.xml" /y
|
||||
copy "buildtools\install\win\nginx.conf" "buildtools\install\win\Files\nginx\conf\nginx.conf" /y
|
||||
copy "buildtools\install\docker\config\nginx\onlyoffice-proxy.conf" "buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf" /y
|
||||
copy "buildtools\install\docker\config\nginx\onlyoffice-proxy.conf" "buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf.tmpl" /y
|
||||
copy "buildtools\install\docker\config\nginx\onlyoffice-proxy-ssl.conf" "buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl" /y
|
||||
copy "buildtools\install\docker\config\nginx\letsencrypt.conf" "buildtools\install\win\Files\nginx\conf\includes\letsencrypt.conf" /y
|
||||
copy "buildtools\install\win\sbin\docspace-ssl-setup.ps1" "buildtools\install\win\Files\sbin\docspace-ssl-setup.ps1" /y
|
||||
rmdir buildtools\install\win\publish /s /q
|
||||
|
||||
REM echo ######## SSL configs ########
|
||||
%sed% -i "s/the_host/host/g" buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl
|
||||
%sed% -i "s/the_scheme/scheme/g" buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl
|
||||
%sed% -i "s/the_host/host/g" buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf.tmpl buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl
|
||||
%sed% -i "s/the_scheme/scheme/g" buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf buildtools\install\win\Files\nginx\conf\onlyoffice-proxy.conf.tmpl buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl
|
||||
%sed% -i "s/ssl_dhparam \/etc\/ssl\/certs\/dhparam.pem;/#ssl_dhparam \/etc\/ssl\/certs\/dhparam.pem;/" buildtools\install\win\Files\nginx\conf\onlyoffice-proxy-ssl.conf.tmpl
|
||||
%sed% -i "s_\(.*root\).*;_\1 \"{APPDIR}letsencrypt\";_g" -i buildtools\install\win\Files\nginx\conf\includes\letsencrypt.conf
|
||||
|
||||
@ -97,6 +109,13 @@ IF "%SignBuild%"=="true" (
|
||||
)
|
||||
%AdvancedInstaller% /rebuild buildtools\install\win\OpenResty.aip
|
||||
|
||||
REM echo ######## Build OpenSearch ########
|
||||
IF "%SignBuild%"=="true" (
|
||||
%AdvancedInstaller% /edit buildtools\install\win\OpenSearch.aip /SetSig
|
||||
%AdvancedInstaller% /edit buildtools\install\win\OpenSearch.aip /SetDigitalCertificateFile -file %onlyoffice_codesign_path% -password "%onlyoffice_codesign_password%"
|
||||
)
|
||||
%AdvancedInstaller% /rebuild buildtools\install\win\OpenSearch.aip
|
||||
|
||||
REM echo ######## Build DocSpace package ########
|
||||
%AdvancedInstaller% /edit buildtools\install\win\DocSpace.aip /SetVersion %BUILD_VERSION%.%BUILD_NUMBER%
|
||||
|
||||
|
@ -52,7 +52,15 @@ $psql_version = '14.0'
|
||||
|
||||
$path_prereq = "${pwd}\buildtools\install\win\"
|
||||
|
||||
$opensearch_version = '2.11.1'
|
||||
|
||||
$prerequisites = @(
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "opensearch-${opensearch_version}.zip";
|
||||
link = "https://artifacts.opensearch.org/releases/bundle/opensearch/${opensearch_version}/opensearch-${opensearch_version}-windows-x64.zip";
|
||||
}
|
||||
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "WinSW.NET4new.exe";
|
||||
@ -138,13 +146,13 @@ $enterprise_prerequisites = @(
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "mysql-connector-odbc-8.0.33-win32.msi";
|
||||
link = "https://cdn.mysql.com/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.33-win32.msi";
|
||||
link = "https://cdn.mysql.com/archives/mysql-connector-odbc-8.0/mysql-connector-odbc-8.0.33-win32.msi";
|
||||
}
|
||||
|
||||
@{
|
||||
download_allways = $false;
|
||||
name = "mysql-installer-community-8.0.33.0.msi";
|
||||
link = "https://cdn.mysql.com/Downloads/MySQLInstaller/mysql-installer-community-8.0.33.0.msi";
|
||||
link = "https://cdn.mysql.com/archives/mysql-installer/mysql-installer-community-8.0.33.0.msi";
|
||||
}
|
||||
|
||||
@{
|
||||
|
@ -28,16 +28,17 @@ if ( -not $certbot_path )
|
||||
exit
|
||||
}
|
||||
|
||||
$letsencrypt_root_dir = "$env:SystemDrive\Certbot\live"
|
||||
$app = Resolve-Path -Path ".\..\"
|
||||
$root_dir = "${app}\letsencrypt"
|
||||
$nginx_conf_dir = "$env:SystemDrive\OpenResty\conf"
|
||||
$nginx_conf = "onlyoffice-proxy.conf"
|
||||
$nginx_conf_tmpl = "onlyoffice-proxy.conf.tmpl"
|
||||
$nginx_ssl_tmpl = "onlyoffice-proxy-ssl.conf.tmpl"
|
||||
$proxy_service = "OpenResty"
|
||||
|
||||
if ( $args.Count -ge 2 )
|
||||
{
|
||||
$letsencrypt_root_dir = "$env:SystemDrive\Certbot\live"
|
||||
$app = Resolve-Path -Path ".\..\"
|
||||
$root_dir = "${app}\letsencrypt"
|
||||
$nginx_conf_dir = "$env:SystemDrive\OpenResty\conf"
|
||||
$nginx_conf = "onlyoffice-proxy.conf"
|
||||
$nginx_tmpl = "onlyoffice-proxy-ssl.conf.tmpl"
|
||||
$proxy_service = "OpenResty"
|
||||
$appsettings_config_path = "${app}\config\appsettings.production.json"
|
||||
|
||||
if ($args[0] -eq "-f") {
|
||||
$ssl_cert = $args[1]
|
||||
@ -59,9 +60,9 @@ if ( $args.Count -ge 2 )
|
||||
popd
|
||||
}
|
||||
|
||||
if ( [System.IO.File]::Exists($ssl_cert) -and [System.IO.File]::Exists($ssl_key) -and [System.IO.File]::Exists("${nginx_conf_dir}\${nginx_tmpl}"))
|
||||
if ( [System.IO.File]::Exists($ssl_cert) -and [System.IO.File]::Exists($ssl_key) -and [System.IO.File]::Exists("${nginx_conf_dir}\${nginx_ssl_tmpl}"))
|
||||
{
|
||||
Copy-Item "${nginx_conf_dir}\${nginx_tmpl}" -Destination "${nginx_conf_dir}\${nginx_conf}"
|
||||
Copy-Item "${nginx_conf_dir}\${nginx_ssl_tmpl}" -Destination "${nginx_conf_dir}\${nginx_conf}"
|
||||
((Get-Content -Path "${nginx_conf_dir}\${nginx_conf}" -Raw) -replace '/usr/local/share/ca-certificates/tls.crt', $ssl_cert) | Set-Content -Path "${nginx_conf_dir}\${nginx_conf}"
|
||||
((Get-Content -Path "${nginx_conf_dir}\${nginx_conf}" -Raw) -replace '/etc/ssl/private/tls.key', $ssl_key) | Set-Content -Path "${nginx_conf_dir}\${nginx_conf}"
|
||||
|
||||
@ -75,14 +76,24 @@ if ( $args.Count -ge 2 )
|
||||
|
||||
Restart-Service -Name $proxy_service
|
||||
|
||||
"certbot renew >> `"${app}\letsencrypt\Logs\le-renew.log`"" > "${app}\letsencrypt\letsencrypt_cron.bat"
|
||||
"net stop $proxy_service" >> "${app}\letsencrypt\letsencrypt_cron.bat"
|
||||
"net start $proxy_service" >> "${app}\letsencrypt\letsencrypt_cron.bat"
|
||||
@(
|
||||
"certbot renew >> `"${app}\letsencrypt\Logs\le-renew.log`"",
|
||||
"net stop $proxy_service",
|
||||
"net start $proxy_service"
|
||||
) | Set-Content -Path "${app}\letsencrypt\letsencrypt_cron.bat" -Encoding ascii
|
||||
|
||||
$day = (Get-Date -Format "dddd").ToUpper().SubString(0, 3)
|
||||
$time = Get-Date -Format "HH:mm"
|
||||
cmd.exe /c "SCHTASKS /F /CREATE /SC WEEKLY /D $day /TN `"Certbot renew`" /TR `"${app}\letsencrypt\letsencrypt_cron.bat`" /ST $time"
|
||||
}
|
||||
|
||||
elseif ($args[0] -eq "-d" -or $args[0] -eq "--default") {
|
||||
Copy-Item "${nginx_conf_dir}\${nginx_conf_tmpl}" -Destination "${nginx_conf_dir}\${nginx_conf}"
|
||||
Restart-Service -Name $proxy_service
|
||||
Remove-Item -Path "${app}\letsencrypt\letsencrypt_cron.bat" -Force
|
||||
Write-Host "Returned to the default proxy configuration."
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
Write-Output " This script provided to automatically get Let's Encrypt SSL Certificates for DocSpace "
|
||||
@ -98,4 +109,7 @@ else
|
||||
Write-Output " docspace-ssl-setup.ps1 -f CERTIFICATE PRIVATEKEY "
|
||||
Write-Output " CERTIFICATE Path to the certificate file for the domain."
|
||||
Write-Output " PRIVATEKEY Path to the private key file for the certificate."
|
||||
Write-Output " "
|
||||
Write-Output " Return to the default proxy configuration using the -d or --default parameter: "
|
||||
Write-Output " docspace-ssl-setup.ps1 -d | docspace-ssl-setup.ps1 --default "
|
||||
}
|
||||
|
16
install/win/tools/OpenSearch.xml
Normal file
16
install/win/tools/OpenSearch.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<service>
|
||||
<id>OpenSearch</id>
|
||||
<name>OpenSearch</name>
|
||||
<description>OpenSearch</description>
|
||||
<priority>RealTime</priority>
|
||||
<startmode>Automatic</startmode>
|
||||
<delayedAutoStart>true</delayedAutoStart>
|
||||
<onfailure action="restart" delay="1 sec"/>
|
||||
<logpath>%BASE%\..\Log\</logpath>
|
||||
<workingdirectory>%BASE%\..\</workingdirectory>
|
||||
<executable>%BASE%\..\opensearch-windows-install.bat</executable>
|
||||
<log mode="roll-by-size">
|
||||
<sizeThreshold>10240</sizeThreshold>
|
||||
<keepFiles>8</keepFiles>
|
||||
</log>
|
||||
</service>
|
@ -242,7 +242,7 @@ Function WriteToLog(ByVal var)
|
||||
|
||||
End Function
|
||||
|
||||
Function ElasticSearchSetup
|
||||
Function OpenSearchSetup
|
||||
On Error Resume Next
|
||||
|
||||
Dim ShellCommand
|
||||
@ -254,16 +254,16 @@ Function ElasticSearchSetup
|
||||
Set Shell = CreateObject("WScript.Shell")
|
||||
Set objFSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
APP_INDEX_DIR = Session.Property("APPDIR") & "Data\Index\v7.16.3\"
|
||||
APP_INDEX_DIR = Session.Property("APPDIR") & "Data\Index\v2.11.1\"
|
||||
|
||||
If Not fso.FolderExists(APP_INDEX_DIR) Then
|
||||
Session.Property("NEED_REINDEX_ELASTICSEARCH") = "TRUE"
|
||||
Session.Property("NEED_REINDEX_OPENSEARCH") = "TRUE"
|
||||
End If
|
||||
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Data\Index\v7.16.3\""",0,true)
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Data\Index\v2.11.1\""",0,true)
|
||||
Call Shell.Run("%COMSPEC% /c mkdir """ & Session.Property("APPDIR") & "Logs\""",0,true)
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\config\elasticsearch.yml", ForReading)
|
||||
Set objFile = objFSO.OpenTextFile("C:\OpenSearch\config\opensearch.yml", ForReading)
|
||||
|
||||
fileContent = objFile.ReadAll
|
||||
|
||||
@ -285,7 +285,7 @@ Function ElasticSearchSetup
|
||||
oRE.Pattern = "indices.memory.index_buffer_size:.*"
|
||||
fileContent = oRE.Replace(fileContent, "indices.memory.index_buffer_size: 30%")
|
||||
End if
|
||||
|
||||
|
||||
If InStrRev(fileContent, "http.max_content_length") <> 0 Then
|
||||
oRE.Pattern = "http.max_content_length:.*"
|
||||
fileContent = oRE.Replace(fileContent, " ")
|
||||
@ -311,29 +311,29 @@ Function ElasticSearchSetup
|
||||
fileContent = oRE.Replace(fileContent, " ")
|
||||
End if
|
||||
|
||||
oRE.Pattern = "path.data:.*"
|
||||
fileContent = oRE.Replace(fileContent, "path.data: " & Session.Property("APPDIR") & "Data\Index\v7.16.3\")
|
||||
oRE.Pattern = "#path.data:.*"
|
||||
fileContent = oRE.Replace(fileContent, "path.data: " & Session.Property("APPDIR") & "Data\Index\v2.11.1\")
|
||||
|
||||
oRE.Pattern = "path.logs:.*"
|
||||
oRE.Pattern = "#path.logs:.*"
|
||||
fileContent = oRE.Replace(fileContent, "path.logs: " & Session.Property("APPDIR") & "Logs\")
|
||||
|
||||
If InStrRev(fileContent, "ingest.geoip.downloader.enabled") = 0 Then
|
||||
fileContent = fileContent & Chr(13) & Chr(10) & "ingest.geoip.downloader.enabled: false"
|
||||
If InStrRev(fileContent, "plugins.security.disabled") = 0 Then
|
||||
fileContent = fileContent & Chr(13) & Chr(10) & "plugins.security.disabled: true"
|
||||
Else
|
||||
oRE.Pattern = "ingest.geoip.downloader.enabled.*"
|
||||
fileContent = oRE.Replace(fileContent, "ingest.geoip.downloader.enabled: false")
|
||||
oRE.Pattern = "plugins.security.disabled:.*"
|
||||
fileContent = oRE.Replace(fileContent, "plugins.security.disabled: true")
|
||||
End if
|
||||
|
||||
Call WriteToLog("ElasticSearchSetup: New config:" & fileContent)
|
||||
Call WriteToLog("ElasticSearchSetup: CommonAppDataFolder :" & Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\data")
|
||||
Call WriteToLog("OpenSearchSetup: New config:" & fileContent)
|
||||
Call WriteToLog("OpenSearchSetup: CommonAppDataFolder :" & "C:\OpenSearch\data")
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\config\elasticsearch.yml", ForWriting)
|
||||
Set objFile = objFSO.OpenTextFile("C:\OpenSearch\config\opensearch.yml", ForWriting)
|
||||
|
||||
objFile.WriteLine fileContent
|
||||
|
||||
objFile.Close
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\config\jvm.options", ForReading)
|
||||
Set objFile = objFSO.OpenTextFile("C:\OpenSearch\config\jvm.options", ForReading)
|
||||
|
||||
fileContent = objFile.ReadAll
|
||||
|
||||
@ -365,7 +365,7 @@ Function ElasticSearchSetup
|
||||
fileContent = oRE.Replace(fileContent, "-Dlog4j2.formatMsgNoLookups=true")
|
||||
End if
|
||||
|
||||
Set objFile = objFSO.OpenTextFile(Session.Property("CommonAppDataFolder") & "Elastic\Elasticsearch\config\jvm.options", ForWriting)
|
||||
Set objFile = objFSO.OpenTextFile("C:\OpenSearch\config\jvm.options", ForWriting)
|
||||
|
||||
objFile.WriteLine fileContent
|
||||
|
||||
@ -375,15 +375,15 @@ Function ElasticSearchSetup
|
||||
|
||||
End Function
|
||||
|
||||
Function ElasticSearchInstallPlugin
|
||||
Function OpenSearchInstallPlugin
|
||||
On Error Resume Next
|
||||
|
||||
Dim Shell
|
||||
|
||||
Set Shell = CreateObject("WScript.Shell")
|
||||
|
||||
ShellInstallCommand = """C:\Program Files\Elastic\Elasticsearch\7.16.3\bin\elasticsearch-plugin""" & " install -b -s ingest-attachment"""
|
||||
ShellRemoveCommand = """C:\Program Files\Elastic\Elasticsearch\7.16.3\bin\elasticsearch-plugin""" & " remove -s ingest-attachment"""
|
||||
ShellInstallCommand = """C:\OpenSearch\bin\opensearch-plugin""" & " install -b -s ingest-attachment"""
|
||||
ShellRemoveCommand = """C:\OpenSearch\bin\opensearch-plugin""" & " remove -s ingest-attachment"""
|
||||
|
||||
Call Shell.Run("cmd /C " & """" & ShellRemoveCommand & """",0,true)
|
||||
Call Shell.Run("cmd /C " & """" & ShellInstallCommand & """",0,true)
|
||||
@ -478,13 +478,26 @@ End Function
|
||||
Function MoveNginxConfigs
|
||||
On Error Resume Next
|
||||
|
||||
Dim objFSO, sourceFolder, targetFolder, nginxFolder
|
||||
Dim objFSO, objShell, sourceFolder, targetFolder, nginxFolder, configFile, configSslFile, sslScriptPath, sslCertPath, sslCertKeyPath, psCommand
|
||||
|
||||
' Define source and target paths
|
||||
Set objFSO = CreateObject("Scripting.FileSystemObject")
|
||||
Set objShell = CreateObject("WScript.Shell")
|
||||
sourceFolder = Session.Property("APPDIR") & "nginx\conf"
|
||||
targetFolder = "C:\OpenResty\conf"
|
||||
nginxFolder = Session.Property("APPDIR") & "nginx"
|
||||
configSslFile = targetFolder & "\onlyoffice-proxy-ssl.conf.tmpl"
|
||||
configFile = targetFolder & "\onlyoffice-proxy.conf"
|
||||
sslScriptPath = Session.Property("APPDIR") & "sbin\docspace-ssl-setup.ps1"
|
||||
|
||||
' Read content and extract SSL certificate and key paths if it exists
|
||||
If objFSO.FileExists(configFile) Then
|
||||
content = ReadFile(configFile, objFSO)
|
||||
sslCertPath = ExtractPath(content, "ssl_certificate\s+(.*?);", objFSO)
|
||||
sslCertKeyPath = ExtractPath(content, "ssl_certificate_key\s+(.*?);", objFSO)
|
||||
Else
|
||||
WScript.Echo "Configuration file not found!"
|
||||
End If
|
||||
|
||||
' Check if source folder exists
|
||||
If objFSO.FolderExists(sourceFolder) Then
|
||||
@ -504,7 +517,41 @@ Function MoveNginxConfigs
|
||||
WScript.Echo "Source folder does not exist."
|
||||
End If
|
||||
|
||||
' If SSL path variables are present, set the SSL paths
|
||||
If objFSO.FileExists(configSslFile) And ((Len(Trim(sslCertPath)) > 0) And (Len(Trim(sslCertKeyPath)) > 0)) Then
|
||||
psCommand = "powershell -File """ & sslScriptPath & """ -f """ & sslCertPath & """ """ & sslCertKeyPath & """"
|
||||
objShell.Run psCommand, 0, True
|
||||
Else
|
||||
WScript.Echo "Source file not found."
|
||||
End If
|
||||
|
||||
Set objFSO = Nothing
|
||||
Set objShell = Nothing
|
||||
End Function
|
||||
|
||||
Function ReadFile(filePath, objFSO)
|
||||
Dim objFile
|
||||
If objFSO.FileExists(filePath) Then
|
||||
Set objFile = objFSO.OpenTextFile(filePath, 1)
|
||||
ReadFile = objFile.ReadAll
|
||||
objFile.Close
|
||||
Else
|
||||
WScript.Echo "File not found: " & filePath
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function ExtractPath(content, pattern, objFSO)
|
||||
Dim regex, match
|
||||
Set regex = New RegExp
|
||||
regex.Pattern = pattern
|
||||
|
||||
Set match = regex.Execute(content)
|
||||
If match.Count > 0 Then
|
||||
ExtractPath = match(0).Submatches(0)
|
||||
Else
|
||||
WScript.Echo "Path not found in the content."
|
||||
ExtractPath = Null
|
||||
End If
|
||||
End Function
|
||||
|
||||
Sub CopyFolderContents(sourceFolder, targetFolder, objFSO)
|
||||
|
@ -1,4 +1,4 @@
|
||||
@echo off
|
||||
|
||||
PUSHD %~dp0..\..
|
||||
set servicepath=%cd%\server\web\ASC.Web.Studio\bin\Debug\ASC.Web.Studio.exe urls=http://0.0.0.0:5003 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=web.studio pathToConf=%cd%\buildtools\config core:products:folder=%cd%\server\products
|
||||
set servicepath=%cd%\server\web\ASC.Web.Studio\bin\Debug\ASC.Web.Studio.exe urls=http://0.0.0.0:5003 $STORAGE_ROOT=%cd%\Data log:dir=%cd%\Logs log:name=web.studio pathToConf=%cd%\buildtools\config core:products:folder=%cd%\server\products core:eventBus:subscriptionClientName=asc_event_bus_webstudio_queue
|
22
tests/vagrant/Vagrantfile
vendored
Normal file
22
tests/vagrant/Vagrantfile
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = "#{ENV['DISTR']}/#{ENV['OS']}"
|
||||
|
||||
config.vm.provider "virtualbox" do |v|
|
||||
v.customize ["modifyvm", :id, "--memory", "#{ENV['RAM']}"] #<= total RAM.
|
||||
v.customize ["modifyvm", :id, "--cpus", "#{ENV['CPU']}"] #<= total CPU.
|
||||
v.customize ["modifyvm", :id, "--ioapic", "on"]
|
||||
end
|
||||
|
||||
config.vm.define 'ubuntu'
|
||||
|
||||
config.vm.hostname = "host4test"
|
||||
|
||||
if ENV['TEST_CASE'] != '--production-install'
|
||||
config.vm.provision "file", source: "../../../DocSpace-buildtools/install/OneClickInstall/.", destination: "/tmp/docspace/"
|
||||
end
|
||||
|
||||
config.vm.provision "shell", path: './install.sh', :args => "#{ENV['DOWNLOAD_SCRIPT']} #{ENV['TEST_REPO']} #{ENV['ARGUMENTS']}"
|
||||
|
||||
# Prevent SharedFoldersEnableSymlinksCreate errors
|
||||
config.vm.synced_folder ".", "/vagrant", disabled: true
|
||||
end
|
357
tests/vagrant/install.sh
Normal file
357
tests/vagrant/install.sh
Normal file
@ -0,0 +1,357 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
|
||||
-ds | --download-scripts )
|
||||
if [ "$2" != "" ]; then
|
||||
DOWNLOAD_SCRIPTS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-arg | --arguments )
|
||||
if [ "$2" != "" ]; then
|
||||
ARGUMENTS=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
-pi | --production-install )
|
||||
if [ "$2" != "" ]; then
|
||||
PRODUCTION_INSTALL=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-li | --local-install )
|
||||
if [ "$2" != "" ]; then
|
||||
LOCAL_INSTALL=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-lu | --local-update )
|
||||
if [ "$2" != "" ]; then
|
||||
LOCAL_UPDATE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
-tr | --test-repo )
|
||||
if [ "$2" != "" ]; then
|
||||
TEST_REPO_ENABLE=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
|
||||
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
export TERM=xterm-256color^M
|
||||
|
||||
SERVICES_SYSTEMD=(
|
||||
"docspace-api.service"
|
||||
"docspace-doceditor.service"
|
||||
"docspace-studio-notify.service"
|
||||
"docspace-files.service"
|
||||
"docspace-notify.service"
|
||||
"docspace-studio.service"
|
||||
"docspace-backup-background.service"
|
||||
"docspace-files-services.service"
|
||||
"docspace-people-server.service"
|
||||
"docspace-backup.service"
|
||||
"docspace-healthchecks.service"
|
||||
"docspace-socket.service"
|
||||
"docspace-clear-events.service"
|
||||
"docspace-login.service"
|
||||
"docspace-ssoauth.service"
|
||||
"ds-converter.service"
|
||||
"ds-docservice.service"
|
||||
"ds-metrics.service")
|
||||
|
||||
function common::get_colors() {
|
||||
COLOR_BLUE=$'\e[34m'
|
||||
COLOR_GREEN=$'\e[32m'
|
||||
COLOR_RED=$'\e[31m'
|
||||
COLOR_RESET=$'\e[0m'
|
||||
COLOR_YELLOW=$'\e[33m'
|
||||
export COLOR_BLUE
|
||||
export COLOR_GREEN
|
||||
export COLOR_RED
|
||||
export COLOR_RESET
|
||||
export COLOR_YELLOW
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Checking available resources for a virtual machine
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# None
|
||||
#############################################################################################
|
||||
function check_hw() {
|
||||
local FREE_RAM=$(free -h)
|
||||
local FREE_CPU=$(nproc)
|
||||
echo "${COLOR_RED} ${FREE_RAM} ${COLOR_RESET}"
|
||||
echo "${COLOR_RED} ${FREE_CPU} ${COLOR_RESET}"
|
||||
}
|
||||
|
||||
|
||||
#############################################################################################
|
||||
# Prepare vagrant boxes like: set hostname/remove postfix for DEB distributions
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# ☑ PREPAVE_VM: **<prepare_message>**
|
||||
#############################################################################################
|
||||
function prepare_vm() {
|
||||
|
||||
if [ -f /etc/lsb-release ] ; then
|
||||
DIST=`cat /etc/lsb-release | grep '^DISTRIB_ID' | awk -F= '{ print $2 }'`
|
||||
REV=`cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{ print $2 }'`
|
||||
DISTRIB_CODENAME=`cat /etc/lsb-release | grep '^DISTRIB_CODENAME' | awk -F= '{ print $2 }'`
|
||||
DISTRIB_RELEASE=`cat /etc/lsb-release | grep '^DISTRIB_RELEASE' | awk -F= '{ print $2 }'`
|
||||
elif [ -f /etc/lsb_release ] || [ -f /usr/bin/lsb_release ] ; then
|
||||
DIST=`lsb_release -a 2>&1 | grep 'Distributor ID:' | awk -F ":" '{print $2 }'`
|
||||
REV=`lsb_release -a 2>&1 | grep 'Release:' | awk -F ":" '{print $2 }'`
|
||||
DISTRIB_CODENAME=`lsb_release -a 2>&1 | grep 'Codename:' | awk -F ":" '{print $2 }'`
|
||||
DISTRIB_RELEASE=`lsb_release -a 2>&1 | grep 'Release:' | awk -F ":" '{print $2 }'`
|
||||
elif [ -f /etc/os-release ] ; then
|
||||
DISTRIB_CODENAME=$(grep "VERSION=" /etc/os-release |awk -F= {' print $2'}|sed s/\"//g |sed s/[0-9]//g | sed s/\)$//g |sed s/\(//g | tr -d '[:space:]')
|
||||
DISTRIB_RELEASE=$(grep "VERSION_ID=" /etc/os-release |awk -F= {' print $2'}|sed s/\"//g |sed s/[0-9]//g | sed s/\)$//g |sed s/\(//g | tr -d '[:space:]')
|
||||
fi
|
||||
|
||||
DIST=`echo "$DIST" | tr '[:upper:]' '[:lower:]' | xargs`;
|
||||
DISTRIB_CODENAME=`echo "$DISTRIB_CODENAME" | tr '[:upper:]' '[:lower:]' | xargs`;
|
||||
REV=`echo "$REV" | xargs`;
|
||||
|
||||
if [ ! -f /etc/centos-release ]; then
|
||||
if [ "${DIST}" = "debian" ]; then
|
||||
if [ "${DISTRIB_CODENAME}" == "bookworm" ]; then
|
||||
apt-get update -y
|
||||
apt install -y curl gnupg
|
||||
fi
|
||||
|
||||
apt-get remove postfix -y
|
||||
echo "${COLOR_GREEN}☑ PREPAVE_VM: Postfix was removed${COLOR_RESET}"
|
||||
fi
|
||||
|
||||
if [ "${TEST_REPO_ENABLE}" == 'true' ]; then
|
||||
mkdir -p -m 700 $HOME/.gnupg
|
||||
echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://nexus.onlyoffice.com/repository/4testing-debian stable main" | sudo tee /etc/apt/sources.list.d/onlyoffice4testing.list
|
||||
curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE | gpg --no-default-keyring --keyring gnupg-ring:/usr/share/keyrings/onlyoffice.gpg --import
|
||||
chmod 644 /usr/share/keyrings/onlyoffice.gpg
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f /etc/centos-release ]; then
|
||||
if [ "${TEST_REPO_ENABLE}" == 'true' ]; then
|
||||
cat > /etc/yum.repos.d/onlyoffice4testing.repo <<END
|
||||
[onlyoffice4testing]
|
||||
name=onlyoffice4testing repo
|
||||
baseurl=https://nexus.onlyoffice.com/repository/centos-testing/4testing/main/noarch
|
||||
gpgcheck=1
|
||||
enabled=1
|
||||
gpgkey=https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE
|
||||
END
|
||||
yum -y install centos*-release
|
||||
fi
|
||||
|
||||
local REV=$(cat /etc/redhat-release | sed 's/[^0-9.]*//g')
|
||||
if [[ "${REV}" =~ ^9 ]]; then
|
||||
update-crypto-policies --set LEGACY
|
||||
echo "${COLOR_GREEN}☑ PREPAVE_VM: sha1 gpg key chek enabled${COLOR_RESET}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Clean up home folder
|
||||
rm -rf /home/vagrant/*
|
||||
|
||||
if [ -d /tmp/docspace ]; then
|
||||
mv /tmp/docspace/* /home/vagrant
|
||||
fi
|
||||
|
||||
echo '127.0.0.1 host4test' | sudo tee -a /etc/hosts
|
||||
echo "${COLOR_GREEN}☑ PREPAVE_VM: Hostname was setting up${COLOR_RESET}"
|
||||
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Install docspace and then healthcheck
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# Script log
|
||||
#############################################################################################
|
||||
function install_docspace() {
|
||||
if [ "${DOWNLOAD_SCRIPTS}" == 'true' ]; then
|
||||
wget https://download.onlyoffice.com/docspace/docspace-install.sh
|
||||
else
|
||||
sed 's/set -e/set -xe/' -i *.sh
|
||||
fi
|
||||
|
||||
printf "N\nY\nY" | bash docspace-install.sh ${ARGUMENTS}
|
||||
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "Exit code non-zero. Exit with 1."
|
||||
exit 1
|
||||
else
|
||||
echo "Exit code 0. Continue..."
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Healthcheck function for systemd services
|
||||
# Globals:
|
||||
# SERVICES_SYSTEMD
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# Message about service status
|
||||
#############################################################################################
|
||||
function healthcheck_systemd_services() {
|
||||
for service in ${SERVICES_SYSTEMD[@]}
|
||||
do
|
||||
if systemctl is-active --quiet ${service}; then
|
||||
echo "${COLOR_GREEN}☑ OK: Service ${service} is running${COLOR_RESET}"
|
||||
else
|
||||
echo "${COLOR_RED}⚠ FAILED: Service ${service} is not running${COLOR_RESET}"
|
||||
SYSTEMD_SVC_FAILED="true"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
#############################################################################################
|
||||
# Set output if some services failed
|
||||
# Globals:
|
||||
# None
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# ⚠ ⚠ ATTENTION: Some sevices is not running ⚠ ⚠
|
||||
# Returns
|
||||
# 0 if all services is start correctly, non-zero if some failed
|
||||
#############################################################################################
|
||||
function healthcheck_general_status() {
|
||||
if [ ! -z "${SYSTEMD_SVC_FAILED}" ]; then
|
||||
echo "${COLOR_YELLOW}⚠ ⚠ ATTENTION: Some sevices is not running ⚠ ⚠ ${COLOR_RESET}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
#############################################################################################
|
||||
# Get logs for all services
|
||||
# Globals:
|
||||
# $SERVICES_SYSTEMD
|
||||
# Arguments:
|
||||
# None
|
||||
# Outputs:
|
||||
# Logs for systemd services
|
||||
# Returns:
|
||||
# none
|
||||
# Commentaries:
|
||||
# This function succeeds even if the file for cat was not found. For that use ${SKIP_EXIT} variable
|
||||
#############################################################################################
|
||||
function services_logs() {
|
||||
for service in ${SERVICES_SYSTEMD[@]}; do
|
||||
echo -----------------------------------------
|
||||
echo "${COLOR_GREEN}Check logs for systemd service: $service${COLOR_RESET}"
|
||||
echo ---------------------- -------------------
|
||||
EXIT_CODE=0
|
||||
journalctl -u $service || true
|
||||
done
|
||||
|
||||
local MAIN_LOGS_DIR="/var/log/onlyoffice"
|
||||
local DOCSPACE_LOGS_DIR="${MAIN_LOGS_DIR}/docspace"
|
||||
local DOCUMENTSERVER_LOGS_DIR="${MAIN_LOGS_DIR}/documentserver"
|
||||
local DOCSERVICE_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/docservice"
|
||||
local CONVERTER_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/converter"
|
||||
local METRICS_LOGS_DIR="${DOCUMENTSERVER_LOGS_DIR}/metrics"
|
||||
|
||||
ARRAY_MAIN_SERVICES_LOGS=($(ls ${MAIN_LOGS_DIR} | grep log | sed 's/web.sql.log//;s/web.api.log//;s/nginx.*//' ))
|
||||
ARRAY_DOCSPACE_LOGS=($(ls ${DOCSPACE_LOGS_DIR}))
|
||||
ARRAY_DOCSERVICE_LOGS=($(ls ${DOCSERVICE_LOGS_DIR}))
|
||||
ARRAY_CONVERTER_LOGS=($(ls ${CONVERTER_LOGS_DIR}))
|
||||
ARRAY_METRICS_LOGS=($(ls ${METRICS_LOGS_DIR}))
|
||||
|
||||
echo "-----------------------------------"
|
||||
echo "${COLOR_YELLOW} Check logs for main services ${COLOR_RESET}"
|
||||
echo "-----------------------------------"
|
||||
for file in ${ARRAY_MAIN_SERVICES_LOGS[@]}; do
|
||||
echo ---------------------------------------
|
||||
echo "${COLOR_GREEN}logs from file: ${file}${COLOR_RESET}"
|
||||
echo ---------------------------------------
|
||||
cat ${MAIN_LOGS_DIR}/${file} || true
|
||||
done
|
||||
|
||||
echo "-----------------------------------"
|
||||
echo "${COLOR_YELLOW} Check logs for Docservice ${COLOR_RESET}"
|
||||
echo "-----------------------------------"
|
||||
for file in ${ARRAY_DOCSERVICE_LOGS[@]}; do
|
||||
echo ---------------------------------------
|
||||
echo "${COLOR_GREEN}logs from file: ${file}${COLOR_RESET}"
|
||||
echo ---------------------------------------
|
||||
cat ${DOCSERVICE_LOGS_DIR}/${file} || true
|
||||
done
|
||||
|
||||
echo "-----------------------------------"
|
||||
echo "${COLOR_YELLOW} Check logs for Converter ${COLOR_RESET}"
|
||||
echo "-----------------------------------"
|
||||
for file in ${ARRAY_CONVERTER_LOGS[@]}; do
|
||||
echo ---------------------------------------
|
||||
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
|
||||
echo ---------------------------------------
|
||||
cat ${CONVERTER_LOGS_DIR}/${file} || true
|
||||
done
|
||||
|
||||
echo "-----------------------------------"
|
||||
echo "${COLOR_YELLOW} Start logs for Metrics ${COLOR_RESET}"
|
||||
echo "-----------------------------------"
|
||||
for file in ${ARRAY_METRICS_LOGS[@]}; do
|
||||
echo ---------------------------------------
|
||||
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
|
||||
echo ---------------------------------------
|
||||
cat ${METRICS_LOGS_DIR}/${file} || true
|
||||
done
|
||||
|
||||
echo "-----------------------------------"
|
||||
echo "${COLOR_YELLOW} Start logs for DocSpace ${COLOR_RESET}"
|
||||
echo "-----------------------------------"
|
||||
for file in ${ARRAY_DOCSPACE_LOGS[@]}; do
|
||||
echo ---------------------------------------
|
||||
echo "${COLOR_GREEN}logs from file ${file}${COLOR_RESET}"
|
||||
echo ---------------------------------------
|
||||
cat ${DOCSPACE_LOGS_DIR}/${file} || true
|
||||
done
|
||||
}
|
||||
|
||||
function healthcheck_docker_installation() {
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
main() {
|
||||
common::get_colors
|
||||
prepare_vm
|
||||
check_hw
|
||||
install_docspace
|
||||
sleep 120
|
||||
services_logs
|
||||
healthcheck_systemd_services
|
||||
healthcheck_general_status
|
||||
}
|
||||
|
||||
main
|
Loading…
Reference in New Issue
Block a user