[GH-ISSUE #837] No /healthcheck since 9.2.0 #404

Open
opened 2026-02-26 10:32:24 +03:00 by kerem · 17 comments
Owner

Originally created by @GVLLIFESTYLE on GitHub (Dec 4, 2025).
Original GitHub issue: https://github.com/ONLYOFFICE/Docker-DocumentServer/issues/837

Originally assigned to: @igwyd on GitHub.

Since 9.2.0 onlyoffice/welcome/ works, but onlyoffice/healthcheck does not: Error "502 Bad Gateway".
The parameters I use at docker run are:
"JWT_ENABLED='true'", "JWT_SECRET='MYSECRET', --restart=always"
Before the upgrade it worked.
Why?

Originally created by @GVLLIFESTYLE on GitHub (Dec 4, 2025). Original GitHub issue: https://github.com/ONLYOFFICE/Docker-DocumentServer/issues/837 Originally assigned to: @igwyd on GitHub. Since 9.2.0 onlyoffice/welcome/ works, but onlyoffice/healthcheck does not: Error "502 Bad Gateway". The parameters I use at docker run are: "JWT_ENABLED='true'", "JWT_SECRET='MYSECRET', --restart=always" Before the upgrade it worked. Why?
Author
Owner

@igwyd commented on GitHub (Dec 5, 2025):

Hello @GVLLIFESTYLE, we tested /healthcheck in 9.2.0 dcoker and it works. Please describe your environment and update method in more detail. Show the command you used to update.

<!-- gh-comment-id:3616466883 --> @igwyd commented on GitHub (Dec 5, 2025): Hello @GVLLIFESTYLE, we tested /healthcheck in 9.2.0 dcoker and it works. Please describe your environment and update method in more detail. Show the command you used to update.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 12, 2025):

My setup:

Docker version 26.1.0, build 9714adc
Ubuntu x64 LTS
Mysql
Apache2 with reverse proxy
This url works: https://domain/onlyoffice
This not https://domain/onlyoffice/healthcheck => 502 Bad Gateway

<!-- gh-comment-id:3645895560 --> @GVLLIFESTYLE commented on GitHub (Dec 12, 2025): My setup: Docker version 26.1.0, build 9714adc Ubuntu x64 LTS Mysql Apache2 with reverse proxy This url works: https://domain/onlyoffice This not https://domain/onlyoffice/healthcheck => 502 Bad Gateway
Author
Owner

@igwyd commented on GitHub (Dec 12, 2025):

Does healthcheck work without a proxy?

<!-- gh-comment-id:3645985771 --> @igwyd commented on GitHub (Dec 12, 2025): Does healthcheck work without a proxy?
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 12, 2025):

Nope, still the same error even on localhost.

<!-- gh-comment-id:3645998007 --> @GVLLIFESTYLE commented on GitHub (Dec 12, 2025): Nope, still the same error even on localhost.
Author
Owner

@igwyd commented on GitHub (Dec 13, 2025):

Please write the full command that you use to run the docker container and the address on which you are checking healthcheck locally.

<!-- gh-comment-id:3649078689 --> @igwyd commented on GitHub (Dec 13, 2025): Please write the full command that you use to run the docker container and the address on which you are checking healthcheck locally.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 13, 2025):

My docker script:

docker stop onlyoffice
docker rm onlyoffice
docker pull onlyoffice/documentserver
docker run --name onlyoffice --add-host BlackedOutDomain:BlackedOutIP -i -t -d -p 9980:80 -e JWT_ENABLED='true' -e JWT_SECRET='BlackedOutSecret' --restart=always onlyoffice/documentserver
echo onlyoffice started

Thats how I checked if its running:
curl http://localhost:9980/healthcheck

