Skip to content

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

Notifications You must be signed in to change notification settings

ONLYOFFICE/Docker-Docs

Repository files navigation

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 are not using the script build.sh to build images, then change the value in the DS_VERSION_HASH variable at each build. This variable defines the hash that will be appended to the ONLYOFFICE Docs version in the request URLs.

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.
  • NGINX_WORKER_PROCESSES: Defines the nginx config worker_processes directive.
  • 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_SENTINEL_PWD: The password set for the Redis Sentinel nodes. Default to empty.
  • 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.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published