From f4ae743455ebd17f4e51e7d5d7e9773b4b6fe085 Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Wed, 12 Feb 2025 11:22:49 +0000 Subject: [PATCH 01/13] Restrict the directories for log collection (#10) Reviewed-on: https://git.onlyoffice.com/ONLYOFFICE/Docker-DocumentServer/pulls/10 --- run-document-server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-document-server.sh b/run-document-server.sh index f751b3c..4a7b2fd 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -792,4 +792,4 @@ start_process documentserver-static-gzip.sh ${ONLYOFFICE_DATA_CONTAINER} echo "${JWT_MESSAGE}" -start_process tail -f /var/log/${COMPANY_NAME}/**/*.log +start_process find "$DS_LOG_DIR" "$DS_LOG_DIR-example" -type f -name "*.log" | xargs tail -f From ede8569ec26addb159cc30d4d27ef81a7c3d7f11 Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Wed, 9 Apr 2025 18:35:56 +0300 Subject: [PATCH 02/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 298fe09..eef78e5 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ ## Overview -ONLYOFFICE Document Server is an online office suite comprising viewers and editors for texts, spreadsheets and presentations, fully compatible with Office Open XML formats: .docx, .xlsx, .pptx and enabling collaborative editing in real time. +ONLYOFFICE Document Server is an open-source office suite that comprises all the tools you need to work with documents, spreadsheets, presentations, PDFs, and PDF forms. The suite supports office files of all popular formats (DOCX, ODT, XLSX, ODS, CSV, PPTX, ODP, etc.) and enables collaborative editing in real time. Starting from version 6.0, Document Server is distributed as ONLYOFFICE Docs. It has [three editions](https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-document-server-editions). With this image, you will install the free Community version. From 39b82a3c9a6e1ea6b487b8719101060454e124fd Mon Sep 17 00:00:00 2001 From: danilapog Date: Thu, 24 Apr 2025 14:17:08 +0300 Subject: [PATCH 03/13] build: add conditional tagging for latest in stable-build workflow - Introduced input in the GitHub Actions workflow with a default value of . - Passed the input as an environment variable () to the workflow. - Updated to conditionally add the Docker tag based on value. --- .github/workflows/stable-build.yml | 6 ++++++ docker-bake.hcl | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/stable-build.yml b/.github/workflows/stable-build.yml index 01e80f7..b89b847 100644 --- a/.github/workflows/stable-build.yml +++ b/.github/workflows/stable-build.yml @@ -14,12 +14,18 @@ on: type: string required: true default: '1' + latest: + description: 'Push latest tag?' + type: boolean + required: true + default: true env: COMPANY_NAME: "onlyoffice" PRODUCT_NAME: "documentserver" VERSION: ${{ github.event.inputs.tag }} RELEASE_NUMBER: ${{ github.event.inputs.release_number }} + LATEST: ${{ github.event.inputs.latest }} jobs: build: diff --git a/docker-bake.hcl b/docker-bake.hcl index 7db339c..9eab0de 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -110,7 +110,7 @@ target "documentserver-stable" { tags = ["docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}", "docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${SHORTER_TAG}", "docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${SHORTEST_TAG}", - "docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:latest", + equal("true",LATEST) ? "docker.io/${COMPANY_NAME}/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:latest": "", equal("-ee",PRODUCT_EDITION) ? "docker.io/${COMPANY_NAME}4enterprise/${PREFIX_NAME}${PRODUCT_NAME}${PRODUCT_EDITION}:${TAG}": "",] platforms = ["linux/amd64", "linux/arm64"] args = { From 019d1b881f9cd8cfea3ae7b786bc172fa58afdbe Mon Sep 17 00:00:00 2001 From: Vladimir Ischenko Date: Tue, 13 May 2025 16:23:12 +0300 Subject: [PATCH 04/13] Fix bug 73600 - Add DB name to MSSQL connection --- run-document-server.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run-document-server.sh b/run-document-server.sh index 4a7b2fd..4d053f0 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -510,7 +510,7 @@ upgrade_mysql_tbl() { } upgrade_mssql_tbl() { - CONN_PARAMS="-U $DB_USER -P "$DB_PWD" -C" + CONN_PARAMS="-d $DB_NAME -U $DB_USER -P "$DB_PWD" -C" MSSQL="/opt/mssql-tools18/bin/sqlcmd -S $DB_HOST,$DB_PORT $CONN_PARAMS" $MSSQL < "$APP_DIR/server/schema/mssql/removetbl.sql" >/dev/null 2>&1 @@ -547,7 +547,7 @@ create_mysql_tbl() { create_mssql_tbl() { create_mssql_db - CONN_PARAMS="-U $DB_USER -P "$DB_PWD" -C" + CONN_PARAMS="-d $DB_NAME -U $DB_USER -P "$DB_PWD" -C" MSSQL="/opt/mssql-tools18/bin/sqlcmd -S $DB_HOST,$DB_PORT $CONN_PARAMS" $MSSQL < "$APP_DIR/server/schema/mssql/createdb.sql" >/dev/null 2>&1 From 11f153dd60a27f6c8cf219101a18fb2d0faf33c3 Mon Sep 17 00:00:00 2001 From: Vladimir Ischenko Date: Thu, 15 May 2025 09:23:04 +0000 Subject: [PATCH 05/13] =?UTF-8?q?Fix=20bug=2073689=20=E2=80=93=20Replace?= =?UTF-8?q?=20hardcoded=20PDB=20and=20add=20libaio=20symlink=20(#23)=20Co-?= =?UTF-8?q?authored-by:=20Vladimir=20Ischenko=20=20Co-committed-by:=20Vladimir=20Ischenko=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + run-document-server.sh | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 63f140c..cec0dd0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,6 +88,7 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ unzip -d /usr/share basic.zip && \ unzip -d /usr/share sqlplus.zip && \ mv /usr/share/instantclient_${OC_VER_DIR} /usr/share/instantclient && \ + ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 && \ service postgresql stop && \ service redis-server stop && \ service rabbitmq-server stop && \ diff --git a/run-document-server.sh b/run-document-server.sh index 4d053f0..9d34c6c 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -274,8 +274,7 @@ waiting_for_connection(){ waiting_for_db_ready(){ case $DB_TYPE in "oracle") - PDB="XEPDB1" - ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/$PDB" + ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/${DB_NAME}" DB_TEST="echo \"SELECT version FROM V\$INSTANCE;\" | $ORACLE_SQL 2>/dev/null | grep \"Connected\" | wc -l" ;; *) @@ -518,8 +517,7 @@ upgrade_mssql_tbl() { } upgrade_oracle_tbl() { - PDB="XEPDB1" - ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/$PDB" + ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/${DB_NAME}" $ORACLE_SQL @$APP_DIR/server/schema/oracle/removetbl.sql >/dev/null 2>&1 $ORACLE_SQL @$APP_DIR/server/schema/oracle/createdb.sql >/dev/null 2>&1 @@ -554,8 +552,7 @@ create_mssql_tbl() { } create_oracle_tbl() { - PDB="XEPDB1" - ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/$PDB" + ORACLE_SQL="sqlplus $DB_USER/$DB_PWD@//$DB_HOST:$DB_PORT/${DB_NAME}" $ORACLE_SQL @$APP_DIR/server/schema/oracle/createdb.sql >/dev/null 2>&1 } From 1bdda91da345244423ef3428b65a1c83aa010a63 Mon Sep 17 00:00:00 2001 From: Vladimir Ischenko Date: Thu, 15 May 2025 18:37:07 +0300 Subject: [PATCH 06/13] Fix multi-arch libaio symlink --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cec0dd0..b093d16 100644 --- a/Dockerfile +++ b/Dockerfile @@ -88,7 +88,7 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ unzip -d /usr/share basic.zip && \ unzip -d /usr/share sqlplus.zip && \ mv /usr/share/instantclient_${OC_VER_DIR} /usr/share/instantclient && \ - ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 && \ + find /usr/lib /lib -name "libaio.so.1$PACKAGE_SUFFIX" -exec bash -c 'ln -sf "$0" "$(dirname "$0")/libaio.so.1"' {} \; && \ service postgresql stop && \ service redis-server stop && \ service rabbitmq-server stop && \ From a085cb962b3f4f30a0f85ffe363958ee1bfb741a Mon Sep 17 00:00:00 2001 From: Vladimir Ischenko Date: Mon, 19 May 2025 09:39:58 +0300 Subject: [PATCH 07/13] Fix Oracle Instant Client installation --- Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index b093d16..6e9a8d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,13 +9,13 @@ ARG BASE_VERSION ARG PG_VERSION=16 ARG PACKAGE_SUFFIX=t64 -ENV OC_RELEASE_NUM=21 -ENV OC_RU_VER=12 +ENV OC_RELEASE_NUM=23 +ENV OC_RU_VER=7 ENV OC_RU_REVISION_VER=0 -ENV OC_RESERVED_NUM=0 -ENV OC_RU_DATE=0 -ENV OC_PATH=${OC_RELEASE_NUM}${OC_RU_VER}000 -ENV OC_FILE_SUFFIX=${OC_RELEASE_NUM}.${OC_RU_VER}.${OC_RU_REVISION_VER}.${OC_RESERVED_NUM}.${OC_RU_DATE}${OC_FILE_SUFFIX}dbru +ENV OC_RESERVED_NUM=25 +ENV OC_RU_DATE=01 +ENV OC_PATH=${OC_RELEASE_NUM}${OC_RU_VER}0000 +ENV OC_FILE_SUFFIX=${OC_RELEASE_NUM}.${OC_RU_VER}.${OC_RU_REVISION_VER}.${OC_RESERVED_NUM}.${OC_RU_DATE} ENV OC_VER_DIR=${OC_RELEASE_NUM}_${OC_RU_VER} ENV OC_DOWNLOAD_URL=https://download.oracle.com/otn_software/linux/instantclient/${OC_PATH} @@ -83,10 +83,10 @@ RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && \ service postgresql restart && \ sudo -u postgres psql -c "CREATE USER $ONLYOFFICE_VALUE WITH password '$ONLYOFFICE_VALUE';" && \ sudo -u postgres psql -c "CREATE DATABASE $ONLYOFFICE_VALUE OWNER $ONLYOFFICE_VALUE;" && \ - wget -O basic.zip ${OC_DOWNLOAD_URL}/instantclient-basic-linux.x64-${OC_FILE_SUFFIX}.zip && \ - wget -O sqlplus.zip ${OC_DOWNLOAD_URL}/instantclient-sqlplus-linux.x64-${OC_FILE_SUFFIX}.zip && \ - unzip -d /usr/share basic.zip && \ - unzip -d /usr/share sqlplus.zip && \ + wget -O basic.zip ${OC_DOWNLOAD_URL}/instantclient-basic-linux.$(dpkg --print-architecture | sed 's/amd64/x64/')-${OC_FILE_SUFFIX}.zip && \ + wget -O sqlplus.zip ${OC_DOWNLOAD_URL}/instantclient-sqlplus-linux.$(dpkg --print-architecture | sed 's/amd64/x64/')-${OC_FILE_SUFFIX}.zip && \ + unzip -o basic.zip -d /usr/share && \ + unzip -o sqlplus.zip -d /usr/share && \ mv /usr/share/instantclient_${OC_VER_DIR} /usr/share/instantclient && \ find /usr/lib /lib -name "libaio.so.1$PACKAGE_SUFFIX" -exec bash -c 'ln -sf "$0" "$(dirname "$0")/libaio.so.1"' {} \; && \ service postgresql stop && \ From 68760883fe1e40b5c3f9aece4a2a5e7b61db4a2d Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Tue, 10 Jun 2025 14:48:14 +0000 Subject: [PATCH 08/13] Fix certificates retrieval in directory (#26) --- run-document-server.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/run-document-server.sh b/run-document-server.sh index 9d34c6c..e45de56 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -51,10 +51,10 @@ if [ "${RELEASE_DATE}" != "${PREV_RELEASE_DATE}" ]; then fi fi -SSL_CERTIFICATES_DIR="/usr/share/ca-certificates/ds" -mkdir -p ${SSL_CERTIFICATES_DIR} -if find "${DATA_DIR}/certs" -type f \( -name "*.crt" -o -name "*.pem" \) -print -quit >/dev/null 2>&1; then - cp -f ${DATA_DIR}/certs/* ${SSL_CERTIFICATES_DIR} +SSL_CERTIFICATES_DIR="/usr/share/ca-certificates/ds"; mkdir -p ${SSL_CERTIFICATES_DIR} +CERTIFICATE_FILES=( ${DATA_DIR}/certs/*.{crt,pem,key} ) +if [ ${#CERTIFICATE_FILES[@]} -gt 0 ]; then + cp -f "${CERTIFICATE_FILES[@]}" "${SSL_CERTIFICATES_DIR}/" chmod 644 ${SSL_CERTIFICATES_DIR}/*.{crt,pem} 2>/dev/null chmod 400 ${SSL_CERTIFICATES_DIR}/*.key 2>/dev/null fi From bd275e827634c1b3c4e112ced0197579ec3804b1 Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Tue, 10 Jun 2025 14:48:57 +0000 Subject: [PATCH 09/13] Streamline docker-compose by pinning RabbitMQ & PostgreSQL and adding healthchecks (#28) --- docker-compose.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index af3c028..276f8cc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,7 @@ services: onlyoffice-documentserver: build: context: . + image: onlyoffice/documentserver #[-de,-ee] container_name: onlyoffice-documentserver depends_on: - onlyoffice-postgresql @@ -21,6 +22,12 @@ services: ports: - '80:80' - '443:443' + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8000/info/info.json"] + interval: 30s + retries: 5 + start_period: 60s + timeout: 10s stdin_open: true restart: always stop_grace_period: 60s @@ -33,14 +40,20 @@ services: onlyoffice-rabbitmq: container_name: onlyoffice-rabbitmq - image: rabbitmq + image: rabbitmq:3 restart: always expose: - '5672' + healthcheck: + test: ["CMD", "rabbitmq-diagnostics", "status"] + interval: 10s + retries: 3 + start_period: 10s + timeout: 10s onlyoffice-postgresql: container_name: onlyoffice-postgresql - image: postgres:12 + image: postgres:15 environment: - POSTGRES_DB=onlyoffice - POSTGRES_USER=onlyoffice @@ -50,6 +63,12 @@ services: - '5432' volumes: - postgresql_data:/var/lib/postgresql + healthcheck: + test: ["CMD-SHELL", "pg_isready -U onlyoffice"] + interval: 10s + retries: 3 + start_period: 10s + timeout: 10s volumes: postgresql_data: From 0fad4d043f48a3d7c899a0d74330d40782678d3f Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Tue, 10 Jun 2025 14:49:12 +0000 Subject: [PATCH 10/13] Set correct ownership for data directories (#29) --- run-document-server.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/run-document-server.sh b/run-document-server.sh index e45de56..bd90c3c 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -652,6 +652,7 @@ for i in ${DS_LIB_DIR}/App_Data/cache/files ${DS_LIB_DIR}/App_Data/docbuilder ${ done # change folder rights +chown ds:ds "${DATA_DIR}" for i in ${DS_LOG_DIR} ${DS_LOG_DIR}-example ${LIB_DIR}; do chown -R ds:ds "$i" chmod -R 755 "$i" From 1d7b5cc6a6ae335c8852f8027b084f8844182f2e Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Wed, 11 Jun 2025 16:42:17 +0300 Subject: [PATCH 11/13] Fix the issue with the certificate files --- run-document-server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run-document-server.sh b/run-document-server.sh index bd90c3c..088e4c4 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -52,7 +52,7 @@ if [ "${RELEASE_DATE}" != "${PREV_RELEASE_DATE}" ]; then fi SSL_CERTIFICATES_DIR="/usr/share/ca-certificates/ds"; mkdir -p ${SSL_CERTIFICATES_DIR} -CERTIFICATE_FILES=( ${DATA_DIR}/certs/*.{crt,pem,key} ) +shopt -s nullglob extglob; CERTIFICATE_FILES=( ${DATA_DIR}/certs/*.{crt,pem} ); shopt -u nullglob extglob if [ ${#CERTIFICATE_FILES[@]} -gt 0 ]; then cp -f "${CERTIFICATE_FILES[@]}" "${SSL_CERTIFICATES_DIR}/" chmod 644 ${SSL_CERTIFICATES_DIR}/*.{crt,pem} 2>/dev/null From 2480f24dfde99902925ef8555c7371884dc6ef62 Mon Sep 17 00:00:00 2001 From: Evgeniy Antonyuk Date: Sun, 15 Jun 2025 16:22:35 +0300 Subject: [PATCH 12/13] Fix the issue with the certificate files --- run-document-server.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/run-document-server.sh b/run-document-server.sh index 088e4c4..d338512 100644 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -52,11 +52,10 @@ if [ "${RELEASE_DATE}" != "${PREV_RELEASE_DATE}" ]; then fi SSL_CERTIFICATES_DIR="/usr/share/ca-certificates/ds"; mkdir -p ${SSL_CERTIFICATES_DIR} -shopt -s nullglob extglob; CERTIFICATE_FILES=( ${DATA_DIR}/certs/*.{crt,pem} ); shopt -u nullglob extglob -if [ ${#CERTIFICATE_FILES[@]} -gt 0 ]; then - cp -f "${CERTIFICATE_FILES[@]}" "${SSL_CERTIFICATES_DIR}/" - chmod 644 ${SSL_CERTIFICATES_DIR}/*.{crt,pem} 2>/dev/null - chmod 400 ${SSL_CERTIFICATES_DIR}/*.key 2>/dev/null +find "${DATA_DIR}/certs" -type f \( -iname '*.crt' -o -iname '*.pem' -o -iname '*.key' \) -exec cp -f {} "${SSL_CERTIFICATES_DIR}"/ \; +if find "${SSL_CERTIFICATES_DIR}" -maxdepth 1 -type f | read _; then + find "${SSL_CERTIFICATES_DIR}" -type f \( -iname '*.crt' -o -iname '*.pem' \) -exec chmod 644 {} \; + find "${SSL_CERTIFICATES_DIR}" -type f -iname '*.key' -exec chmod 400 {} \; fi if [[ -z $SSL_CERTIFICATE_PATH ]] && [[ -f ${SSL_CERTIFICATES_DIR}/${COMPANY_NAME}.crt ]]; then From 448caaf01d86b7d38ea6923e403d6376eceeb911 Mon Sep 17 00:00:00 2001 From: Kseniya Fedoruk Date: Wed, 25 Jun 2025 17:08:01 +0300 Subject: [PATCH 13/13] Update readme.md --- README.md | 148 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 114 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index eef78e5..ee6c4f7 100644 --- a/README.md +++ b/README.md @@ -20,28 +20,35 @@ ## Overview -ONLYOFFICE Document Server is an open-source office suite that comprises all the tools you need to work with documents, spreadsheets, presentations, PDFs, and PDF forms. The suite supports office files of all popular formats (DOCX, ODT, XLSX, ODS, CSV, PPTX, ODP, etc.) and enables collaborative editing in real time. +ONLYOFFICE Docs (Document Server) is an open-source office suite that comprises all the tools you need to work with documents, spreadsheets, presentations, PDFs, and PDF forms. The suite supports office files of all popular formats (DOCX, ODT, XLSX, ODS, CSV, PPTX, ODP, etc.) and enables collaborative editing in real time. -Starting from version 6.0, Document Server is distributed as ONLYOFFICE Docs. It has [three editions](https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-document-server-editions). With this image, you will install the free Community version. +Starting from version 6.0, Document Server is distributed as ONLYOFFICE Docs. It has [three editions](https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-docs-editions). With this image, you will install the free Community version. -ONLYOFFICE Docs can be used as a part of ONLYOFFICE Workspace or with third-party sync&share solutions (e.g. Nextcloud, ownCloud, Seafile) to enable collaborative editing within their interface. +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:22.04` as base image and it older versions of docker have compatibility problems with it ## Functionality ## -* ONLYOFFICE Document Editor -* ONLYOFFICE Spreadsheet Editor -* ONLYOFFICE Presentation Editor -* ONLYOFFICE Documents application for iOS -* Collaborative editing -* Hieroglyph support -* Support for all the popular formats: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML -Integrating it with ONLYOFFICE Community Server you will be able to: -* view and edit files stored on Drive, Box, Dropbox, OneDrive, OwnCloud connected to ONLYOFFICE; -* share files; -* embed documents on a website; -* manage access rights to documents. +Take advantage of the powerful editors included in ONLYOFFICE Docs: + +* [ONLYOFFICE Document Editor](https://www.onlyoffice.com/document-editor.aspx) +* [ONLYOFFICE Spreadsheet Editor](https://www.onlyoffice.com/spreadsheet-editor.aspx) +* [ONLYOFFICE Presentation Editor](https://www.onlyoffice.com/presentation-editor.aspx) +* [ONLYOFFICE Form Creator](https://www.onlyoffice.com/form-creator.aspx) +* [ONLYOFFICE PDF Editor](https://www.onlyoffice.com/pdf-editor.aspx) +* [ONLYOFFICE Diagram Viewer](https://www.onlyoffice.com/diagram-viewer.aspx) + +The editors empower you to create, edit, save, and export text documents, spreadsheets, presentations, PDFs, create and fill out PDF forms, open diagrams, all while offering additional advanced features such as: + +* Collaborative editing (review & track changes, comments, chat) +* [AI-powered assistants](https://www.onlyoffice.com/ai-assistants.aspx) +* Spell-checking +* Accessibility +* Scalable UI options (including dark mode) +* [Security tools and services](https://www.onlyoffice.com/security.aspx) + +ONLYOFFICE Docs offer support for plugins allowing developers to add specific features to the editors that are not directly related to the OOXML format. For more information, see [our API](https://api.onlyoffice.com/docs/plugin-and-macros/get-started/overview/) or visit the [GitHub plugins repo](https://github.com/ONLYOFFICE/onlyoffice.github.io). Would like to explore the existing plugins in details? You are welcome to visit the [Marketplace](https://www.onlyoffice.com/app-directory). ## Recommended System Requirements @@ -210,9 +217,31 @@ Below is the complete list of parameters that can be set using environment varia - **LETS_ENCRYPT_MAIL**: Defines the domain administator mail address for Let's Encrypt certificate. - **PLUGINS_ENABLED**: Defines whether to enable default plugins. Defaults to `true`. -## Installing ONLYOFFICE Document Server integrated with Community and Mail Servers +## Installing ONLYOFFICE Document Server using Docker Compose -ONLYOFFICE Document Server is a part of ONLYOFFICE Community Edition that comprises also Community Server and Mail Server. To install them, follow these easy steps: +You can also install ONLYOFFICE Document Server using [docker-compose](https://docs.docker.com/compose/install "docker-compose"). + +First you need to clone this [GitHub repository](https://github.com/ONLYOFFICE/Docker-DocumentServer/): + +```bash +git clone https://github.com/ONLYOFFICE/Docker-DocumentServer +``` + +After that switch to the repository folder: + +```bash +cd Docker-DocumentServer +``` + +After that, assuming you have docker-compose installed, execute the following command: + +```bash +docker-compose up -d +``` + +## Installing ONLYOFFICE Document Server as a part of ONLYOFFICE Workspace + +ONLYOFFICE Document Server is a part of ONLYOFFICE Workspace that comprises also Community Server, Mail Server, and Control Panel. To install them, follow these easy steps: **STEP 1**: Create the `onlyoffice` network. @@ -268,14 +297,32 @@ The additional parameters for mail server are available [here](https://github.co To learn more, refer to the [ONLYOFFICE Mail Server documentation](https://github.com/ONLYOFFICE/Docker-MailServer "ONLYOFFICE Mail Server documentation"). +<<<<<<< HEAD **STEP 6**: Install ONLYOFFICE Community Server ```bash sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 --cgroupns=host \ +======= +**STEP 5**: Install ONLYOFFICE Control Panel + +```bash +docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-control-panel \ +-v /var/run/docker.sock:/var/run/docker.sock \ +-v /app/onlyoffice/CommunityServer/data:/app/onlyoffice/CommunityServer/data \ +-v /app/onlyoffice/ControlPanel/data:/var/www/onlyoffice/Data \ +-v /app/onlyoffice/ControlPanel/logs:/var/log/onlyoffice onlyoffice/controlpanel +``` + +**STEP 6**: Install ONLYOFFICE Community Server + +```bash +sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \ +>>>>>>> 1b10049c5ad75bb749ae2db968eabb4422a73a34 -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \ -e MYSQL_SERVER_DB_NAME=onlyoffice \ -e MYSQL_SERVER_HOST=onlyoffice-mysql-server \ -e MYSQL_SERVER_USER=onlyoffice_user \ +<<<<<<< HEAD -e MYSQL_SERVER_PASS=onlyoffice_pass \ -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \ @@ -283,17 +330,26 @@ sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name o -e DOCUMENT_SERVER_JWT_SECRET=${JWT_SECRET} \ -e DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt \ +======= + -e MYSQL_SERVER_PASS=onlyoffice_pass \ + -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \ +>>>>>>> 1b10049c5ad75bb749ae2db968eabb4422a73a34 -e MAIL_SERVER_API_HOST=${MAIL_SERVER_IP} \ -e MAIL_SERVER_DB_HOST=onlyoffice-mysql-server \ -e MAIL_SERVER_DB_NAME=onlyoffice_mailserver \ -e MAIL_SERVER_DB_PORT=3306 \ -e MAIL_SERVER_DB_USER=root \ - -e MAIL_SERVER_DB_PASS=my-secret-pw \ - + -e MAIL_SERVER_DB_PASS=my-secret-pw \ + -e CONTROL_PANEL_PORT_80_TCP=80 \ + -e CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel \ -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \ +<<<<<<< HEAD -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ +======= + -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ +>>>>>>> 1b10049c5ad75bb749ae2db968eabb4422a73a34 onlyoffice/communityserver ``` @@ -302,24 +358,46 @@ Where `${MAIL_SERVER_IP}` is the IP address for **ONLYOFFICE Mail Server**. You MAIL_SERVER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server) ``` -Alternatively, you can use an automatic installation script to install the whole ONLYOFFICE Community Edition at once. For the mail server correct work you need to specify its hostname 'yourdomain.com'. +Alternatively, you can use an automatic installation script to install ONLYOFFICE Workspace at once. For the mail server correct work you need to specify its hostname 'yourdomain.com'. -**STEP 1**: Download the Community Edition Docker script file +**STEP 1**: Download the ONLYOFFICE Workspace Docker script file ```bash -wget https://download.onlyoffice.com/install/opensource-install.sh +wget https://download.onlyoffice.com/install/workspace-install.sh ``` -**STEP 2**: Install ONLYOFFICE Community Edition executing the following command: +**STEP 2**: Install ONLYOFFICE Workspace executing the following command: ```bash -bash opensource-install.sh -md yourdomain.com +workspace-install.sh -md yourdomain.com ``` -Or, use [docker-compose](https://docs.docker.com/compose/install "docker-compose"). For the mail server correct work you need to specify its hostname 'yourdomain.com'. Assuming you have docker-compose installed, execute the following command: +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 +<<<<<<< HEAD wget https://raw.githubusercontent.com/ONLYOFFICE/Docker-CommunityServer/master/docker-compose.groups.yml +======= +git clone https://github.com/ONLYOFFICE/Docker-CommunityServer +``` + +After that switch to the repository folder: + +```bash +cd Docker-CommunityServer +``` + +For the mail server correct work, open one of the files depending on the product you use: + +* [docker-compose.yml](https://github.com/ONLYOFFICE/Docker-CommunityServer/blob/master/docker-compose.groups.yml) for Community Server (distributed as ONLYOFFICE Groups) +* [docker-compose.yml](https://github.com/ONLYOFFICE/Docker-CommunityServer/blob/master/docker-compose.workspace.yml) for ONLYOFFICE Workspace Community Edition +* [docker-compose.yml](https://github.com/ONLYOFFICE/Docker-CommunityServer/blob/master/docker-compose.workspace_enterprise.yml) for ONLYOFFICE Workspace Enterprise Edition + +Then replace the `${MAIL_SERVER_HOSTNAME}` variable with your own hostname for the **Mail Server**. After that, assuming you have docker-compose installed, execute the following command: + +```bash +cd link-to-your-modified-docker-compose +>>>>>>> 1b10049c5ad75bb749ae2db968eabb4422a73a34 docker-compose up -d ``` @@ -367,21 +445,23 @@ Please note, that both executing the script and disconnecting users may take a l ## Project Information -Official website: [https://www.onlyoffice.com](https://www.onlyoffice.com/?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDockerDS) +Official website: [www.onlyoffice.com](https://www.onlyoffice.com/?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDockerDS) -Code repository: [https://github.com/ONLYOFFICE/DocumentServer](https://github.com/ONLYOFFICE/DocumentServer "https://github.com/ONLYOFFICE/DocumentServer") +Code repository: [github.com/ONLYOFFICE/DocumentServer](https://github.com/ONLYOFFICE/DocumentServer "https://github.com/ONLYOFFICE/DocumentServer") -Docker Image: [https://github.com/ONLYOFFICE/Docker-DocumentServer](https://github.com/ONLYOFFICE/Docker-DocumentServer "https://github.com/ONLYOFFICE/Docker-DocumentServer") +Docker Image: [github.com/ONLYOFFICE/Docker-DocumentServer](https://github.com/ONLYOFFICE/Docker-DocumentServer "https://github.com/ONLYOFFICE/Docker-DocumentServer") -License: [GNU AGPL v3.0](https://help.onlyoffice.com/products/files/doceditor.aspx?fileid=4358397&doc=K0ZUdlVuQzQ0RFhhMzhZRVN4ZFIvaHlhUjN2eS9XMXpKR1M5WEppUk1Gcz0_IjQzNTgzOTci0 "GNU AGPL v3.0") +License: [GNU AGPL v3.0](https://onlyo.co/38YZGJh) -Free version vs commercial builds comparison: https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-document-server-editions - -SaaS version: [https://www.onlyoffice.com/cloud-office.aspx](https://www.onlyoffice.com/cloud-office.aspx?utm_source=github&utm_medium=cpc&utm_campaign=GitHubDockerDS) +Free version vs commercial builds comparison: https://github.com/ONLYOFFICE/DocumentServer#onlyoffice-docs-editions ## User Feedback and Support -If you have any problems with or questions about this image, please visit our official forum to find answers to your questions: [forum.onlyoffice.com][1] or you can ask and answer ONLYOFFICE development questions on [Stack Overflow][2]. +If you face any issues or have questions about this image, please visit our official forum: [forum.onlyoffice.com][1]. + +You are also welcome to ask and answer ONLYOFFICE development questions on [Stack Overflow][2], as well as share your thoughts and suggestions on [feedback.onlyoffice.com](https://feedback.onlyoffice.com/forums/966080-your-voice-matters). + +Join [our Discord community](https://discord.gg/Hcgtf5n4uF) for connecting with fellow developers. [1]: https://forum.onlyoffice.com - [2]: https://stackoverflow.com/questions/tagged/onlyoffice + [2]: https://stackoverflow.com/questions/tagged/onlyoffice \ No newline at end of file