<!-- gh-comment-id:3649089914 --> @GVLLIFESTYLE commented on GitHub (Dec 13, 2025): My docker script: docker stop onlyoffice docker rm onlyoffice docker pull onlyoffice/documentserver docker run --name onlyoffice --add-host BlackedOutDomain:BlackedOutIP -i -t -d -p 9980:80 -e JWT_ENABLED='true' -e JWT_SECRET='BlackedOutSecret' --restart=always onlyoffice/documentserver echo onlyoffice started Thats how I checked if its running: curl http://localhost:9980/healthcheck
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 25, 2025):

Any updates?

<!-- gh-comment-id:3691245201 --> @GVLLIFESTYLE commented on GitHub (Dec 25, 2025): Any updates?
Author
Owner

@igwyd commented on GitHub (Dec 25, 2025):

I tested your run command on my Ubuntu 24.04 server with the latest version of Docker. I get a "502 Bad Gateway" error immediately after starting the container because the server is in the process of starting. After 1-2 min, the server up and shows true.

<!-- gh-comment-id:3691304338 --> @igwyd commented on GitHub (Dec 25, 2025): I tested your run command on my Ubuntu 24.04 server with the latest version of Docker. I get a "502 Bad Gateway" error immediately after starting the container because the server is in the process of starting. After 1-2 min, the server up and shows `true`.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 25, 2025):

Well it does not seem to work for me.
OK i figured it out.
It seems to be an issue with my default.json which I map to /etc/onlyoffice/documentserver/default.json:

