Giter Site home page Giter Site logo

onlyoffice / docker-docs Goto Github PK

View Code? Open in Web Editor NEW
7.0 21.0 10.0 149 KB

ONLYOFFICE Docs is an online office suite comprising viewers and editors for texts, spreadsheets and presentations and enabling collaborative editing in real time. The suite provides maximum compatibility with Office Open XML formats: .docx, .xlsx, .pptx.

License: GNU Affero General Public License v3.0

Dockerfile 53.93% Shell 31.65% Makefile 6.59% HCL 7.83%
docker-image onlyoffice

docker-docs's Introduction

Overview

Multi-arch build

ONLYOFFICE Docs is an online office suite comprising viewers and editors for texts, spreadsheets and presentations and enabling collaborative editing in real time. The suite provides maximum compatibility with Office Open XML formats: .docx, .xlsx, .pptx.

This set of images contain the same functionality as Document Server but internal services are decoupled into multiple containers.

This repository is intended for images used in the Document Server Helm package for Kubernetes, which allows deploying it into a cluster.

Functionality

  • ONLYOFFICE Document Editor
  • ONLYOFFICE Spreadsheet Editor
  • ONLYOFFICE Presentation Editor
  • Collaborative editing
  • Hieroglyph support
  • Support for all the popular formats: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

By default, ONLYOFFICE Docs includes only editors without any document management system. 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 has three editions - Community, Enterprise, and Developer. Clustering is available only for commercial builds (Enterprise and Developer Edition).

Recommended system requirements

  • RAM: 4 GB or more
  • 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
  • Docker: version 1.9.0 or later
  • Docker-compose: version 1.28.0 or later

Building ONLYOFFICE Docs

Cloning this repository

To clone this repository, run the following command:

git clone https://github.com/ONLYOFFICE/Docker-Docs.git

Go to the Docker-Docs directory.

Adding custom Fonts (optional)

To add your custom fonts to the images, add your custom fonts to the fonts directory.

Adding Plugins (optional)

To add plugins to the images, add the folder with the plugin code to the plugins directory.

Building images

To build images, please follow these steps

1. Change the variables

Change the value of the ACCOUNT_NAME variable in the .env file. It must contain the account name in Docker Hub. If necessary, change the values of the variables PREFIX_NAME and DOCKER_TAG in the .env file.

Also, depending on the solution type, specify the required value for the PRODUCT_EDITION variable in the .env file.

Possible values:

  • Nothing is specified. For the open-source community version. Default,
  • -de. For commercial Developer Edition,
  • -ee. For commercial Enterprise Edition.

If you want to use a ONLYOFFICE Docs version other than the latest one, specify the version you need in the RELEASE_VERSION variable. If no value is defined, the latest up-to-date version will be used.

If you want to build images with no plugins at all, then change the value of the DOCKERFILE variable to Dockerfile.noplugins in the .env file.

2. Run the build

To start the build, run the following command:

./build.sh

3. Publish the images to the image repository

Log in to the local host:

docker login

To publish the images, run the following command:

docker-compose push

Running ONLYOFFICE Docs

Execute the following command:

docker-compose up -d

To stop ONLYOFFICE Docs, type:

docker-compose down

Services scaling

Converter and docservice can be scaled by changing the replicas parameter in the compose file.

You can also set the number of replicas manualy when you deploy services with compose, for example:

docker compose up -d --scale docservice=3

NOTE: If you wanna scale your container on runtime it is necessary to deploy services through docker swarm. After that you can scale in runtime, for example:

docker service scale <deploy_name>_docservice=2

Available сonfiguration parameters

ONLYOFFICE Docs consists of set of images:

  • onlyoffice/docs-proxy
  • onlyoffice/docs-docservice
  • onlyoffice/docs-converter
  • onlyoffice/docs-example

Each of them can be configured by environment variables. Please refer to your docker orchestrating system for details.

