Server configuration
Introduction
To change any ONLYOFFICE Docs server settings, configure the corresponding parameter in the ONLYOFFICE Docs configuration file, which can be found at the following path:
- For Linux:
/etc/onlyoffice/documentserver/default.json - For Windows:
%ProgramFiles%\ONLYOFFICE\DocumentServer\config\default.json
If you want to change it, you can use the local.json file, where all the edited parameters should be stored. This file is located in the same directory as the default.json file, and the whole object structure for the necessary parameter must be retained.
Please do not edit the contents of the default.json file directly. The default values will be restored each time you restart Docker container or upgrade ONLYOFFICE Docs to a new version, and all your changes will be lost.
Admin Panel
These parameters configure the Admin Panel properties. For more details on using Admin Panel, you can refer to this article.
Example
{
"adminPanel": {
"port": 9000
}
}
StatsD
These parameters configure the StatsD server properties, specifying an aggregator of metrics.
Example
{
"statsd": {
"useMetrics": false,
"host": "localhost",
"port": "8125",
"prefix": "ds."
}
}
AI plugin settings
These parameters configure the AI plugin properties.
Example
{
"aiSettings": {
"actions": {},
"models": [],
"providers": {},
"version": 3,
"timeout": "5m",
"allowedCorsOrigins": [
"https://onlyoffice.github.io",
"https://onlyoffice-plugins.github.io"
],
"proxy": ""
}
}
Logger
These parameters configure the logger properties.
Example
{
"log": {
"filePath": "",
"options": {
"replaceConsole": true
}
}
}
Runtime config
These parameters configure the runtime.json dynamic config file properties. This file allows you to change parameters without restarting. The file is reread based on a watch event or every 5 minutes.
Example
{
"runtimeConfig": {
"filePath": "",
"cache": {
"stdTTL": 300,
"checkperiod": 60,
"useClones": false
}
}
}
Queues
These parameters configure a queue of messages received from the message-broker.
| Parameter | Type | Default | Description |
|---|---|---|---|
| queue. | string | "rabbitmq" | The message broker type. |
| queue. | integer | 300 | The conversion timeout (measured in seconds). |
| queue. | integer | 900 | The TTL (time to live) of all the messages in a queue (measured in seconds). |
Example
{
"queue": {
"type": "rabbitmq",
"visibilityTimeout": 300,
"retentionPeriod": 900
}
}
Email
These parameters configure the settings of an external mail server, which is used to send notifications. To connect to the mail server, use the nodemailer library. Many config settings are passed directly to this library.
| Parameter | Type | Default | Description |
|---|---|---|---|
| email. | object | The basic settings for connecting to the SMTP server. | |
| email. | string | "localhost" | The host name or IP address of the SMTP server. |
| email. | integer | 587 | The SMTP server port. |
| email. | object | The authentication data. | |
| email. | string | "" | The authentication username. Note: Please note that starting from version 8.3, the values of this parameter in the default.json and local.json files are different. |
| email. | string | "" | The authentication password. Warning: Do not store sensitive values in version control. Consider using environment variables or a secrets manager. Note: Please note that starting from version 8.3, the values of this parameter in the default.json and local.json files are different. |
| email. | object | The technical options for connecting to the SMTP server. | |
| email. | boolean | false | Whether to allow using files as content. If this parameter is set to true, then JSON data from an untrusted source cannot be used as the email. If an attachment or message node tries to fetch something from a file, the sending returns an error. |
| email. | boolean | false | Whether to allow using URLs as content. |
| email. | object | The email message settings. | |
| email. | string | "from@example.com" | The email address of the sender. All email addresses can be plain "sender@server.com" or with formatted name '"Sender Name" sender@server.com'. |
| email. | string | "to@example.com" | The comma separated list or an array of recipients email addresses that will appear on the To: field. |
Example
{
"email": {
"smtpServerConfiguration": {
"host": "localhost",
"port": 587,
"auth": {
"user": "",
"pass": ""
}
},
"connectionConfiguration": {
"disableFileAccess": false,
"disableUrlAccess": false
},
"contactDefaults": {
"from": "from@example.com",
"to": "to@example.com"
}
}
}
Notification
These parameters configure the notification settings.
Notifications with the following event types and content are sent:
-
70% of the connection quota (quota of unique users) is exceeded.
License connection limit warning: "Attention! You have reached 70% of the connections limit set by your license."
-
The connection quota (quota of unique users) is reached.
License connection limit warning: "Attention! You have reached 100% of the connection limit set by your license."
-
30 days before the license expires.
License expiration warning: "Attention! Your license is about to expire on September 8, 2024. Upon reaching this date, you will no longer be entitled to receive personal technical support and install new Docs versions released after this date."
-
The license has expired.
License connection limit warning: "Attention! Your license expired on September 8, 2024. You are no longer entitled to receive personal technical support and install new Docs versions released after this date. Please contact sales@onlyoffice.com to discuss license renewal."
Example
{
"notification": {
"rules": {
"licenseExpirationWarning": {
"enable": false,
"transportType": [
"email"
],
"template": {
"title": "%s Docs license expiration warning",
"body": "Attention! Your license is about to expire on %s.\nUpon reaching this date, you will no longer be entitled to receive personal technical support and install new Docs versions released after this date."
},
"policies": {
"repeatInterval": "1d"
}
},
"licenseExpirationError": {
"enable": false,
"transportType": [
"email"
],
"template": {
"title": "%s Docs license expiration warning",
"body": "Attention! Your license expired on %s.\nYou are no longer entitled to receive personal technical support and install new Docs versions released after this date.\nPlease contact sales@onlyoffice.com to discuss license renewal."
},
"policies": {
"repeatInterval": "1d"
}
},
"licenseLimitEdit": {
"enable": false,
"transportType": [
"email"
],
"template": {
"title": "%s Docs license %s limit warning",
"body": "Attention! You have reached %s%% of the %s limit set by your license."
},
"policies": {
"repeatInterval": "1h"
}
},
"licenseLimitLiveViewer": {
"enable": false,
"transportType": [
"email"
],
"template": {
"title": "%s Docs license %s limit warning",
"body": "Attention! You have reached %s%% of the live viewer %s limit set by your license."
},
"policies": {
"repeatInterval": "1h"
}
}
}
}
}
Document storage service
These parameters configure the document storage service configuration.
Example
{
"storage": {
"name": "storage-fs",
"fs": {
"folderPath": "",
"urlExpires": 900,
"secretString": "verysecretstring"
},
"region": "",
"endpoint": "http://localhost/s3",
"bucketName": "cache",
"storageFolderName": "files",
"cacheFolderName": "data",
"commandOptions": {
"s3": {
"putObject": {},
"getObject": {},
"copyObject": {
"MetadataDirective": "COPY"
},
"listObjects": {
"MaxKeys": 1000
},
"deleteObject": {}
},
"az": {
"uploadData": {},
"uploadStream": {},
"download": {},
"syncCopyFromURL": {},
"listBlobsFlat": {
"maxPageSize": 1000
},
"deleteBlob": {}
}
},
"urlExpires": 604800,
"accessKeyId": "",
"secretAccessKey": "",
"sslEnabled": false,
"s3ForcePathStyle": true,
"externalHost": "",
"useDirectStorageUrls": false
}
}
Persistent storage
These parameters configure the settings of the persistent storage, which is used to separate the settings for the document cache file storage and the storage of the forgotten and error files. Settings that are not specified in this object are inherited from the storage object. The separation is convenient for server upgrades.
Example
{
"persistentStorage": {}
}
RabbitMQ
These parameters configure the RabbitMQ message broker configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| rabbitmq. | string | "amqp://localhost:5672" | The RabbitMQ URL. Note: Please note that starting from version 8.3, the values of this parameter in the default.json and local.json files are different. |
| rabbitmq. | object | The RabbitMQ socket options that will be passed to the socket library (net or tls). These options must be fields set on the object supplied. The socket options can be used for the SSL connection and can contain the following fields:- cert - defines a certificate to present to the server (in PEM or pkcs12 format), type: string, example: ""; - key - defines the private key for the certificate (in PEM or pkcs12 format), type: string, example: ""; - passphrase - defines a passphrase for the private key, type: string, example: "MySecretPassword"; - ca - defines a list of the CA certificates in PEM format that we will trust, since we are using a self-signed certificate, type: array, example: []; - noDelay - defines if TCP_NODELAY (Nagle's algorithm) is set on the underlying socket or not, type: boolean, example: true. | |
| rabbitmq. | object | The Publisher Subscriber exchange server. | |
| rabbitmq. | string | "ds.pubsub" | A name of the Publisher Subscriber server. |
| rabbitmq. | object | The settings of the Publisher Subscriber server. | |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
| rabbitmq. | object | The Publisher Subscriber queue. | |
| rabbitmq. | string | "" | A name of the Publisher Subscriber queue. |
| rabbitmq. | object | The settings of the Publisher Subscriber queue. | |
| rabbitmq. | object | The additional arguments, usually parameters for some kind of broker-specific extension e.g., high availability, TTL. | |
| rabbitmq. | string | "classic" | A value of the x-queue-type header which specifies the queue type. Only classic queues can be used. |
| rabbitmq. | boolean | true | Whether the queue will be deleted when the number of consumers drops to zero. |
| rabbitmq. | boolean | true | Whether the queue will be scoped to the connection. |
| rabbitmq. | object | A queue of tasks. | |
| rabbitmq. | string | "ds.converttask6" | A name of the queue of tasks. |
| rabbitmq. | object | The settings of the queue of tasks. | |
| rabbitmq. | object | The additional arguments, usually parameters for some kind of broker-specific extension e.g., high availability, TTL. | |
| rabbitmq. | string | "classic" | A value of the x-queue-type header which specifies the queue type. This setting can be used to set the quorum queues. |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
| rabbitmq. | integer | 6 | A queue priority. |
| rabbitmq. | object | A queue of responses. | |
| rabbitmq. | string | "ds.convertresponse" | A name of the queue of responses. |
| rabbitmq. | object | The settings of the queue of responses. | |
| rabbitmq. | object | The additional arguments, usually parameters for some kind of broker-specific extension e.g., high availability, TTL. | |
| rabbitmq. | string | "classic" | A value of the x-queue-type header which specifies the queue type. This setting can be used to set the quorum queues. |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
| rabbitmq. | object | A dead letter exchange. | |
| rabbitmq. | string | "ds.exchangeconvertdead" | A name of the dead letter exchange. |
| rabbitmq. | object | The settings of the dead letter exchange. | |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
| rabbitmq. | object | A dead letter queue. | |
| rabbitmq. | string | "ds.convertdead" | A name of the dead letter queue. |
| rabbitmq. | object | The settings of the dead letter queue. | |
| rabbitmq. | object | The additional arguments, usually parameters for some kind of broker-specific extension e.g., high availability, TTL. | |
| rabbitmq. | string | "classic" | A value of the x-queue-type header which specifies the queue type. This setting can be used to set the quorum queues. |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
| rabbitmq. | object | The delayed queue. | |
| rabbitmq. | string | "ds.delayed" | A name of the delayed queue. |
| rabbitmq. | object | The settings of the delayed queue. | |
| rabbitmq. | object | The additional arguments, usually parameters for some kind of broker-specific extension e.g., high availability, TTL. | |
| rabbitmq. | string | "classic" | A value of the x-queue-type header which specifies the queue type. This setting can be used to set the quorum queues. |
| rabbitmq. | boolean | true | Whether the queue will survive broker restarts. |
Example
{
"rabbitmq": {
"url": "amqp://localhost:5672",
"socketOptions": {},
"exchangepubsub": {
"name": "ds.pubsub",
"options": {
"durable": true
}
},
"queuepubsub": {
"name": "",
"options": {
"autoDelete": true,
"exclusive": true,
"arguments": {
"x-queue-type": "classic"
}
}
},
"queueconverttask": {
"name": "ds.converttask6",
"options": {
"durable": true,
"maxPriority": 6,
"arguments": {
"x-queue-type": "classic"
}
}
},
"queueconvertresponse": {
"name": "ds.convertresponse",
"options": {
"durable": true,
"arguments": {
"x-queue-type": "classic"
}
}
},
"exchangeconvertdead": {
"name": "ds.exchangeconvertdead",
"options": {
"durable": true
}
},
"queueconvertdead": {
"name": "ds.convertdead",
"options": {
"durable": true,
"arguments": {
"x-queue-type": "classic"
}
}
},
"queuedelayed": {
"name": "ds.delayed",
"options": {
"durable": true,
"arguments": {
"x-queue-type": "classic"
}
}
}
}
}
ActiveMQ
These parameters configure the ActiveMQ message broker configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| activemq. | object | The ActiveMQ connect options. | |
| activemq. | integer | 5672 | A port of the server to which the ActiveMQ container is connected. |
| activemq. | string | "localhost" | A host (host name or IP address) of the server to which the ActiveMQ container is connected. |
| activemq. | boolean | false | Whether the ActiveMQ module will automatically attempt to reconnect if disconnected (true) or not (false). |
| activemq. | string | "ds.converttask" | A queue of tasks. |
| activemq. | string | "ds.convertresponse" | A queue of responses. |
| activemq. | string | "ActiveMQ.DLQ" | A dead letter queue. |
| activemq. | string | "ds.delayed" | The delayed queue. |
| activemq. | string | "ds.pubsub" | The Publisher Subscriber topic. |
Example
{
"activemq": {
"connectOptions": {
"port": 5672,
"host": "localhost",
"reconnect": false
},
"queueconverttask": "ds.converttask",
"queueconvertresponse": "ds.convertresponse",
"queueconvertdead": "ActiveMQ.DLQ",
"queuedelayed": "ds.delayed",
"topicpubsub": "ds.pubsub"
}
}
DNS cache
These parameters configure the configuration of the DNS cache which is used for the IP-filter.
Example
{
"dnscache": {
"enable": true,
"ttl": 300,
"cachesize": 1000
}
}
AES-256-GCM algorithm
These parameters configure the settings of the AES-256-GCM encryption algorithm used for password protection of the documents.
Example
{
"aesEncrypt": {
"config": {
"keyByteLength": 32,
"saltByteLength": 64,
"initializationVectorByteLength": 16,
"iterationsByteLength": 5
},
"secret": "verysecretstring"
}
}
OpenPGP protocol
These parameters configure the settings of the OpenPGP protocol, which is used to encrypt the password when opening an encrypted document for editing.
| Parameter | Type | Default | Description |
|---|---|---|---|
| openpgpjs. | object | The OpenPGP protocol configuration. | |
| openpgpjs. | object | The OpenPGP encryption settings. | |
| openpgpjs. | string[] | ["verysecretstring"] | A password which is used for the OpenPGP encryption. |
| openpgpjs. | object | The OpenPGP decryption settings. | |
| openpgpjs. | string[] | ["verysecretstring"] | A password which is used for the OpenPGP decryption. |
Example
{
"openpgpjs": {
"config": {},
"encrypt": {
"passwords": [
"verysecretstring"
]
},
"decrypt": {
"passwords": [
"verysecretstring"
]
}
}
}
Secret key
These parameters configure the secret key configuration.
Example
{
"services": {
"CoAuthoring": {
"secret": {
"browser": {
"string": "secret",
"file": ""
},
"inbox": {
"string": "secret",
"file": ""
},
"outbox": {
"string": "secret",
"file": ""
},
"session": {
"string": "secret",
"file": ""
}
}
}
}
}
Bottleneck
| Parameter | Type | Default | Description |
|---|---|---|---|
| bottleneck. | object | The constructor options to generate limiters for throttling the database requests. |
Example
{
"bottleneck": {
"getChanges": {}
}
}
Windows System Root certificates
| Parameter | Type | Default | Description |
|---|---|---|---|
| win-ca. | string | "+" | The injection mode of the Windows System Root certificates. The "+" means that a new experimental method is used to install certificates. |
Example
{
"win-ca": {
"inject": "+"
}
}
WOPI
These parameters configure the WOPI protocol configuration.
Example
{
"wopi": {
"enable": false,
"host": "",
"htmlTemplate": "../../web-apps/apps/api/wopi",
"wopiZone": "external-http",
"favIconUrlWord": "/web-apps/apps/documenteditor/main/resources/img/favicon.ico",
"favIconUrlCell": "/web-apps/apps/spreadsheeteditor/main/resources/img/favicon.ico",
"favIconUrlSlide": "/web-apps/apps/presentationeditor/main/resources/img/favicon.ico",
"favIconUrlPdf": "/web-apps/apps/pdfeditor/main/resources/img/favicon.ico",
"favIconUrlDiagram": "/web-apps/apps/visioeditor/main/resources/img/favicon.ico",
"fileInfoBlockList": [
"FileUrl"
],
"pdfView": [],
"pdfEdit": [],
"forms": [],
"wordView": [],
"wordEdit": [],
"cellView": [],
"cellEdit": [],
"slideView": [],
"slideEdit": [],
"diagramView": [],
"diagramEdit": [],
"publicKey": "",
"modulus": "",
"exponent": 65537,
"privateKey": "",
"publicKeyOld": "",
"modulusOld": "",
"exponentOld": 65537,
"privateKeyOld": "",
"sendAuthorizationHeader": false,
"refreshLockInterval": "10m",
"dummy": {
"enable": false,
"sampleFilePath": ""
}
}
}
Tenants
These parameters configure the tenants properties for working in the multi-tenant mode.
Example
{
"tenants": {
"baseDir": "",
"baseDomain": "",
"filenameConfig": "config.json",
"filenameSecret": "secret.key",
"filenameLicense": "license.lic",
"defaultTenant": "localhost",
"cache": {
"stdTTL": 300,
"checkperiod": 60,
"useClones": false
}
}
}
External request
These parameters configure the configuration of the external requests.
Example
{
"externalRequest": {
"directIfIn": {
"allowList": [],
"jwtToken": true
},
"action": {
"allow": true,
"blockPrivateIP": true,
"proxyUrl": "",
"proxyUser": {
"username": "",
"password": ""
},
"proxyHeaders": {}
}
}
}
Document Server services
These parameters configure the settings for the Document Server services.
| Parameter | Type | Default | Description |
|---|---|---|---|
| services. | object | The settings for the co-authoring editing session. |
Server
These parameters configure the server configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| services. | boolean | true | Whether the assembled file is saved in its original format or not. |
| services. | object | The timeout properties for callback requesting. | |
| services. | string | "10m" | A period which specifies two timeouts: - read timeout - time to wait for a server to send response headers (and start the response body) before aborting the request; - connection timeout - sets the socket to timeout after timeout of inactivity. Note that increasing the timeout beyond the OS-wide TCP connection timeout will not have any effect. This parameter is sent to the npm module. |
| services. | string | "10m" | The whole request cycle timeout. |
| services. | string | "../../document-formats/onlyoffice-docs-formats.json" | A path to the "onlyoffice-docs-formats" file. |
| services. | string[] | ["pdf","xlsx"] | The extensions allowed to be downloaded via the downloadFile handler. |
| services. | boolean | false | Whether the singleton can be edited or not. |
| services. | string | "editorDataMemory" | The editor data storage. The possible values: "editorDataRedis", "". |
| services. | string | "" | The editor data storage for license calculation and statistics (local memory or redis). The possible values are "editorDataMemory", "editorDataRedis", or "". The default "" value means that the value of the editorDataStorage parameter will be used. This parameter is primarily used for a sharded cluster. |
| services. | boolean | false | Whether a file without any changes can be forcesaved by clicking the Save button. |
| services. | string | "forgotten" | A folder name where all the forgotten files are stored. |
| services. | string | "output" | A forgotten file name. |
| services. | string | "../public/healthcheck.docx" | A path where the health check requests will be sent. |
| services. | boolean | true | Whether the anonymous users have access to the editor or live viewer or not. |
| services. | object | The timeout properties for downloading images. | |
| services. | string | "2m" | A period which specifies two timeouts: - read timeout - time to wait for a server to send response headers (and start the response body) before aborting the request; - connection timeout - sets the socket to timeout after timeout of inactivity. Note that increasing the timeout beyond the OS-wide TCP connection timeout will not have any effect. This parameter is sent to the npm module. |
| services. | string | "2m" | The whole request cycle - a period from the download start to the full download. |
| services. | integer | 26214400 | A maximum size for all the images uploaded in each process (measured in bytes). |
| services. | integer | 104857600 | A maximum size for all the uploaded temporary files used by each process (measured in bytes). |
| services. | integer | 20000 | A maximum size of the request changes. |
| services. | string | "development" | The server mode. |
| services. | string | "../../document-templates/new" | A path to the "new" file template if a file of 0 bytes was received from the link for opening. |
| services. | boolean | true | Whether the password-protected files can be opened or not. |
| services. | integer | 8000 | The server port. |
| services. | integer | 5000 | The conversion start delay time (measured in milliseconds) after the edited file is closed. |
| services. | boolean | true | Whether the required token parameters will be validated. This is required for security. For example, the conversion token will not be used to open a document. |
| services. | integer | 1 | A number of worker threads per CPU. |
Example
{
"services": {
"CoAuthoring": {
"server": {
"port": 8000,
"workerpercpu": 1,
"mode": "development",
"limits_tempfile_upload": 104857600,
"limits_image_size": 26214400,
"limits_image_download_timeout": {
"connectionAndInactivity": "2m",
"wholeCycle": "2m"
},
"callbackRequestTimeout": {
"connectionAndInactivity": "10m",
"wholeCycle": "10m"
},
"healthcheckfilepath": "../public/healthcheck.docx",
"savetimeoutdelay": 5000,
"edit_singleton": false,
"forgottenfiles": "forgotten",
"forgottenfilesname": "output",
"maxRequestChanges": 20000,
"openProtectedFile": true,
"isAnonymousSupport": true,
"editorDataStorage": "editorDataMemory",
"editorStatStorage": "",
"assemblyFormatAsOrigin": true,
"newFileTemplate": "../../document-templates/new",
"documentFormatsFile": "../../document-formats/onlyoffice-docs-formats.json",
"downloadFileAllowExt": [
"pdf",
"xlsx"
],
"tokenRequiredParams": true,
"forceSaveUsingButtonWithoutChanges": false
}
}
}
}
Editor
These parameters configure the editor configuration.
Example
{
"services": {
"CoAuthoring": {
"editor": {
"reconnection": {
"attempts": 50,
"delay": "2s"
},
"binaryChanges": false,
"websocketMaxPayloadSize": "1.5MB",
"maxChangesSize": "150MB"
}
}
}
}
SQL
These parameters configure the database configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| services. | string | "postgres" | The database type (mysql, mariadb, mssql, postgres, dameng, oracle). |
| services. | string | "localhost" | The database server host (host name or IP address). |
| services. | integer | 5432 | The database server port. |
| services. | string | "onlyoffice" | A name of a database to be created on the image startup. |
| services. | string | "utf8" | The database charset. |
| services. | integer | 10 | The maximum number of the simultaneous user connections to the database server. |
| services. | object | The Dameng database parameters. | |
| services. | string | "lower" | The case of column names. |
| services. | boolean | false | Whether the column names are uppercase or not. |
| services. | integer | 60000 | A number of milliseconds to wait for a connection. |
| services. | integer | 0 | The local timezone. |
| services. | boolean | false | Whether the login encryption is enabled or not. |
| services. | integer | 60 | A number of seconds after which the pool terminates idle connections (unused in the pool). |
| services. | integer | 60000 | A number of milliseconds when messages are retained in the queue before they are discarded. |
| services. | integer | 60000 | A number of milliseconds when a connection request made by a client or a server doesn't receive a response from the other end. |
| services. | string | "onlyoffice" | A password set to the database account. |
| services. | string | "onlyoffice" | A new username with superuser permissions for the database account. |
| services. | integer | 1048575 | The maximum size of data that can be sent in one request. |
| services. | object | The MS SQL database parameters. | |
| services. | object | The MS SQL database options. | |
| services. | boolean | false | Whether the data will be encrypted before sending it over the network. |
| services. | boolean | true | Whether an encryption occurs when there is no verified server certificate. |
| services. | object | The parameters of the connection pool. | |
| services. | integer | 30000 | A number of milliseconds a client must remain idle in the pool and not be checked out before it is disconnected from the backend and discarded. Set to 0 to disable automatic disconnection of idle clients. |
| services. | object | The connection parameters of the MySQL database (including SSL settings) that can be passed directly to the node-mysql2 module. | |
| services. | integer | 60000 | A number of milliseconds to wait for a connection. |
| services. | integer | 60000 | A number of milliseconds before a query call times out. |
| services. | object | The Oracle database parameters. | |
| services. | integer | 60 | A number of seconds to wait for a connection. |
| services. | boolean | true | The connection to Oracle in the Thick Mode using Oracle Instant Client in a cluster. |
| services. | object | The parameters that can be passed directly to the node-postgres pool library. | |
| services. | integer | 60000 | A number of milliseconds to wait for a connection. |
| services. | integer | 30000 | A number of milliseconds a client must remain idle in the pool and not be checked out before it is disconnected from the backend and discarded. Set to 0 to disable automatic disconnection of idle clients. |
| services. | integer | 60000 | A number of seconds that represents the maximum lifetime. |
| services. | integer | 60000 | A number of milliseconds before a query call times out. |
| services. | integer | 60000 | A number of milliseconds before the query statement times out. |
| services. | string | "doc_changes" | The database table name where all the document changes are stored. |
| services. | string | "task_result" | The database table name where the query result is stored. |
Example
{
"services": {
"CoAuthoring": {
"sql": {
"type": "postgres",
"tableChanges": "doc_changes",
"tableResult": "task_result",
"dbHost": "localhost",
"dbPort": 5432,
"dbName": "onlyoffice",
"dbUser": "onlyoffice",
"dbPass": "onlyoffice",
"charset": "utf8",
"connectionlimit": 10,
"max_allowed_packet": 1048575,
"pgPoolExtraOptions": {
"idleTimeoutMillis": 30000,
"maxLifetimeSeconds": 60000,
"statement_timeout": 60000,
"query_timeout": 60000,
"connectionTimeoutMillis": 60000
},
"damengExtraOptions": {
"columnNameUpperCase": false,
"columnNameCase": "lower",
"connectTimeout": 60000,
"loginEncrypt": false,
"localTimezone": 0,
"poolTimeout": 60,
"socketTimeout": 60000,
"queueTimeout": 60000
},
"oracleExtraOptions": {
"thin": true,
"connectTimeout": 60
},
"msSqlExtraOptions": {
"options": {
"encrypt": false,
"trustServerCertificate": true
},
"pool": {
"idleTimeoutMillis": 30000
}
},
"mysqlExtraOptions": {
"connectTimeout": 60000,
"queryTimeout": 60000
}
}
}
}
}
Redis
These parameters configure the Redis configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| services. | string | "127.0.0.1" | The Redis server host (host name or IP address). |
| services. | object | The parameters (username, password, modules etc.) that can be passed directly to the ioredis RedisOptions library. | |
| services. | boolean | true | Whether the connection to the server will be delayed until the first command is sent or redis.connect() is called explicitly. |
| services. | string[] | [] | A list of nodes of the cluster you want to connect to that can be passed directly to the ioredis cluster library to connect to the redis cluster. This setting has the priority over the iooptions parameter for connecting to the single redis. |
| services. | object | The parameters (clusterRetryStrategy, dnsLookup, scaleReads etc.) that can be passed directly to the ioredis cluster library to connect to the redis cluster. This setting has the priority over the iooptions parameter for connecting to the single redis. | |
| services. | boolean | true | Whether the connection to the server will be delayed until the first command is sent or redis.connect() is called explicitly. |
| services. | string | "redis" | The database name, "redis" or "ioredis". |
| services. | object | The parameters (username, password, modules etc.) that can be passed directly to the node-redis createClient library. | |
| services. | object | The parameters (rootNodes, defaults, modules etc.) that can be passed directly to the node-redis clustering library to connect to the redis cluster. This setting has the priority over the options parameter for connecting to the single redis. | |
| services. | integer | 6379 | The Redis server port. |
| services. | string | "ds:" | The name prefix for all the used structures in Redis. |
Example
{
"services": {
"CoAuthoring": {
"redis": {
"name": "redis",
"prefix": "ds:",
"host": "127.0.0.1",
"port": 6379,
"options": {},
"optionsCluster": {},
"iooptions": {
"lazyConnect": true
},
"iooptionsClusterNodes": [],
"iooptionsClusterOptions": {
"lazyConnect": true
}
}
}
}
}
Token
These parameters configure the token configuration.
Example
{
"services": {
"CoAuthoring": {
"token": {
"enable": {
"browser": false,
"request": {
"inbox": false,
"outbox": false
}
},
"browser": {
"secretFromInbox": true
},
"inbox": {
"header": "Authorization",
"prefix": "Bearer ",
"inBody": false
},
"outbox": {
"header": "Authorization",
"prefix": "Bearer ",
"algorithm": "HS256",
"expires": "5m",
"inBody": false,
"urlExclusionRegex": ""
},
"session": {
"algorithm": "HS256",
"expires": "30d"
},
"verifyOptions": {
"clockTolerance": 60
}
}
}
}
}
Expiration
These parameters configure the expiration settings.
Example
{
"services": {
"CoAuthoring": {
"expire": {
"saveLock": 60,
"presence": 300,
"locks": 604800,
"changeindex": 86400,
"lockDoc": 30,
"message": 86400,
"lastsave": 604800,
"forcesave": 604800,
"forcesaveLock": 5000,
"saved": 3600,
"documentsCron": "0 */2 * * * *",
"files": 86400,
"filesCron": "00 00 */1 * * *",
"filesremovedatonce": 100,
"sessionidle": "1h",
"sessionabsolute": "30d",
"sessionclosecommand": "2m",
"pemStdTTL": "1h",
"pemCheckPeriod": "10m",
"updateVersionStatus": "5m",
"monthUniqueUsers": "1y"
}
}
}
}
Auto assembly
These parameters configure the automatic forcesaving configuration.
Example
{
"services": {
"CoAuthoring": {
"autoAssembly": {
"enable": false,
"interval": "5m",
"step": "1m"
}
}
}
}
Callback backoff options
These parameters configure the callback backoff options.
Example
{
"services": {
"CoAuthoring": {
"callbackBackoffOptions": {
"retries": 3,
"timeout": {
"factor": 2,
"minTimeout": 1000,
"maxTimeout": 2147483647,
"randomize": false
},
"httpStatus": "429,500-599"
}
}
}
}
IP filter
These parameters configure the IP filter configuration.
Example
{
"services": {
"CoAuthoring": {
"ipfilter": {
"rules": [
{
"address": "*",
"allowed": true
}
],
"useforrequest": false,
"errorcode": 403
}
}
}
}
Plugins
These parameters configure the plugins configuration.
Example
{
"services": {
"CoAuthoring": {
"plugins": {
"uri": "/sdkjs-plugins",
"autostart": []
}
}
}
}
PubSub service
This parameter configures the PubSub service configuration.
Example
{
"services": {
"CoAuthoring": {
"pubsub": {
"maxChanges": 1000
}
}
}
}
Request Filtering Agent
These parameters configure the Request Filtering Agent configuration.
Example
{
"services": {
"CoAuthoring": {
"request-filtering-agent": {
"allowPrivateIPAddress": false,
"allowMetaIPAddress": false
}
}
}
}
Default request
These parameters configure the default request configuration.
Example
{
"services": {
"CoAuthoring": {
"requestDefaults": {
"headers": {
"User-Agent": "Node.js/6.13",
"Connection": "Keep-Alive"
},
"rejectUnauthorized": true
}
}
}
}
Socket.IO
These parameters configure the Socket.IO module configuration.
Example
{
"services": {
"CoAuthoring": {
"socketio": {
"connection": {
"path": "/doc/",
"serveClient": false,
"pingTimeout": 20000,
"pingInterval": 25000,
"maxHttpBufferSize": 100000000
}
}
}
}
}
SockJs
These parameters configure the SockJs configuration.
Example
{
"services": {
"CoAuthoring": {
"sockjs": {
"sockjs_url": "",
"disable_cors": true,
"websocket": true
}
}
}
}
Themes
This parameter configures the properties of the custom color themes.
| Parameter | Type | Default | Description |
|---|---|---|---|
| services. | string | "/web-apps/apps/common/main/resources/themes" | A path to the folder where all the json files with the custom color themes are stored. |
Example
{
"services": {
"CoAuthoring": {
"themes": {
"uri": "/web-apps/apps/common/main/resources/themes"
}
}
}
}
Utils
These parameters configure the utils configuration.
Example
{
"services": {
"CoAuthoring": {
"utils": {
"utils_common_fontdir": "null",
"utils_fonts_search_patterns": "*.ttf;*.ttc;*.otf",
"limits_image_types_upload": "jpg;jpeg;jpe;jfif;jif;png;gif;bmp;svg;tiff;tif;webp;heic;heif;avif",
"limits_document_types_upload": "xlsx"
}
}
}
}
License
These parameters configure the license configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| license. | string | "" | A path to the license file. |
| license. | integer | 70 | A percent range of the connections and connections_view limitations, exceeding which a license limit warning appears in logs. |
| license. | integer | 0 | The license package type: 2 - Developer Edition. Note: This parameter is set at the time of version build. You do not have to manually configure it. |
| license. | string | "30d" | The time before the license expires when a warning message is sent. |
Example
{
"license": {
"license_file": "",
"warning_limit_percents": 70,
"packageType": 0,
"warning_license_expiration": "30d"
}
}
Converter
These parameters configure the file converter configuration.
| Parameter | Type | Default | Description |
|---|---|---|---|
| FileConverter. | object | The converter properties. | |
| FileConverter. | integer | 104857600 | A maximum size of the file being requested (measured in bytes). |
| FileConverter. | string | "" | Legacy. The path to the signing certificate file. Use signing.keyStorePath instead. |
| FileConverter. | object | The signing settings. keyStorePath takes priority over legacy signingKeyStorePath. Cloud provider is detected by awsKms.keyId. | |
| FileConverter. | string | "" | The path to the signing certificate. P12/PFX for local x2t, PEM chain for cloud signing. |
| FileConverter. | object | The signature metadata fields embedded in the PDF digital signature. | |
| FileConverter. | string | "" | The purpose of signing (e.g. Approved). |
| FileConverter. | string | "" | The signer name. |
| FileConverter. | string | "" | The signing location. |
| FileConverter. | string | "" | The contact details (URL or email). |
| FileConverter. | object | The AWS KMS (or compatible) settings. Set keyId to enable. | |
| FileConverter. | string | "" | The KMS endpoint URL. Allows alternative KMS-compatible services. |
| FileConverter. | string | "" | The KMS key ID or ARN. If set, AWS KMS signing is active. |
| FileConverter. | string | "" | The AWS access key. Leave empty to use the default credential chain. |
| FileConverter. | string | "" | The AWS secret access key. Warning: Do not store sensitive values in version control. Consider using environment variables or a secrets manager. |
| FileConverter. | object | The CSC API v2 (ETSI TS 119 432) settings. Set baseUrl to enable. | |
| FileConverter. | string | "" | The CSC API base URL. If set, CSC signing is active. |
| FileConverter. | string | "" | The OAuth2 token endpoint. |
| FileConverter. | string | "" | The OAuth2 client ID. |
| FileConverter. | string | "" | The OAuth2 client secret. |
| FileConverter. | string | "" | Optional. The OAuth2 grant type: '' (auto-detect), 'password', or 'client_credentials'. Empty selects based on presence of username/password. |
| FileConverter. | string | "" | Optional. How the client authenticates to the token endpoint: '' (body), 'basic', 'body', or 'both'. |
| FileConverter. | string | "" | Optional. The token request body format: 'form' (default, RFC 6749) or 'json'. |
| FileConverter. | string | "" | Optional. The username for the password grant type. |
| FileConverter. | string | "" | Optional. The password for the password grant type. Warning: Do not store sensitive values in version control. Consider using environment variables or a secrets manager. |
| FileConverter. | string | "" | Optional. The signing credential ID. Auto-discovered via credentials/list when empty. |
| FileConverter. | string | "" | Optional. The provider-specific clientData for credentials/list (e.g. eSeal credential type). |
| FileConverter. | string | "service" | Optional. The OAuth2 scope (e.g. 'service'). |
| FileConverter. | string | "" | Optional. The OAuth2 audience parameter. |
| FileConverter. | object | The parameters that can be passed directly to the node.js child_process.spawn library (only for running x2t). | |
| FileConverter. | string | The passphrase for the PKCS#12 keystore file. | |
| FileConverter. | object[] | The limits for input files. | |
| FileConverter. | string | The OOXML file types for which the limits are specified (text documents/spreadsheets/presentations). This does not include other objects, like images. | |
| FileConverter. | object | The zip archive properties. | |
| FileConverter. | string | "*.xml" | The name template for files which sizes are counted. |
| FileConverter. | string | "50MB"/"300MB"/"50MB" | The total uncompressed file size for text documents/spreadsheets/presentations. |
| FileConverter. | string | "" | The additional parameters for running x2t. |
| FileConverter. | string | "null" | A path to the Document Builder application. |
| FileConverter. | integer | 1000 | The attempt delay to download the converted file. |
| FileConverter. | integer | 3 | A maximum number of attempts to download the converted file. |
| FileConverter. | object | The timeout properties for downloading the converted file. | |
| FileConverter. | string | "2m" | A period which specifies two timeouts: - read timeout - time to wait for a server to send response headers (and start the response body) before aborting the request; - connection timeout - sets the socket to timeout after timeout of inactivity. Note that increasing the timeout beyond the OS-wide TCP connection timeout will not have any effect. This parameter is sent to the npm module. |
| FileConverter. | string | "2m" | The whole request cycle timeout. |
| FileConverter. | string | "" | A path to the error files. |
| FileConverter. | string | "null" | A path to the folder with fonts. |
| FileConverter. | integer | 1 | A maximum number of conversion processes which can be active at one time. |
| FileConverter. | integer | 2 | A maximum number of message re-deliveries. |
| FileConverter. | string | "null" | A path to the folder with the presentation themes. |
| FileConverter. | integer | 8388608 | The StreamWriter buffer size. |
| FileConverter. | string | "null" | A path to the x2t file converter. |
Example
{
"FileConverter": {
"converter": {
"maxDownloadBytes": 104857600,
"downloadTimeout": {
"connectionAndInactivity": "2m",
"wholeCycle": "2m"
},
"downloadAttemptMaxCount": 3,
"downloadAttemptDelay": 1000,
"maxprocesscount": 1,
"fontDir": "null",
"presentationThemesDir": "null",
"x2tPath": "null",
"docbuilderPath": "null",
"signingKeyStorePath": "",
"signing": {
"keyStorePath": "",
"meta": {
"reason": "",
"name": "",
"location": "",
"contactInfo": ""
},
"awsKms": {
"endpoint": "",
"keyId": "",
"accessKeyId": "",
"secretAccessKey": ""
},
"csc": {
"baseUrl": "",
"tokenUrl": "",
"clientId": "",
"clientSecret": "",
"grantType": "",
"clientAuth": "",
"tokenBodyFormat": "",
"username": "",
"password": "",
"credentialId": "",
"clientData": "",
"scope": "service",
"audience": ""
}
},
"args": "",
"spawnOptions": {},
"errorfiles": "",
"streamWriterBufferSize": 8388608,
"maxRedeliveredCount": 2,
"inputLimits": [
{
"type": "docx;dotx;docm;dotm",
"zip": {
"uncompressed": "50MB",
"template": "*.xml"
}
},
{
"type": "xlsx;xltx;xlsm;xltm",
"zip": {
"uncompressed": "300MB",
"template": "*.xml"
}
},
{
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
"zip": {
"uncompressed": "50MB",
"template": "*.xml"
}
},
{
"type": "vsdx;vstx;vssx;vsdm;vstm;vssm",
"zip": {
"uncompressed": "50MB",
"template": "*.xml"
}
}
]
}
}
}