`{
"adminPanel": {
"port": 9000
},
"statsd": {
"useMetrics": false,
"host": "localhost",
"port": "8125",
"prefix": "ds."
},
"aiSettings": {
"actions": {},
"models": [],
"providers": {},
"version": 3,
"timeout": "5m",
"allowedCorsOrigins": [https://onlyoffice.github.io, https://onlyoffice-plugins.github.io],
"proxy": ""
},
"log": {
"filePath": "",
"options": {
"replaceConsole": true
}
},
"runtimeConfig": {
"filePath": "",
"cache": {
"stdTTL": 300,
"checkperiod": 60,
"useClones": false
}
},
"queue": {
"type": "rabbitmq",
"visibilityTimeout": 300,
"retentionPeriod": 900
},
"email": {
"smtpServerConfiguration": {
"host": "localhost",
"port": 587,
"auth": {
"user": "",
"pass": ""
}
},
"connectionConfiguration": {
"disableFileAccess": false,
"disableUrlAccess": false
},
"contactDefaults": {
"from": from@example.com,
"to": to@example.com
}
},
"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"
}
}
}
},
"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": 100000
},
"deleteBlob": {}
}
},
"urlExpires": 604800,
"accessKeyId": "",
"secretAccessKey": "",
"sslEnabled": false,
"s3ForcePathStyle": true,
"externalHost": "",
"useDirectStorageUrls": false
},
"persistentStorage": {},
"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": {
"connectOptions": {
"port": 5672,
"host": "localhost",
"reconnect": false
},
"queueconverttask": "ds.converttask",
"queueconvertresponse": "ds.convertresponse",
"queueconvertdead": "ActiveMQ.DLQ",
"queuedelayed": "ds.delayed",
"topicpubsub": "ds.pubsub"
},
"dnscache": {
"enable": true,
"ttl": 300,
"cachesize": 10000
},
"openpgpjs": {
"config": {},
"encrypt": {
"passwords": ["verysecretstring"]
},
"decrypt": {
"passwords": ["verysecretstring"]
}
},
"aesEncrypt": {
"config": {
"keyByteLength": 32,
"saltByteLength": 64,
"initializationVectorByteLength": 16,
"iterationsByteLength": 5
},
"secret": "verysecretstring"
},
"bottleneck": {
"getChanges": {}
},
"win-ca": {
"inject": "+"
},
"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": ["djvu", "xps", "oxps"],
"pdfEdit": ["pdf"],
"forms": ["pdf"],
"wordView": ["doc", "dotm", "dot", "fodt", "ott", "rtf", "mht", "mhtml", "html", "htm", "xml", "epub", "fb2", "sxw", "stw", "wps", "wpt", "pages", "docxf", "oform", "hwp", "hwpx", "md", "hml"],
"wordEdit": ["docx", "dotx", "docm", "odt", "txt"],
"cellView": ["xls", "xltm", "xlt", "fods", "ots", "sxc", "xml", "et", "ett", "numbers"],
"cellEdit": ["xlsx", "xlsb", "xltx", "xlsm", "ods", "csv"],
"slideView": ["ppt", "ppsx", "ppsm", "pps", "potm", "pot", "fodp", "otp", "sxi", "dps", "dpt", "key", "odg"],
"slideEdit": ["pptx", "potx", "pptm", "odp"],
"diagramView": ["vsdx", "vstx", "vssx", "vsdm", "vstm", "vssm"],
"diagramEdit": [],
"publicKey": "",
"modulus": "",
"exponent": 65537,
"privateKey": "",
"publicKeyOld": "",
"modulusOld": "",
"exponentOld": 65537,
"privateKeyOld": "",
"refreshLockInterval": "10m",
"dummy": {
"enable": false,
"sampleFilePath": ""
}
},
"tenants": {
"baseDir": "",
"baseDomain": "",
"filenameConfig": "config.json",
"filenameSecret": "secret.key",
"filenameLicense": "license.lic",
"defaultTenant": "localhost",
"cache": {
"stdTTL": 300,
"checkperiod": 60,
"useClones": false
}
},
"externalRequest": {
"directIfIn": {
"allowList": [],
"jwtToken": true
},
"action": {
"allow": true,
"blockPrivateIP": true,
"proxyUrl": "",
"proxyUser": {
"username": "",
"password": ""
},
"proxyHeaders": {}
}
},
"services": {
"CoAuthoring": {
"server": {
"port": 8000,
"workerpercpu": 1,
"mode": "development",
"limits_tempfile_upload": 10485760000,
"limits_image_size": 2621440000,
"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",
"downloadFileAllowExt": ["pdf", "xlsx"],
"tokenRequiredParams": true,
"forceSaveUsingButtonWithoutChanges": false
},
"requestDefaults": {
"headers": {
"User-Agent": "Node.js/6.13",
"Connection": "Keep-Alive"
},
"rejectUnauthorized": true
},
"autoAssembly": {
"enable": false,
"interval": "5m",
"step": "1m"
},
"utils": {
"utils_common_fontdir": "null",
"utils_fonts_search_patterns": ".ttf;.ttc;.otf",
"limits_image_types_upload": "jpg;jpeg;jpe;png;gif;bmp;svg;tiff;tif;webp;heic;heif;avif",
"limits_document_types_upload": "xlsx"
},
"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": {
"name": "redis",
"prefix": "ds:",
"host": "127.0.0.1",
"port": 6379,
"options": {},
"optionsCluster": {},
"iooptions": {
"lazyConnect": true
},
"iooptionsClusterNodes": [],
"iooptionsClusterOptions": {
"lazyConnect": true
}
},
"pubsub": {
"maxChanges": 1000
},
"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"
},
"ipfilter": {
"rules": [{"address": "
", "allowed": true}],
"useforrequest": false,
"errorcode": 403
},
"request-filtering-agent": {
"allowPrivateIPAddress": false,
"allowMetaIPAddress": false
},
"secret": {
"browser": {"string": "secret", "file": ""},
"inbox": {"string": "secret", "file": ""},
"outbox": {"string": "secret", "file": ""},
"session": {"string": "secret", "file": ""}
},
"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
}
},
"plugins": {
"uri": "/sdkjs-plugins",
"autostart": []
},
"themes": {
"uri": "/web-apps/apps/common/main/resources/themes"
},
"editor": {
"spellcheckerUrl": "",
"reconnection": {
"attempts": 50,
"delay": "2s"
},
"binaryChanges": false,
"websocketMaxPayloadSize": "1.5MB",
"maxChangesSize": "150MB"
},
"sockjs": {
"sockjs_url": "",
"disable_cors": true,
"websocket": true
},
"socketio": {
"connection": {
"path": "/doc/",
"serveClient": false,
"pingTimeout": 20000,
"pingInterval": 25000,
"maxHttpBufferSize": 1e8
}
},
"callbackBackoffOptions": {
"retries": 3,
"timeout": {
"factor": 2,
"minTimeout": 1000,
"maxTimeout": 2147483647,
"randomize": false
},
"httpStatus": "429,500-599"
}
}
},
"license": {
"license_file": "",
"warning_limit_percents": 70,
"packageType": 0,
"warning_license_expiration": "30d"
},
"FileConverter": {
"converter": {
"maxDownloadBytes": 104857600,
"downloadTimeout": {
"connectionAndInactivity": "2m",
"wholeCycle": "2m"
},
"downloadAttemptMaxCount": 3,
"downloadAttemptDelay": 1000,
"maxprocesscount": 1,
"fontDir": "null",
"presentationThemesDir": "null",
"x2tPath": "null",
"docbuilderPath": "null",
"args": "",
"spawnOptions": {},
"errorfiles": "",
"streamWriterBufferSize": 8388608,
"maxRedeliveredCount": 2,
"inputLimits": [
{
"type": "docx;dotx;docm;dotm",
"zip": {
"uncompressed": "1000MB",
"template": "
.xml"
}
},
{
"type": "xlsx;xltx;xlsm;xltm",
"zip": {
"uncompressed": "1000MB",
"template": "
.xml"
}
},
{
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
"zip": {
"uncompressed": "1000MB",
"template": "
.xml"
}
},
{
"type": "vsdx;vstx;vssx;vsdm;vstm;vssm",
"zip": {
"uncompressed": "1000MB",
"template": "
.xml"
}
}
]
}
}
}

`

