mirror of
https://github.com/ONLYOFFICE/Docker-DocumentServer.git
synced 2026-04-07 14:01:38 +08:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 92988383f0 | |||
| 913a27878c | |||
| da786307b0 | |||
| 1229d0ff3f | |||
| 58051c573f | |||
| c4bc28ee5d | |||
| 475a957b34 | |||
| c344bc46c8 | |||
| b531e96c10 | |||
| f63607aecc | |||
| 0bf51cae5e | |||
| 425241b1a5 | |||
| 5580c8cb26 | |||
| fbc253d293 | |||
| 578deab49a | |||
| d17d150827 |
13
.github/ISSUE_TEMPLATE.md
vendored
13
.github/ISSUE_TEMPLATE.md
vendored
@ -1,13 +0,0 @@
|
||||
**Do you want to request a *feature* or report a *bug*?**
|
||||
|
||||
**What is the current behavior?**
|
||||
|
||||
**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.**
|
||||
|
||||
**What is the expected behavior?**
|
||||
|
||||
**Did this work in previous versions of DocumentServer?**
|
||||
|
||||
**DocumentServer Docker tag:**
|
||||
|
||||
**Host Operating System:**
|
||||
83
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
83
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
name: "Bug report"
|
||||
description: "Use this template if you're running into issues with DocumentServer Docker container."
|
||||
body:
|
||||
- type: checkboxes
|
||||
id: unique
|
||||
attributes:
|
||||
label: "This issue is unique."
|
||||
options:
|
||||
- label: "I have used the [search tool](https://github.com/ONLYOFFICE/Docker-DocumentServer/issues?q=) and did not find an issue describing my bug."
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: "Select the operating system where Docker is running."
|
||||
multiple: true
|
||||
options:
|
||||
- Windows
|
||||
- macOS
|
||||
- Linux
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: architecture
|
||||
attributes:
|
||||
label: Architecture
|
||||
description: "Select the architecture of the system."
|
||||
options:
|
||||
- x86_64
|
||||
- arm64
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: docker-version
|
||||
attributes:
|
||||
label: "Docker version"
|
||||
description: "Provide your Docker version (run `docker --version`)."
|
||||
placeholder: "Example: Docker version 24.0.5"
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: docs-version
|
||||
attributes:
|
||||
label: "ONLYOFFICE-Docs version"
|
||||
description: "Please provide the exact version or Docker tag you are using."
|
||||
placeholder: "Example: 8.0.1 or latest"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: repro-steps
|
||||
attributes:
|
||||
label: "Reproduction Steps"
|
||||
description: "Provide information on how to reproduce this bug. Make sure your instructions are clear."
|
||||
placeholder: |
|
||||
Example:
|
||||
1. Pull the latest DocumentServer image
|
||||
2. Start container with docker-compose
|
||||
3. Access http://localhost
|
||||
4. Observe the issue
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: "Expected Behavior"
|
||||
description: "What did you expect to happen?"
|
||||
placeholder: "Example: The container should start successfully and be accessible on port 80."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: actual
|
||||
attributes:
|
||||
label: "Actual Behavior"
|
||||
description: "What did actually happen?"
|
||||
placeholder: "Example: The container starts but DocumentServer returns 502 Bad Gateway error."
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: "Additional information"
|
||||
description: "If you have any screenshots, error messages, logs, or other information that you feel is necessary to explain the issue, feel free to attach them here."
|
||||
placeholder: "Example: Container logs, error messages, configuration details, etc."
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: DocumentServer Docker Documentation
|
||||
url: https://helpcenter.onlyoffice.com/docs/installation/developer/docker
|
||||
about: Check the Docker documentation for configuration and deployment guides.
|
||||
- name: Community Forum
|
||||
url: https://community.onlyoffice.com/
|
||||
about: Ask questions and get help from the ONLYOFFICE community.
|
||||
14
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
14
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
name: "Feature request"
|
||||
description: "Use this form to suggest a feature."
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: "This issue is unique."
|
||||
options:
|
||||
- label: "I have used the [search tool](https://github.com/ONLYOFFICE/Docker-DocumentServer/issues?q=) and did not find an issue describing my idea."
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Your idea.
|
||||
validations:
|
||||
required: true
|
||||
149
.github/workflows/4testing-build.yml
vendored
149
.github/workflows/4testing-build.yml
vendored
@ -77,31 +77,36 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
echo "editions=$(jq -n -c --arg s "${EDITIONS[*]}" '($s|split(" "))')" >> $GITHUB_OUTPUT
|
||||
echo "platforms=$(jq -c -n '$ARGS.positional' --args "${PLATFORMS[@]}")" >> $GITHUB_OUTPUT
|
||||
outputs:
|
||||
editions: ${{ steps.matrix.outputs.editions }}
|
||||
platforms: ${{ steps.matrix.outputs.platforms }}
|
||||
|
||||
build:
|
||||
name: "Build ${{ matrix.image }}-${{ matrix.edition }}"
|
||||
runs-on: ubuntu-latest
|
||||
name: "Build ${{ matrix.image }}-${{ matrix.edition }}:${{ matrix.platform }}"
|
||||
runs-on: ${{ matrix.runner }}
|
||||
needs: prepare
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
image: ["documentserver"]
|
||||
edition: ${{ fromJSON(needs.prepare.outputs.editions) }}
|
||||
platform: ${{ fromJSON(needs.prepare.outputs.platforms) }}
|
||||
include:
|
||||
- platform: amd64
|
||||
runner: ubuntu-latest
|
||||
- platform: arm64
|
||||
runner: ubuntu-24.04-arm
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
@ -126,8 +131,7 @@ jobs:
|
||||
id: build-ds
|
||||
env:
|
||||
BRANCH_NAME: ${{ github.ref_name }}
|
||||
AMD64: ${{ github.event.inputs.amd64 }}
|
||||
ARM64: ${{ github.event.inputs.arm64 }}
|
||||
PLATFORM: linux/${{ matrix.platform }}
|
||||
BUILD_NUMBER: ${{ github.event.inputs.build }}
|
||||
EDITION: ${{ matrix.edition }}
|
||||
IMAGE: ${{ matrix.image }}
|
||||
@ -149,10 +153,6 @@ jobs:
|
||||
;;
|
||||
esac
|
||||
|
||||
[ "${AMD64}" = true ] && PLATFORMS+=("amd64")
|
||||
[ "${ARM64}" = true ] && PLATFORMS+=("arm64")
|
||||
PLATFORM=$(echo ${PLATFORMS[*]/#/linux/} | tr ' ' ',')
|
||||
|
||||
if [ "$BRANCH_NAME" = develop ]; then
|
||||
BUILD_CHANNEL=nightly
|
||||
PRODUCT_VERSION=99.99.99
|
||||
@ -164,10 +164,9 @@ jobs:
|
||||
export PRODUCT_EDITION
|
||||
export PACKAGE_VERSION=${PRODUCT_VERSION}-${BUILD_NUMBER}
|
||||
export BUILD_CHANNEL
|
||||
export PLATFORM
|
||||
export DOCKERFILE=Dockerfile
|
||||
export PREFIX_NAME=4testing-
|
||||
export TAG=${PRODUCT_VERSION}.${BUILD_NUMBER}
|
||||
export TAG=${PRODUCT_VERSION}.${BUILD_NUMBER}-${{ matrix.platform }}
|
||||
|
||||
### ==>> Build and push images at this step ###
|
||||
|
||||
@ -186,6 +185,7 @@ jobs:
|
||||
- name: Trigger zap manualy
|
||||
if: >-
|
||||
matrix.edition == 'community' &&
|
||||
matrix.platform == 'amd64' &&
|
||||
(startsWith(steps.build-ds.outputs.branch, 'release/') ||
|
||||
startsWith(steps.build-ds.outputs.branch, 'hotfix/'))
|
||||
env:
|
||||
@ -200,3 +200,120 @@ jobs:
|
||||
-f version="${VERSION}"
|
||||
shell: bash
|
||||
|
||||
- name: Save build result to file
|
||||
if: always()
|
||||
run: |
|
||||
mkdir -p build-result
|
||||
|
||||
cat > build-result/info.json <<EOF
|
||||
{
|
||||
"status": "${{ job.status }}"
|
||||
}
|
||||
EOF
|
||||
|
||||
- name: Upload build result artifact
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-result-${{ matrix.edition }}-${{ matrix.platform }}
|
||||
path: build-result
|
||||
|
||||
make-images:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [prepare,build]
|
||||
if: always()
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
image: ["documentserver"]
|
||||
edition: ${{ fromJSON(needs.prepare.outputs.editions) }}
|
||||
steps:
|
||||
- name: Download all build results
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: build-results
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
|
||||
- name: "Make images documentserver"
|
||||
env:
|
||||
EDITION: ${{ matrix.edition }}
|
||||
BUILD_NUMBER: ${{ github.event.inputs.build }}
|
||||
BRANCH_NAME: ${{ github.ref_name }}
|
||||
run: |
|
||||
case "${EDITION}" in
|
||||
community)
|
||||
PRODUCT_EDITION=""
|
||||
;;
|
||||
enterprise)
|
||||
PRODUCT_EDITION="-ee"
|
||||
;;
|
||||
developer)
|
||||
PRODUCT_EDITION="-de"
|
||||
;;
|
||||
esac
|
||||
|
||||
AMD64_STATUS=$(cat ./build-results/build-result-${{ matrix.edition }}-amd64/info.json | jq -r .status)
|
||||
ARM64_STATUS=$(cat ./build-results/build-result-${{ matrix.edition }}-arm64/info.json | jq -r .status)
|
||||
|
||||
echo "ARM64 status: ${ARM64_STATUS}"
|
||||
echo "AMD64 status: ${AMD64_STATUS}"
|
||||
|
||||
if [ "$BRANCH_NAME" = develop ]; then
|
||||
BUILD_CHANNEL=nightly
|
||||
PRODUCT_VERSION=99.99.99
|
||||
elif [[ "$BRANCH_NAME" =~ hotfix || "$BRANCH_NAME" =~ release ]]; then
|
||||
BUILD_CHANNEL=test
|
||||
PRODUCT_VERSION=${BRANCH_NAME#*/v}
|
||||
fi
|
||||
|
||||
export TAG=${PRODUCT_VERSION}.${BUILD_NUMBER}
|
||||
|
||||
FROM_TAGS=()
|
||||
PUSH_TAGS=()
|
||||
|
||||
check_image() {
|
||||
local img="$1"
|
||||
local timeout=120
|
||||
local interval=20
|
||||
local elapsed=0
|
||||
|
||||
echo "Checking for image: $img"
|
||||
|
||||
while (( elapsed < timeout )); do
|
||||
if docker manifest inspect "$img" > /dev/null 2>&1; then
|
||||
echo "Found image: $img"
|
||||
FROM_TAGS+=( "$img" )
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Image not found yet, retrying in ${interval}s..."
|
||||
sleep $interval
|
||||
elapsed=$(( elapsed + interval ))
|
||||
done
|
||||
|
||||
echo "ERROR: Image not found after ${timeout}s: $img"
|
||||
return 1
|
||||
}
|
||||
|
||||
if [[ "${AMD64_STATUS}" == "success" ]]; then
|
||||
check_image "${COMPANY_NAME}/4testing-${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}-amd64"
|
||||
fi
|
||||
|
||||
if [[ "${ARM64_STATUS}" == "success" ]]; then
|
||||
check_image "${COMPANY_NAME}/4testing-${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}-arm64"
|
||||
fi
|
||||
|
||||
PUSH_TAGS=(
|
||||
-t "${COMPANY_NAME}/4testing-${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}"
|
||||
)
|
||||
|
||||
if [[ "${BUILD_CHANNEL}" == "nightly" ]]; then
|
||||
PUSH_TAGS+=( -t "${COMPANY_NAME}/4testing-${PRODUCT_NAME}${PRODUCT_EDITION}:latest" )
|
||||
fi
|
||||
|
||||
docker buildx imagetools create "${PUSH_TAGS[@]}" "${FROM_TAGS[@]}"
|
||||
|
||||
43
.github/workflows/stable-build.yml
vendored
43
.github/workflows/stable-build.yml
vendored
@ -38,16 +38,16 @@ jobs:
|
||||
edition: ["", "-ee", "-de"]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
@ -69,12 +69,16 @@ jobs:
|
||||
exit 0
|
||||
shell: bash
|
||||
|
||||
- name: Update Docker Hub README
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
repository: ${{ env.COMPANY_NAME }}/${{ env.PRODUCT_NAME }}${{ matrix.edition }}
|
||||
# Disable for now
|
||||
# Related with issue:
|
||||
# https://github.com/peter-evans/dockerhub-description/issues/294
|
||||
#
|
||||
#- name: Update Docker Hub README
|
||||
# uses: peter-evans/dockerhub-description@v4
|
||||
# with:
|
||||
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
# password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
# repository: ${{ env.COMPANY_NAME }}/${{ env.PRODUCT_NAME }}${{ matrix.edition }}
|
||||
|
||||
release_4enterprise:
|
||||
name: "Release image: onlyoffice4enterprise"
|
||||
@ -114,16 +118,16 @@ jobs:
|
||||
edition: ["", "-ee", "-de"]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
@ -146,18 +150,16 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
edition: ["", "-ee"]
|
||||
platform: ["amd64"]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
||||
@ -166,6 +168,7 @@ jobs:
|
||||
env:
|
||||
PACKAGE_BASEURL: ${{ secrets.REPO_BASEURL }}
|
||||
PRODUCT_EDITION: ${{ matrix.edition }}
|
||||
PLATFORM: linux/${{ matrix.platform }}
|
||||
run: |
|
||||
set -eux
|
||||
export DOCKERFILE=Dockerfile
|
||||
|
||||
@ -122,6 +122,7 @@ RUN PACKAGE_FILE="${COMPANY_NAME}-${PRODUCT_NAME}${PRODUCT_EDITION}${PACKAGE_VER
|
||||
apt-get -y update && \
|
||||
service postgresql start && \
|
||||
apt-get -yq install /tmp/$PACKAGE_FILE && \
|
||||
if [ "${PRODUCT_EDITION}" != "-ee" ] && [ "${PRODUCT_EDITION}" != "-de" ]; then rm -f /etc/supervisor/conf.d/ds-adminpanel.conf && sed -i 's/,adminpanel//' /etc/supervisor/conf.d/ds.conf; fi && \
|
||||
PGPASSWORD=$ONLYOFFICE_VALUE dropdb -h localhost -p 5432 -U $ONLYOFFICE_VALUE $ONLYOFFICE_VALUE && \
|
||||
sudo -u postgres psql -c "DROP ROLE onlyoffice;" && \
|
||||
service postgresql stop && \
|
||||
|
||||
17
README.md
17
README.md
@ -6,11 +6,13 @@
|
||||
- [Storing Data](#storing-data)
|
||||
- [Running ONLYOFFICE Document Server on Different Port](#running-onlyoffice-document-server-on-different-port)
|
||||
- [Running ONLYOFFICE Document Server using HTTPS](#running-onlyoffice-document-server-using-https)
|
||||
+ [Using the automatically generated Let's Encrypt SSL Certificates](#using-the-automatically-generated-lets-encrypt-ssl-certificates)
|
||||
+ [Generation of Self Signed Certificates](#generation-of-self-signed-certificates)
|
||||
+ [Strengthening the Server Security](#strengthening-the-server-security)
|
||||
+ [Installation of the SSL Certificates](#installation-of-the-ssl-certificates)
|
||||
+ [Available Configuration Parameters](#available-configuration-parameters)
|
||||
* [Installing ONLYOFFICE Document Server integrated with Community and Mail Servers](#installing-onlyoffice-document-server-integrated-with-community-and-mail-servers)
|
||||
* [Installing ONLYOFFICE Document Server using Docker Compose](#installing-onlyoffice-document-server-using-docker-compose)
|
||||
* [Installing ONLYOFFICE Document Server as a part of ONLYOFFICE Workspace](#installing-onlyoffice-document-server-as-a-part-of-onlyoffice-workspace)
|
||||
* [ONLYOFFICE Document Server ipv6 setup](#onlyoffice-document-server-ipv6-setup)
|
||||
* [Issues](#issues)
|
||||
- [Docker Issues](#docker-issues)
|
||||
@ -26,7 +28,7 @@ Starting from version 6.0, Document Server is distributed as ONLYOFFICE Docs. It
|
||||
|
||||
ONLYOFFICE Docs can be used as a part of [ONLYOFFICE DocSpace](https://www.onlyoffice.com/docspace.aspx) and ONLYOFFICE Workspace, or with [third-party sync&share solutions](https://www.onlyoffice.com/all-connectors.aspx) (e.g. Odoo, Moodle, Nextcloud, ownCloud, Seafile, etc.) to enable collaborative editing within their interface.
|
||||
|
||||
***Important*** Please update `docker-engine` to latest version (`20.10.21` as of writing this doc) before using it. We use `ubuntu:24.04` as base image and it older versions of docker have compatibility problems with it
|
||||
***Important*** Please update `docker-engine` to latest version (`20.10.21` as of writing this doc) before using it. We use `ubuntu:24.04` as base image and older versions of docker have compatibility problems with it
|
||||
|
||||
## Functionality ##
|
||||
|
||||
@ -55,7 +57,7 @@ ONLYOFFICE Docs offer support for plugins allowing you to add specific features
|
||||
* **CPU**: dual-core 2 GHz or higher
|
||||
* **Swap**: at least 2 GB
|
||||
* **HDD**: at least 2 GB of free space
|
||||
* **Distribution**: 64-bit Red Hat, CentOS or other compatible distributive with kernel version 3.8 or later, 64-bit Debian, Ubuntu or other compatible distributive with kernel version 3.8 or later
|
||||
* **Distribution**: 64-bit Red Hat, CentOS or other compatible distribution with kernel version 3.8 or later, 64-bit Debian, Ubuntu or other compatible distribution with kernel version 3.8 or later
|
||||
* **Docker**: version 1.9.0 or later
|
||||
|
||||
## Running Docker Image
|
||||
@ -196,13 +198,14 @@ Below is the complete list of parameters that can be set using environment varia
|
||||
- **MSSQL** — schema to set as [DEFAULT_SCHEMA](https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-user-transact-sql?view=sql-server-ver17#default_schema---schema_name--null-), default `dbo`.
|
||||
- **AMQP_URI**: The [AMQP URI](https://www.rabbitmq.com/uri-spec.html "RabbitMQ URI Specification") to connect to message broker server.
|
||||
- **AMQP_TYPE**: The message broker type. Supported values are `rabbitmq` or `activemq`. Defaults to `rabbitmq`.
|
||||
- **RABBIT_CONNECTIONS**: Sets the maximum number of simultaneous connections that can be opened to the RabbitMQ message broker. Defaults to the soft limit from `ulimit -n`.
|
||||
- **REDIS_SERVER_HOST**: The IP address or the name of the host where the Redis server is running.
|
||||
- **REDIS_SERVER_PORT**: The Redis server port number.
|
||||
- **REDIS_SERVER_USER**: The Redis server username. The username is not set by default.
|
||||
- **REDIS_SERVER_PASS**: The Redis server password. The password is not set by default.
|
||||
- **REDIS_SERVER_DB**: The Redis database index number to select. Defaults to `0`.
|
||||
- **NGINX_WORKER_PROCESSES**: Defines the number of nginx worker processes.
|
||||
- **NGINX_WORKER_CONNECTIONS**: Sets the maximum number of simultaneous connections that can be opened by a nginx worker process.
|
||||
- **NGINX_WORKER_CONNECTIONS**: Sets the maximum number of simultaneous connections that can be opened by a nginx worker process. Defaults to the soft limit from `ulimit -n`.
|
||||
- **NGINX_ACCESS_LOG**: Defines whether access logging is enabled. Defaults to `false`.
|
||||
- **SECURE_LINK_SECRET**: Defines secret for the nginx config directive [secure_link_md5](https://nginx.org/en/docs/http/ngx_http_secure_link_module.html#secure_link_md5). Defaults to `random string`.
|
||||
- **JWT_ENABLED**: Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Document Server. Defaults to `true`.
|
||||
@ -259,7 +262,7 @@ Then launch containers on it using the 'docker run --net onlyoffice' option:
|
||||
|
||||
**STEP 2**: Install MySQL.
|
||||
|
||||
Follow [these steps](#installing-mysql) to install MySQL server.
|
||||
Install MySQL server. You can find MySQL installation instructions in the [official MySQL documentation](https://dev.mysql.com/doc/).
|
||||
|
||||
**STEP 3**: Generate JWT Secret
|
||||
|
||||
@ -350,14 +353,14 @@ wget https://download.onlyoffice.com/install/workspace-install.sh
|
||||
**STEP 2**: Install ONLYOFFICE Workspace executing the following command:
|
||||
|
||||
```bash
|
||||
workspace-install.sh -md yourdomain.com
|
||||
bash workspace-install.sh -md yourdomain.com
|
||||
```
|
||||
|
||||
Or, use [docker-compose](https://docs.docker.com/compose/install "docker-compose"). First you need to clone this [GitHub repository](https://github.com/ONLYOFFICE/Docker-CommunityServer/):
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/ONLYOFFICE/Docker-CommunityServer/master/docker-compose.groups.yml
|
||||
docker-compose up -d
|
||||
docker-compose -f docker-compose.groups.yml up -d
|
||||
```
|
||||
|
||||
## ONLYOFFICE Document Server ipv6 setup
|
||||
|
||||
@ -90,8 +90,7 @@ target "documentserver" {
|
||||
target = "documentserver"
|
||||
dockerfile = "${DOCKERFILE}"
|
||||
tags = [
|
||||
"docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}",
|
||||
equal("nightly",BUILD_CHANNEL) ? "docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:latest": "",
|
||||
"docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}"
|
||||
]
|
||||
platforms = ["${PLATFORM}"]
|
||||
args = {
|
||||
@ -126,7 +125,7 @@ target "documentserver-ucs" {
|
||||
tags = [
|
||||
"docker.io/${COMPANY_NAME}/${PRODUCT_NAME}${PRODUCT_EDITION}-ucs:${TAG}"
|
||||
]
|
||||
platforms = ["linux/amd64", "linux/arm64"]
|
||||
platforms = ["${PLATFORM}"]
|
||||
args = {
|
||||
"PRODUCT_EDITION": "${PRODUCT_EDITION}"
|
||||
"PRODUCT_NAME": "${PRODUCT_NAME}"
|
||||
|
||||
@ -105,7 +105,7 @@ NGINX_CONFIG_PATH="/etc/nginx/nginx.conf"
|
||||
NGINX_WORKER_PROCESSES=${NGINX_WORKER_PROCESSES:-1}
|
||||
NGINX_ACCESS_LOG=${NGINX_ACCESS_LOG:-false}
|
||||
# Limiting the maximum number of simultaneous connections due to possible memory shortage
|
||||
LIMIT=$(ulimit -n); [ "$LIMIT" = "unlimited" ] || [ "$LIMIT" -gt 524288 ] && LIMIT=524288
|
||||
LIMIT=$(ulimit -n); [ "$LIMIT" = "unlimited" ] || [ "$LIMIT" -gt 1048576 ] && LIMIT=1048576
|
||||
NGINX_WORKER_CONNECTIONS=${NGINX_WORKER_CONNECTIONS:-$LIMIT}
|
||||
RABBIT_CONNECTIONS=${RABBIT_CONNECTIONS:-$LIMIT}
|
||||
|
||||
@ -136,6 +136,8 @@ else
|
||||
REDIS_ENABLED=true
|
||||
fi
|
||||
|
||||
[[ "${PRODUCT_EDITION}" =~ ^-(ee|de)$ ]] && ADMINPANEL_AVAILABLE=true || ADMINPANEL_AVAILABLE=false
|
||||
|
||||
ONLYOFFICE_DEFAULT_CONFIG=${CONF_DIR}/local.json
|
||||
ONLYOFFICE_LOG4JS_CONFIG=${CONF_DIR}/log4js/production.json
|
||||
ONLYOFFICE_EXAMPLE_CONFIG=${CONF_DIR}-example/local.json
|
||||
@ -585,16 +587,25 @@ create_oracle_tbl() {
|
||||
|
||||
update_welcome_page() {
|
||||
WELCOME_PAGE="${APP_DIR}-example/welcome/docker.html"
|
||||
EXAMPLE_DISABLED_PAGE="${APP_DIR}-example/welcome/example-disabled.html"
|
||||
if ${ADMINPANEL_AVAILABLE}; then
|
||||
ADMIN_DISABLED_PAGE="${APP_DIR}-example/welcome/admin-disabled.html"
|
||||
sed -Ei 's#sudo systemctl start ds-(adminpanel|example)#sudo docker exec $(sudo docker ps -q) supervisorctl start ds:\1#g' "$ADMIN_DISABLED_PAGE" "$EXAMPLE_DISABLED_PAGE"
|
||||
else
|
||||
sed -Ei 's#sudo systemctl start ds-example#sudo docker exec $(sudo docker ps -q) supervisorctl start ds:example#g' "$EXAMPLE_DISABLED_PAGE"
|
||||
fi
|
||||
|
||||
TARGET_PAGES="$WELCOME_PAGE $EXAMPLE_DISABLED_PAGE${ADMIN_DISABLED_PAGE:+ $ADMIN_DISABLED_PAGE}"
|
||||
if [[ -e $WELCOME_PAGE ]]; then
|
||||
DOCKER_CONTAINER_ID=$(basename $(cat /proc/1/cpuset))
|
||||
(( ${#DOCKER_CONTAINER_ID} < 12 )) && DOCKER_CONTAINER_ID=$(hostname)
|
||||
if (( ${#DOCKER_CONTAINER_ID} >= 12 )); then
|
||||
if [[ -x $(command -v docker) ]]; then
|
||||
DOCKER_CONTAINER_NAME=$(docker inspect --format="{{.Name}}" $DOCKER_CONTAINER_ID)
|
||||
sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_NAME#/}"'/' -i $WELCOME_PAGE
|
||||
sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_NAME#/}"'/' -i ${TARGET_PAGES}
|
||||
JWT_MESSAGE=$(echo $JWT_MESSAGE | sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_NAME#/}"'/')
|
||||
else
|
||||
sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_ID::12}"'/' -i $WELCOME_PAGE
|
||||
sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_ID::12}"'/' -i ${TARGET_PAGES}
|
||||
JWT_MESSAGE=$(echo $JWT_MESSAGE | sed 's/$(sudo docker ps -q)/'"${DOCKER_CONTAINER_ID::12}"'/')
|
||||
fi
|
||||
fi
|
||||
@ -672,10 +683,10 @@ update_release_date(){
|
||||
}
|
||||
|
||||
# create base folders
|
||||
for i in converter docservice metrics adminpanel; do
|
||||
mkdir -p "$DS_LOG_DIR/$i" && touch "$DS_LOG_DIR/$i"/{out,err}.log
|
||||
for SUPERVISOR_CONF in "${SUPERVISOR_CONF_DIR}"/ds-*.conf; do
|
||||
SERVICE_NAME=$(sed "s|^${SUPERVISOR_CONF_DIR}/ds-||; s|\.conf$||" <<<"$SUPERVISOR_CONF")
|
||||
mkdir -p "$DS_LOG_DIR/$SERVICE_NAME" && touch "$DS_LOG_DIR/$SERVICE_NAME"/{out,err}.log
|
||||
done
|
||||
|
||||
mkdir -p "${DS_LOG_DIR}-example" && touch "${DS_LOG_DIR}-example"/{out,err}.log
|
||||
|
||||
# create app folders
|
||||
@ -797,7 +808,7 @@ if [ ${ONLYOFFICE_DATA_CONTAINER} != "true" ]; then
|
||||
( documentserver-pluginsmanager.sh -r false --update="${APP_DIR}/sdkjs-plugins/plugin-list-default.json" >/dev/null; echo "[pluginsmanager] Plugins initialization finished" >/proc/1/fd/1 ) &
|
||||
fi
|
||||
|
||||
[ "${ADMINPANEL_ENABLED:-false}" = "true" ] && sed -i 's,autostart=false,autostart=true,' ${SUPERVISOR_CONF_DIR}/ds-adminpanel.conf
|
||||
${ADMINPANEL_AVAILABLE} && [ "${ADMINPANEL_ENABLED:-false}" = "true" ] && sed -i 's,autostart=false,autostart=true,' ${SUPERVISOR_CONF_DIR}/ds-adminpanel.conf
|
||||
[ "${EXAMPLE_ENABLED:-false}" = "true" ] && sed -i 's,autostart=false,autostart=true,' ${SUPERVISOR_CONF_DIR}/ds-example.conf
|
||||
service supervisor start
|
||||
|
||||
|
||||
Reference in New Issue
Block a user