Below is the complete list of parameters for onlyoffice/docs-proxy.

  • DOCSERVICE_HOST_PORT: Defaults to localhost:8000.
  • EXAMPLE_HOST_PORT: Defaults to localhost:3000.
  • NGINX_ACCESS_LOG: Defines the nginx config access_log directive. Defaults to off.
  • NGINX_GZIP_PROXIED: Defines the nginx config gzip_proxied directive. Defaults to off.
  • NGINX_CLIENT_MAX_BODY_SIZE: Defines the nginx config client_max_body_size directive. Defaults to 100m.
  • NGINX_WORKER_CONNECTIONS: Defines the nginx config worker_connections directive. Defaults to 4096.
  • SECURE_LINK_SECRET: Defines secret for the nginx config directive secure_link_md5. Defaults to verysecretstring.
  • INFO_ALLOWED_IP: Defines ip addresses for accessing the info page. You can specify multiple values separated by a space.
  • INFO_ALLOWED_USER: Defines user name for accessing the info page. If not set to, Nginx Basic Authentication will not be applied to access the info page.
  • INFO_ALLOWED_PASSWORD: Defines user password for accessing the info page. Used if INFO_ALLOWED_USER is set.

Below is the complete list of parameters for onlyoffice/docs-docservice, onlyoffice/docs-converter.

  • DB_TYPE: The database type. Supported values are postgres, mariadb or mysql. Defaults to postgres.
  • DB_HOST: The IP address or the name of the host where the PostgreSQL server is running.
  • DB_PORT: The PostgreSQL server port number. Default to 5432.
  • DB_NAME: The name of a PostgreSQL database to be created on the image startup.
  • DB_USER: The new user name with superuser permissions for the PostgreSQL account.
  • DB_PWD: The password set for the PostgreSQL account.
  • AMQP_TYPE: Defines the message broker type. Defaults to rabbitmq. Possible values are rabbitmq or activemq.
  • AMQP_PROTO: The protocol for the connection to AMQP server. Default to amqp. Possible values are amqp, amqps.
  • AMQP_USER: The username for the AMQP server account.
  • AMQP_PWD: The password set for the AMQP server account.
  • AMQP_HOST: The IP address or the name of the host where the AMQP server is running.
  • AMQP_PORT: The port for the connection to AMQP server. Default to 5672.
  • AMQP_VHOST: The virtual host for the connection to AMQP server. Default to /.
  • REDIS_CONNECTOR_NAME: Defines which connector to use to connect to Redis. Default to redis. If you need to connect to Redis Sentinel, set the value ioredis.
  • 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. Default to 6379.
  • REDIS_SERVER_USER: The Redis user name.
  • REDIS_SERVER_PWD: The password set for the Redis account.
  • REDIS_SERVER_DB_NUM: Number of the redis logical database to be selected. Default to 0.
  • REDIS_SENTINEL_GROUP_NAME: Name of a group of Redis instances composed of a master and one or more slaves. Default to mymaster.
  • REDIS_CLUSTER_NODES: List of nodes in the Redis cluster. There is no need to specify every node in the cluster, 3 should be enough. You can specify multiple values separated by a space. It must be specified in the host:port format.
  • JWT_ENABLED: Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Docs. Common for inbox and outbox requests. Defaults to true.
  • JWT_ENABLED_INBOX: Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Docs only for inbox requests. Default, the value of the variable JWT_ENABLED is used.
  • JWT_ENABLED_OUTBOX: Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Docs only for outbox requests. Default, the value of the variable JWT_ENABLED is used.
  • JWT_SECRET: Defines the secret key to validate the JSON Web Token in the request to the ONLYOFFICE Docs. Common for inbox and outbox requests. Defaults to secret.
  • JWT_SECRET_INBOX: Defines the secret key to validate the JSON Web Token in the request to the ONLYOFFICE Docs only for inbox requests. Default, the value of the variable JWT_SECRET is used.
  • JWT_SECRET_OUTBOX: Defines the secret key to validate the JSON Web Token in the request to the ONLYOFFICE Docs only for outbox requests. Default, the value of the variable JWT_SECRET is used.
  • JWT_HEADER: Defines the http header that will be used to send the JSON Web Token. Common for inbox and outbox requests. Defaults to Authorization.
  • JWT_HEADER_INBOX: Defines the http header that will be used to send the JSON Web Token only for inbox requests. Default, the value of the variable JWT_HEADER is used.
  • JWT_HEADER_OUTBOX: Defines the http header that will be used to send the JSON Web Token only for outbox requests. Default, the value of the variable JWT_HEADER is used.
  • JWT_IN_BODY: Specifies the enabling the token validation in the request body to the ONLYOFFICE Docs. Defaults to false.
  • LOG_LEVEL: Defines the type and severity of a logged event. Default to WARN. Possible values are ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, MARK, OFF.
  • LOG_TYPE: Defines the format of a logged event. Default to pattern. Possible values are pattern, json, basic, coloured, messagePassThrough, dummy.
  • LOG_PATTERN: Defines the log pattern if LOG_TYPE=pattern. Default to [%d] [%p] [%X{DOCID}] [%X{USERID}] %c - %.10000m.
  • METRICS_ENABLED: Specifies the enabling StatsD for ONLYOFFICE Docs. Defaults to false.
  • METRICS_HOST: Defines StatsD listening host. Defaults to localhost.
  • METRICS_PORT: Defines StatsD listening port. Defaults to 8125.
  • METRICS_PREFIX: Defines StatsD metrics prefix for backend services. Defaults to ds..
  • ALLOW_PRIVATE_IP_ADDRESS: Defines if it is allowed to connect private IP address or not. Defaults to false.
  • ALLOW_META_IP_ADDRESS: Defines if it is allowed to connect meta address or not. Defaults to false.
  • ALLOW_IP_ADDRESS_LIST: Defines the list of IP addresses allowed to connect. This values are preferred than denyAddressList. Defaults to [].
  • DENY_IP_ADDRESS_LIST: Defines the list of IP addresses deny to connect. Defaults to [].