<!-- gh-comment-id:3691411338 --> @GVLLIFESTYLE commented on GitHub (Dec 25, 2025): Well it does not seem to work for me. OK i figured it out. It seems to be an issue with my default.json which I map to /etc/onlyoffice/documentserver/default.json: `{ "adminPanel": { "port": 9000 }, "statsd": { "useMetrics": false, "host": "localhost", "port": "8125", "prefix": "ds." }, "aiSettings": { "actions": {}, "models": [], "providers": {}, "version": 3, "timeout": "5m", "allowedCorsOrigins": [https://onlyoffice.github.io, https://onlyoffice-plugins.github.io], "proxy": "" }, "log": { "filePath": "", "options": { "replaceConsole": true } }, "runtimeConfig": { "filePath": "", "cache": { "stdTTL": 300, "checkperiod": 60, "useClones": false } }, "queue": { "type": "rabbitmq", "visibilityTimeout": 300, "retentionPeriod": 900 }, "email": { "smtpServerConfiguration": { "host": "localhost", "port": 587, "auth": { "user": "", "pass": "" } }, "connectionConfiguration": { "disableFileAccess": false, "disableUrlAccess": false }, "contactDefaults": { "from": from@example.com, "to": to@example.com } }, "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" } } } }, "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": 100000 }, "deleteBlob": {} } }, "urlExpires": 604800, "accessKeyId": "", "secretAccessKey": "", "sslEnabled": false, "s3ForcePathStyle": true, "externalHost": "", "useDirectStorageUrls": false }, "persistentStorage": {}, "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": { "connectOptions": { "port": 5672, "host": "localhost", "reconnect": false }, "queueconverttask": "ds.converttask", "queueconvertresponse": "ds.convertresponse", "queueconvertdead": "ActiveMQ.DLQ", "queuedelayed": "ds.delayed", "topicpubsub": "ds.pubsub" }, "dnscache": { "enable": true, "ttl": 300, "cachesize": 10000 }, "openpgpjs": { "config": {}, "encrypt": { "passwords": ["verysecretstring"] }, "decrypt": { "passwords": ["verysecretstring"] } }, "aesEncrypt": { "config": { "keyByteLength": 32, "saltByteLength": 64, "initializationVectorByteLength": 16, "iterationsByteLength": 5 }, "secret": "verysecretstring" }, "bottleneck": { "getChanges": {} }, "win-ca": { "inject": "+" }, "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": ["djvu", "xps", "oxps"], "pdfEdit": ["pdf"], "forms": ["pdf"], "wordView": ["doc", "dotm", "dot", "fodt", "ott", "rtf", "mht", "mhtml", "html", "htm", "xml", "epub", "fb2", "sxw", "stw", "wps", "wpt", "pages", "docxf", "oform", "hwp", "hwpx", "md", "hml"], "wordEdit": ["docx", "dotx", "docm", "odt", "txt"], "cellView": ["xls", "xltm", "xlt", "fods", "ots", "sxc", "xml", "et", "ett", "numbers"], "cellEdit": ["xlsx", "xlsb", "xltx", "xlsm", "ods", "csv"], "slideView": ["ppt", "ppsx", "ppsm", "pps", "potm", "pot", "fodp", "otp", "sxi", "dps", "dpt", "key", "odg"], "slideEdit": ["pptx", "potx", "pptm", "odp"], "diagramView": ["vsdx", "vstx", "vssx", "vsdm", "vstm", "vssm"], "diagramEdit": [], "publicKey": "", "modulus": "", "exponent": 65537, "privateKey": "", "publicKeyOld": "", "modulusOld": "", "exponentOld": 65537, "privateKeyOld": "", "refreshLockInterval": "10m", "dummy": { "enable": false, "sampleFilePath": "" } }, "tenants": { "baseDir": "", "baseDomain": "", "filenameConfig": "config.json", "filenameSecret": "secret.key", "filenameLicense": "license.lic", "defaultTenant": "localhost", "cache": { "stdTTL": 300, "checkperiod": 60, "useClones": false } }, "externalRequest": { "directIfIn": { "allowList": [], "jwtToken": true }, "action": { "allow": true, "blockPrivateIP": true, "proxyUrl": "", "proxyUser": { "username": "", "password": "" }, "proxyHeaders": {} } }, "services": { "CoAuthoring": { "server": { "port": 8000, "workerpercpu": 1, "mode": "development", "limits_tempfile_upload": 10485760000, "limits_image_size": 2621440000, "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", "downloadFileAllowExt": ["pdf", "xlsx"], "tokenRequiredParams": true, "forceSaveUsingButtonWithoutChanges": false }, "requestDefaults": { "headers": { "User-Agent": "Node.js/6.13", "Connection": "Keep-Alive" }, "rejectUnauthorized": true }, "autoAssembly": { "enable": false, "interval": "5m", "step": "1m" }, "utils": { "utils_common_fontdir": "null", "utils_fonts_search_patterns": "*.ttf;*.ttc;*.otf", "limits_image_types_upload": "jpg;jpeg;jpe;png;gif;bmp;svg;tiff;tif;webp;heic;heif;avif", "limits_document_types_upload": "xlsx" }, "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": { "name": "redis", "prefix": "ds:", "host": "127.0.0.1", "port": 6379, "options": {}, "optionsCluster": {}, "iooptions": { "lazyConnect": true }, "iooptionsClusterNodes": [], "iooptionsClusterOptions": { "lazyConnect": true } }, "pubsub": { "maxChanges": 1000 }, "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" }, "ipfilter": { "rules": [{"address": "*", "allowed": true}], "useforrequest": false, "errorcode": 403 }, "request-filtering-agent": { "allowPrivateIPAddress": false, "allowMetaIPAddress": false }, "secret": { "browser": {"string": "secret", "file": ""}, "inbox": {"string": "secret", "file": ""}, "outbox": {"string": "secret", "file": ""}, "session": {"string": "secret", "file": ""} }, "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 } }, "plugins": { "uri": "/sdkjs-plugins", "autostart": [] }, "themes": { "uri": "/web-apps/apps/common/main/resources/themes" }, "editor": { "spellcheckerUrl": "", "reconnection": { "attempts": 50, "delay": "2s" }, "binaryChanges": false, "websocketMaxPayloadSize": "1.5MB", "maxChangesSize": "150MB" }, "sockjs": { "sockjs_url": "", "disable_cors": true, "websocket": true }, "socketio": { "connection": { "path": "/doc/", "serveClient": false, "pingTimeout": 20000, "pingInterval": 25000, "maxHttpBufferSize": 1e8 } }, "callbackBackoffOptions": { "retries": 3, "timeout": { "factor": 2, "minTimeout": 1000, "maxTimeout": 2147483647, "randomize": false }, "httpStatus": "429,500-599" } } }, "license": { "license_file": "", "warning_limit_percents": 70, "packageType": 0, "warning_license_expiration": "30d" }, "FileConverter": { "converter": { "maxDownloadBytes": 104857600, "downloadTimeout": { "connectionAndInactivity": "2m", "wholeCycle": "2m" }, "downloadAttemptMaxCount": 3, "downloadAttemptDelay": 1000, "maxprocesscount": 1, "fontDir": "null", "presentationThemesDir": "null", "x2tPath": "null", "docbuilderPath": "null", "args": "", "spawnOptions": {}, "errorfiles": "", "streamWriterBufferSize": 8388608, "maxRedeliveredCount": 2, "inputLimits": [ { "type": "docx;dotx;docm;dotm", "zip": { "uncompressed": "1000MB", "template": "*.xml" } }, { "type": "xlsx;xltx;xlsm;xltm", "zip": { "uncompressed": "1000MB", "template": "*.xml" } }, { "type": "pptx;ppsx;potx;pptm;ppsm;potm", "zip": { "uncompressed": "1000MB", "template": "*.xml" } }, { "type": "vsdx;vstx;vssx;vsdm;vstm;vssm", "zip": { "uncompressed": "1000MB", "template": "*.xml" } } ] } } } `
Author
Owner

