@@ -92,33 +92,161 @@ Environment variables
9292 * - ``JWT_HEADER ``
9393 - ``Authorization ``
9494 - HTTP header carrying the JWT
95- * - ``WOPI_ENABLED ``
96- - ``false ``
97- - Enable WOPI protocol support
98- * - ``ALLOW_PRIVATE_IP_ADDRESS ``
95+ * - ``JWT_HEADER_INBOX `` / `` JWT_HEADER_OUTBOX ``
96+ - ``JWT_HEADER ``
97+ - Separate headers per direction
98+ * - ``JWT_IN_BODY ``
9999 - ``false ``
100- - Allow the Document Server to fetch files from private IP ranges
101- * - ``NGINX_WORKER_PROCESSES ``
102- - ``1 ``
103- - Number of nginx worker processes
104- * - ``GENERATE_FONTS ``
105- - ``true ``
106- - Regenerate font cache on startup
100+ - Accept the token in the request body
101+ * - ``JWT_SECRET_INBOX `` / ``JWT_SECRET_OUTBOX ``
102+ - ``JWT_SECRET ``
103+ - Separate secrets per direction
104+ * - ``JWT_ENABLED_INBOX `` / ``JWT_ENABLED_OUTBOX ``
105+ - ``JWT_ENABLED ``
106+ - Enable JWT per direction
107+ * - ``DB_TYPE ``
108+ - ``postgres ``
109+ - Database engine (standalone image supports ``postgres `` only)
107110 * - ``DB_HOST ``
108111 - ``localhost ``
109- - PostgreSQL host (for external database)
112+ - Database host
113+ * - ``DB_PORT ``
114+ - ``5432 ``
115+ - Database port
110116 * - ``DB_NAME ``
111117 - ``eurooffice ``
112- - PostgreSQL database name
118+ - Database name
113119 * - ``DB_USER ``
114120 - ``eurooffice ``
115- - PostgreSQL user
121+ - Database user
122+ * - ``DB_PWD ``
123+ - —
124+ - Database password
116125 * - ``REDIS_SERVER_HOST ``
117126 - ``localhost ``
118127 - Redis host (for external Redis)
128+ * - ``REDIS_SERVER_PORT ``
129+ - ``6379 ``
130+ - Redis port
131+ * - ``REDIS_SERVER_PASS ``
132+ - —
133+ - Redis password
119134 * - ``AMQP_HOST ``
120135 - ``localhost ``
121136 - RabbitMQ host (for external RabbitMQ)
137+ * - ``AMQP_PORT ``
138+ - ``5672 ``
139+ - RabbitMQ port
140+ * - ``AMQP_USER `` / ``AMQP_PWD ``
141+ - ``guest ``
142+ - RabbitMQ credentials
143+ * - ``WOPI_ENABLED ``
144+ - ``false ``
145+ - Enable WOPI protocol support
146+ * - ``PLUGINS_ENABLED ``
147+ - ``true ``
148+ - Enable editor plugins
149+ * - ``GENERATE_FONTS ``
150+ - ``true ``
151+ - Regenerate font cache on startup
152+ * - ``METRICS_ENABLED ``
153+ - ``false ``
154+ - Enable StatsD metrics collection
155+ * - ``ALLOW_PRIVATE_IP_ADDRESS ``
156+ - ``false ``
157+ - Allow the Document Server to fetch files from private IP ranges
158+ * - ``ALLOW_META_IP_ADDRESS ``
159+ - ``false ``
160+ - Allow fetching documents from meta-private IPs (169.254.0.0/16)
161+ * - ``USE_UNAUTHORIZED_STORAGE ``
162+ - ``false ``
163+ - Allow fetching documents from HTTP (non-TLS) storage
164+ * - ``SSL_VERIFY_CLIENT ``
165+ - ``off ``
166+ - Enable SSL client certificate verification
167+ * - ``ONLYOFFICE_HTTPS_HSTS_ENABLED ``
168+ - ``true ``
169+ - Enable HSTS headers
170+ * - ``ONLYOFFICE_HTTPS_HSTS_MAXAGE ``
171+ - ``31536000 ``
172+ - HSTS max-age in seconds (default 1 year)
173+ * - ``NGINX_WORKER_PROCESSES ``
174+ - ``1 ``
175+ - Number of nginx worker processes
176+ * - ``NGINX_ACCESS_LOG ``
177+ - ``false ``
178+ - Enable nginx access logging
179+ * - ``NGINX_CLIENT_MAX_BODY_SIZE ``
180+ - ``100m ``
181+ - Nginx client max body size (upload limit for nginx)
182+ * - ``MAX_FILE_SIZE ``
183+ - ``104857600 ``
184+ - Max temp file upload size in bytes (default 100 MB)
185+ * - ``FILECONVERTER_MAX_DOWNLOAD_BYTES ``
186+ - ``524288000 ``
187+ - Max file download size for the FileConverter in bytes (default 500 MB)
188+ * - ``FILECONVERTER_INPUT_LIMIT_UNCOMPRESSED ``
189+ - ``500MB ``
190+ - Max uncompressed zip size for office files (docx, xlsx, pptx, vsdx)
191+
192+ Size limits
193+ -----------
194+
195+ Each limit guards a different stage of the file lifecycle. Imagine a user tries to
196+ open a **200 MB ** ``.pptx `` file:
197+
198+ **1. Nginx accepts the upload ** — ``NGINX_CLIENT_MAX_BODY_SIZE `` must be higher than
199+ the file. Default is ``100m ``. With a 200 MB file the user gets
200+ ``413 Request Entity Too Large ``. Set it to ``250m ``:
201+
202+ .. code-block :: bash
203+
204+ -e NGINX_CLIENT_MAX_BODY_SIZE=250m
205+
206+ **2. Document Server temp file ** — ``MAX_FILE_SIZE `` gates the internal upload buffer
207+ (bytes). Default is ``104857600 `` (100 MB). A 200 MB file fails here too. Set it to
208+ ``268435456 `` (256 MB):
209+
210+ .. code-block :: bash
211+
212+ -e MAX_FILE_SIZE=268435456
213+
214+ **3. FileConverter downloads the file ** — ``FILECONVERTER_MAX_DOWNLOAD_BYTES `` is the
215+ max bytes the converter will fetch (default ``524288000 `` = 500 MB). Already
216+ sufficient for a 200 MB file. No change needed.
217+
218+ **4. FileConverter unzips the archive ** — ``FILECONVERTER_INPUT_LIMIT_UNCOMPRESSED ``
219+ checks the internal XML size. A **200 MB ** ``.pptx `` on disk might contain 800 MB of
220+ uncompressed XML data (especially with embedded images, shapes, or animations).
221+ The 500 MB default may be too low. Set it to ``800MB ``:
222+
223+ .. code-block :: bash
224+
225+ -e FILECONVERTER_INPUT_LIMIT_UNCOMPRESSED=800MB
226+
227+ .. list-table ::
228+ :header-rows: 1
229+ :widths: 25 35 40
230+
231+ * - Stage
232+ - Variable
233+ - Value for 200 MB PPTX
234+ * - Nginx upload
235+ - ``NGINX_CLIENT_MAX_BODY_SIZE ``
236+ - ``250m ``
237+ * - Temp file buffer
238+ - ``MAX_FILE_SIZE ``
239+ - ``268435456 `` (bytes)
240+ * - Converter download
241+ - ``FILECONVERTER_MAX_DOWNLOAD_BYTES ``
242+ - ``524288000 `` (default OK)
243+ * - Uncompressed XML size
244+ - ``FILECONVERTER_INPUT_LIMIT_UNCOMPRESSED ``
245+ - ``800MB `` (if needed)
246+
247+ Office files are ZIP archives containing XML. The uncompressed limit protects
248+ against files that blow up the converter's memory when extracted. Adjust all four
249+ if your users work with large documents.
122250
123251Updating
124252--------
0 commit comments