Below is the complete list of parameters for onlyoffice/docs-example.

  • DS_URL: Specifies ONLYOFFICE Docs server address. Defaults to /. You have specyfing this field to correct work ONLYOFFICE Docs Example. Example http://onlyoffice-docs-address/.
  • JWT_ENABLED: Specifies the enabling the JSON Web Token validation by the ONLYOFFICE Docs. Defaults to false.
  • JWT_SECRET: Defines the secret key to validate the JSON Web Token in the request to the ONLYOFFICE Docs. Defaults to secret.
  • JWT_HEADER: Defines the http header that will be used to send the JSON Web Token. Defaults to Authorization.
  • WOPI_ENABLED: Specifies the enabling the wopi handlers. Defaults to false.

Project Information

Official website: https://www.onlyoffice.com/

Code repository: https://github.com/ONLYOFFICE/DocumentServer

License: GNU AGPL v3.0

ONLYOFFICE Docs on official website: http://www.onlyoffice.com/office-suite.aspx

List of available integrations: http://www.onlyoffice.com/all-connectors.aspx

ONLYOFFICE Workspace

ONLYOFFICE Docs packaged as Document Server is a part of ONLYOFFICE Workspace that also includes ONLYOFFICE Groups (packaged as Community Server), Mail Server, Control Panel and Talk (instant messaging app).

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 or you can ask and answer ONLYOFFICE development questions on Stack Overflow.

docker-docs's People

Contributors

agolybev avatar cyger avatar danilapog avatar evgeniy-antonyuk avatar heatray avatar hellonadya avatar iskandarkurbonov avatar kireevdmitry avatar kseniafedoruk avatar lemmav avatar luke- avatar svetlana81 avatar t0rtila avatar vyacheslavsemin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-docs's Issues

Build a specific version

Hi,

currently, 7.2.2-1 is the latest version used in your helm chart but if i do a build right now, using this repo, i will have images based on the 7.3.0 version.
Is there a way to specify which version i want to build ?

Thanks.
Yoann.

Build of converter image failed

Hi,

I followed the instruction on the README but the attempt to build converter image failed :