@igwyd commented on GitHub (Dec 25, 2025):

Now it's clear that you can't do this. If you want to override parameters, you should use local.json because default.json is modified by developers. https://api.onlyoffice.com/docs/docs-api/more-information/faq/general/#i-want-to-change-some-onlyoffice-docs-parameters-from-the-defaultjson-configuration-file-how-can-i-do-that-so-that-my-changes-were-not-lost-after-update

<!-- gh-comment-id:3691443376 --> @igwyd commented on GitHub (Dec 25, 2025): Now it's clear that you can't do this. If you want to override parameters, you should use `local.json` because `default.json` is modified by developers. https://api.onlyoffice.com/docs/docs-api/more-information/faq/general/#i-want-to-change-some-onlyoffice-docs-parameters-from-the-defaultjson-configuration-file-how-can-i-do-that-so-that-my-changes-were-not-lost-after-update
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 25, 2025):

OK, that should work or for a local.json located in /etc/onlyoffice/documentserver

{
"services": {
"CoAuthoring": {
"server": {
"limits_tempfile_upload": 10485760000,
"limits_image_size": 2621440000
},
"FileConverter": {
"converter": {
"inputLimits": [
{
"type": "xlsx;xltx;xlsm;xltm",
"zip": {
"uncompressed": "1000MB",
"template": ".xml"
}
},
{
"type": "pptx;ppsx;potx;pptm;ppsm;potm",
"zip": {
"uncompressed": "1000MB",
"template": ".xml"
}
},
{
"type": "vsdx;vstx;vssx;vsdm;vstm;vssm",
"zip": {
"uncompressed": "1000MB",
"template": ".xml"
}
},
{
"type": "docx;dotx;docm;dotm",
"zip": {
"uncompressed": "1000MB",
"template": ".xml"
}
}
]
}
}
}
}
}

Cause it does not.

<!-- gh-comment-id:3691464157 --> @GVLLIFESTYLE commented on GitHub (Dec 25, 2025): OK, that should work or for a local.json located in /etc/onlyoffice/documentserver { "services": { "CoAuthoring": { "server": { "limits_tempfile_upload": 10485760000, "limits_image_size": 2621440000 }, "FileConverter": { "converter": { "inputLimits": [ { "type": "xlsx;xltx;xlsm;xltm", "zip": { "uncompressed": "1000MB", "template": ".xml" } }, { "type": "pptx;ppsx;potx;pptm;ppsm;potm", "zip": { "uncompressed": "1000MB", "template": ".xml" } }, { "type": "vsdx;vstx;vssx;vsdm;vstm;vssm", "zip": { "uncompressed": "1000MB", "template": ".xml" } }, { "type": "docx;dotx;docm;dotm", "zip": { "uncompressed": "1000MB", "template": ".xml" } } ] } } } } } Cause it does not.
Author
Owner

@igwyd commented on GitHub (Dec 29, 2025):

Please try without mounting the config and wait for the server to start for more than 5 minutes, then use healthcheck.

<!-- gh-comment-id:3695447840 --> @igwyd commented on GitHub (Dec 29, 2025): Please try without mounting the config and wait for the server to start for more than 5 minutes, then use healthcheck.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 29, 2025):