[+] Building 272.0s (10/23)
[+] Building 383.8s (21/23)
 => [internal] load build definition from Dockerfile                                                                                                                                                                                   0.0s
 => => transferring dockerfile: 32B                                                                                                                                                                                                    0.0s
 => [internal] load .dockerignore                                                                                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                                                                                        0.0s
 => [internal] load metadata for docker.io/library/amazonlinux:2                                                                                                                                                                     122.1s
 => [internal] load build context                                                                                                                                                                                                      0.0s
 => => transferring context: 3.44kB                                                                                                                                                                                                    0.0s
 => [ds-base 1/2] FROM docker.io/library/amazonlinux:2@sha256:66d22a2b8749283aa0764e6983fbb8bf8c143511cf16c9773598acca2a1cd6d2                                                                                                         0.0s
 => CACHED [ds-base 2/2] RUN yum install sudo -y &&     yum install shadow-utils -y &&     amazon-linux-extras install epel -y &&     yum install procps-ng tar -y &&     groupadd --system --gid 101 ds &&     useradd --system -g d  0.0s
 => CACHED [ds-service 1/5] RUN useradd --no-create-home --shell /sbin/nologin nginx &&     yum -y updateinfo &&     yum -y install cabextract fontconfig xorg-x11-font-utils xorg-x11-server-utils &&     rpm -i https://downloads.s  0.0s
 => CACHED [ds-service 2/5] COPY --chown=ds:ds     config/nginx/includes/http-common.conf     config/nginx/includes/http-upstream.conf     /etc/onlyoffice/documentserver/nginx/includes/                                              0.0s
 => CACHED [ds-service 3/5] COPY --chown=ds:ds     fonts/     /var/www/onlyoffice/documentserver/core-fonts/custom/                                                                                                                    0.0s
 => CACHED [ds-service 4/5] COPY --chown=ds:ds     plugins/     /var/www/onlyoffice/documentserver/sdkjs-plugins/                                                                                                                      0.0s
 => [ds-service 5/5] RUN documentserver-generate-allfonts.sh true                                                                                                                                                                    253.3s
 => CACHED [converter  1/12] COPY --from=ds-service     /etc/onlyoffice/documentserver/default.json     /etc/onlyoffice/documentserver/production-linux.json     /etc/onlyoffice/documentserver/                                       0.0s
 => CACHED [converter  2/12] COPY --from=ds-service --chown=ds:ds     /etc/onlyoffice/documentserver/log4js/production.json     /etc/onlyoffice/documentserver/log4js/                                                                 0.0s
 => CACHED [converter  3/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/core-fonts     /var/www/onlyoffice/documentserver/core-fonts                                                                                0.0s
 => CACHED [converter  4/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/fonts     /var/www/onlyoffice/documentserver/fonts                                                                                          0.0s
 => CACHED [converter  5/12] COPY --from=ds-service     /usr/share/fonts     /usr/share/fonts                                                                                                                                          0.0s
 => CACHED [converter  6/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/sdkjs     /var/www/onlyoffice/documentserver/sdkjs                                                                                          0.0s
 => CACHED [converter  7/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/server/FileConverter     /var/www/onlyoffice/documentserver/server/FileConverter                                                            0.0s
 => CACHED [converter  8/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/web-apps     /var/www/onlyoffice/documentserver/web-apps                                                                                    0.0s
 => CACHED [converter  9/12] COPY --from=ds-service     /var/www/onlyoffice/documentserver/document-templates/new     /var/www/onlyoffice/documentserver/document-templates/new                                                        0.0s
 => ERROR [converter 10/12] COPY --from=ds-service     /usr/lib64/libgraphics.so     /usr/lib64/libdoctrenderer.so     /usr/lib64/libkernel.so     /usr/lib64/libkernel_network.so     /usr/lib64/libicudata.so.58     /usr/lib64/lib  0.0s
------
 > [converter 10/12] COPY --from=ds-service     /usr/lib64/libgraphics.so     /usr/lib64/libdoctrenderer.so     /usr/lib64/libkernel.so     /usr/lib64/libkernel_network.so     /usr/lib64/libicudata.so.58     /usr/lib64/libicuuc.so.58     /usr/lib64/libDjVuFile.so     /usr/lib64/libEpubFile.so     /usr/lib64/libFb2File.so     /usr/lib64/libPdfReader.so     /usr/lib64/libPdfWriter.so     /usr/lib64/libHtmlFile2.so     /usr/lib64/libHtmlRenderer.so     /usr/lib64/libUnicodeConverter.so     /usr/lib64/libXpsFile.so     /usr/lib64/libDocxRenderer.so     /usr/lib64/:
------
failed to solve: failed to compute cache key: "/usr/lib64/libPdfReader.so" not found: not found

Docker version : 20.10.21

Thanks for your help.
Yoann.

custom fonts not including during build

i cloned project, put my fonts into ./fonts dir, ran ./build.sh - result: no custom fonts included
changing COPY to:

COPY --chown=ds:ds \
    fonts/ \
    /usr/share/fonts/msttcore/

fixed problem

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.