Well without the local.json mount it works, but I need the config changes.

<!-- gh-comment-id:3695864698 --> @GVLLIFESTYLE commented on GitHub (Dec 29, 2025): Well without the local.json mount it works, but I need the config changes.
Author
Owner

@igwyd commented on GitHub (Dec 29, 2025):

You need to add your parameters to the current local.json and save it, then mount it and there should be no issues in the future.

<!-- gh-comment-id:3695980584 --> @igwyd commented on GitHub (Dec 29, 2025): You need to add your parameters to the current local.json and save it, then mount it and there should be no issues in the future.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 29, 2025):

Where can I find the current local.json in the repo?
Could you provide a link?
Just using the default.json and mount it to the local.json did not work.

<!-- gh-comment-id:3696010869 --> @GVLLIFESTYLE commented on GitHub (Dec 29, 2025): Where can I find the current local.json in the repo? Could you provide a link? Just using the default.json and mount it to the local.json did not work.
Author
Owner

@igwyd commented on GitHub (Dec 29, 2025):

No, you can't use default.json like that. Okay, do it this way: take a new file local-production-linux.json and put all your changes into it and mount:

-v ./local-production-linux.json:/etc/onlyoffice/documentserver/local-production-linux.json

local-production-linux.json will be more important in hierarchy and will override the parameters you need. Don't change local.json or default.json.

<!-- gh-comment-id:3696299326 --> @igwyd commented on GitHub (Dec 29, 2025): No, you can't use default.json like that. Okay, do it this way: take a new file `local-production-linux.json` and put all your changes into it and mount: ``` -v ./local-production-linux.json:/etc/onlyoffice/documentserver/local-production-linux.json ``` `local-production-linux.json` will be more important in hierarchy and will override the parameters you need. Don't change local.json or default.json.
Author
Owner

@GVLLIFESTYLE commented on GitHub (Dec 29, 2025):

It works
Thanks

<!-- gh-comment-id:3696367938 --> @GVLLIFESTYLE commented on GitHub (Dec 29, 2025): It works Thanks
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Docker-DocumentServer-ONLYOFFICE#404
No description provided.