Completed
Push — master ( 87b94c...058786 )
by
unknown
41:28 queued 16:32
created
config/config.sample.php 1 patch
Indentation   +2780 added lines, -2780 removed lines patch added patch discarded remove patch
@@ -29,2784 +29,2784 @@
 block discarded – undo
29 29
 $CONFIG = [
30 30
 
31 31
 
32
-	/**
33
-	 * Default Parameters
34
-	 *
35
-	 * These parameters are configured by the Nextcloud installer, and are required
36
-	 * for your Nextcloud server to operate.
37
-	 */
38
-
39
-
40
-	/**
41
-	 * This is a unique identifier for your Nextcloud installation, created
42
-	 * automatically by the installer. This example is for documentation only,
43
-	 * and you should never use it because it will not work. A valid ``instanceid``
44
-	 * is created when you install Nextcloud.
45
-	 */
46
-	'instanceid' => '',
47
-
48
-	/**
49
-	 * The salt used to hash all passwords, auto-generated by the Nextcloud
50
-	 * installer. (There are also per-user salts.) If you lose this salt, you lose
51
-	 * all your passwords. This example is for documentation only, and you should
52
-	 * never use it.
53
-	 *
54
-	 * @deprecated This salt is deprecated and only used for legacy-compatibility,
55
-	 * developers should *NOT* use this value for anything nowadays.
56
-	 */
57
-	'passwordsalt' => '',
58
-
59
-	/**
60
-	 * Secret used by Nextcloud for various purposes, e.g., to encrypt data. If you
61
-	 * lose this string, there will be data corruption.
62
-	 */
63
-	'secret' => '',
64
-
65
-	/**
66
-	 * Your list of trusted domains that users can log into. Specifying trusted
67
-	 * domains prevents host header poisoning. Do not remove this, as it performs
68
-	 * necessary security checks.
69
-	 *
70
-	 * You can specify:
71
-	 *
72
-	 * - The exact hostname of your host or virtual host, e.g. ``demo.example.org``.
73
-	 * - The exact hostname with permitted port, e.g. ``demo.example.org:443``. This disallows all other ports on this host
74
-	 * - Use ``*`` as a wildcard, e.g., ``ubos-raspberry-pi*.local`` will allow ``ubos-raspberry-pi.local`` and ``ubos-raspberry-pi-2.local``
75
-	 * - The IP address with or without permitted port, e.g. ``[2001:db8::1]:8080`` Using TLS certificates where ``commonName=<IP address>`` is deprecated
76
-	 */
77
-	'trusted_domains' => [
78
-		'demo.example.org',
79
-		'otherdomain.example.org',
80
-		'10.111.112.113',
81
-		'[2001:db8::1]'
82
-	],
83
-
84
-	/**
85
-	 * The validity domain for cookies, for example ``''`` (cookies will be sent only
86
-	 * the domain that defined it, e.g. ``'demo.example.org'``), ``'demo.example.org'``
87
-	 * (cookies will be valid for the domain and all subdomains), ...
88
-	 *
89
-	 * Defaults to ``''`` (safe option)
90
-	 */
91
-	'cookie_domain' => '',
92
-
93
-	/**
94
-	 * Where user files are stored. The SQLite database is also stored here, when
95
-	 * you use SQLite.
96
-	 *
97
-	 * Default to ``data/`` in the Nextcloud directory.
98
-	 */
99
-	'datadirectory' => '/var/www/nextcloud/data',
100
-
101
-	/**
102
-	 * The current version number of your Nextcloud installation. This is set up
103
-	 * during installation and update, so you shouldn't need to change it.
104
-	 */
105
-	'version' => '',
106
-
107
-	/**
108
-	 * Identifies the database used with this installation. See also config option
109
-	 * ``supportedDatabases``
110
-	 *
111
-	 * Available:
112
-	 *  - sqlite3 (SQLite3)
113
-	 *  - mysql (MySQL/MariaDB)
114
-	 *  - pgsql (PostgreSQL)
115
-	 *
116
-	 * Defaults to ``sqlite3``
117
-	 */
118
-	'dbtype' => 'sqlite3',
119
-
120
-	/**
121
-	 * Your host server name, for example ``localhost``, ``hostname``,
122
-	 * ``hostname.example.com``, or the IP address.
123
-	 * To specify a port, use ``hostname:####``; for IPv6 addresses, use the URI notation ``[ip]:port``.
124
-	 * To specify a Unix socket, use ``localhost:/path/to/directory/containing/socket`` or
125
-	 * ``:/path/to/directory/containing/socket``, e.g., ``localhost:/run/postgresql/``.
126
-	 */
127
-	'dbhost' => '',
128
-
129
-	/**
130
-	 * The name of the Nextcloud database, which is set during installation. You
131
-	 * should not need to change this.
132
-	 */
133
-	'dbname' => 'nextcloud',
134
-
135
-	/**
136
-	 * The user that Nextcloud uses to write to the database. This must be unique
137
-	 * across Nextcloud instances using the same SQL database. This is set up during
138
-	 * installation, so you shouldn't need to change it.
139
-	 */
140
-	'dbuser' => '',
141
-
142
-	/**
143
-	 * The password for the database user. This is set up during installation, so
144
-	 * you shouldn't need to change it.
145
-	 */
146
-	'dbpassword' => '',
147
-
148
-	/**
149
-	 * Prefix for the Nextcloud tables in the database.
150
-	 *
151
-	 * Default to ``oc_``
152
-	 */
153
-	'dbtableprefix' => 'oc_',
154
-
155
-	/**
156
-	 * Enable persistent connections to the database.
157
-	 * This setting uses the ``persistent`` option from Doctrine DBAL, which in turn
158
-	 * uses the PDO::ATTR_PERSISTENT option from the PDO driver.
159
-	 */
160
-	'dbpersistent' => '',
161
-
162
-	/**
163
-	 * Specify read-only replicas to be used by Nextcloud when querying the database
164
-	 */
165
-	'dbreplica' => [
166
-		['user' => 'nextcloud', 'password' => 'password1', 'host' => 'replica1', 'dbname' => ''],
167
-		['user' => 'nextcloud', 'password' => 'password2', 'host' => 'replica2', 'dbname' => ''],
168
-	],
169
-
170
-	/**
171
-	 * Add request ID to the database query in a comment.
172
-	 *
173
-	 * This can be enabled to assist in mapping database logs to Nextcloud logs.
174
-	 */
175
-	'db.log_request_id' => false,
176
-
177
-	/**
178
-	 * Indicates whether the Nextcloud instance was installed successfully; ``true``
179
-	 * indicates a successful installation, and ``false`` indicates an unsuccessful
180
-	 * installation.
181
-	 *
182
-	 * Defaults to ``false``
183
-	 */
184
-	'installed' => false,
185
-
186
-
187
-	/**
188
-	 * User Experience
189
-	 *
190
-	 * These optional parameters control some aspects of the user interface. Default
191
-	 * values, where present, are shown.
192
-	 */
193
-
194
-	/**
195
-	 * This sets the default language on your Nextcloud server, using ISO_639-1
196
-	 * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
197
-	 * French. The default_language parameter is only used when the browser does
198
-	 * not send any language, and the user hasn’t configured their own language
199
-	 * preferences.
200
-	 *
201
-	 * Nextcloud has two distinguished language codes for German, ``de`` and ``de_DE``.
202
-	 * ``de`` is used for informal German and ``de_DE`` for formal German. By setting
203
-	 * this value to ``de_DE``, you can enforce the formal version of German unless
204
-	 * the user has chosen something different explicitly.
205
-	 *
206
-	 * Defaults to ``en``
207
-	 */
208
-	'default_language' => 'en',
209
-
210
-	/**
211
-	 * With this setting, a language can be forced for all users. If a language is
212
-	 * forced, the users are also unable to change their language in the personal
213
-	 * settings. If users shall be unable to change their language, but users have
214
-	 * different languages, this value can be set to ``true`` instead of a language
215
-	 * code.
216
-	 *
217
-	 * Defaults to ``false``
218
-	 */
219
-	'force_language' => 'en',
220
-
221
-	/**
222
-	 * This sets the default locale on your Nextcloud server, using ISO_639
223
-	 * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
224
-	 * French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined
225
-	 * in RFC 5646. It overrides automatic locale detection on public pages like
226
-	 * login or shared items. User's locale preferences configured under "personal
227
-	 * -> locale" override this setting after they have logged in.
228
-	 *
229
-	 * Defaults to ``en``
230
-	 */
231
-	'default_locale' => 'en_US',
232
-
233
-	/**
234
-	 * With this setting, it is possible to reduce the languages available in the
235
-	 * language chooser. The languages have to be set as array values using ISO_639-1
236
-	 * language codes such as ``en`` for English, ``de`` for German, etc.
237
-	 *
238
-	 * For example: Set to ``['de', 'fr']`` to only allow German and French languages.
239
-	 */
240
-	'reduce_to_languages' => [],
241
-
242
-	/**
243
-	 * This sets the default region for phone numbers on your Nextcloud server,
244
-	 * using ISO 3166-1 country codes such as ``DE`` for Germany, ``FR`` for France, …
245
-	 * It is required to allow inserting phone numbers in the user profiles starting
246
-	 * without the country code (e.g., +49 for Germany).
247
-	 *
248
-	 * No default value!
249
-	 */
250
-	'default_phone_region' => 'GB',
251
-
252
-	/**
253
-	 * With this setting, a locale can be forced for all users. If a locale is
254
-	 * forced, the users are also unable to change their locale in the personal
255
-	 * settings. If users shall be unable to change their locale, but users have
256
-	 * different languages, this value can be set to ``true`` instead of a locale
257
-	 * code.
258
-	 *
259
-	 * Defaults to ``false``
260
-	 */
261
-	'force_locale' => 'en_US',
262
-
263
-	/**
264
-	 * This sets the default timezone on your Nextcloud server, using IANA
265
-	 * identifiers like ``Europe/Berlin`` or ``Pacific/Auckland``. The default
266
-	 * timezone parameter is only used when the timezone of the user cannot be
267
-	 * determined.
268
-	 *
269
-	 * Defaults to ``UTC``
270
-	 */
271
-	'default_timezone' => 'Europe/Berlin',
272
-
273
-	/**
274
-	 * ``true`` enables the Help menu item in the user menu (top right of the
275
-	 * Nextcloud Web interface).
276
-	 * ``false`` removes the Help item.
277
-	 */
278
-	'knowledgebaseenabled' => true,
279
-
280
-	/**
281
-	 * ``true`` embeds the documentation in an iframe inside Nextcloud.
282
-	 * ``false`` only shows buttons to the online documentation.
283
-	 */
284
-	'knowledgebase.embedded' => false,
285
-
286
-	/**
287
-	 * ``true`` allows users to change their display names (on their Personal
288
-	 * pages), and ``false`` prevents them from changing their display names.
289
-	 */
290
-	'allow_user_to_change_display_name' => true,
291
-
292
-	/**
293
-	 * The directory where the skeleton files are located. These files will be
294
-	 * copied to the data directory of new users. Set empty string to not copy any
295
-	 * skeleton files. If unset and templatedirectory is an empty string, shipped
296
-	 * templates will be used to create a template directory for the user.
297
-	 * ``{lang}`` can be used as a placeholder for the language of the user.
298
-	 * If the directory does not exist, it falls back to non-dialect (from ``de_DE``
299
-	 * to ``de``). If that does not exist either, it falls back to ``default``
300
-	 *
301
-	 * Defaults to ``core/skeleton`` in the Nextcloud directory.
302
-	 */
303
-	'skeletondirectory' => '/path/to/nextcloud/core/skeleton',
304
-
305
-	/**
306
-	 * The directory where the template files are located. These files will be
307
-	 * copied to the template directory of new users. Set empty string to not copy any
308
-	 * template files.
309
-	 * ``{lang}`` can be used as a placeholder for the language of the user.
310
-	 * If the directory does not exist, it falls back to non-dialect (from ``de_DE``
311
-	 * to ``de``). If that does not exist either, it falls back to ``default``
312
-	 *
313
-	 * To disable creating a template directory, set both skeletondirectory and
314
-	 * templatedirectory to empty strings.
315
-	 */
316
-	'templatedirectory' => '/path/to/nextcloud/templates',
317
-
318
-	/**
319
-	 * User session
320
-	 */
321
-
322
-	/**
323
-	 * Lifetime of the remember login cookie. This should be larger than the
324
-	 * session_lifetime. If it is set to 0, remember me is disabled.
325
-	 *
326
-	 * Defaults to ``60*60*24*15`` seconds (15 days)
327
-	 */
328
-	'remember_login_cookie_lifetime' => 60 * 60 * 24 * 15,
329
-
330
-	/**
331
-	 * The lifetime of a session after inactivity.
332
-	 *
333
-	 * The maximum possible time is limited by the ``session.gc_maxlifetime`` php.ini setting
334
-	 * which would overwrite this option if it is less than the value in the ``config.php``
335
-	 *
336
-	 * Defaults to ``60*60*24`` seconds (24 hours)
337
-	 */
338
-	'session_lifetime' => 60 * 60 * 24,
339
-
340
-	/**
341
-	 * The timeout in seconds for requests to servers made by the DAV component (e.g., needed for federated shares).
342
-	 */
343
-	'davstorage.request_timeout' => 30,
344
-
345
-	/**
346
-	 * The timeout in seconds for synchronizing address books, e.g., federated system address books (as run by ``occ federation:sync-addressbooks``).
347
-	 *
348
-	 * Defaults to ``30`` seconds
349
-	 */
350
-	'carddav_sync_request_timeout' => 30,
351
-
352
-	/**
353
-	 * The limit applied to the synchronization report request, e.g. federated system address books (as run by ``occ federation:sync-addressbooks``).
354
-	 */
355
-	'carddav_sync_request_truncation' => 2500,
356
-
357
-	/**
358
-	 * ``true`` enables a relaxed session timeout, where the session timeout would no longer be
359
-	 * handled by Nextcloud but by either the PHP garbage collection or the expiration of
360
-	 * potential other session backends like Redis.
361
-	 *
362
-	 * This may lead to sessions being available for longer than what ``session_lifetime`` uses but
363
-	 * comes with performance benefits as sessions are no longer a locking operation for concurrent
364
-	 * requests.
365
-	 */
366
-	'session_relaxed_expiry' => false,
367
-
368
-	/**
369
-	 * Enable or disable session keep-alive when a user is logged in to the Web UI.
370
-	 * Enabling this sends a "heartbeat" to the server to keep it from timing out.
371
-	 *
372
-	 * Defaults to ``true``
373
-	 */
374
-	'session_keepalive' => true,
375
-
376
-	/**
377
-	 * Enable or disable the automatic logout after session_lifetime, even if session
378
-	 * keepalive is enabled. This will make sure that an inactive browser will log itself out
379
-	 * even if requests to the server might extend the session lifetime.
380
-	 *
381
-	 * NOTE: The logout is handled on the client side. This is not a way to
382
-	 * limit the duration of potentially compromised sessions.
383
-	 *
384
-	 * Defaults to ``false``
385
-	 */
386
-	'auto_logout' => false,
387
-
388
-	/**
389
-	 * Enforce token authentication for clients, which blocks requests using the user
390
-	 * password for enhanced security. Users need to generate tokens in personal settings
391
-	 * which can be used as passwords on their clients.
392
-	 *
393
-	 * Defaults to ``false``
394
-	 */
395
-	'token_auth_enforced' => false,
396
-
397
-	/**
398
-	 * The interval at which token activity should be updated.
399
-	 * Increasing this value means that the last activity on the security page gets
400
-	 * more outdated.
401
-	 *
402
-	 * Tokens are still checked every 5 minutes for validity
403
-	 * max value: 300
404
-	 *
405
-	 * Defaults to ``60``
406
-	 */
407
-	'token_auth_activity_update' => 60,
408
-
409
-	/**
410
-	 * Whether the brute force protection shipped with Nextcloud should be enabled or not.
411
-	 *
412
-	 * WARNING: Disabling this is discouraged for security reasons.
413
-	 *
414
-	 * Defaults to ``true``
415
-	 */
416
-	'auth.bruteforce.protection.enabled' => true,
417
-
418
-	/**
419
-	 * Whether the brute force protection should write into the database even when a memory cache is available
420
-	 *
421
-	 * Using the database is most likely worse for performance, but makes investigating
422
-	 * issues a lot easier as it's possible to look directly at the table to see all
423
-	 * logged remote addresses and actions.
424
-	 *
425
-	 * Defaults to ``false``
426
-	 */
427
-	'auth.bruteforce.protection.force.database' => false,
428
-
429
-	/**
430
-	 * Whether the brute force protection shipped with Nextcloud should be set to testing mode.
431
-	 *
432
-	 * In testing mode, brute force attempts are still recorded, but the requests do
433
-	 * not sleep/wait for the specified time. They will still abort with
434
-	 * "429 Too Many Requests" when the maximum delay is reached.
435
-	 * Enabling this is discouraged for security reasons
436
-	 * and should only be done for debugging and on CI when running tests.
437
-	 *
438
-	 * Defaults to ``false``
439
-	 */
440
-	'auth.bruteforce.protection.testing' => false,
441
-
442
-	/**
443
-	 * Brute force protection: maximum number of attempts before blocking
444
-	 *
445
-	 * When more than max-attempts login requests are sent to Nextcloud, requests
446
-	 * will abort with "429 Too Many Requests".
447
-	 * For security reasons, change it only if you know what you are doing.
448
-	 *
449
-	 * Defaults to ``10``
450
-	 */
451
-	'auth.bruteforce.max-attempts' => 10,
452
-
453
-	/**
454
-	 * Whether the rate limit protection shipped with Nextcloud should be enabled or not.
455
-	 *
456
-	 * WARNING: Disabling this is discouraged for security reasons.
457
-	 *
458
-	 * Defaults to ``true``
459
-	 */
460
-	'ratelimit.protection.enabled' => true,
461
-
462
-	/**
463
-	 * Size of subnet used to normalize IPv6
464
-	 *
465
-	 * For Brute Force Protection and Rate Limiting, IPv6 addresses are truncated using subnet size.
466
-	 * It defaults to /56, but you can set it between /32 and /64
467
-	 *
468
-	 * Defaults to ``56``
469
-	 */
470
-	'security.ipv6_normalized_subnet_size' => 56,
471
-
472
-	/**
473
-	 * By default, WebAuthn is available, but it can be explicitly disabled by admins
474
-	 */
475
-	'auth.webauthn.enabled' => true,
476
-
477
-	/**
478
-	 * Whether encrypted passwords should be stored in the database
479
-	 *
480
-	 * The passwords are only decrypted using the login token stored uniquely in the
481
-	 * clients and allow connecting to external storages, autoconfiguring mail accounts in
482
-	 * the mail app, and periodically checking if the password is still valid.
483
-	 *
484
-	 * This might be desirable to disable this functionality when using one-time
485
-	 * passwords or when having a password policy enforcing long passwords (> 300
486
-	 * characters).
487
-	 *
488
-	 * By default, the passwords are stored encrypted in the database.
489
-	 *
490
-	 * WARNING: If disabled, password changes on the user backend (e.g., on LDAP) no
491
-	 * longer log connected clients out automatically. Users can still disconnect
492
-	 * the clients by deleting the app token from the security settings.
493
-	 */
494
-	'auth.storeCryptedPassword' => true,
495
-
496
-	/**
497
-	 * By default, the login form is always available. There are cases (SSO) where an
498
-	 * admin wants to avoid users entering their credentials to the system if the SSO
499
-	 * app is unavailable.
500
-	 *
501
-	 * This will show an error. But the direct login still works with adding ``?direct=1``
502
-	 */
503
-	'hide_login_form' => false,
504
-
505
-	/**
506
-	 * If your user backend does not allow password resets (e.g., when it's a
507
-	 * read-only user backend like LDAP), you can specify a custom link, where the
508
-	 * user is redirected to, when clicking the "Reset password" link after a failed
509
-	 * login attempt.
510
-	 * In case you do not want to provide any link, replace the URL with ``'disabled'``
511
-	 */
512
-	'lost_password_link' => 'https://example.org/link/to/password/reset',
513
-
514
-	/**
515
-	 * URL to use as target for the logo link in the header (top-left logo)
516
-	 *
517
-	 * Defaults to the base URL of your Nextcloud instance
518
-	 */
519
-	'logo_url' => 'https://example.org',
520
-
521
-	/**
522
-	 * Mail Parameters
523
-	 *
524
-	 * These configure the email settings for Nextcloud notifications and password
525
-	 * resets.
526
-	 */
527
-
528
-	/**
529
-	 * The return address that you want to appear on emails sent by the Nextcloud
530
-	 * server, for example ``[email protected]``, substituting your own domain,
531
-	 * of course.
532
-	 */
533
-	'mail_domain' => 'example.com',
534
-
535
-	/**
536
-	 * FROM address that overrides the built-in ``sharing-noreply`` and
537
-	 * ``lostpassword-noreply`` FROM addresses.
538
-	 *
539
-	 * Defaults to different FROM addresses depending on the feature.
540
-	 */
541
-	'mail_from_address' => 'nextcloud',
542
-
543
-	/**
544
-	 * Enable SMTP class debugging.
545
-	 * NOTE: ``loglevel`` will likely need to be adjusted too. See docs:
546
-	 *   https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html#enabling-debug-mode
547
-	 *
548
-	 * Defaults to ``false``
549
-	 */
550
-	'mail_smtpdebug' => false,
551
-
552
-	/**
553
-	 * Which mode to use for sending mail: ``sendmail``, ``smtp``, ``qmail``, or ``null``.
554
-	 *
555
-	 * If you are using local or remote SMTP, set this to ``smtp``.
556
-	 *
557
-	 * For the ``sendmail`` option, you need an installed and working email system on
558
-	 * the server, with ``/usr/sbin/sendmail`` installed on your Unix system.
559
-	 *
560
-	 * For ``qmail``, the binary is /var/qmail/bin/sendmail, and it must be installed
561
-	 * on your Unix system.
562
-	 *
563
-	 * Use the string ``null`` to send no mails (disable mail delivery). This can be
564
-	 * useful if mails should be sent via APIs and rendering messages is not necessary.
565
-	 *
566
-	 * Defaults to ``smtp``
567
-	 */
568
-	'mail_smtpmode' => 'smtp',
569
-
570
-	/**
571
-	 * This depends on ``mail_smtpmode``. Specify the IP address of your mail
572
-	 * server host. This may contain multiple hosts separated by a semicolon. If
573
-	 * you need to specify the port number, append it to the IP address separated by
574
-	 * a colon, like this: ``127.0.0.1:24``.
575
-	 *
576
-	 * Defaults to ``127.0.0.1``
577
-	 */
578
-	'mail_smtphost' => '127.0.0.1',
579
-
580
-	/**
581
-	 * This depends on ``mail_smtpmode``. Specify the port for sending mail.
582
-	 *
583
-	 * Defaults to ``25``
584
-	 */
585
-	'mail_smtpport' => 25,
586
-
587
-	/**
588
-	 * This depends on ``mail_smtpmode``. This sets the SMTP server timeout, in
589
-	 * seconds. You may need to increase this if you are running an anti-malware or
590
-	 * spam scanner.
591
-	 *
592
-	 * Defaults to ``10`` seconds
593
-	 */
594
-	'mail_smtptimeout' => 10,
595
-
596
-	/**
597
-	 * This depends on ``mail_smtpmode``. Specify ``ssl`` when you are using SSL/TLS. Any other value will be ignored.
598
-	 *
599
-	 * If the server advertises STARTTLS capabilities, they might be used, but they cannot be enforced by
600
-	 * this config option.
601
-	 *
602
-	 * Defaults to ``''`` (empty string)
603
-	 */
604
-	'mail_smtpsecure' => '',
605
-
606
-	/**
607
-	 * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
608
-	 * server requires authentication.
609
-	 *
610
-	 * Defaults to ``false``
611
-	 */
612
-	'mail_smtpauth' => false,
613
-
614
-	/**
615
-	 * This depends on ``mail_smtpauth``. Specify the username for authenticating to
616
-	 * the SMTP server.
617
-	 *
618
-	 * Defaults to ``''`` (empty string)
619
-	 */
620
-	'mail_smtpname' => '',
621
-
622
-	/**
623
-	 * This depends on ``mail_smtpauth``. Specify the password for authenticating to
624
-	 * the SMTP server.
625
-	 *
626
-	 * Default to ``''`` (empty string)
627
-	 */
628
-	'mail_smtppassword' => '',
629
-
630
-	/**
631
-	 * Replaces the default mail template layout. This can be utilized if the
632
-	 * options to modify the mail texts with the theming app are not enough.
633
-	 * The class must extend ``\OC\Mail\EMailTemplate``
634
-	 */
635
-	'mail_template_class' => '\OC\Mail\EMailTemplate',
636
-
637
-	/**
638
-	 * Email will be sent by default with an HTML and a plain text body. This option
639
-	 * allows sending only plain text emails.
640
-	 */
641
-	'mail_send_plaintext_only' => false,
642
-
643
-	/**
644
-	 * This depends on ``mail_smtpmode``. Array of additional streams options that
645
-	 * will be passed to underlying Swift mailer implementation.
646
-	 * Defaults to an empty array.
647
-	 */
648
-	'mail_smtpstreamoptions' => [],
649
-
650
-	/**
651
-	 * Which mode is used for sendmail/qmail: ``smtp`` or ``pipe``.
652
-	 *
653
-	 * For ``smtp``, the sendmail binary is started with the parameter ``-bs``:
654
-	 *   - Use the SMTP protocol on standard input and output.
655
-	 *
656
-	 * For ``pipe``, the binary is started with the parameters ``-t``:
657
-	 *   - Read message from STDIN and extract recipients.
658
-	 *
659
-	 * Defaults to ``smtp``
660
-	 */
661
-	'mail_sendmailmode' => 'smtp',
662
-
663
-	/**
664
-	 * Proxy Configurations
665
-	 */
666
-
667
-	/**
668
-	 * The automatic hostname detection of Nextcloud can fail in certain reverse
669
-	 * proxy and CLI/cron situations. This option allows you to manually override
670
-	 * the automatic detection; for example, ``www.example.com``, or specify the port
671
-	 * ``www.example.com:8080``.
672
-	 */
673
-	'overwritehost' => '',
674
-
675
-	/**
676
-	 * When generating URLs, Nextcloud attempts to detect whether the server is
677
-	 * accessed via ``https`` or ``http``. However, if Nextcloud is behind a proxy
678
-	 * and the proxy handles the ``https`` calls, Nextcloud would not know that
679
-	 * ``ssl`` is in use, which would result in incorrect URLs being generated.
680
-	 * Valid values are ``http`` and ``https``.
681
-	 */
682
-	'overwriteprotocol' => '',
683
-
684
-	/**
685
-	 * Nextcloud attempts to detect the webroot for generating URLs automatically.
686
-	 * For example, if ``www.example.com/nextcloud`` is the URL pointing to the
687
-	 * Nextcloud instance, the webroot is ``/nextcloud``. When proxies are in use,
688
-	 * it may be difficult for Nextcloud to detect this parameter, resulting in
689
-	 * invalid URLs.
690
-	 */
691
-	'overwritewebroot' => '',
692
-
693
-	/**
694
-	 * This option allows you to define a manual override condition as a regular
695
-	 * expression for the remote IP address. For example, defining a range of IP
696
-	 * addresses starting with ``10.0.0.`` and ending with 1 to 3:
697
-	 * ``^10\.0\.0\.[1-3]$``
698
-	 *
699
-	 * Defaults to ``''`` (empty string)
700
-	 */
701
-	'overwritecondaddr' => '',
702
-
703
-	/**
704
-	 * Use this configuration parameter to specify the base URL for any URLs which
705
-	 * are generated within Nextcloud using any kind of command line tools (cron or
706
-	 * occ). The value should contain the full base URL:
707
-	 * ``https://www.example.com/nextcloud``
708
-	 * Please make sure to set the value to the URL that your users mainly use to access this Nextcloud.
709
-	 * Otherwise, there might be problems with the URL generation via cron.
710
-	 *
711
-	 * Defaults to ``''`` (empty string)
712
-	 */
713
-	'overwrite.cli.url' => '',
714
-
715
-	/**
716
-	 * To have clean URLs without ``/index.php``, this parameter needs to be configured.
717
-	 *
718
-	 * This parameter will be written as "RewriteBase" on update and installation of
719
-	 * Nextcloud to your ``.htaccess`` file. While this value is often simply the URL
720
-	 * path of the Nextcloud installation, it cannot be set automatically properly in
721
-	 * every scenario and needs thus some manual configuration.
722
-	 *
723
-	 * In a standard Apache setup, this usually equals the folder that Nextcloud is
724
-	 * accessible at. So if Nextcloud is accessible via ``https://mycloud.org/nextcloud``,
725
-	 * the correct value would most likely be ``/nextcloud``. If Nextcloud is running
726
-	 * under ``https://mycloud.org/``, then it would be ``/``.
727
-	 *
728
-	 * Note that the above rule is not valid in every case, as there are some rare setup
729
-	 * cases where this may not apply. However, to avoid any update problems, this
730
-	 * configuration value is explicitly opt-in.
731
-	 *
732
-	 * After setting this value, run ``occ maintenance:update:htaccess``. Now, when the
733
-	 * following conditions are met, Nextcloud URLs won't contain ``index.php``:
734
-	 *
735
-	 * - ``mod_rewrite`` is installed
736
-	 * - ``mod_env`` is installed
737
-	 *
738
-	 * Defaults to ``''`` (empty string)
739
-	 */
740
-	'htaccess.RewriteBase' => '/',
741
-
742
-	/**
743
-	 * For server setups that don't have ``mod_env`` enabled or restricted (e.g., suEXEC),
744
-	 * this parameter has to be set to true and will assume mod_rewrite.
745
-	 *
746
-	 * Please check if ``mod_rewrite`` is active and functional before setting this
747
-	 * parameter, and you updated your .htaccess with ``occ maintenance:update:htaccess``.
748
-	 * Otherwise, your Nextcloud installation might not be reachable any more.
749
-	 * For example, try accessing resources by leaving out ``index.php`` in the URL.
750
-	 */
751
-	'htaccess.IgnoreFrontController' => false,
752
-
753
-	/**
754
-	 * The URL of your proxy server, for example, ``proxy.example.com:8081``.
755
-	 *
756
-	 * NOTE: Guzzle (the HTTP library used by Nextcloud) reads the environment
757
-	 * variables ``HTTP_PROXY`` (only for CLI requests), ``HTTPS_PROXY``, and ``NO_PROXY`` by default.
758
-	 *
759
-	 * If you configure a proxy with Nextcloud, any default configuration by Guzzle
760
-	 * is overwritten. Make sure to set ``proxyexclude`` accordingly if necessary.
761
-	 *
762
-	 * Defaults to ``''`` (empty string)
763
-	 */
764
-	'proxy' => '',
765
-
766
-	/**
767
-	 * The optional authentication for the proxy to use to connect to the internet.
768
-	 * The format is: ``username:password``.
769
-	 *
770
-	 * Defaults to ``''`` (empty string)
771
-	 */
772
-	'proxyuserpwd' => '',
773
-
774
-	/**
775
-	 * List of hostnames that should not be proxied to.
776
-	 * For example: ``['.mit.edu', 'foo.com']``.
777
-	 *
778
-	 * Hint: Use something like ``explode(',', getenv('NO_PROXY'))`` to sync this
779
-	 * value with the global ``NO_PROXY`` option.
780
-	 *
781
-	 * Defaults to empty array.
782
-	 */
783
-	'proxyexclude' => [],
784
-
785
-	/**
786
-	 * Allow remote servers with local addresses, e.g., in federated shares, webcal services, and more
787
-	 *
788
-	 * Defaults to ``false``
789
-	 */
790
-	'allow_local_remote_servers' => true,
791
-
792
-	/**
793
-	 * Deleted Items (trash bin)
794
-	 *
795
-	 * These parameters control the Deleted files app.
796
-	 */
797
-
798
-	/**
799
-	 * If the trash bin app is enabled (default), this setting defines the policy
800
-	 * for when files and folders in the trash bin will be permanently deleted.
801
-	 *
802
-	 * If the user quota limit is exceeded due to deleted files in the trash bin,
803
-	 * retention settings will be ignored and files will be cleaned up until
804
-	 * the quota requirements are met.
805
-	 *
806
-	 * The app allows for two settings, a minimum time for trash bin retention,
807
-	 * and a maximum time for trash bin retention.
808
-	 *
809
-	 * Minimum time is the number of days a file will be kept, after which it
810
-	 * *may be* deleted. A file may be deleted after the minimum number of days
811
-	 * has expired if space is needed. The file will not be deleted if space is
812
-	 * not needed.
813
-	 *
814
-	 * Whether "space is needed" depends on whether a user quota is defined or not:
815
-	 *
816
-	 *  * If no user quota is defined, the available space on the Nextcloud data
817
-	 *    partition sets the limit for the trashbin
818
-	 *    (issues: see https://github.com/nextcloud/server/issues/28451).
819
-	 *  * If a user quota is defined, 50% of the user's remaining quota space sets
820
-	 *    the limit for the trashbin.
821
-	 *
822
-	 * Maximum time is the number of days at which it is *guaranteed
823
-	 * to be* deleted. There is no further dependency on the available space.
824
-	 *
825
-	 * Both minimum and maximum times can be set together to explicitly define
826
-	 * file and folder deletion. For migration purposes, this setting is installed
827
-	 * initially set to "auto", which is equivalent to the default setting in
828
-	 * Nextcloud.
829
-	 *
830
-	 * Available values (D1 and D2 are configurable numbers):
831
-	 *
832
-	 * * ``auto``
833
-	 *     | Default setting. Keeps files and folders in the trash bin for at least **30** days.
834
-	 *     | Then, **if space is needed**, deletes trashed files anytime after that.
835
-	 * * ``D1, auto``
836
-	 *     | Keeps files and folders in the trash bin for at least **D1** days.
837
-	 *     | Then, **if space is needed**, deletes trashed files anytime after that.
838
-	 * * ``auto, D2``
839
-	 *     | **If space is needed**, deletes trashed files anytime.
840
-	 *     | After **D2** days, delete all trashed files automatically
841
-	 * * ``D1, D2``
842
-	 *     | Keeps files and folders in the trash bin for at least **D1** days.
843
-	 *     | Then, after **D2** days, delete all trashed files automatically.
844
-	 * * ``disabled``
845
-	 *     | Trash bin auto clean is disabled, files and folders will be kept forever.
846
-	 *
847
-	 * Defaults to ``auto``
848
-	 */
849
-	'trashbin_retention_obligation' => 'auto',
850
-
851
-
852
-	/**
853
-	 * File versions
854
-	 *
855
-	 * These parameters control the Versions app.
856
-	 */
857
-
858
-	/**
859
-	 * If the versions app is enabled (default), this setting defines the policy
860
-	 * for when versions will be permanently deleted.
861
-	 * The app allows for two settings, a minimum time for version retention,
862
-	 * and a maximum time for version retention.
863
-	 * Minimum time is the number of days a version will be kept, after which it
864
-	 * may be deleted. Maximum time is the number of days at which it is guaranteed
865
-	 * to be deleted.
866
-	 * Both minimum and maximum times can be set together to explicitly define
867
-	 * version deletion. For migration purposes, this setting is installed
868
-	 * initially set to "auto", which is equivalent to the default setting in
869
-	 * Nextcloud.
870
-	 *
871
-	 * Available values:
872
-	 *
873
-	 * * ``auto``
874
-	 *     default setting. Automatically expire versions according to expire
875
-	 *     rules. Please refer to :doc:`../configuration_files/file_versioning` for
876
-	 *     more information.
877
-	 * * ``D, auto``
878
-	 *     keep versions at least for D days, apply expiration rules to all versions
879
-	 *     that are older than D days
880
-	 * * ``auto, D``
881
-	 *     delete all versions that are older than D days automatically, delete
882
-	 *     other versions according to expire rules
883
-	 * * ``D1, D2``
884
-	 *     keep versions for at least D1 days and delete when exceeds D2 days
885
-	 * * ``disabled``
886
-	 *     versions auto clean disabled, versions will be kept forever
887
-	 *
888
-	 * Defaults to ``auto``
889
-	 */
890
-	'versions_retention_obligation' => 'auto',
891
-
892
-	/**
893
-	 * Nextcloud Verifications
894
-	 *
895
-	 * Nextcloud performs several verification checks. There are two options,
896
-	 * ``true`` and ``false``.
897
-	 */
898
-
899
-	/**
900
-	 * Checks an app before install whether it uses private APIs instead of the
901
-	 * proper public APIs. If this is set to true, it will only allow installing or
902
-	 * enabling apps that pass this check.
903
-	 *
904
-	 * Defaults to ``false``
905
-	 */
906
-	'appcodechecker' => true,
907
-
908
-	/**
909
-	 * Check if Nextcloud is up-to-date and shows a notification if a new version is
910
-	 * available. It sends current version, PHP version, installation and last update
911
-	 * time, and release channel to the updater server which responds with the latest
912
-	 * available version based on those metrics.
913
-	 *
914
-	 * Defaults to ``true``
915
-	 */
916
-	'updatechecker' => true,
917
-
918
-	/**
919
-	 * URL that Nextcloud should use to look for updates
920
-	 *
921
-	 * Defaults to ``https://updates.nextcloud.com/updater_server/``
922
-	 */
923
-	'updater.server.url' => 'https://updates.nextcloud.com/updater_server/',
924
-
925
-	/**
926
-	 * The channel that Nextcloud should use to look for updates
927
-	 *
928
-	 * Supported values:
929
-	 *
930
-	 * - ``daily``
931
-	 * - ``beta``
932
-	 * - ``stable``
933
-	 */
934
-	'updater.release.channel' => 'stable',
935
-
936
-	/**
937
-	 * Is Nextcloud connected to the Internet or running in a closed network?
938
-	 *
939
-	 * Defaults to ``true``
940
-	 */
941
-	'has_internet_connection' => true,
942
-
943
-	/**
944
-	 * Which domains to request to determine the availability of an Internet
945
-	 * connection. If none of these hosts are reachable, the administration panel
946
-	 * will show a warning. Set to an empty list to not do any such checks (warning
947
-	 * will still be shown).
948
-	 * If no protocol is provided, both http and https will be tested.
949
-	 * For example, ``http://www.nextcloud.com`` and ``https://www.nextcloud.com``
950
-	 * will be tested for ``www.nextcloud.com``
951
-	 * If a protocol is provided, only this one will be tested.
952
-	 *
953
-	 * Defaults to the following domains:
954
-	 *
955
-	 *  - https://www.nextcloud.com
956
-	 *  - https://www.startpage.com
957
-	 *  - https://www.eff.org
958
-	 *  - https://www.edri.org
959
-	 */
960
-	'connectivity_check_domains' => [
961
-		'https://www.nextcloud.com',
962
-		'https://www.startpage.com',
963
-		'https://www.eff.org',
964
-		'https://www.edri.org'
965
-	],
966
-
967
-	/**
968
-	 * Allows Nextcloud to verify a working .well-known URL redirects. This is done
969
-	 * by attempting to make a request from JS to
970
-	 * ``https://example.tld/.well-known/caldav/``
971
-	 *
972
-	 * Defaults to ``true``
973
-	 */
974
-	'check_for_working_wellknown_setup' => true,
975
-
976
-	/**
977
-	 * This is a crucial security check on Apache servers that should always be set
978
-	 * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
979
-	 * If it is not, then any options controlled by ``.htaccess``, such as large
980
-	 * file uploads, will not work. It also runs checks on the ``data/`` directory,
981
-	 * which verifies that it can't be accessed directly through the Web server.
982
-	 *
983
-	 * Defaults to ``true``
984
-	 */
985
-	'check_for_working_htaccess' => true,
986
-
987
-	/**
988
-	 * In rare setups (e.g., on OpenShift or Docker on Windows), the permissions check
989
-	 * might block the installation while the underlying system offers no means to
990
-	 * "correct" the permissions. In this case, set the value to false.
991
-	 *
992
-	 * In regular cases, if issues with permissions are encountered, they should be
993
-	 * adjusted accordingly. Changing the flag is discouraged.
994
-	 *
995
-	 * Defaults to ``true``
996
-	 */
997
-	'check_data_directory_permissions' => true,
998
-
999
-	/**
1000
-	 * In certain environments, it is desired to have a read-only configuration file.
1001
-	 * When this switch is set to ``true``, writing to the config file will be
1002
-	 * forbidden. Therefore, it will not be possible to configure all options via
1003
-	 * the Web interface. Furthermore, when updating Nextcloud, it is required to
1004
-	 * make the configuration file writable again and to set this switch to ``false``
1005
-	 * for the update process.
1006
-	 *
1007
-	 * Defaults to ``false``
1008
-	 */
1009
-	'config_is_read_only' => false,
1010
-
1011
-	/**
1012
-	 * Logging
1013
-	 */
1014
-
1015
-	/**
1016
-	 * This parameter determines where the Nextcloud logs are sent.
1017
-	 *
1018
-	 * - ``file``: the logs are written to file ``nextcloud.log`` in the default Nextcloud data directory. The log file can be changed with parameter ``logfile``.
1019
-	 * - ``syslog``: the logs are sent to the system log. This requires a syslog daemon to be active.
1020
-	 * - ``errorlog``: the logs are sent to the PHP ``error_log`` function.
1021
-	 * - ``systemd``: the logs are sent to the Systemd journal. This requires a system that runs Systemd and the Systemd journal. The PHP extension ``systemd`` must be installed and active.
1022
-	 *
1023
-	 * Defaults to ``file``
1024
-	 */
1025
-	'log_type' => 'file',
1026
-
1027
-	/**
1028
-	 * This parameter determines where the audit logs are sent. See ``log_type`` for more information.
1029
-	 *
1030
-	 * Defaults to ``file``
1031
-	 */
1032
-	'log_type_audit' => 'file',
1033
-
1034
-	/**
1035
-	 * Name of the file to which the Nextcloud logs are written if parameter
1036
-	 * ``log_type`` is set to ``file``.
1037
-	 *
1038
-	 * Defaults to ``[datadirectory]/nextcloud.log``
1039
-	 */
1040
-	'logfile' => '/var/log/nextcloud.log',
1041
-
1042
-	/**
1043
-	 * Name of the file to which the audit logs are written if parameter
1044
-	 * ``log_type`` is set to ``file``.
1045
-	 *
1046
-	 * Defaults to ``[datadirectory]/audit.log``
1047
-	 */
1048
-	'logfile_audit' => '/var/log/audit.log',
1049
-
1050
-	/**
1051
-	 * Log file mode for the Nextcloud logging type in octal notation.
1052
-	 *
1053
-	 * Defaults to ``0640`` (writable by user, readable by group).
1054
-	 */
1055
-	'logfilemode' => 0640,
1056
-
1057
-	/**
1058
-	 * Loglevel to start logging at. Valid values are:
1059
-	 *
1060
-	 * - ``0`` = Debug
1061
-	 * - ``1`` = Info
1062
-	 * - ``2`` = Warning
1063
-	 * - ``3`` = Error
1064
-	 * - ``4`` = Fatal.
1065
-	 *
1066
-	 *
1067
-	 * Defaults to ``2`` (Warning)
1068
-	 */
1069
-	'loglevel' => 2,
1070
-
1071
-	/**
1072
-	 * Loglevel used by the frontend to start logging at. The same values as
1073
-	 * for ``loglevel`` can be used. If not set, it defaults to the value
1074
-	 * configured for ``loglevel`` or Warning if that is not set either.
1075
-	 *
1076
-	 * Defaults to ``2``
1077
-	 */
1078
-	'loglevel_frontend' => 2,
1079
-
1080
-	/**
1081
-	 * Loglevel used by the dirty database query detection. Useful to identify
1082
-	 * potential database bugs in production. Set this to loglevel or higher to
1083
-	 * see dirty queries in the logs.
1084
-	 *
1085
-	 * Defaults to ``0`` (debug)
1086
-	 */
1087
-	'loglevel_dirty_database_queries' => 0,
1088
-
1089
-	/**
1090
-	 * If you maintain different instances and aggregate the logs, you may want
1091
-	 * to distinguish between them. ``syslog_tag`` can be set per instance
1092
-	 * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1093
-	 * ``systemd``.
1094
-	 *
1095
-	 * The default value is ``Nextcloud``.
1096
-	 */
1097
-	'syslog_tag' => 'Nextcloud',
1098
-
1099
-	/**
1100
-	 * If you maintain different instances and aggregate the logs, you may want
1101
-	 * to distinguish between them. ``syslog_tag_audit`` can be set per instance
1102
-	 * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1103
-	 * ``systemd``.
1104
-	 *
1105
-	 * The default value is the value of ``syslog_tag``.
1106
-	 */
1107
-	'syslog_tag_audit' => 'Nextcloud',
1108
-
1109
-	/**
1110
-	 * Log condition for log level increase based on conditions. Once one of these
1111
-	 * conditions is met, the required log level is set to debug. This allows
1112
-	 * debugging specific requests, users, or apps
1113
-	 *
1114
-	 * Supported conditions:
1115
-	 *  - ``shared_secret``: if a request parameter with the name `log_secret` is set to
1116
-	 *                this value, the condition is met
1117
-	 *  - ``users``:  if the current request is done by one of the specified users,
1118
-	 *                this condition is met
1119
-	 *  - ``apps``:   if the log message is invoked by one of the specified apps,
1120
-	 *                this condition is met
1121
-	 *  - ``matches``: if all the conditions inside a group match,
1122
-	 *                this condition is met. This allows logging only entries to an app
1123
-	 *                by a few users.
1124
-	 *
1125
-	 * Defaults to an empty array.
1126
-	 */
1127
-	'log.condition' => [
1128
-		'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1129
-		'users' => ['sample-user'],
1130
-		'apps' => ['files'],
1131
-		'matches' => [
1132
-			[
1133
-				'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1134
-				'users' => ['sample-user'],
1135
-				'apps' => ['files'],
1136
-				'loglevel' => 1,
1137
-				'message' => 'contains substring'
1138
-			],
1139
-		],
1140
-	],
1141
-
1142
-	/**
1143
-	 * Enables logging a backtrace with each log line. Normally, only Exceptions
1144
-	 * carry backtrace information, which are logged automatically. This
1145
-	 * switch turns them on for any log message. Enabling this option will lead
1146
-	 * to increased log data size.
1147
-	 *
1148
-	 * Defaults to ``false``.
1149
-	 */
1150
-	'log.backtrace' => false,
1151
-
1152
-	/**
1153
-	 * This uses PHP.date formatting; see https://www.php.net/manual/en/function.date.php
1154
-	 *
1155
-	 * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00``, see ``\DateTime::ATOM``
1156
-	 * https://www.php.net/manual/en/class.datetimeinterface.php#datetimeinterface.constants.atom
1157
-	 */
1158
-	'logdateformat' => 'F d, Y H:i:s',
1159
-
1160
-	/**
1161
-	 * The timezone for logfiles. See https://www.php.net/manual/en/timezones.php
1162
-	 *
1163
-	 * Defaults to ``UTC``
1164
-	 */
1165
-	'logtimezone' => 'Europe/Berlin',
1166
-
1167
-	/**
1168
-	 * Append all database queries and parameters to the log file. Use this only for
1169
-	 * debugging, as your logfile will become huge.
1170
-	 */
1171
-	'log_query' => false,
1172
-
1173
-	/**
1174
-	 * Enables log rotation and limits the total size of logfiles. Set it to 0 for
1175
-	 * no rotation. Specify a size in bytes, for example, 104857600 (100 megabytes
1176
-	 * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
1177
-	 * old logfile reaches your limit. If a rotated log file is already present, it
1178
-	 * will be overwritten.
1179
-	 *
1180
-	 * Defaults to 100 MB
1181
-	 */
1182
-	'log_rotate_size' => 100 * 1024 * 1024,
1183
-
1184
-	/**
1185
-	 * Enable built-in profiler. Helpful when trying to debug performance
1186
-	 * issues.
1187
-	 *
1188
-	 * Note that this has a performance impact and shouldn't be enabled
1189
-	 * on production.
1190
-	 */
1191
-	'profiler' => false,
1192
-
1193
-	/**
1194
-	 * Enable profiling for individual requests if profiling single requests is enabled or the secret is passed.
1195
-	 * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1196
-	 *
1197
-	 * The profile data will be stored as a JSON file in the profiling.path directory that can be analyzed with speedscope.
1198
-	 *
1199
-	 * Defaults to ``false``
1200
-	 */
1201
-	'profiling.request' => false,
1202
-
1203
-	/**
1204
-	 * The rate at which profiling data is collected for individual requests.
1205
-	 * A lower value means more data points but higher overhead.
1206
-	 *
1207
-	 * Defaults to ``0.001``
1208
-	 */
1209
-	'profiling.request.rate' => 0.001,
1210
-
1211
-	/**
1212
-	 * A secret token that can be passed via ?profile_secret=<secret> to enable profiling for a specific request.
1213
-	 * This allows profiling specific requests in production without enabling it globally.
1214
-	 *
1215
-	 * No default value.
1216
-	 */
1217
-	'profiling.secret' => '',
1218
-
1219
-	/**
1220
-	 * Enable sampling-based profiling. This collects profiling data periodically rather than per-request.
1221
-	 * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1222
-	 *
1223
-	 * The profile data will be stored as a plain text file in the profiling.path directory that can be analyzed with speedscope.
1224
-	 *
1225
-	 * Defaults to ``false``
1226
-	 */
1227
-	'profiling.sample' => false,
1228
-
1229
-	/**
1230
-	 * The rate at which sampling profiling data is collected in seconds.
1231
-	 * A lower value means more frequent samples but higher overhead.
1232
-	 *
1233
-	 * Defaults to ``1``
1234
-	 */
1235
-	'profiling.sample.rate' => 1,
1236
-
1237
-	/**
1238
-	 * How often (in minutes) the sample log files are rotated.
1239
-	 *
1240
-	 * Defaults to ``60``
1241
-	 */
1242
-	'profiling.sample.rotation' => 60,
1243
-
1244
-	/**
1245
-	 * The directory where profiling data is stored.
1246
-	 *
1247
-	 * Note that this directory must be writable by the web server user and will not be cleaned up automatically.
1248
-	 */
1249
-	'profiling.path' => '/tmp',
1250
-
1251
-
1252
-	/**
1253
-	 * Alternate Code Locations
1254
-	 *
1255
-	 * Some Nextcloud code may be stored in alternate locations.
1256
-	 */
1257
-
1258
-	/**
1259
-	 * This section is for configuring the download links for Nextcloud clients, as
1260
-	 * seen in the first-run wizard and on Personal pages.
1261
-	 *
1262
-	 * Defaults to:
1263
-	 *
1264
-	 * - Desktop client: ``https://nextcloud.com/install/#install-clients``
1265
-	 * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client``
1266
-	 * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8``
1267
-	 * - iOS client app ID: ``1125420102``
1268
-	 * - F-Droid client: ``https://f-droid.org/packages/com.nextcloud.client/``
1269
-	 */
1270
-	'customclient_desktop'
1271
-		=> 'https://nextcloud.com/install/#install-clients',
1272
-	'customclient_android'
1273
-		=> 'https://play.google.com/store/apps/details?id=com.nextcloud.client',
1274
-	'customclient_ios'
1275
-		=> 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8',
1276
-	'customclient_ios_appid'
1277
-		=> '1125420102',
1278
-	'customclient_fdroid'
1279
-		=> 'https://f-droid.org/packages/com.nextcloud.client/',
1280
-
1281
-	/**
1282
-	 * Activity
1283
-	 *
1284
-	 * Options for the activity app.
1285
-	 */
1286
-
1287
-	/**
1288
-	 * Retention of activities.
1289
-	 *
1290
-	 * A daily cron job deletes all activities for all users which are older than
1291
-	 * the number of days specified here.
1292
-	 *
1293
-	 * Defaults to ``365``
1294
-	 */
1295
-	'activity_expire_days' => 365,
1296
-
1297
-	/**
1298
-	 * Activities in Team Folders and External Storages.
1299
-	 *
1300
-	 * By default, activities in team folders or external storages are only generated
1301
-	 * for the current user. This is due to a limitations in current implementations.
1302
-	 * This config flag makes activities in group folders and external storages work
1303
-	 * like in normal shares (when set to ``true``).
1304
-	 *
1305
-	 * WARNING: Enabling this comes with some CRITICAL trade-offs:
1306
-	 *
1307
-	 * - If team folder "Advanced Permissions" (ACLs) are used, activities do not
1308
-	 *   respect the permissions and therefore all users see all activities, even
1309
-	 *   for files and directories they do not have access to.
1310
-	 * - Users who had access to a team folder, share, or external storage can see
1311
-	 *   activities in their stream and emails that happen after they are removed
1312
-	 *   until they log in again.
1313
-	 * - Users who are newly added to a team folder, share, or external storage
1314
-	 *   cannot see activities in their stream or emails that happen after they
1315
-	 *   are added until they log in again.
1316
-	 *
1317
-	 * Defaults to ``false``
1318
-	 */
1319
-	'activity_use_cached_mountpoints' => false,
1320
-
1321
-	/**
1322
-	 * Apps
1323
-	 *
1324
-	 * Options for the Apps folder, Apps store, and App code checker.
1325
-	 */
1326
-
1327
-	/**
1328
-	 * Set the default app to open on login. The entry IDs can be retrieved from
1329
-	 * the Navigations OCS API endpoint: https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/operations/core-navigation-get-apps-navigation.
1330
-	 * You can use a comma-separated list of app names, so if the first
1331
-	 * app is not enabled for a user, then Nextcloud will try the second one, and so
1332
-	 * on. If no enabled apps are found, it defaults to the dashboard app.
1333
-	 *
1334
-	 * Defaults to ``dashboard,files``
1335
-	 */
1336
-	'defaultapp' => 'dashboard,files',
1337
-
1338
-	/**
1339
-	 * When enabled, admins may install apps from the Nextcloud app store.
1340
-	 *
1341
-	 * Defaults to ``true``
1342
-	 */
1343
-	'appstoreenabled' => true,
1344
-
1345
-	/**
1346
-	 * Enables the installation of apps from a self-hosted apps store.
1347
-	 * Requires that at least one of the configured apps directories is writable.
1348
-	 *
1349
-	 * Defaults to ``https://apps.nextcloud.com/api/v1``
1350
-	 */
1351
-	'appstoreurl' => 'https://apps.nextcloud.com/api/v1',
1352
-
1353
-	/**
1354
-	 * Filters allowed installable apps from the appstore.
1355
-	 * Empty array will prevent all apps from the store to be found.
1356
-	 */
1357
-	'appsallowlist' => [],
1358
-
1359
-	/**
1360
-	 * Use the ``apps_paths`` parameter to set the location of the Apps directory,
1361
-	 * which should be scanned for available apps, and where user-specific apps
1362
-	 * should be installed from the Apps store. The ``path`` defines the absolute
1363
-	 * file system path to the app folder. The key ``url`` defines the HTTP Web path
1364
-	 * to that folder, starting from the Nextcloud webroot. The key ``writable``
1365
-	 * indicates if a Web server can write files to that folder.
1366
-	 */
1367
-	'apps_paths' => [
1368
-		[
1369
-			'path' => '/var/www/nextcloud/apps',
1370
-			'url' => '/apps',
1371
-			'writable' => true,
1372
-		],
1373
-	],
1374
-
1375
-	/**
1376
-	 * @see appcodechecker
1377
-	 */
1378
-
1379
-	/**
1380
-	 * Previews
1381
-	 *
1382
-	 * Nextcloud supports generating previews for various file types, such as images, audio files, and text files.
1383
-	 * These options control enabling and disabling previews, and thumbnail size.
1384
-	 */
1385
-
1386
-	/**
1387
-	 * By default, Nextcloud can generate previews for the following filetypes:
1388
-	 *
1389
-	 * - Image files
1390
-	 * - Text documents
1391
-	 *
1392
-	 * Valid values are ``true``, to enable previews, or
1393
-	 * ``false``, to disable previews
1394
-	 *
1395
-	 * Defaults to ``true``
1396
-	 */
1397
-	'enable_previews' => true,
1398
-
1399
-	/**
1400
-	 * Number of all preview requests being processed concurrently,
1401
-	 * including previews that need to be newly generated, and those that have
1402
-	 * been generated.
1403
-	 *
1404
-	 * This should be greater than ``preview_concurrency_new``.
1405
-	 * If unspecified, defaults to twice the value of ``preview_concurrency_new``.
1406
-	 */
1407
-	'preview_concurrency_all' => 8,
1408
-
1409
-	/**
1410
-	 * Number of new previews that are being concurrently generated.
1411
-	 *
1412
-	 * Depending on the max preview size set by ``preview_max_x`` and ``preview_max_y``,
1413
-	 * the generation process can consume considerable CPU and memory resources.
1414
-	 * It's recommended to limit this to be no greater than the number of CPU cores.
1415
-	 * If unspecified, defaults to the number of CPU cores, or 4 if that cannot
1416
-	 * be determined.
1417
-	 */
1418
-	'preview_concurrency_new' => 4,
1419
-
1420
-	/**
1421
-	 * The maximum width, in pixels, of a preview. A value of ``null`` means there
1422
-	 * is no limit.
1423
-	 *
1424
-	 * Defaults to ``4096``
1425
-	 */
1426
-	'preview_max_x' => 4096,
1427
-	/**
1428
-	 * The maximum height, in pixels, of a preview. A value of ``null`` means there
1429
-	 * is no limit.
1430
-	 *
1431
-	 * Defaults to ``4096``
1432
-	 */
1433
-	'preview_max_y' => 4096,
1434
-
1435
-	/**
1436
-	 * Max file size for generating image previews with imagegd (default behavior).
1437
-	 * If the image is bigger, it'll try other preview generators, but will most
1438
-	 * likely either show the default mimetype icon or not display the image at all.
1439
-	 * Set to ``-1`` for no limit and try to generate image previews on all file sizes.
1440
-	 *
1441
-	 * Defaults to ``50`` megabytes
1442
-	 */
1443
-	'preview_max_filesize_image' => 50,
1444
-
1445
-	/**
1446
-	 * Max memory for generating image previews with imagegd (default behavior)
1447
-	 * Reads the image dimensions from the header and assumes 32 bits per pixel.
1448
-	 * If creating the image would allocate more memory, preview generation will
1449
-	 * be disabled and the default mimetype icon is shown. Set to ``-1`` for no limit.
1450
-	 *
1451
-	 * Defaults to ``256`` megabytes
1452
-	 */
1453
-	'preview_max_memory' => 256,
1454
-
1455
-	/**
1456
-	 * Custom path for LibreOffice/OpenOffice binary
1457
-	 *
1458
-	 *
1459
-	 * Defaults to ``''`` (empty string)
1460
-	 */
1461
-	'preview_libreoffice_path' => '/usr/bin/libreoffice',
1462
-
1463
-	/**
1464
-	 * Custom path for ffmpeg binary
1465
-	 *
1466
-	 * Defaults to ``null`` and falls back to searching ``ffmpeg``
1467
-	 * in the configured ``PATH`` environment
1468
-	 */
1469
-	'preview_ffmpeg_path' => '/usr/bin/ffmpeg',
1470
-
1471
-	/**
1472
-	 * Custom path for ffprobe binary
1473
-	 *
1474
-	 * Defaults to ``null`` and falls back to using the same path as ffmpeg.
1475
-	 * ffprobe is typically packaged with ffmpeg and is required for
1476
-	 * enhanced preview generation for HDR videos.
1477
-	 */
1478
-	'preview_ffprobe_path' => '/usr/bin/ffprobe',
1479
-
1480
-	/**
1481
-	 * Set the URL of the Imaginary service to send image previews to.
1482
-	 * Also requires the ``OC\Preview\Imaginary`` provider to be enabled in the
1483
-	 * ``enabledPreviewProviders`` array, to create previews for these mimetypes: bmp,
1484
-	 * x-bitmap, png, jpeg, gif, heic, heif, svg+xml, tiff, webp, and illustrator.
1485
-	 *
1486
-	 * If you want Imaginary to also create preview images from PDF documents, you
1487
-	 * have to add the ``OC\Preview\ImaginaryPDF`` provider as well.
1488
-	 *
1489
-	 * See https://github.com/h2non/imaginary
1490
-	 */
1491
-	'preview_imaginary_url' => 'http://previews_hpb:8088/',
1492
-
1493
-	/**
1494
-	 * If you want to set an API key for Imaginary.
1495
-	 */
1496
-	'preview_imaginary_key' => 'secret',
1497
-
1498
-	/**
1499
-	 * Only register providers that have been explicitly enabled
1500
-	 *
1501
-	 * The following providers are disabled by default due to performance or privacy
1502
-	 * concerns:
1503
-	 *
1504
-	 *  - ``OC\Preview\EMF``
1505
-	 *  - ``OC\Preview\Font``
1506
-	 *  - ``OC\Preview\HEIC``
1507
-	 *  - ``OC\Preview\Illustrator``
1508
-	 *  - ``OC\Preview\MP3``
1509
-	 *  - ``OC\Preview\MSOffice2003``
1510
-	 *  - ``OC\Preview\MSOffice2007``
1511
-	 *  - ``OC\Preview\MSOfficeDoc``
1512
-	 *  - ``OC\Preview\Movie``
1513
-	 *  - ``OC\Preview\PDF``
1514
-	 *  - ``OC\Preview\Photoshop``
1515
-	 *  - ``OC\Preview\Postscript``
1516
-	 *  - ``OC\Preview\SVG``
1517
-	 *  - ``OC\Preview\StarOffice``
1518
-	 *  - ``OC\Preview\TIFF``
1519
-	 *
1520
-	 * Defaults to the following providers:
1521
-	 *
1522
-	 *  - ``OC\Preview\BMP``
1523
-	 *  - ``OC\Preview\GIF``
1524
-	 *  - ``OC\Preview\JPEG``
1525
-	 *  - ``OC\Preview\Krita``
1526
-	 *  - ``OC\Preview\MarkDown``
1527
-	 *  - ``OC\Preview\OpenDocument``
1528
-	 *  - ``OC\Preview\PNG``
1529
-	 *  - ``OC\Preview\TXT``
1530
-	 *  - ``OC\Preview\XBitmap``
1531
-	 *
1532
-	 */
1533
-	'enabledPreviewProviders' => [
1534
-		'OC\Preview\BMP',
1535
-		'OC\Preview\GIF',
1536
-		'OC\Preview\JPEG',
1537
-		'OC\Preview\Krita',
1538
-		'OC\Preview\MarkDown',
1539
-		'OC\Preview\OpenDocument',
1540
-		'OC\Preview\PNG',
1541
-		'OC\Preview\TXT',
1542
-		'OC\Preview\XBitmap',
1543
-	],
1544
-
1545
-	/**
1546
-	 * Maximum file size for metadata generation.
1547
-	 * If a file exceeds this size, metadata generation will be skipped.
1548
-	 *
1549
-	 * NOTE: memory equivalent to this size will be used for metadata generation.
1550
-	 *
1551
-	 * Default: 256 megabytes.
1552
-	 */
1553
-	'metadata_max_filesize' => 256,
1554
-
1555
-	/**
1556
-	 * Maximum file size for file conversion.
1557
-	 * If a file exceeds this size, the file will not be converted.
1558
-	 *
1559
-	 * Default: 100 MiB
1560
-	 */
1561
-	'max_file_conversion_filesize' => 100,
1562
-
1563
-	/**
1564
-	 * LDAP
1565
-	 *
1566
-	 * Global settings used by LDAP User and Group Backend
1567
-	 */
1568
-
1569
-	/**
1570
-	 * Defines the interval in minutes for the background job that checks user
1571
-	 * existence and marks them as ready to be cleaned up. The number is always
1572
-	 * minutes. Setting it to 0 disables the feature.
1573
-	 * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete``
1574
-	 *
1575
-	 * Defaults to ``51`` minutes
1576
-	 */
1577
-	'ldapUserCleanupInterval' => 51,
1578
-
1579
-	/**
1580
-	 * Sort groups in the user settings by name instead of the user count
1581
-	 *
1582
-	 * By enabling this, the user count beside the group name is disabled as well.
1583
-	 * @deprecated since Nextcloud 29 - Use the frontend instead or set the app config value ``group.sortBy`` for ``core`` to ``2``
1584
-	 */
1585
-	'sort_groups_by_name' => false,
1586
-
1587
-	/**
1588
-	 * Comments
1589
-	 *
1590
-	 * Global settings for the Comments infrastructure
1591
-	 */
1592
-
1593
-	/**
1594
-	 * Replaces the default Comments Manager Factory. This can be utilized if an
1595
-	 * own or 3rd-party CommentsManager should be used that – for instance – uses the
1596
-	 * filesystem instead of the database to keep the comments.
1597
-	 *
1598
-	 * Defaults to ``\OC\Comments\ManagerFactory``
1599
-	 */
1600
-	'comments.managerFactory' => '\OC\Comments\ManagerFactory',
1601
-
1602
-	/**
1603
-	 * Replaces the default System Tags Manager Factory. This can be utilized if an
1604
-	 * own or 3rd-party SystemTagsManager should be used that – for instance – uses the
1605
-	 * filesystem instead of the database to keep the tags.
1606
-	 *
1607
-	 * Defaults to ``\OC\SystemTag\ManagerFactory``
1608
-	 */
1609
-	'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory',
1610
-
1611
-	/**
1612
-	 * Maintenance
1613
-	 *
1614
-	 * These options are for halting user activity when you are performing server
1615
-	 * maintenance.
1616
-	 */
1617
-
1618
-	/**
1619
-	 * Enable maintenance mode to disable Nextcloud
1620
-	 *
1621
-	 * If you want to prevent users from logging in to Nextcloud before you start
1622
-	 * doing some maintenance work, you need to set the value of the maintenance
1623
-	 * parameter to true. Please keep in mind that users who are already logged in
1624
-	 * are kicked out of Nextcloud instantly.
1625
-	 *
1626
-	 * Defaults to ``false``
1627
-	 */
1628
-	'maintenance' => false,
1629
-
1630
-	/**
1631
-	 * UTC Hour for maintenance windows
1632
-	 *
1633
-	 * Some background jobs only run once a day. When an hour is defined for this config,
1634
-	 * the background jobs which advertise themselves as not time sensitive will be
1635
-	 * delayed during the "working" hours and only run in the 4 hours after the given time.
1636
-	 * This is, e.g., used for activity expiration, suspicious login training, and update checks.
1637
-	 *
1638
-	 * A value of 1, e.g., will only run these background jobs between 01:00am UTC and 05:00am UTC.
1639
-	 *
1640
-	 * Defaults to ``100`` which disables the feature
1641
-	 */
1642
-	'maintenance_window_start' => 1,
1643
-
1644
-	/**
1645
-	 * Log all LDAP requests into a file
1646
-	 *
1647
-	 * Warning: This heavily decreases the performance of the server and is only
1648
-	 * meant to debug/profile the LDAP interaction manually.
1649
-	 * Also, it might log sensitive data into a plain text file.
1650
-	 */
1651
-	'ldap_log_file' => '',
1652
-
1653
-	/**
1654
-	 * SSL
1655
-	 */
1656
-
1657
-	/**
1658
-	 * Extra SSL options to be used for configuration.
1659
-	 *
1660
-	 * Defaults to an empty array.
1661
-	 */
1662
-	'openssl' => [
1663
-		'config' => '/absolute/location/of/openssl.cnf',
1664
-	],
1665
-
1666
-	/**
1667
-	 * Memory caching backend configuration
1668
-	 *
1669
-	 * Available cache backends:
1670
-	 *
1671
-	 * * ``\OC\Memcache\APCu``       APC user backend
1672
-	 * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
1673
-	 * * ``\OC\Memcache\Memcached``  Memcached backend
1674
-	 * * ``\OC\Memcache\Redis``      Redis backend
1675
-	 *
1676
-	 * Advice on choosing between the various backends:
1677
-	 *
1678
-	 * * APCu should be easiest to install. Almost all distributions have packages.
1679
-	 *   Use this for single user environment for all caches.
1680
-	 * * Use Redis or Memcached for distributed environments.
1681
-	 *   For the local cache (you can configure two) take APCu.
1682
-	 */
1683
-
1684
-	/**
1685
-	 * Memory caching backend for locally stored data
1686
-	 *
1687
-	 * * Used for host-specific data, e.g., file paths
1688
-	 *
1689
-	 * Defaults to ``none``
1690
-	 */
1691
-	'memcache.local' => '\\OC\\Memcache\\APCu',
1692
-
1693
-	/**
1694
-	 * Memory caching backend for distributed data
1695
-	 *
1696
-	 * * Used for installation-specific data, e.g., database caching
1697
-	 * * If unset, defaults to the value of memcache.local
1698
-	 *
1699
-	 * Defaults to ``none``
1700
-	 */
1701
-	'memcache.distributed' => '\\OC\\Memcache\\Memcached',
1702
-
1703
-	/**
1704
-	 * Connection details for Redis to use for memory caching in a single server configuration.
1705
-	 *
1706
-	 * For enhanced security, it is recommended to configure Redis
1707
-	 * to require a password. See http://redis.io/topics/security
1708
-	 * for more information.
1709
-	 *
1710
-	 * We also support Redis SSL/TLS encryption as of version 6.
1711
-	 * See https://redis.io/topics/encryption for more information.
1712
-	 */
1713
-	'redis' => [
1714
-		'host' => 'localhost', // can also be a Unix domain socket: '/tmp/redis.sock'
1715
-		'port' => 6379,
1716
-		'timeout' => 0.0,
1717
-		'read_timeout' => 0.0,
1718
-		'user' => '', // Optional: if not defined, no password will be used.
1719
-		'password' => '', // Optional: if not defined, no password will be used.
1720
-		'dbindex' => 0, // Optional: if undefined, SELECT will not run and will use Redis Server's default DB Index.
1721
-		// If Redis in-transit encryption is enabled, provide certificates
1722
-		// SSL context https://www.php.net/manual/en/context.ssl.php
1723
-		'ssl_context' => [
1724
-			'local_cert' => '/certs/redis.crt',
1725
-			'local_pk' => '/certs/redis.key',
1726
-			'cafile' => '/certs/ca.crt'
1727
-		]
1728
-	],
1729
-
1730
-	/**
1731
-	 * Connection details for a Redis Cluster.
1732
-	 *
1733
-	 * Redis Cluster support requires the PHP module phpredis in version 3.0.0 or
1734
-	 * higher.
1735
-	 *
1736
-	 * Available failover modes:
1737
-	 *  - ``\RedisCluster::FAILOVER_NONE`` - only send commands to master nodes (default)
1738
-	 *  - ``\RedisCluster::FAILOVER_ERROR`` - failover to slaves for read commands if master is unavailable (recommended)
1739
-	 *  - ``\RedisCluster::FAILOVER_DISTRIBUTE`` - randomly distribute read commands across master and slaves
1740
-	 *
1741
-	 * WARNING: ``\RedisCluster::FAILOVER_DISTRIBUTE`` is a not recommended setting, and we strongly
1742
-	 * suggest to not use it if you use Redis for file locking. Due to the way Redis
1743
-	 * is synchronized, it could happen that the read for an existing lock is
1744
-	 * scheduled to a slave that is not fully synchronized with the connected master
1745
-	 * which then causes a FileLocked exception.
1746
-	 *
1747
-	 * See https://redis.io/topics/cluster-spec for details about the Redis cluster
1748
-	 *
1749
-	 * Authentication works with phpredis version 4.2.1+. See
1750
-	 * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1
1751
-	 */
1752
-	'redis.cluster' => [
1753
-		'seeds' => [ // provide some or all of the cluster servers to bootstrap discovery, port required
1754
-			'localhost:7000',
1755
-			'localhost:7001',
1756
-		],
1757
-		'timeout' => 0.0,
1758
-		'read_timeout' => 0.0,
1759
-		'failover_mode' => \RedisCluster::FAILOVER_ERROR,
1760
-		'user' => '', // Optional: if not defined, no password will be used.
1761
-		'password' => '', // Optional: if not defined, no password will be used.
1762
-		// If Redis in-transit encryption is enabled, provide certificates
1763
-		// SSL context https://www.php.net/manual/en/context.ssl.php
1764
-		'ssl_context' => [
1765
-			'local_cert' => '/certs/redis.crt',
1766
-			'local_pk' => '/certs/redis.key',
1767
-			'cafile' => '/certs/ca.crt'
1768
-		]
1769
-	],
1770
-
1771
-
1772
-	/**
1773
-	 * Server details for one or more Memcached servers to use for memory caching.
1774
-	 */
1775
-	'memcached_servers' => [
1776
-		// hostname, port and optional weight
1777
-		// or path and port 0 for Unix socket. Also see:
1778
-		// https://www.php.net/manual/en/memcached.addservers.php
1779
-		// https://www.php.net/manual/en/memcached.addserver.php
1780
-		['localhost', 11211],
1781
-		//array('other.host.local', 11211),
1782
-	],
1783
-
1784
-	/**
1785
-	 * Connection options for Memcached
1786
-	 */
1787
-	'memcached_options' => [
1788
-		// Set timeouts to 50ms
1789
-		\Memcached::OPT_CONNECT_TIMEOUT => 50,
1790
-		\Memcached::OPT_RETRY_TIMEOUT => 50,
1791
-		\Memcached::OPT_SEND_TIMEOUT => 50,
1792
-		\Memcached::OPT_RECV_TIMEOUT => 50,
1793
-		\Memcached::OPT_POLL_TIMEOUT => 50,
1794
-
1795
-		// Enable compression
1796
-		\Memcached::OPT_COMPRESSION => true,
1797
-
1798
-		// Turn on consistent hashing
1799
-		\Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
1800
-
1801
-		// Enable Binary Protocol
1802
-		\Memcached::OPT_BINARY_PROTOCOL => true,
1803
-
1804
-		// Binary serializer will be enabled if the igbinary PECL module is available
1805
-		//\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY,
1806
-	],
1807
-
1808
-
1809
-	/**
1810
-	 * Location of the cache folder, defaults to ``data/$user/cache`` where
1811
-	 * ``$user`` is the current user. When specified, the format will change to
1812
-	 * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
1813
-	 * and ``$user`` is the user.
1814
-	 *
1815
-	 * Defaults to ``''`` (empty string)
1816
-	 */
1817
-	'cache_path' => '',
1818
-
1819
-	/**
1820
-	 * TTL of chunks located in the cache folder before they're removed by
1821
-	 * garbage collection (in seconds). Increase this value if users have
1822
-	 * issues uploading very large files via the Nextcloud Client as upload isn't
1823
-	 * completed within one day.
1824
-	 *
1825
-	 * Defaults to ``60*60*24`` (1 day)
1826
-	 */
1827
-	'cache_chunk_gc_ttl' => 60 * 60 * 24,
1828
-
1829
-	/**
1830
-	 * Enable caching of the app config values.
1831
-	 * If enabled the app config will be cached locally for a short TTL,
1832
-	 * reducing database load significantly on larger setups.
1833
-	 *
1834
-	 * Defaults to ``true``
1835
-	 */
1836
-	'cache_app_config' => true,
1837
-
1838
-	/**
1839
-	 * Using Object Store with Nextcloud
1840
-	 */
1841
-
1842
-	/**
1843
-	 * This example shows how to configure Nextcloud to store all files in a
1844
-	 * Swift object storage.
1845
-	 *
1846
-	 * It is important to note that Nextcloud in object store mode will expect
1847
-	 * exclusive access to the object store container because it only stores the
1848
-	 * binary data for each file. The metadata is currently kept in the local
1849
-	 * database for performance reasons.
1850
-	 *
1851
-	 * WARNING: The current implementation is incompatible with any app that uses
1852
-	 * direct file I/O and circumvents our virtual filesystem. That includes
1853
-	 * Encryption and Gallery. Gallery will store thumbnails directly in the
1854
-	 * filesystem, and encryption will cause severe overhead because key files need
1855
-	 * to be fetched in addition to any requested file.
1856
-	 *
1857
-	 */
1858
-	'objectstore' => [
1859
-		'class' => 'OC\\Files\\ObjectStore\\Swift',
1860
-		'arguments' => [
1861
-			// trystack will use your Facebook ID as the username
1862
-			'username' => 'facebook100000123456789',
1863
-			// in the trystack dashboard, go to user -> settings -> API Password to
1864
-			// generate a password
1865
-			'password' => 'Secr3tPaSSWoRdt7',
1866
-			// must already exist in the objectstore, name can be different
1867
-			'container' => 'nextcloud',
1868
-			// prefix to prepend to the fileid, default is 'oid:urn:'
1869
-			'objectPrefix' => 'oid:urn:',
1870
-			// create the container if it does not exist. default is false
1871
-			'autocreate' => true,
1872
-			// required, dev-/trystack defaults to 'RegionOne'
1873
-			'region' => 'RegionOne',
1874
-			// The Identity / Keystone endpoint
1875
-			'url' => 'http://8.21.28.222:5000/v2.0',
1876
-			// uploadPartSize: size of the uploaded chunks, defaults to 524288000
1877
-			'uploadPartSize' => 524288000,
1878
-			// required on dev-/trystack
1879
-			'tenantName' => 'facebook100000123456789',
1880
-			// dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
1881
-			// if omitted
1882
-			'serviceName' => 'swift',
1883
-			// The Interface / URL Type, optional
1884
-			'urlType' => 'internal',
1885
-			// Maximum amount of data that can be uploaded
1886
-			'totalSizeLimit' => 1024 * 1024 * 1024,
1887
-		],
1888
-	],
1889
-
1890
-	/**
1891
-	 * To use Swift V3
1892
-	 */
1893
-	'objectstore' => [
1894
-		'class' => 'OC\\Files\\ObjectStore\\Swift',
1895
-		'arguments' => [
1896
-			'autocreate' => true,
1897
-			'user' => [
1898
-				'name' => 'swift',
1899
-				'password' => 'swift',
1900
-				'domain' => [
1901
-					'name' => 'default',
1902
-				],
1903
-			],
1904
-			'scope' => [
1905
-				'project' => [
1906
-					'name' => 'service',
1907
-					'domain' => [
1908
-						'name' => 'default',
1909
-					],
1910
-				],
1911
-			],
1912
-			'tenantName' => 'service',
1913
-			'serviceName' => 'swift',
1914
-			'region' => 'regionOne',
1915
-			'url' => 'http://yourswifthost:5000/v3',
1916
-			'bucket' => 'nextcloud',
1917
-		],
1918
-	],
1919
-
1920
-	/**
1921
-	 * If this is set to true and a multibucket object store is configured, then
1922
-	 * newly created previews are put into 256 dedicated buckets.
1923
-	 *
1924
-	 * Those buckets are named like the multibucket version but with the postfix
1925
-	 * ``-preview-NUMBER`` where NUMBER is between 0 and 255.
1926
-	 *
1927
-	 * Keep in mind that only previews of files are put in there that don't have
1928
-	 * some already. Otherwise, the old bucket will be used.
1929
-	 *
1930
-	 * To migrate existing previews to this new multibucket distribution of previews,
1931
-	 * use the occ command ``preview:repair``. For now, this will only migrate
1932
-	 * previews that were generated before Nextcloud 19 in the flat
1933
-	 * ``appdata_INSTANCEID/previews/FILEID`` folder structure.
1934
-	 */
1935
-	'objectstore.multibucket.preview-distribution' => false,
1936
-
1937
-
1938
-	/**
1939
-	 * Sharing
1940
-	 *
1941
-	 * Global settings for Sharing
1942
-	 */
1943
-
1944
-	/**
1945
-	 * Replaces the default Share Provider Factory. This can be utilized if
1946
-	 * own or 3rd-party Share Providers are used that – for instance – use the
1947
-	 * filesystem instead of the database to keep the share information.
1948
-	 *
1949
-	 * Defaults to ``\OC\Share20\ProviderFactory``
1950
-	 */
1951
-	'sharing.managerFactory' => '\OC\Share20\ProviderFactory',
1952
-
1953
-	/**
1954
-	 * Enables expiration for link share passwords sent by email (sharebymail).
1955
-	 * The passwords will expire after the configured interval; the users can
1956
-	 * still request a new one on the public link page.
1957
-	 */
1958
-	'sharing.enable_mail_link_password_expiration' => false,
1959
-
1960
-	/**
1961
-	 * Expiration interval for passwords, in seconds.
1962
-	 */
1963
-	'sharing.mail_link_password_expiration_interval' => 3600,
1964
-
1965
-	/**
1966
-	 * Define max number of results returned by the search for auto-completion of
1967
-	 * users, groups, etc. The value must not be lower than 0 (for unlimited).
1968
-	 *
1969
-	 * If more, different sources are requested (e.g., different user backends; or
1970
-	 * both users and groups), the value is applied per source and might not be
1971
-	 * truncated after collecting the results. I.e., more results can appear than
1972
-	 * configured here.
1973
-	 *
1974
-	 * Default is 25.
1975
-	 */
1976
-	'sharing.maxAutocompleteResults' => 25,
1977
-
1978
-	/**
1979
-	 * Define the minimum length of the search string before we start auto-completion
1980
-	 * Default is no limit (value set to 0)
1981
-	 */
1982
-	'sharing.minSearchStringLength' => 0,
1983
-
1984
-	/**
1985
-	 * Set to true to enable that internal shares need to be accepted by the users by default.
1986
-	 * Users can change this for their account in their personal sharing settings
1987
-	 */
1988
-	'sharing.enable_share_accept' => false,
1989
-
1990
-	/**
1991
-	 * Set to ``true`` to enforce that internal shares need to be accepted
1992
-	 */
1993
-	'sharing.force_share_accept' => false,
1994
-
1995
-	/**
1996
-	 * Set to ``false`` to prevent users from setting a custom share_folder
1997
-	 */
1998
-	'sharing.allow_custom_share_folder' => true,
1999
-
2000
-	/**
2001
-	 * Define a default folder for shared files and folders other than root.
2002
-	 * Changes to this value will only have effect on new shares.
2003
-	 *
2004
-	 * Defaults to ``/``
2005
-	 */
2006
-	'share_folder' => '/',
2007
-
2008
-	/**
2009
-	 * Set to ``false`` to stop sending a mail when users receive a share
2010
-	 */
2011
-	'sharing.enable_share_mail' => true,
2012
-
2013
-	/**
2014
-	 * Set to true to enable the feature to add exceptions for share password enforcement
2015
-	 */
2016
-	'sharing.allow_disabled_password_enforcement_groups' => false,
2017
-
2018
-	/**
2019
-	 * Set to true to always transfer incoming shares by default
2020
-	 * when running ``occ files:transfer-ownership``.
2021
-	 * Defaults to ``false``, so incoming shares are not transferred if not specifically requested
2022
-	 * by a command line argument.
2023
-	 */
2024
-	'transferIncomingShares' => false,
2025
-
2026
-	/**
2027
-	 * Federated Cloud Sharing
2028
-	 */
2029
-
2030
-	/**
2031
-	 * Allow self-signed certificates for federated shares
2032
-	 */
2033
-	'sharing.federation.allowSelfSignedCertificates' => false,
2034
-
2035
-	/**
2036
-	 * Hashing
2037
-	 */
2038
-
2039
-	/**
2040
-	 * By default, Nextcloud will use the Argon2 password hashing if available.
2041
-	 * However, if for whatever reason you want to stick with the PASSWORD_DEFAULT
2042
-	 * of your PHP version, then set the setting to true.
2043
-	 *
2044
-	 * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
2045
-	 * own and exposes its configuration options as following. More information can
2046
-	 * be found at: https://www.php.net/manual/en/function.password-hash.php
2047
-	 */
2048
-	'hashing_default_password' => false,
2049
-
2050
-	/**
2051
-	 * The number of CPU threads to be used by the algorithm for computing a hash.
2052
-	 * The value must be an integer, and the minimum value is ``1``. Rationally, it does
2053
-	 * not help to provide a number higher than the available threads on the machine.
2054
-	 * Values that undershoot the minimum will be ignored in favor of the minimum.
2055
-	 */
2056
-	'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
2057
-
2058
-	/**
2059
-	 * The memory in KiB to be used by the algorithm for computing a hash. The value
2060
-	 * must be an integer, and the minimum value is 8 times the number of CPU threads.
2061
-	 * Values that undershoot the minimum will be ignored in favor of the minimum.
2062
-	 */
2063
-	'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
2064
-
2065
-	/**
2066
-	 * The number of iterations that are used by the algorithm for computing a hash.
2067
-	 * The value must be an integer, and the minimum value is ``1``. Values that
2068
-	 * undershoot the minimum will be ignored in favor of the minimum.
2069
-	 */
2070
-	'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
2071
-
2072
-	/**
2073
-	 * The hashing cost used by hashes generated by Nextcloud
2074
-	 * Using a higher value requires more time and CPU power to calculate the hashes
2075
-	 */
2076
-	'hashingCost' => 10,
2077
-
2078
-	/**
2079
-	 * All other configuration options
2080
-	 */
2081
-
2082
-	/**
2083
-	 * Additional driver options for the database connection, e.g., to enable SSL
2084
-	 * encryption in MySQL or specify a custom wait timeout on a cheap hoster.
2085
-	 *
2086
-	 * When setting up TLS/SSL for encrypting the connections, you need to ensure that
2087
-	 * the passed keys and certificates are readable by the PHP process. In addition,
2088
-	 * ``PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT`` might need to be set to false, if the
2089
-	 * database server's certificate CN does not match with the hostname used to connect.
2090
-	 * The standard behavior here is different from the MySQL/MariaDB CLI client, which
2091
-	 * does not verify the server cert except ``--ssl-verify-server-cert`` is passed manually.
2092
-	 */
2093
-	'dbdriveroptions' => [
2094
-		PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
2095
-		PDO::MYSQL_ATTR_SSL_KEY => '/file/path/to/mysql-client-key.pem',
2096
-		PDO::MYSQL_ATTR_SSL_CERT => '/file/path/to/mysql-client-cert.pem',
2097
-		PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
2098
-		PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800'
2099
-	],
2100
-
2101
-	/**
2102
-	 * SQLite3 journal mode can be specified using this configuration parameter -
2103
-	 * can be ``'WAL'`` or ``'DELETE'``. See https://www.sqlite.org/wal.html for more details.
2104
-	 */
2105
-	'sqlite.journal_mode' => 'DELETE',
2106
-
2107
-	/**
2108
-	 * During setup, if requirements are met (see below), this setting is set to true
2109
-	 * to enable MySQL to handle 4-byte characters instead of 3-byte characters.
2110
-	 *
2111
-	 * To convert an existing 3-byte setup to a 4-byte setup, configure the MySQL
2112
-	 * parameters as described below and run the migration command:
2113
-	 * ``./occ db:convert-mysql-charset``
2114
-	 * This config setting will be automatically updated after a successful migration.
2115
-	 *
2116
-	 * Refer to the documentation for more details.
2117
-	 *
2118
-	 * MySQL requires specific settings for longer indexes (> 767 bytes), which are
2119
-	 * necessary for 4-byte character support::
2120
-	 *
2121
-	 *     [mysqld]
2122
-	 *     innodb_large_prefix=ON
2123
-	 *     innodb_file_format=Barracuda
2124
-	 *     innodb_file_per_table=ON
2125
-	 *
2126
-	 * Tables will be created with:
2127
-	 *  * character set: ``utf8mb4``
2128
-	 *  * collation:     ``utf8mb4_bin``
2129
-	 *  * row_format:    ``dynamic``
2130
-	 *
2131
-	 * See:
2132
-	 *  * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html
2133
-	 *  * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
2134
-	 *  * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
2135
-	 *  * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html
2136
-	 *  * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/
2137
-	 */
2138
-	'mysql.utf8mb4' => false,
2139
-
2140
-	/**
2141
-	 * For search queries in the database, a default collation is chosen based on the
2142
-	 * character set. In some cases, a different collation is desired, such as for
2143
-	 * accent-sensitive searches.
2144
-	 *
2145
-	 * MariaDB and MySQL share some collations, but also have incompatible ones,
2146
-	 * depending on the database server version.
2147
-	 *
2148
-	 * This option allows overriding the automatic collation choice. Example::
2149
-	 *
2150
-	 *     'mysql.collation' => 'utf8mb4_0900_as_ci',
2151
-	 *
2152
-	 * This setting does not affect table creation or setup, where utf8[mb4]_bin is
2153
-	 * always used. It applies only to SQL queries using LIKE comparison operators.
2154
-	 */
2155
-	'mysql.collation' => null,
2156
-
2157
-	/**
2158
-	 * PostgreSQL SSL connection
2159
-	 */
2160
-	'pgsql_ssl' => [
2161
-		'mode' => '',
2162
-		'cert' => '',
2163
-		'rootcert' => '',
2164
-		'key' => '',
2165
-		'crl' => '',
2166
-	],
2167
-
2168
-	/**
2169
-	 * Database types supported for installation.
2170
-	 *
2171
-	 * Available:
2172
-	 *  - sqlite (SQLite3)
2173
-	 *  - mysql (MySQL)
2174
-	 *  - pgsql (PostgreSQL)
2175
-	 *  - oci (Oracle)
2176
-	 *
2177
-	 * Defaults to:
2178
-	 *  - sqlite (SQLite3)
2179
-	 *  - mysql (MySQL)
2180
-	 *  - pgsql (PostgreSQL)
2181
-	 */
2182
-	'supportedDatabases' => [
2183
-		'sqlite',
2184
-		'mysql',
2185
-		'pgsql',
2186
-		'oci',
2187
-	],
2188
-
2189
-	/**
2190
-	 * Override the location where Nextcloud stores temporary files. Useful in setups
2191
-	 * where the system temporary directory is on a limited-space ramdisk, restricted,
2192
-	 * or when using external storage that does not support streaming.
2193
-	 *
2194
-	 * The web server user/PHP must have write access to this directory. Ensure that
2195
-	 * PHP configuration recognizes this as a valid temporary directory by setting
2196
-	 * the TMP, TMPDIR, and TEMP environment variables accordingly. Additional
2197
-	 * permissions may be required for AppArmor or SELinux.
2198
-	 */
2199
-	'tempdirectory' => '/tmp/nextcloudtemp',
2200
-
2201
-	/**
2202
-	 * Override the location where Nextcloud stores update files during updates.
2203
-	 * Useful when the default ``datadirectory`` is on a network disk like NFS or is
2204
-	 * otherwise restricted. Defaults to the value of ``datadirectory`` if unset.
2205
-	 *
2206
-	 * If set, the directory must be located outside the Nextcloud installation
2207
-	 * directory and writable by the web server user.
2208
-	 */
2209
-	'updatedirectory' => '',
2210
-
2211
-	/**
2212
-	 * Block specific files or filenames, disallowing uploads or access (read and write).
2213
-	 * ``.htaccess`` is blocked by default.
2214
-	 *
2215
-	 * WARNING: Use this only if you understand the implications.
2216
-	 *
2217
-	 * NOTE: This list is case-insensitive.
2218
-	 *
2219
-	 * Defaults to ``['.htaccess']``
2220
-	 */
2221
-	'forbidden_filenames' => ['.htaccess'],
2222
-
2223
-	/**
2224
-	 * Disallow uploads of files with specific basenames. Matching existing files
2225
-	 * cannot be updated, and no new files can be created in matching folders.
2226
-	 *
2227
-	 * The basename is the filename without the extension, e.g., for "archive.tar.gz",
2228
-	 * the basename is "archive".
2229
-	 *
2230
-	 * NOTE: This list is case-insensitive.
2231
-	 *
2232
-	 * Defaults to ``[]`` (empty array)
2233
-	 */
2234
-	'forbidden_filename_basenames' => [],
2235
-
2236
-	/**
2237
-	 * Block specific characters in filenames. Useful for filesystems or operating
2238
-	 * systems (e.g., Windows) that do not support certain characters. Matching
2239
-	 * existing files cannot be updated, and no new files can be created in matching
2240
-	 * folders.
2241
-	 *
2242
-	 * The ``/`` and ``\`` characters, as well as ASCII characters [0-31], are always
2243
-	 * forbidden.
2244
-	 *
2245
-	 * Example for Windows: ``['?', '<', '>', ':', '*', '|', '"']``
2246
-	 * See: https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
2247
-	 *
2248
-	 * Defaults to ``[]`` (empty array)
2249
-	 */
2250
-	'forbidden_filename_characters' => [],
2251
-
2252
-	/**
2253
-	 * Deny specific file extensions. Matching existing files cannot be updated, and
2254
-	 * no new files can be created in matching folders.
2255
-	 *
2256
-	 * The ``'.part'`` extension is always forbidden, as it is used internally by Nextcloud.
2257
-	 *
2258
-	 * Defaults to ``['.filepart', '.part']``
2259
-	 */
2260
-	'forbidden_filename_extensions' => ['.part', '.filepart'],
2261
-
2262
-	/**
2263
-	 * Specify the name of a theme to apply to Nextcloud. Themes are located in
2264
-	 * ``nextcloud/themes/`` by default.
2265
-	 *
2266
-	 * Defaults to the theming app, included since Nextcloud 9.
2267
-	 */
2268
-	'theme' => '',
2269
-
2270
-	/**
2271
-	 * Enforce a specific user theme, disabling user theming settings. Must be a
2272
-	 * valid ITheme ID, e.g., ``dark``, ``dark-highcontrast``, ``default``, ``light``,
2273
-	 * ``light-highcontrast``, ``opendyslexic``.
2274
-	 */
2275
-	'enforce_theme' => '',
2276
-
2277
-	/**
2278
-	 * Enable or disable Progressive Web App (PWA) functionality, which allows
2279
-	 * browsers to open web applications in dedicated windows.
2280
-	 *
2281
-	 * Defaults to ``true``
2282
-	 */
2283
-	'theming.standalone_window.enabled' => true,
2284
-
2285
-	/**
2286
-	 * Specify the default cipher for encrypting files. Supported ciphers:
2287
-	 *  - AES-256-CTR
2288
-	 *  - AES-128-CTR
2289
-	 *  - AES-256-CFB
2290
-	 *  - AES-128-CFB
2291
-	 *
2292
-	 * Defaults to ``AES-256-CTR``
2293
-	 */
2294
-	'cipher' => 'AES-256-CTR',
2295
-
2296
-	/**
2297
-	 * Use the legacy base64 format for encrypted files instead of the more
2298
-	 * space-efficient binary format. This affects only newly written files; existing
2299
-	 * encrypted files remain readable regardless of the format.
2300
-	 *
2301
-	 * Defaults to ``false``
2302
-	 */
2303
-	'encryption.use_legacy_base64_encoding' => false,
2304
-
2305
-	/**
2306
-	 * Specify the minimum Nextcloud desktop client version allowed to sync with this
2307
-	 * server. Connections from earlier clients will be denied. Defaults to the
2308
-	 * minimum officially supported version at the time of this server release.
2309
-	 *
2310
-	 * Changing this may cause older, unsupported clients to malfunction, potentially
2311
-	 * leading to data loss or unexpected behavior.
2312
-	 *
2313
-	 * Defaults to ``3.1.0``
2314
-	 */
2315
-	'minimum.supported.desktop.version' => '3.1.0',
2316
-
2317
-	/**
2318
-	 * Specify the maximum Nextcloud desktop client version allowed to sync with this
2319
-	 * server. Connections from later clients will be denied.
2320
-	 *
2321
-	 * Defaults to ``99.99.99``
2322
-	 */
2323
-	'maximum.supported.desktop.version' => '99.99.99',
2324
-
2325
-	/**
2326
-	 * Allow local storage to contain symlinks.
2327
-	 * WARNING: Not recommended, as this allows Nextcloud to access files outside the
2328
-	 * data directory, posing a potential security risk.
2329
-	 *
2330
-	 * Defaults to ``false``
2331
-	 */
2332
-	'localstorage.allowsymlinks' => false,
2333
-
2334
-	/**
2335
-	 * Nextcloud overrides umask to ensure suitable access permissions regardless of
2336
-	 * web server or PHP-FPM configuration. Modifying this value has security
2337
-	 * implications and may cause issues with the installation.
2338
-	 *
2339
-	 * Most installations should not modify this value.
2340
-	 *
2341
-	 * Defaults to ``0022``
2342
-	 */
2343
-	'localstorage.umask' => 0022,
2344
-
2345
-	/**
2346
-	 * Allow storage systems that do not support modifying existing files to overcome
2347
-	 * this limitation by removing files before overwriting.
2348
-	 *
2349
-	 * Defaults to ``false``
2350
-	 */
2351
-	'localstorage.unlink_on_truncate' => false,
2352
-
2353
-	/**
2354
-	 * EXPERIMENTAL: Include external storage in quota calculations.
2355
-	 *
2356
-	 * Defaults to ``false``
2357
-	 */
2358
-	'quota_include_external_storage' => false,
2359
-
2360
-	/**
2361
-	 * When an external storage is unavailable (e.g., due to failed authentication),
2362
-	 * it is flagged as such for a specified duration. For authentication failures,
2363
-	 * this delay can be customized to reduce the likelihood of account lockouts in
2364
-	 * systems like Active Directory.
2365
-	 *
2366
-	 * Defaults to ``1800`` seconds (30 minutes)
2367
-	 */
2368
-	'external_storage.auth_availability_delay' => 1800,
2369
-
2370
-	/**
2371
-	 * Allow creation of external storages of type "Local" via the web interface and
2372
-	 * APIs. When disabled, local storages can still be created using the occ command::
2373
-	 *   occ files_external:create /mountpoint local null::null -c datadir=/path/to/data
2374
-	 *
2375
-	 * Defaults to ``true``
2376
-	 */
2377
-	'files_external_allow_create_new_local' => true,
2378
-
2379
-	/**
2380
-	 * Specify how often the local filesystem (Nextcloud data/ directory and NFS
2381
-	 * mounts in data/) is checked for changes made outside Nextcloud. This does not
2382
-	 * apply to external storage.
2383
-	 *
2384
-	 * - ``0`` -> Never check the filesystem for outside changes, improving performance when no external changes are expected.
2385
-	 * - ``1`` -> Check each file or folder at most once per request, recommended for general use if outside changes are possible.
2386
-	 *
2387
-	 * Defaults to ``0``
2388
-	 */
2389
-	'filesystem_check_changes' => 0,
2390
-
2391
-	/**
2392
-	 * Store part files created during upload in the same storage as the upload
2393
-	 * target. Setting this to false stores part files in the root of the user's
2394
-	 * folder, which may be necessary for external storage with limited rename
2395
-	 * capabilities.
2396
-	 *
2397
-	 * Defaults to ``true``
2398
-	 */
2399
-	'part_file_in_storage' => true,
2400
-
2401
-	/**
2402
-	 * Specify the location of the ``mount.json`` file.
2403
-	 *
2404
-	 * Defaults to ``data/mount.json`` in the Nextcloud directory.
2405
-	 */
2406
-	'mount_file' => '/var/www/nextcloud/data/mount.json',
2407
-
2408
-	/**
2409
-	 * Prevent Nextcloud from updating the cache due to filesystem changes for all
2410
-	 * storage.
2411
-	 *
2412
-	 * Defaults to ``false``
2413
-	 */
2414
-	'filesystem_cache_readonly' => false,
2415
-
2416
-	/**
2417
-	 * List of trusted proxy servers. Supported formats:
2418
-	 *
2419
-	 * - IPv4 addresses, e.g., ``192.168.2.123``
2420
-	 * - IPv4 ranges in CIDR notation, e.g., ``192.168.2.0/24``
2421
-	 * - IPv6 addresses, e.g., ``fd9e:21a7:a92c:2323::1``
2422
-	 * - IPv6 ranges in CIDR notation, e.g., ``2001:db8:85a3:8d3:1319:8a20::/95``
2423
-	 *
2424
-	 * If a request's ``REMOTE_ADDR`` matches an address here, it is treated as a proxy,
2425
-	 * and the client IP is read from the HTTP header specified in
2426
-	 * ``forwarded_for_headers`` instead of ``REMOTE_ADDR``.
2427
-	 *
2428
-	 * Ensure ``forwarded_for_headers`` is configured if ``trusted_proxies`` is set.
2429
-	 *
2430
-	 * Defaults to ``[]`` (empty array)
2431
-	 */
2432
-	'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],
2433
-
2434
-	/**
2435
-	 * Headers trusted as containing the client IP address when used with
2436
-	 * ``trusted_proxies``. For example, use ``HTTP_X_FORWARDED_FOR`` for the
2437
-	 * ``X-Forwarded-For`` header.
2438
-	 *
2439
-	 * Incorrect configuration allows clients to spoof their IP address, bypassing
2440
-	 * access controls and rendering logs unreliable.
2441
-	 *
2442
-	 * Defaults to ``['HTTP_X_FORWARDED_FOR']``
2443
-	 */
2444
-	'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],
2445
-
2446
-	/**
2447
-	 * List of trusted IP ranges for admin actions. If non-empty, all admin actions
2448
-	 * must originate from IPs within these ranges.
2449
-	 *
2450
-	 * Supported formats:
2451
-	 * - IPv4 addresses or ranges, e.g., ``192.0.2.42/32``, ``233.252.0.0/24``
2452
-	 * - IPv6 addresses or ranges, e.g., ``2001:db8::13:37/64``
2453
-	 *
2454
-	 * Defaults to ``[]`` (empty array)
2455
-	 */
2456
-	'allowed_admin_ranges' => ['192.0.2.42/32', '233.252.0.0/24', '2001:db8::13:37/64'],
2457
-
2458
-	/**
2459
-	 * Maximum file size (in megabytes) for animating GIFs on public sharing pages.
2460
-	 * If a GIF exceeds this size, a static preview is shown.
2461
-	 *
2462
-	 * Set to ``-1`` for no limit.
2463
-	 *
2464
-	 * Defaults to ``10`` megabytes
2465
-	 */
2466
-	'max_filesize_animated_gifs_public_sharing' => 10,
2467
-
2468
-	/**
2469
-	 * Set the lock's time-to-live (TTL) in seconds. Locks older than this are
2470
-	 * automatically cleaned up.
2471
-	 *
2472
-	 * Defaults to ``3600`` seconds (1 hour) or the PHP ``max_execution_time``,
2473
-	 * whichever is higher.
2474
-	 */
2475
-	'filelocking.ttl' => 60 * 60,
2476
-
2477
-	/**
2478
-	 * Memory caching backend for file locking. Redis is highly recommended to avoid
2479
-	 * data loss, as many memcache backends may evict values unexpectedly.
2480
-	 *
2481
-	 * Defaults to ``none``
2482
-	 */
2483
-	'memcache.locking' => '\\OC\\Memcache\\Redis',
2484
-
2485
-	/**
2486
-	 * Enable debug logging for file locking. This can generate a large volume of log
2487
-	 * entries, potentially causing performance degradation and large log files on
2488
-	 * busy instances.
2489
-	 *
2490
-	 * Use with ``log.condition`` to limit logging in production environments.
2491
-	 *
2492
-	 * Defaults to ``false``
2493
-	 */
2494
-	'filelocking.debug' => false,
2495
-
2496
-	/**
2497
-	 * Disable the web-based updater.
2498
-	 *
2499
-	 * Defaults to ``false``
2500
-	 */
2501
-	'upgrade.disable-web' => false,
2502
-
2503
-	/**
2504
-	 * Customize the CLI upgrade documentation link.
2505
-	 */
2506
-	'upgrade.cli-upgrade-link' => '',
2507
-
2508
-	/**
2509
-	 * Additional line(s) (string or array of strings)
2510
-	 * that will be added to .user.ini on each update by the updater.
2511
-	 *
2512
-	 * Defaults to ``''`` (empty string)
2513
-	 */
2514
-	'user_ini_additional_lines' => '',
2515
-
2516
-	/**
2517
-	 * Customize the server logs documentation link for exception handling.
2518
-	 */
2519
-	'documentation_url.server_logs' => '',
2520
-
2521
-	/**
2522
-	 * Enable debugging mode for Nextcloud. Only use for local development, not in
2523
-	 * production, as it disables minification and outputs additional debug
2524
-	 * information.
2525
-	 *
2526
-	 * Defaults to ``false``
2527
-	 */
2528
-	'debug' => false,
2529
-
2530
-	/**
2531
-	 * Set the data fingerprint for the current data served. Used by clients to
2532
-	 * detect if a backup has been restored. Update this by running::
2533
-	 *   occ maintenance:data-fingerprint
2534
-	 *
2535
-	 * Changing or deleting this value may cause connected clients to stall until
2536
-	 * conflicts are resolved.
2537
-	 *
2538
-	 * Defaults to ``''`` (empty string)
2539
-	 */
2540
-	'data-fingerprint' => '',
2541
-
2542
-	/**
2543
-	 * This entry serves as a warning if the sample configuration was copied.
2544
-	 * DO NOT ADD THIS TO YOUR CONFIGURATION!
2545
-	 *
2546
-	 * Ensure all settings are modified only after consulting the documentation.
2547
-	 */
2548
-	'copied_sample_config' => true,
2549
-
2550
-	/**
2551
-	 * Use a custom lookup server to publish user data.
2552
-	 *
2553
-	 * Defaults to ``https://lookup.nextcloud.com``
2554
-	 */
2555
-	'lookup_server' => 'https://lookup.nextcloud.com',
2556
-
2557
-	/**
2558
-	 * Enable Nextcloud's Global Scale architecture.
2559
-	 *
2560
-	 * Defaults to ``false``
2561
-	 */
2562
-	'gs.enabled' => false,
2563
-
2564
-	/**
2565
-	 * Configure federation for Global Scale setups. Set to ``global`` to allow
2566
-	 * federation outside the environment.
2567
-	 *
2568
-	 * Defaults to ``internal``
2569
-	 */
2570
-	'gs.federation' => 'internal',
2571
-
2572
-	/**
2573
-	 * List of user agents exempt from SameSite cookie protection due to non-standard
2574
-	 * HTTP behavior.
2575
-	 *
2576
-	 * WARNING: Use only if you understand the implications.
2577
-	 *
2578
-	 * Defaults to:
2579
-	 *
2580
-	 * - ``/^WebDAVFS/`` (OS X Finder)
2581
-	 * - ``/^Microsoft-WebDAV-MiniRedir/`` (Windows WebDAV drive)
2582
-	 */
2583
-	'csrf.optout' => [
2584
-		'/^WebDAVFS/', // OS X Finder
2585
-		'/^Microsoft-WebDAV-MiniRedir/', // Windows WebDAV drive
2586
-	],
2587
-
2588
-	/**
2589
-	 * Specify allowed user agents for Login Flow V2 using regular expressions.
2590
-	 * User agents not matching this list are denied access to Login Flow V2.
2591
-	 *
2592
-	 * WARNING: Use only if you understand the implications.
2593
-	 *
2594
-	 * Example: Allow only the Nextcloud Android app::
2595
-	 *
2596
-	 *    'core.login_flow_v2.allowed_user_agents' => ['/Nextcloud-android/i'],
2597
-	 *
2598
-	 * Defaults to ``[]`` (empty array)
2599
-	 */
2600
-	'core.login_flow_v2.allowed_user_agents' => [],
2601
-
2602
-	/**
2603
-	 * Show or hide the "simple sign up" link on public pages.
2604
-	 * See: https://nextcloud.com/signup/
2605
-	 *
2606
-	 * Defaults to ``true``
2607
-	 */
2608
-	'simpleSignUpLink.shown' => true,
2609
-
2610
-	/**
2611
-	 * Enable or disable autocompletion for the login form. Disabling this prevents
2612
-	 * browsers from remembering login credentials, which may be required for
2613
-	 * compliance with certain security policies.
2614
-	 *
2615
-	 * Defaults to ``true``
2616
-	 */
2617
-	'login_form_autocomplete' => true,
2618
-
2619
-	/**
2620
-	 * Set a timeout (in seconds) for the login form. After this period, the form is
2621
-	 * reset to prevent password leaks on public devices if the user forgets to clear
2622
-	 * it.
2623
-	 *
2624
-	 * A value of 0 disables the timeout.
2625
-	 *
2626
-	 * Defaults to ``300`` seconds (5 minutes)
2627
-	 */
2628
-	'login_form_timeout' => 300,
2629
-
2630
-	/**
2631
-	 * Suppress warnings for outdated or unsupported browsers. When enabled, users
2632
-	 * can bypass the warning after reading it.
2633
-	 *
2634
-	 * Set to ``true`` to disable the warning.
2635
-	 *
2636
-	 * Defaults to ``false``
2637
-	 */
2638
-	'no_unsupported_browser_warning' => false,
2639
-
2640
-	/**
2641
-	 * Disable background scanning of files. When enabled, a background job runs
2642
-	 * every 10 minutes to sync the filesystem and database for up to 500 users with
2643
-	 * unscanned files (size < 0 in filecache).
2644
-	 *
2645
-	 * Defaults to ``false``
2646
-	 */
2647
-	'files_no_background_scan' => false,
2648
-
2649
-	/**
2650
-	 * Log all database queries to a file.
2651
-	 *
2652
-	 * WARNING: This significantly reduces server performance and is intended only
2653
-	 * for debugging or profiling query interactions. Sensitive data may be logged in
2654
-	 * plain text.
2655
-	 */
2656
-	'query_log_file' => '',
2657
-
2658
-	/**
2659
-	 * Prefix all queries with the request ID when set to `yes`.
2660
-	 *
2661
-	 * Requires ``query_log_file`` to be set.
2662
-	 */
2663
-	'query_log_file_requestid' => '',
2664
-
2665
-	/**
2666
-	 * Include all query parameters in the query log when set to `yes`.
2667
-	 *
2668
-	 * Requires ``query_log_file`` to be set.
2669
-	 * WARNING: This may log sensitive data in plain text.
2670
-	 */
2671
-	'query_log_file_parameters' => '',
2672
-
2673
-	/**
2674
-	 * Include a backtrace in the query log when set to `yes`.
2675
-	 *
2676
-	 * Requires ``query_log_file`` to be set.
2677
-	 */
2678
-	'query_log_file_backtrace' => '',
2679
-
2680
-	/**
2681
-	 * Log all Redis requests to a file.
2682
-	 *
2683
-	 * WARNING: This significantly reduces server performance and is intended only
2684
-	 * for debugging or profiling Redis interactions. Sensitive data may be logged in
2685
-	 * plain text.
2686
-	 */
2687
-	'redis_log_file' => '',
2688
-
2689
-	/**
2690
-	 * Enable diagnostics event logging. Logs timings of common execution steps at
2691
-	 * debug level. Use with ``log.condition`` to enable conditionally in production.
2692
-	 *
2693
-	 * Defaults to ``true``
2694
-	 */
2695
-	'diagnostics.logging' => true,
2696
-
2697
-	/**
2698
-	 * Limit diagnostics event logging to events longer than the specified threshold
2699
-	 * (in milliseconds). A value of 0 disables diagnostics event logging.
2700
-	 */
2701
-	'diagnostics.logging.threshold' => 0,
2702
-
2703
-	/**
2704
-	 * Enable profiling globally.
2705
-	 *
2706
-	 * Defaults to ``true``
2707
-	 */
2708
-	'profile.enabled' => true,
2709
-
2710
-	/**
2711
-	 * Override default scopes for account data. Valid properties and scopes are
2712
-	 * defined in ``OCP\Accounts\IAccountManager``. Values are merged with defaults
2713
-	 * from ``OC\Accounts\AccountManager``.
2714
-	 *
2715
-	 * Example: Set phone property to private scope:
2716
-	 * ``[\OCP\Accounts\IAccountManager::PROPERTY_PHONE => \OCP\Accounts\IAccountManager::SCOPE_PRIVATE]``
2717
-	 */
2718
-	'account_manager.default_property_scope' => [],
2719
-
2720
-	/**
2721
-	 * Enable the deprecated Projects feature, superseded by Related Resources since
2722
-	 * Nextcloud 25.
2723
-	 *
2724
-	 * Defaults to ``false``
2725
-	 */
2726
-	'projects.enabled' => false,
2727
-
2728
-	/**
2729
-	 * Enable the bulk upload feature.
2730
-	 *
2731
-	 * Defaults to ``true``
2732
-	 */
2733
-	'bulkupload.enabled' => true,
2734
-
2735
-	/**
2736
-	 * Enable fetching Open Graph metadata from remote URLs.
2737
-	 *
2738
-	 * Defaults to ``true``
2739
-	 */
2740
-	'reference_opengraph' => true,
2741
-
2742
-	/**
2743
-	 * Enable the legacy unified search.
2744
-	 *
2745
-	 * Defaults to ``false``
2746
-	 */
2747
-	'unified_search.enabled' => false,
2748
-
2749
-	/**
2750
-	 * Enable features that do not yet comply with accessibility standards.
2751
-	 *
2752
-	 * Defaults to ``true``
2753
-	 */
2754
-	'enable_non-accessible_features' => true,
2755
-
2756
-	/**
2757
-	 * Directories where Nextcloud searches for external binaries (e.g., LibreOffice,
2758
-	 * sendmail, ffmpeg).
2759
-	 *
2760
-	 * Defaults to:
2761
-	 * - /usr/local/sbin
2762
-	 * - /usr/local/bin
2763
-	 * - /usr/sbin
2764
-	 * - /usr/bin
2765
-	 * - /sbin
2766
-	 * - /bin
2767
-	 * - /opt/bin
2768
-	 */
2769
-	'binary_search_paths' => [
2770
-		'/usr/local/sbin',
2771
-		'/usr/local/bin',
2772
-		'/usr/sbin',
2773
-		'/usr/bin',
2774
-		'/sbin',
2775
-		'/bin',
2776
-		'/opt/bin',
2777
-	],
2778
-
2779
-	/**
2780
-	 * Maximum chunk size for chunked uploads (in bytes). Larger chunks increase
2781
-	 * throughput but yield diminishing returns above 100 MiB. Services like
2782
-	 * Cloudflare may limit to 100 MiB.
2783
-	 *
2784
-	 * Defaults to ``100 * 1024 * 1024`` (100 MiB)
2785
-	 */
2786
-	'files.chunked_upload.max_size' => 100 * 1024 * 1024,
2787
-
2788
-	/**
2789
-	 * Maximum number of chunks uploaded in parallel during chunked uploads. Higher
2790
-	 * counts increase throughput but consume more server resources, with diminishing
2791
-	 * returns.
2792
-	 *
2793
-	 * Defaults to ``5``
2794
-	 */
2795
-	'files.chunked_upload.max_parallel_count' => 5,
2796
-
2797
-	/**
2798
-	 * Allow users to manually delete files from their trashbin. Automated deletions
2799
-	 * (e.g., due to low quota) are unaffected.
2800
-	 *
2801
-	 * Defaults to ``true``
2802
-	 */
2803
-	'files.trash.delete' => true,
2804
-
2805
-	/**
2806
-	 * Enable PHP 8.4 lazy objects for Dependency Injection to improve performance by
2807
-	 * avoiding instantiation of unused objects.
2808
-	 *
2809
-	 * Defaults to ``true``
2810
-	 */
2811
-	'enable_lazy_objects' => true,
32
+    /**
33
+     * Default Parameters
34
+     *
35
+     * These parameters are configured by the Nextcloud installer, and are required
36
+     * for your Nextcloud server to operate.
37
+     */
38
+
39
+
40
+    /**
41
+     * This is a unique identifier for your Nextcloud installation, created
42
+     * automatically by the installer. This example is for documentation only,
43
+     * and you should never use it because it will not work. A valid ``instanceid``
44
+     * is created when you install Nextcloud.
45
+     */
46
+    'instanceid' => '',
47
+
48
+    /**
49
+     * The salt used to hash all passwords, auto-generated by the Nextcloud
50
+     * installer. (There are also per-user salts.) If you lose this salt, you lose
51
+     * all your passwords. This example is for documentation only, and you should
52
+     * never use it.
53
+     *
54
+     * @deprecated This salt is deprecated and only used for legacy-compatibility,
55
+     * developers should *NOT* use this value for anything nowadays.
56
+     */
57
+    'passwordsalt' => '',
58
+
59
+    /**
60
+     * Secret used by Nextcloud for various purposes, e.g., to encrypt data. If you
61
+     * lose this string, there will be data corruption.
62
+     */
63
+    'secret' => '',
64
+
65
+    /**
66
+     * Your list of trusted domains that users can log into. Specifying trusted
67
+     * domains prevents host header poisoning. Do not remove this, as it performs
68
+     * necessary security checks.
69
+     *
70
+     * You can specify:
71
+     *
72
+     * - The exact hostname of your host or virtual host, e.g. ``demo.example.org``.
73
+     * - The exact hostname with permitted port, e.g. ``demo.example.org:443``. This disallows all other ports on this host
74
+     * - Use ``*`` as a wildcard, e.g., ``ubos-raspberry-pi*.local`` will allow ``ubos-raspberry-pi.local`` and ``ubos-raspberry-pi-2.local``
75
+     * - The IP address with or without permitted port, e.g. ``[2001:db8::1]:8080`` Using TLS certificates where ``commonName=<IP address>`` is deprecated
76
+     */
77
+    'trusted_domains' => [
78
+        'demo.example.org',
79
+        'otherdomain.example.org',
80
+        '10.111.112.113',
81
+        '[2001:db8::1]'
82
+    ],
83
+
84
+    /**
85
+     * The validity domain for cookies, for example ``''`` (cookies will be sent only
86
+     * the domain that defined it, e.g. ``'demo.example.org'``), ``'demo.example.org'``
87
+     * (cookies will be valid for the domain and all subdomains), ...
88
+     *
89
+     * Defaults to ``''`` (safe option)
90
+     */
91
+    'cookie_domain' => '',
92
+
93
+    /**
94
+     * Where user files are stored. The SQLite database is also stored here, when
95
+     * you use SQLite.
96
+     *
97
+     * Default to ``data/`` in the Nextcloud directory.
98
+     */
99
+    'datadirectory' => '/var/www/nextcloud/data',
100
+
101
+    /**
102
+     * The current version number of your Nextcloud installation. This is set up
103
+     * during installation and update, so you shouldn't need to change it.
104
+     */
105
+    'version' => '',
106
+
107
+    /**
108
+     * Identifies the database used with this installation. See also config option
109
+     * ``supportedDatabases``
110
+     *
111
+     * Available:
112
+     *  - sqlite3 (SQLite3)
113
+     *  - mysql (MySQL/MariaDB)
114
+     *  - pgsql (PostgreSQL)
115
+     *
116
+     * Defaults to ``sqlite3``
117
+     */
118
+    'dbtype' => 'sqlite3',
119
+
120
+    /**
121
+     * Your host server name, for example ``localhost``, ``hostname``,
122
+     * ``hostname.example.com``, or the IP address.
123
+     * To specify a port, use ``hostname:####``; for IPv6 addresses, use the URI notation ``[ip]:port``.
124
+     * To specify a Unix socket, use ``localhost:/path/to/directory/containing/socket`` or
125
+     * ``:/path/to/directory/containing/socket``, e.g., ``localhost:/run/postgresql/``.
126
+     */
127
+    'dbhost' => '',
128
+
129
+    /**
130
+     * The name of the Nextcloud database, which is set during installation. You
131
+     * should not need to change this.
132
+     */
133
+    'dbname' => 'nextcloud',
134
+
135
+    /**
136
+     * The user that Nextcloud uses to write to the database. This must be unique
137
+     * across Nextcloud instances using the same SQL database. This is set up during
138
+     * installation, so you shouldn't need to change it.
139
+     */
140
+    'dbuser' => '',
141
+
142
+    /**
143
+     * The password for the database user. This is set up during installation, so
144
+     * you shouldn't need to change it.
145
+     */
146
+    'dbpassword' => '',
147
+
148
+    /**
149
+     * Prefix for the Nextcloud tables in the database.
150
+     *
151
+     * Default to ``oc_``
152
+     */
153
+    'dbtableprefix' => 'oc_',
154
+
155
+    /**
156
+     * Enable persistent connections to the database.
157
+     * This setting uses the ``persistent`` option from Doctrine DBAL, which in turn
158
+     * uses the PDO::ATTR_PERSISTENT option from the PDO driver.
159
+     */
160
+    'dbpersistent' => '',
161
+
162
+    /**
163
+     * Specify read-only replicas to be used by Nextcloud when querying the database
164
+     */
165
+    'dbreplica' => [
166
+        ['user' => 'nextcloud', 'password' => 'password1', 'host' => 'replica1', 'dbname' => ''],
167
+        ['user' => 'nextcloud', 'password' => 'password2', 'host' => 'replica2', 'dbname' => ''],
168
+    ],
169
+
170
+    /**
171
+     * Add request ID to the database query in a comment.
172
+     *
173
+     * This can be enabled to assist in mapping database logs to Nextcloud logs.
174
+     */
175
+    'db.log_request_id' => false,
176
+
177
+    /**
178
+     * Indicates whether the Nextcloud instance was installed successfully; ``true``
179
+     * indicates a successful installation, and ``false`` indicates an unsuccessful
180
+     * installation.
181
+     *
182
+     * Defaults to ``false``
183
+     */
184
+    'installed' => false,
185
+
186
+
187
+    /**
188
+     * User Experience
189
+     *
190
+     * These optional parameters control some aspects of the user interface. Default
191
+     * values, where present, are shown.
192
+     */
193
+
194
+    /**
195
+     * This sets the default language on your Nextcloud server, using ISO_639-1
196
+     * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
197
+     * French. The default_language parameter is only used when the browser does
198
+     * not send any language, and the user hasn’t configured their own language
199
+     * preferences.
200
+     *
201
+     * Nextcloud has two distinguished language codes for German, ``de`` and ``de_DE``.
202
+     * ``de`` is used for informal German and ``de_DE`` for formal German. By setting
203
+     * this value to ``de_DE``, you can enforce the formal version of German unless
204
+     * the user has chosen something different explicitly.
205
+     *
206
+     * Defaults to ``en``
207
+     */
208
+    'default_language' => 'en',
209
+
210
+    /**
211
+     * With this setting, a language can be forced for all users. If a language is
212
+     * forced, the users are also unable to change their language in the personal
213
+     * settings. If users shall be unable to change their language, but users have
214
+     * different languages, this value can be set to ``true`` instead of a language
215
+     * code.
216
+     *
217
+     * Defaults to ``false``
218
+     */
219
+    'force_language' => 'en',
220
+
221
+    /**
222
+     * This sets the default locale on your Nextcloud server, using ISO_639
223
+     * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
224
+     * French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined
225
+     * in RFC 5646. It overrides automatic locale detection on public pages like
226
+     * login or shared items. User's locale preferences configured under "personal
227
+     * -> locale" override this setting after they have logged in.
228
+     *
229
+     * Defaults to ``en``
230
+     */
231
+    'default_locale' => 'en_US',
232
+
233
+    /**
234
+     * With this setting, it is possible to reduce the languages available in the
235
+     * language chooser. The languages have to be set as array values using ISO_639-1
236
+     * language codes such as ``en`` for English, ``de`` for German, etc.
237
+     *
238
+     * For example: Set to ``['de', 'fr']`` to only allow German and French languages.
239
+     */
240
+    'reduce_to_languages' => [],
241
+
242
+    /**
243
+     * This sets the default region for phone numbers on your Nextcloud server,
244
+     * using ISO 3166-1 country codes such as ``DE`` for Germany, ``FR`` for France, …
245
+     * It is required to allow inserting phone numbers in the user profiles starting
246
+     * without the country code (e.g., +49 for Germany).
247
+     *
248
+     * No default value!
249
+     */
250
+    'default_phone_region' => 'GB',
251
+
252
+    /**
253
+     * With this setting, a locale can be forced for all users. If a locale is
254
+     * forced, the users are also unable to change their locale in the personal
255
+     * settings. If users shall be unable to change their locale, but users have
256
+     * different languages, this value can be set to ``true`` instead of a locale
257
+     * code.
258
+     *
259
+     * Defaults to ``false``
260
+     */
261
+    'force_locale' => 'en_US',
262
+
263
+    /**
264
+     * This sets the default timezone on your Nextcloud server, using IANA
265
+     * identifiers like ``Europe/Berlin`` or ``Pacific/Auckland``. The default
266
+     * timezone parameter is only used when the timezone of the user cannot be
267
+     * determined.
268
+     *
269
+     * Defaults to ``UTC``
270
+     */
271
+    'default_timezone' => 'Europe/Berlin',
272
+
273
+    /**
274
+     * ``true`` enables the Help menu item in the user menu (top right of the
275
+     * Nextcloud Web interface).
276
+     * ``false`` removes the Help item.
277
+     */
278
+    'knowledgebaseenabled' => true,
279
+
280
+    /**
281
+     * ``true`` embeds the documentation in an iframe inside Nextcloud.
282
+     * ``false`` only shows buttons to the online documentation.
283
+     */
284
+    'knowledgebase.embedded' => false,
285
+
286
+    /**
287
+     * ``true`` allows users to change their display names (on their Personal
288
+     * pages), and ``false`` prevents them from changing their display names.
289
+     */
290
+    'allow_user_to_change_display_name' => true,
291
+
292
+    /**
293
+     * The directory where the skeleton files are located. These files will be
294
+     * copied to the data directory of new users. Set empty string to not copy any
295
+     * skeleton files. If unset and templatedirectory is an empty string, shipped
296
+     * templates will be used to create a template directory for the user.
297
+     * ``{lang}`` can be used as a placeholder for the language of the user.
298
+     * If the directory does not exist, it falls back to non-dialect (from ``de_DE``
299
+     * to ``de``). If that does not exist either, it falls back to ``default``
300
+     *
301
+     * Defaults to ``core/skeleton`` in the Nextcloud directory.
302
+     */
303
+    'skeletondirectory' => '/path/to/nextcloud/core/skeleton',
304
+
305
+    /**
306
+     * The directory where the template files are located. These files will be
307
+     * copied to the template directory of new users. Set empty string to not copy any
308
+     * template files.
309
+     * ``{lang}`` can be used as a placeholder for the language of the user.
310
+     * If the directory does not exist, it falls back to non-dialect (from ``de_DE``
311
+     * to ``de``). If that does not exist either, it falls back to ``default``
312
+     *
313
+     * To disable creating a template directory, set both skeletondirectory and
314
+     * templatedirectory to empty strings.
315
+     */
316
+    'templatedirectory' => '/path/to/nextcloud/templates',
317
+
318
+    /**
319
+     * User session
320
+     */
321
+
322
+    /**
323
+     * Lifetime of the remember login cookie. This should be larger than the
324
+     * session_lifetime. If it is set to 0, remember me is disabled.
325
+     *
326
+     * Defaults to ``60*60*24*15`` seconds (15 days)
327
+     */
328
+    'remember_login_cookie_lifetime' => 60 * 60 * 24 * 15,
329
+
330
+    /**
331
+     * The lifetime of a session after inactivity.
332
+     *
333
+     * The maximum possible time is limited by the ``session.gc_maxlifetime`` php.ini setting
334
+     * which would overwrite this option if it is less than the value in the ``config.php``
335
+     *
336
+     * Defaults to ``60*60*24`` seconds (24 hours)
337
+     */
338
+    'session_lifetime' => 60 * 60 * 24,
339
+
340
+    /**
341
+     * The timeout in seconds for requests to servers made by the DAV component (e.g., needed for federated shares).
342
+     */
343
+    'davstorage.request_timeout' => 30,
344
+
345
+    /**
346
+     * The timeout in seconds for synchronizing address books, e.g., federated system address books (as run by ``occ federation:sync-addressbooks``).
347
+     *
348
+     * Defaults to ``30`` seconds
349
+     */
350
+    'carddav_sync_request_timeout' => 30,
351
+
352
+    /**
353
+     * The limit applied to the synchronization report request, e.g. federated system address books (as run by ``occ federation:sync-addressbooks``).
354
+     */
355
+    'carddav_sync_request_truncation' => 2500,
356
+
357
+    /**
358
+     * ``true`` enables a relaxed session timeout, where the session timeout would no longer be
359
+     * handled by Nextcloud but by either the PHP garbage collection or the expiration of
360
+     * potential other session backends like Redis.
361
+     *
362
+     * This may lead to sessions being available for longer than what ``session_lifetime`` uses but
363
+     * comes with performance benefits as sessions are no longer a locking operation for concurrent
364
+     * requests.
365
+     */
366
+    'session_relaxed_expiry' => false,
367
+
368
+    /**
369
+     * Enable or disable session keep-alive when a user is logged in to the Web UI.
370
+     * Enabling this sends a "heartbeat" to the server to keep it from timing out.
371
+     *
372
+     * Defaults to ``true``
373
+     */
374
+    'session_keepalive' => true,
375
+
376
+    /**
377
+     * Enable or disable the automatic logout after session_lifetime, even if session
378
+     * keepalive is enabled. This will make sure that an inactive browser will log itself out
379
+     * even if requests to the server might extend the session lifetime.
380
+     *
381
+     * NOTE: The logout is handled on the client side. This is not a way to
382
+     * limit the duration of potentially compromised sessions.
383
+     *
384
+     * Defaults to ``false``
385
+     */
386
+    'auto_logout' => false,
387
+
388
+    /**
389
+     * Enforce token authentication for clients, which blocks requests using the user
390
+     * password for enhanced security. Users need to generate tokens in personal settings
391
+     * which can be used as passwords on their clients.
392
+     *
393
+     * Defaults to ``false``
394
+     */
395
+    'token_auth_enforced' => false,
396
+
397
+    /**
398
+     * The interval at which token activity should be updated.
399
+     * Increasing this value means that the last activity on the security page gets
400
+     * more outdated.
401
+     *
402
+     * Tokens are still checked every 5 minutes for validity
403
+     * max value: 300
404
+     *
405
+     * Defaults to ``60``
406
+     */
407
+    'token_auth_activity_update' => 60,
408
+
409
+    /**
410
+     * Whether the brute force protection shipped with Nextcloud should be enabled or not.
411
+     *
412
+     * WARNING: Disabling this is discouraged for security reasons.
413
+     *
414
+     * Defaults to ``true``
415
+     */
416
+    'auth.bruteforce.protection.enabled' => true,
417
+
418
+    /**
419
+     * Whether the brute force protection should write into the database even when a memory cache is available
420
+     *
421
+     * Using the database is most likely worse for performance, but makes investigating
422
+     * issues a lot easier as it's possible to look directly at the table to see all
423
+     * logged remote addresses and actions.
424
+     *
425
+     * Defaults to ``false``
426
+     */
427
+    'auth.bruteforce.protection.force.database' => false,
428
+
429
+    /**
430
+     * Whether the brute force protection shipped with Nextcloud should be set to testing mode.
431
+     *
432
+     * In testing mode, brute force attempts are still recorded, but the requests do
433
+     * not sleep/wait for the specified time. They will still abort with
434
+     * "429 Too Many Requests" when the maximum delay is reached.
435
+     * Enabling this is discouraged for security reasons
436
+     * and should only be done for debugging and on CI when running tests.
437
+     *
438
+     * Defaults to ``false``
439
+     */
440
+    'auth.bruteforce.protection.testing' => false,
441
+
442
+    /**
443
+     * Brute force protection: maximum number of attempts before blocking
444
+     *
445
+     * When more than max-attempts login requests are sent to Nextcloud, requests
446
+     * will abort with "429 Too Many Requests".
447
+     * For security reasons, change it only if you know what you are doing.
448
+     *
449
+     * Defaults to ``10``
450
+     */
451
+    'auth.bruteforce.max-attempts' => 10,
452
+
453
+    /**
454
+     * Whether the rate limit protection shipped with Nextcloud should be enabled or not.
455
+     *
456
+     * WARNING: Disabling this is discouraged for security reasons.
457
+     *
458
+     * Defaults to ``true``
459
+     */
460
+    'ratelimit.protection.enabled' => true,
461
+
462
+    /**
463
+     * Size of subnet used to normalize IPv6
464
+     *
465
+     * For Brute Force Protection and Rate Limiting, IPv6 addresses are truncated using subnet size.
466
+     * It defaults to /56, but you can set it between /32 and /64
467
+     *
468
+     * Defaults to ``56``
469
+     */
470
+    'security.ipv6_normalized_subnet_size' => 56,
471
+
472
+    /**
473
+     * By default, WebAuthn is available, but it can be explicitly disabled by admins
474
+     */
475
+    'auth.webauthn.enabled' => true,
476
+
477
+    /**
478
+     * Whether encrypted passwords should be stored in the database
479
+     *
480
+     * The passwords are only decrypted using the login token stored uniquely in the
481
+     * clients and allow connecting to external storages, autoconfiguring mail accounts in
482
+     * the mail app, and periodically checking if the password is still valid.
483
+     *
484
+     * This might be desirable to disable this functionality when using one-time
485
+     * passwords or when having a password policy enforcing long passwords (> 300
486
+     * characters).
487
+     *
488
+     * By default, the passwords are stored encrypted in the database.
489
+     *
490
+     * WARNING: If disabled, password changes on the user backend (e.g., on LDAP) no
491
+     * longer log connected clients out automatically. Users can still disconnect
492
+     * the clients by deleting the app token from the security settings.
493
+     */
494
+    'auth.storeCryptedPassword' => true,
495
+
496
+    /**
497
+     * By default, the login form is always available. There are cases (SSO) where an
498
+     * admin wants to avoid users entering their credentials to the system if the SSO
499
+     * app is unavailable.
500
+     *
501
+     * This will show an error. But the direct login still works with adding ``?direct=1``
502
+     */
503
+    'hide_login_form' => false,
504
+
505
+    /**
506
+     * If your user backend does not allow password resets (e.g., when it's a
507
+     * read-only user backend like LDAP), you can specify a custom link, where the
508
+     * user is redirected to, when clicking the "Reset password" link after a failed
509
+     * login attempt.
510
+     * In case you do not want to provide any link, replace the URL with ``'disabled'``
511
+     */
512
+    'lost_password_link' => 'https://example.org/link/to/password/reset',
513
+
514
+    /**
515
+     * URL to use as target for the logo link in the header (top-left logo)
516
+     *
517
+     * Defaults to the base URL of your Nextcloud instance
518
+     */
519
+    'logo_url' => 'https://example.org',
520
+
521
+    /**
522
+     * Mail Parameters
523
+     *
524
+     * These configure the email settings for Nextcloud notifications and password
525
+     * resets.
526
+     */
527
+
528
+    /**
529
+     * The return address that you want to appear on emails sent by the Nextcloud
530
+     * server, for example ``[email protected]``, substituting your own domain,
531
+     * of course.
532
+     */
533
+    'mail_domain' => 'example.com',
534
+
535
+    /**
536
+     * FROM address that overrides the built-in ``sharing-noreply`` and
537
+     * ``lostpassword-noreply`` FROM addresses.
538
+     *
539
+     * Defaults to different FROM addresses depending on the feature.
540
+     */
541
+    'mail_from_address' => 'nextcloud',
542
+
543
+    /**
544
+     * Enable SMTP class debugging.
545
+     * NOTE: ``loglevel`` will likely need to be adjusted too. See docs:
546
+     *   https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/email_configuration.html#enabling-debug-mode
547
+     *
548
+     * Defaults to ``false``
549
+     */
550
+    'mail_smtpdebug' => false,
551
+
552
+    /**
553
+     * Which mode to use for sending mail: ``sendmail``, ``smtp``, ``qmail``, or ``null``.
554
+     *
555
+     * If you are using local or remote SMTP, set this to ``smtp``.
556
+     *
557
+     * For the ``sendmail`` option, you need an installed and working email system on
558
+     * the server, with ``/usr/sbin/sendmail`` installed on your Unix system.
559
+     *
560
+     * For ``qmail``, the binary is /var/qmail/bin/sendmail, and it must be installed
561
+     * on your Unix system.
562
+     *
563
+     * Use the string ``null`` to send no mails (disable mail delivery). This can be
564
+     * useful if mails should be sent via APIs and rendering messages is not necessary.
565
+     *
566
+     * Defaults to ``smtp``
567
+     */
568
+    'mail_smtpmode' => 'smtp',
569
+
570
+    /**
571
+     * This depends on ``mail_smtpmode``. Specify the IP address of your mail
572
+     * server host. This may contain multiple hosts separated by a semicolon. If
573
+     * you need to specify the port number, append it to the IP address separated by
574
+     * a colon, like this: ``127.0.0.1:24``.
575
+     *
576
+     * Defaults to ``127.0.0.1``
577
+     */
578
+    'mail_smtphost' => '127.0.0.1',
579
+
580
+    /**
581
+     * This depends on ``mail_smtpmode``. Specify the port for sending mail.
582
+     *
583
+     * Defaults to ``25``
584
+     */
585
+    'mail_smtpport' => 25,
586
+
587
+    /**
588
+     * This depends on ``mail_smtpmode``. This sets the SMTP server timeout, in
589
+     * seconds. You may need to increase this if you are running an anti-malware or
590
+     * spam scanner.
591
+     *
592
+     * Defaults to ``10`` seconds
593
+     */
594
+    'mail_smtptimeout' => 10,
595
+
596
+    /**
597
+     * This depends on ``mail_smtpmode``. Specify ``ssl`` when you are using SSL/TLS. Any other value will be ignored.
598
+     *
599
+     * If the server advertises STARTTLS capabilities, they might be used, but they cannot be enforced by
600
+     * this config option.
601
+     *
602
+     * Defaults to ``''`` (empty string)
603
+     */
604
+    'mail_smtpsecure' => '',
605
+
606
+    /**
607
+     * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
608
+     * server requires authentication.
609
+     *
610
+     * Defaults to ``false``
611
+     */
612
+    'mail_smtpauth' => false,
613
+
614
+    /**
615
+     * This depends on ``mail_smtpauth``. Specify the username for authenticating to
616
+     * the SMTP server.
617
+     *
618
+     * Defaults to ``''`` (empty string)
619
+     */
620
+    'mail_smtpname' => '',
621
+
622
+    /**
623
+     * This depends on ``mail_smtpauth``. Specify the password for authenticating to
624
+     * the SMTP server.
625
+     *
626
+     * Default to ``''`` (empty string)
627
+     */
628
+    'mail_smtppassword' => '',
629
+
630
+    /**
631
+     * Replaces the default mail template layout. This can be utilized if the
632
+     * options to modify the mail texts with the theming app are not enough.
633
+     * The class must extend ``\OC\Mail\EMailTemplate``
634
+     */
635
+    'mail_template_class' => '\OC\Mail\EMailTemplate',
636
+
637
+    /**
638
+     * Email will be sent by default with an HTML and a plain text body. This option
639
+     * allows sending only plain text emails.
640
+     */
641
+    'mail_send_plaintext_only' => false,
642
+
643
+    /**
644
+     * This depends on ``mail_smtpmode``. Array of additional streams options that
645
+     * will be passed to underlying Swift mailer implementation.
646
+     * Defaults to an empty array.
647
+     */
648
+    'mail_smtpstreamoptions' => [],
649
+
650
+    /**
651
+     * Which mode is used for sendmail/qmail: ``smtp`` or ``pipe``.
652
+     *
653
+     * For ``smtp``, the sendmail binary is started with the parameter ``-bs``:
654
+     *   - Use the SMTP protocol on standard input and output.
655
+     *
656
+     * For ``pipe``, the binary is started with the parameters ``-t``:
657
+     *   - Read message from STDIN and extract recipients.
658
+     *
659
+     * Defaults to ``smtp``
660
+     */
661
+    'mail_sendmailmode' => 'smtp',
662
+
663
+    /**
664
+     * Proxy Configurations
665
+     */
666
+
667
+    /**
668
+     * The automatic hostname detection of Nextcloud can fail in certain reverse
669
+     * proxy and CLI/cron situations. This option allows you to manually override
670
+     * the automatic detection; for example, ``www.example.com``, or specify the port
671
+     * ``www.example.com:8080``.
672
+     */
673
+    'overwritehost' => '',
674
+
675
+    /**
676
+     * When generating URLs, Nextcloud attempts to detect whether the server is
677
+     * accessed via ``https`` or ``http``. However, if Nextcloud is behind a proxy
678
+     * and the proxy handles the ``https`` calls, Nextcloud would not know that
679
+     * ``ssl`` is in use, which would result in incorrect URLs being generated.
680
+     * Valid values are ``http`` and ``https``.
681
+     */
682
+    'overwriteprotocol' => '',
683
+
684
+    /**
685
+     * Nextcloud attempts to detect the webroot for generating URLs automatically.
686
+     * For example, if ``www.example.com/nextcloud`` is the URL pointing to the
687
+     * Nextcloud instance, the webroot is ``/nextcloud``. When proxies are in use,
688
+     * it may be difficult for Nextcloud to detect this parameter, resulting in
689
+     * invalid URLs.
690
+     */
691
+    'overwritewebroot' => '',
692
+
693
+    /**
694
+     * This option allows you to define a manual override condition as a regular
695
+     * expression for the remote IP address. For example, defining a range of IP
696
+     * addresses starting with ``10.0.0.`` and ending with 1 to 3:
697
+     * ``^10\.0\.0\.[1-3]$``
698
+     *
699
+     * Defaults to ``''`` (empty string)
700
+     */
701
+    'overwritecondaddr' => '',
702
+
703
+    /**
704
+     * Use this configuration parameter to specify the base URL for any URLs which
705
+     * are generated within Nextcloud using any kind of command line tools (cron or
706
+     * occ). The value should contain the full base URL:
707
+     * ``https://www.example.com/nextcloud``
708
+     * Please make sure to set the value to the URL that your users mainly use to access this Nextcloud.
709
+     * Otherwise, there might be problems with the URL generation via cron.
710
+     *
711
+     * Defaults to ``''`` (empty string)
712
+     */
713
+    'overwrite.cli.url' => '',
714
+
715
+    /**
716
+     * To have clean URLs without ``/index.php``, this parameter needs to be configured.
717
+     *
718
+     * This parameter will be written as "RewriteBase" on update and installation of
719
+     * Nextcloud to your ``.htaccess`` file. While this value is often simply the URL
720
+     * path of the Nextcloud installation, it cannot be set automatically properly in
721
+     * every scenario and needs thus some manual configuration.
722
+     *
723
+     * In a standard Apache setup, this usually equals the folder that Nextcloud is
724
+     * accessible at. So if Nextcloud is accessible via ``https://mycloud.org/nextcloud``,
725
+     * the correct value would most likely be ``/nextcloud``. If Nextcloud is running
726
+     * under ``https://mycloud.org/``, then it would be ``/``.
727
+     *
728
+     * Note that the above rule is not valid in every case, as there are some rare setup
729
+     * cases where this may not apply. However, to avoid any update problems, this
730
+     * configuration value is explicitly opt-in.
731
+     *
732
+     * After setting this value, run ``occ maintenance:update:htaccess``. Now, when the
733
+     * following conditions are met, Nextcloud URLs won't contain ``index.php``:
734
+     *
735
+     * - ``mod_rewrite`` is installed
736
+     * - ``mod_env`` is installed
737
+     *
738
+     * Defaults to ``''`` (empty string)
739
+     */
740
+    'htaccess.RewriteBase' => '/',
741
+
742
+    /**
743
+     * For server setups that don't have ``mod_env`` enabled or restricted (e.g., suEXEC),
744
+     * this parameter has to be set to true and will assume mod_rewrite.
745
+     *
746
+     * Please check if ``mod_rewrite`` is active and functional before setting this
747
+     * parameter, and you updated your .htaccess with ``occ maintenance:update:htaccess``.
748
+     * Otherwise, your Nextcloud installation might not be reachable any more.
749
+     * For example, try accessing resources by leaving out ``index.php`` in the URL.
750
+     */
751
+    'htaccess.IgnoreFrontController' => false,
752
+
753
+    /**
754
+     * The URL of your proxy server, for example, ``proxy.example.com:8081``.
755
+     *
756
+     * NOTE: Guzzle (the HTTP library used by Nextcloud) reads the environment
757
+     * variables ``HTTP_PROXY`` (only for CLI requests), ``HTTPS_PROXY``, and ``NO_PROXY`` by default.
758
+     *
759
+     * If you configure a proxy with Nextcloud, any default configuration by Guzzle
760
+     * is overwritten. Make sure to set ``proxyexclude`` accordingly if necessary.
761
+     *
762
+     * Defaults to ``''`` (empty string)
763
+     */
764
+    'proxy' => '',
765
+
766
+    /**
767
+     * The optional authentication for the proxy to use to connect to the internet.
768
+     * The format is: ``username:password``.
769
+     *
770
+     * Defaults to ``''`` (empty string)
771
+     */
772
+    'proxyuserpwd' => '',
773
+
774
+    /**
775
+     * List of hostnames that should not be proxied to.
776
+     * For example: ``['.mit.edu', 'foo.com']``.
777
+     *
778
+     * Hint: Use something like ``explode(',', getenv('NO_PROXY'))`` to sync this
779
+     * value with the global ``NO_PROXY`` option.
780
+     *
781
+     * Defaults to empty array.
782
+     */
783
+    'proxyexclude' => [],
784
+
785
+    /**
786
+     * Allow remote servers with local addresses, e.g., in federated shares, webcal services, and more
787
+     *
788
+     * Defaults to ``false``
789
+     */
790
+    'allow_local_remote_servers' => true,
791
+
792
+    /**
793
+     * Deleted Items (trash bin)
794
+     *
795
+     * These parameters control the Deleted files app.
796
+     */
797
+
798
+    /**
799
+     * If the trash bin app is enabled (default), this setting defines the policy
800
+     * for when files and folders in the trash bin will be permanently deleted.
801
+     *
802
+     * If the user quota limit is exceeded due to deleted files in the trash bin,
803
+     * retention settings will be ignored and files will be cleaned up until
804
+     * the quota requirements are met.
805
+     *
806
+     * The app allows for two settings, a minimum time for trash bin retention,
807
+     * and a maximum time for trash bin retention.
808
+     *
809
+     * Minimum time is the number of days a file will be kept, after which it
810
+     * *may be* deleted. A file may be deleted after the minimum number of days
811
+     * has expired if space is needed. The file will not be deleted if space is
812
+     * not needed.
813
+     *
814
+     * Whether "space is needed" depends on whether a user quota is defined or not:
815
+     *
816
+     *  * If no user quota is defined, the available space on the Nextcloud data
817
+     *    partition sets the limit for the trashbin
818
+     *    (issues: see https://github.com/nextcloud/server/issues/28451).
819
+     *  * If a user quota is defined, 50% of the user's remaining quota space sets
820
+     *    the limit for the trashbin.
821
+     *
822
+     * Maximum time is the number of days at which it is *guaranteed
823
+     * to be* deleted. There is no further dependency on the available space.
824
+     *
825
+     * Both minimum and maximum times can be set together to explicitly define
826
+     * file and folder deletion. For migration purposes, this setting is installed
827
+     * initially set to "auto", which is equivalent to the default setting in
828
+     * Nextcloud.
829
+     *
830
+     * Available values (D1 and D2 are configurable numbers):
831
+     *
832
+     * * ``auto``
833
+     *     | Default setting. Keeps files and folders in the trash bin for at least **30** days.
834
+     *     | Then, **if space is needed**, deletes trashed files anytime after that.
835
+     * * ``D1, auto``
836
+     *     | Keeps files and folders in the trash bin for at least **D1** days.
837
+     *     | Then, **if space is needed**, deletes trashed files anytime after that.
838
+     * * ``auto, D2``
839
+     *     | **If space is needed**, deletes trashed files anytime.
840
+     *     | After **D2** days, delete all trashed files automatically
841
+     * * ``D1, D2``
842
+     *     | Keeps files and folders in the trash bin for at least **D1** days.
843
+     *     | Then, after **D2** days, delete all trashed files automatically.
844
+     * * ``disabled``
845
+     *     | Trash bin auto clean is disabled, files and folders will be kept forever.
846
+     *
847
+     * Defaults to ``auto``
848
+     */
849
+    'trashbin_retention_obligation' => 'auto',
850
+
851
+
852
+    /**
853
+     * File versions
854
+     *
855
+     * These parameters control the Versions app.
856
+     */
857
+
858
+    /**
859
+     * If the versions app is enabled (default), this setting defines the policy
860
+     * for when versions will be permanently deleted.
861
+     * The app allows for two settings, a minimum time for version retention,
862
+     * and a maximum time for version retention.
863
+     * Minimum time is the number of days a version will be kept, after which it
864
+     * may be deleted. Maximum time is the number of days at which it is guaranteed
865
+     * to be deleted.
866
+     * Both minimum and maximum times can be set together to explicitly define
867
+     * version deletion. For migration purposes, this setting is installed
868
+     * initially set to "auto", which is equivalent to the default setting in
869
+     * Nextcloud.
870
+     *
871
+     * Available values:
872
+     *
873
+     * * ``auto``
874
+     *     default setting. Automatically expire versions according to expire
875
+     *     rules. Please refer to :doc:`../configuration_files/file_versioning` for
876
+     *     more information.
877
+     * * ``D, auto``
878
+     *     keep versions at least for D days, apply expiration rules to all versions
879
+     *     that are older than D days
880
+     * * ``auto, D``
881
+     *     delete all versions that are older than D days automatically, delete
882
+     *     other versions according to expire rules
883
+     * * ``D1, D2``
884
+     *     keep versions for at least D1 days and delete when exceeds D2 days
885
+     * * ``disabled``
886
+     *     versions auto clean disabled, versions will be kept forever
887
+     *
888
+     * Defaults to ``auto``
889
+     */
890
+    'versions_retention_obligation' => 'auto',
891
+
892
+    /**
893
+     * Nextcloud Verifications
894
+     *
895
+     * Nextcloud performs several verification checks. There are two options,
896
+     * ``true`` and ``false``.
897
+     */
898
+
899
+    /**
900
+     * Checks an app before install whether it uses private APIs instead of the
901
+     * proper public APIs. If this is set to true, it will only allow installing or
902
+     * enabling apps that pass this check.
903
+     *
904
+     * Defaults to ``false``
905
+     */
906
+    'appcodechecker' => true,
907
+
908
+    /**
909
+     * Check if Nextcloud is up-to-date and shows a notification if a new version is
910
+     * available. It sends current version, PHP version, installation and last update
911
+     * time, and release channel to the updater server which responds with the latest
912
+     * available version based on those metrics.
913
+     *
914
+     * Defaults to ``true``
915
+     */
916
+    'updatechecker' => true,
917
+
918
+    /**
919
+     * URL that Nextcloud should use to look for updates
920
+     *
921
+     * Defaults to ``https://updates.nextcloud.com/updater_server/``
922
+     */
923
+    'updater.server.url' => 'https://updates.nextcloud.com/updater_server/',
924
+
925
+    /**
926
+     * The channel that Nextcloud should use to look for updates
927
+     *
928
+     * Supported values:
929
+     *
930
+     * - ``daily``
931
+     * - ``beta``
932
+     * - ``stable``
933
+     */
934
+    'updater.release.channel' => 'stable',
935
+
936
+    /**
937
+     * Is Nextcloud connected to the Internet or running in a closed network?
938
+     *
939
+     * Defaults to ``true``
940
+     */
941
+    'has_internet_connection' => true,
942
+
943
+    /**
944
+     * Which domains to request to determine the availability of an Internet
945
+     * connection. If none of these hosts are reachable, the administration panel
946
+     * will show a warning. Set to an empty list to not do any such checks (warning
947
+     * will still be shown).
948
+     * If no protocol is provided, both http and https will be tested.
949
+     * For example, ``http://www.nextcloud.com`` and ``https://www.nextcloud.com``
950
+     * will be tested for ``www.nextcloud.com``
951
+     * If a protocol is provided, only this one will be tested.
952
+     *
953
+     * Defaults to the following domains:
954
+     *
955
+     *  - https://www.nextcloud.com
956
+     *  - https://www.startpage.com
957
+     *  - https://www.eff.org
958
+     *  - https://www.edri.org
959
+     */
960
+    'connectivity_check_domains' => [
961
+        'https://www.nextcloud.com',
962
+        'https://www.startpage.com',
963
+        'https://www.eff.org',
964
+        'https://www.edri.org'
965
+    ],
966
+
967
+    /**
968
+     * Allows Nextcloud to verify a working .well-known URL redirects. This is done
969
+     * by attempting to make a request from JS to
970
+     * ``https://example.tld/.well-known/caldav/``
971
+     *
972
+     * Defaults to ``true``
973
+     */
974
+    'check_for_working_wellknown_setup' => true,
975
+
976
+    /**
977
+     * This is a crucial security check on Apache servers that should always be set
978
+     * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
979
+     * If it is not, then any options controlled by ``.htaccess``, such as large
980
+     * file uploads, will not work. It also runs checks on the ``data/`` directory,
981
+     * which verifies that it can't be accessed directly through the Web server.
982
+     *
983
+     * Defaults to ``true``
984
+     */
985
+    'check_for_working_htaccess' => true,
986
+
987
+    /**
988
+     * In rare setups (e.g., on OpenShift or Docker on Windows), the permissions check
989
+     * might block the installation while the underlying system offers no means to
990
+     * "correct" the permissions. In this case, set the value to false.
991
+     *
992
+     * In regular cases, if issues with permissions are encountered, they should be
993
+     * adjusted accordingly. Changing the flag is discouraged.
994
+     *
995
+     * Defaults to ``true``
996
+     */
997
+    'check_data_directory_permissions' => true,
998
+
999
+    /**
1000
+     * In certain environments, it is desired to have a read-only configuration file.
1001
+     * When this switch is set to ``true``, writing to the config file will be
1002
+     * forbidden. Therefore, it will not be possible to configure all options via
1003
+     * the Web interface. Furthermore, when updating Nextcloud, it is required to
1004
+     * make the configuration file writable again and to set this switch to ``false``
1005
+     * for the update process.
1006
+     *
1007
+     * Defaults to ``false``
1008
+     */
1009
+    'config_is_read_only' => false,
1010
+
1011
+    /**
1012
+     * Logging
1013
+     */
1014
+
1015
+    /**
1016
+     * This parameter determines where the Nextcloud logs are sent.
1017
+     *
1018
+     * - ``file``: the logs are written to file ``nextcloud.log`` in the default Nextcloud data directory. The log file can be changed with parameter ``logfile``.
1019
+     * - ``syslog``: the logs are sent to the system log. This requires a syslog daemon to be active.
1020
+     * - ``errorlog``: the logs are sent to the PHP ``error_log`` function.
1021
+     * - ``systemd``: the logs are sent to the Systemd journal. This requires a system that runs Systemd and the Systemd journal. The PHP extension ``systemd`` must be installed and active.
1022
+     *
1023
+     * Defaults to ``file``
1024
+     */
1025
+    'log_type' => 'file',
1026
+
1027
+    /**
1028
+     * This parameter determines where the audit logs are sent. See ``log_type`` for more information.
1029
+     *
1030
+     * Defaults to ``file``
1031
+     */
1032
+    'log_type_audit' => 'file',
1033
+
1034
+    /**
1035
+     * Name of the file to which the Nextcloud logs are written if parameter
1036
+     * ``log_type`` is set to ``file``.
1037
+     *
1038
+     * Defaults to ``[datadirectory]/nextcloud.log``
1039
+     */
1040
+    'logfile' => '/var/log/nextcloud.log',
1041
+
1042
+    /**
1043
+     * Name of the file to which the audit logs are written if parameter
1044
+     * ``log_type`` is set to ``file``.
1045
+     *
1046
+     * Defaults to ``[datadirectory]/audit.log``
1047
+     */
1048
+    'logfile_audit' => '/var/log/audit.log',
1049
+
1050
+    /**
1051
+     * Log file mode for the Nextcloud logging type in octal notation.
1052
+     *
1053
+     * Defaults to ``0640`` (writable by user, readable by group).
1054
+     */
1055
+    'logfilemode' => 0640,
1056
+
1057
+    /**
1058
+     * Loglevel to start logging at. Valid values are:
1059
+     *
1060
+     * - ``0`` = Debug
1061
+     * - ``1`` = Info
1062
+     * - ``2`` = Warning
1063
+     * - ``3`` = Error
1064
+     * - ``4`` = Fatal.
1065
+     *
1066
+     *
1067
+     * Defaults to ``2`` (Warning)
1068
+     */
1069
+    'loglevel' => 2,
1070
+
1071
+    /**
1072
+     * Loglevel used by the frontend to start logging at. The same values as
1073
+     * for ``loglevel`` can be used. If not set, it defaults to the value
1074
+     * configured for ``loglevel`` or Warning if that is not set either.
1075
+     *
1076
+     * Defaults to ``2``
1077
+     */
1078
+    'loglevel_frontend' => 2,
1079
+
1080
+    /**
1081
+     * Loglevel used by the dirty database query detection. Useful to identify
1082
+     * potential database bugs in production. Set this to loglevel or higher to
1083
+     * see dirty queries in the logs.
1084
+     *
1085
+     * Defaults to ``0`` (debug)
1086
+     */
1087
+    'loglevel_dirty_database_queries' => 0,
1088
+
1089
+    /**
1090
+     * If you maintain different instances and aggregate the logs, you may want
1091
+     * to distinguish between them. ``syslog_tag`` can be set per instance
1092
+     * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1093
+     * ``systemd``.
1094
+     *
1095
+     * The default value is ``Nextcloud``.
1096
+     */
1097
+    'syslog_tag' => 'Nextcloud',
1098
+
1099
+    /**
1100
+     * If you maintain different instances and aggregate the logs, you may want
1101
+     * to distinguish between them. ``syslog_tag_audit`` can be set per instance
1102
+     * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1103
+     * ``systemd``.
1104
+     *
1105
+     * The default value is the value of ``syslog_tag``.
1106
+     */
1107
+    'syslog_tag_audit' => 'Nextcloud',
1108
+
1109
+    /**
1110
+     * Log condition for log level increase based on conditions. Once one of these
1111
+     * conditions is met, the required log level is set to debug. This allows
1112
+     * debugging specific requests, users, or apps
1113
+     *
1114
+     * Supported conditions:
1115
+     *  - ``shared_secret``: if a request parameter with the name `log_secret` is set to
1116
+     *                this value, the condition is met
1117
+     *  - ``users``:  if the current request is done by one of the specified users,
1118
+     *                this condition is met
1119
+     *  - ``apps``:   if the log message is invoked by one of the specified apps,
1120
+     *                this condition is met
1121
+     *  - ``matches``: if all the conditions inside a group match,
1122
+     *                this condition is met. This allows logging only entries to an app
1123
+     *                by a few users.
1124
+     *
1125
+     * Defaults to an empty array.
1126
+     */
1127
+    'log.condition' => [
1128
+        'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1129
+        'users' => ['sample-user'],
1130
+        'apps' => ['files'],
1131
+        'matches' => [
1132
+            [
1133
+                'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1134
+                'users' => ['sample-user'],
1135
+                'apps' => ['files'],
1136
+                'loglevel' => 1,
1137
+                'message' => 'contains substring'
1138
+            ],
1139
+        ],
1140
+    ],
1141
+
1142
+    /**
1143
+     * Enables logging a backtrace with each log line. Normally, only Exceptions
1144
+     * carry backtrace information, which are logged automatically. This
1145
+     * switch turns them on for any log message. Enabling this option will lead
1146
+     * to increased log data size.
1147
+     *
1148
+     * Defaults to ``false``.
1149
+     */
1150
+    'log.backtrace' => false,
1151
+
1152
+    /**
1153
+     * This uses PHP.date formatting; see https://www.php.net/manual/en/function.date.php
1154
+     *
1155
+     * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00``, see ``\DateTime::ATOM``
1156
+     * https://www.php.net/manual/en/class.datetimeinterface.php#datetimeinterface.constants.atom
1157
+     */
1158
+    'logdateformat' => 'F d, Y H:i:s',
1159
+
1160
+    /**
1161
+     * The timezone for logfiles. See https://www.php.net/manual/en/timezones.php
1162
+     *
1163
+     * Defaults to ``UTC``
1164
+     */
1165
+    'logtimezone' => 'Europe/Berlin',
1166
+
1167
+    /**
1168
+     * Append all database queries and parameters to the log file. Use this only for
1169
+     * debugging, as your logfile will become huge.
1170
+     */
1171
+    'log_query' => false,
1172
+
1173
+    /**
1174
+     * Enables log rotation and limits the total size of logfiles. Set it to 0 for
1175
+     * no rotation. Specify a size in bytes, for example, 104857600 (100 megabytes
1176
+     * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
1177
+     * old logfile reaches your limit. If a rotated log file is already present, it
1178
+     * will be overwritten.
1179
+     *
1180
+     * Defaults to 100 MB
1181
+     */
1182
+    'log_rotate_size' => 100 * 1024 * 1024,
1183
+
1184
+    /**
1185
+     * Enable built-in profiler. Helpful when trying to debug performance
1186
+     * issues.
1187
+     *
1188
+     * Note that this has a performance impact and shouldn't be enabled
1189
+     * on production.
1190
+     */
1191
+    'profiler' => false,
1192
+
1193
+    /**
1194
+     * Enable profiling for individual requests if profiling single requests is enabled or the secret is passed.
1195
+     * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1196
+     *
1197
+     * The profile data will be stored as a JSON file in the profiling.path directory that can be analyzed with speedscope.
1198
+     *
1199
+     * Defaults to ``false``
1200
+     */
1201
+    'profiling.request' => false,
1202
+
1203
+    /**
1204
+     * The rate at which profiling data is collected for individual requests.
1205
+     * A lower value means more data points but higher overhead.
1206
+     *
1207
+     * Defaults to ``0.001``
1208
+     */
1209
+    'profiling.request.rate' => 0.001,
1210
+
1211
+    /**
1212
+     * A secret token that can be passed via ?profile_secret=<secret> to enable profiling for a specific request.
1213
+     * This allows profiling specific requests in production without enabling it globally.
1214
+     *
1215
+     * No default value.
1216
+     */
1217
+    'profiling.secret' => '',
1218
+
1219
+    /**
1220
+     * Enable sampling-based profiling. This collects profiling data periodically rather than per-request.
1221
+     * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1222
+     *
1223
+     * The profile data will be stored as a plain text file in the profiling.path directory that can be analyzed with speedscope.
1224
+     *
1225
+     * Defaults to ``false``
1226
+     */
1227
+    'profiling.sample' => false,
1228
+
1229
+    /**
1230
+     * The rate at which sampling profiling data is collected in seconds.
1231
+     * A lower value means more frequent samples but higher overhead.
1232
+     *
1233
+     * Defaults to ``1``
1234
+     */
1235
+    'profiling.sample.rate' => 1,
1236
+
1237
+    /**
1238
+     * How often (in minutes) the sample log files are rotated.
1239
+     *
1240
+     * Defaults to ``60``
1241
+     */
1242
+    'profiling.sample.rotation' => 60,
1243
+
1244
+    /**
1245
+     * The directory where profiling data is stored.
1246
+     *
1247
+     * Note that this directory must be writable by the web server user and will not be cleaned up automatically.
1248
+     */
1249
+    'profiling.path' => '/tmp',
1250
+
1251
+
1252
+    /**
1253
+     * Alternate Code Locations
1254
+     *
1255
+     * Some Nextcloud code may be stored in alternate locations.
1256
+     */
1257
+
1258
+    /**
1259
+     * This section is for configuring the download links for Nextcloud clients, as
1260
+     * seen in the first-run wizard and on Personal pages.
1261
+     *
1262
+     * Defaults to:
1263
+     *
1264
+     * - Desktop client: ``https://nextcloud.com/install/#install-clients``
1265
+     * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client``
1266
+     * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8``
1267
+     * - iOS client app ID: ``1125420102``
1268
+     * - F-Droid client: ``https://f-droid.org/packages/com.nextcloud.client/``
1269
+     */
1270
+    'customclient_desktop'
1271
+        => 'https://nextcloud.com/install/#install-clients',
1272
+    'customclient_android'
1273
+        => 'https://play.google.com/store/apps/details?id=com.nextcloud.client',
1274
+    'customclient_ios'
1275
+        => 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8',
1276
+    'customclient_ios_appid'
1277
+        => '1125420102',
1278
+    'customclient_fdroid'
1279
+        => 'https://f-droid.org/packages/com.nextcloud.client/',
1280
+
1281
+    /**
1282
+     * Activity
1283
+     *
1284
+     * Options for the activity app.
1285
+     */
1286
+
1287
+    /**
1288
+     * Retention of activities.
1289
+     *
1290
+     * A daily cron job deletes all activities for all users which are older than
1291
+     * the number of days specified here.
1292
+     *
1293
+     * Defaults to ``365``
1294
+     */
1295
+    'activity_expire_days' => 365,
1296
+
1297
+    /**
1298
+     * Activities in Team Folders and External Storages.
1299
+     *
1300
+     * By default, activities in team folders or external storages are only generated
1301
+     * for the current user. This is due to a limitations in current implementations.
1302
+     * This config flag makes activities in group folders and external storages work
1303
+     * like in normal shares (when set to ``true``).
1304
+     *
1305
+     * WARNING: Enabling this comes with some CRITICAL trade-offs:
1306
+     *
1307
+     * - If team folder "Advanced Permissions" (ACLs) are used, activities do not
1308
+     *   respect the permissions and therefore all users see all activities, even
1309
+     *   for files and directories they do not have access to.
1310
+     * - Users who had access to a team folder, share, or external storage can see
1311
+     *   activities in their stream and emails that happen after they are removed
1312
+     *   until they log in again.
1313
+     * - Users who are newly added to a team folder, share, or external storage
1314
+     *   cannot see activities in their stream or emails that happen after they
1315
+     *   are added until they log in again.
1316
+     *
1317
+     * Defaults to ``false``
1318
+     */
1319
+    'activity_use_cached_mountpoints' => false,
1320
+
1321
+    /**
1322
+     * Apps
1323
+     *
1324
+     * Options for the Apps folder, Apps store, and App code checker.
1325
+     */
1326
+
1327
+    /**
1328
+     * Set the default app to open on login. The entry IDs can be retrieved from
1329
+     * the Navigations OCS API endpoint: https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/operations/core-navigation-get-apps-navigation.
1330
+     * You can use a comma-separated list of app names, so if the first
1331
+     * app is not enabled for a user, then Nextcloud will try the second one, and so
1332
+     * on. If no enabled apps are found, it defaults to the dashboard app.
1333
+     *
1334
+     * Defaults to ``dashboard,files``
1335
+     */
1336
+    'defaultapp' => 'dashboard,files',
1337
+
1338
+    /**
1339
+     * When enabled, admins may install apps from the Nextcloud app store.
1340
+     *
1341
+     * Defaults to ``true``
1342
+     */
1343
+    'appstoreenabled' => true,
1344
+
1345
+    /**
1346
+     * Enables the installation of apps from a self-hosted apps store.
1347
+     * Requires that at least one of the configured apps directories is writable.
1348
+     *
1349
+     * Defaults to ``https://apps.nextcloud.com/api/v1``
1350
+     */
1351
+    'appstoreurl' => 'https://apps.nextcloud.com/api/v1',
1352
+
1353
+    /**
1354
+     * Filters allowed installable apps from the appstore.
1355
+     * Empty array will prevent all apps from the store to be found.
1356
+     */
1357
+    'appsallowlist' => [],
1358
+
1359
+    /**
1360
+     * Use the ``apps_paths`` parameter to set the location of the Apps directory,
1361
+     * which should be scanned for available apps, and where user-specific apps
1362
+     * should be installed from the Apps store. The ``path`` defines the absolute
1363
+     * file system path to the app folder. The key ``url`` defines the HTTP Web path
1364
+     * to that folder, starting from the Nextcloud webroot. The key ``writable``
1365
+     * indicates if a Web server can write files to that folder.
1366
+     */
1367
+    'apps_paths' => [
1368
+        [
1369
+            'path' => '/var/www/nextcloud/apps',
1370
+            'url' => '/apps',
1371
+            'writable' => true,
1372
+        ],
1373
+    ],
1374
+
1375
+    /**
1376
+     * @see appcodechecker
1377
+     */
1378
+
1379
+    /**
1380
+     * Previews
1381
+     *
1382
+     * Nextcloud supports generating previews for various file types, such as images, audio files, and text files.
1383
+     * These options control enabling and disabling previews, and thumbnail size.
1384
+     */
1385
+
1386
+    /**
1387
+     * By default, Nextcloud can generate previews for the following filetypes:
1388
+     *
1389
+     * - Image files
1390
+     * - Text documents
1391
+     *
1392
+     * Valid values are ``true``, to enable previews, or
1393
+     * ``false``, to disable previews
1394
+     *
1395
+     * Defaults to ``true``
1396
+     */
1397
+    'enable_previews' => true,
1398
+
1399
+    /**
1400
+     * Number of all preview requests being processed concurrently,
1401
+     * including previews that need to be newly generated, and those that have
1402
+     * been generated.
1403
+     *
1404
+     * This should be greater than ``preview_concurrency_new``.
1405
+     * If unspecified, defaults to twice the value of ``preview_concurrency_new``.
1406
+     */
1407
+    'preview_concurrency_all' => 8,
1408
+
1409
+    /**
1410
+     * Number of new previews that are being concurrently generated.
1411
+     *
1412
+     * Depending on the max preview size set by ``preview_max_x`` and ``preview_max_y``,
1413
+     * the generation process can consume considerable CPU and memory resources.
1414
+     * It's recommended to limit this to be no greater than the number of CPU cores.
1415
+     * If unspecified, defaults to the number of CPU cores, or 4 if that cannot
1416
+     * be determined.
1417
+     */
1418
+    'preview_concurrency_new' => 4,
1419
+
1420
+    /**
1421
+     * The maximum width, in pixels, of a preview. A value of ``null`` means there
1422
+     * is no limit.
1423
+     *
1424
+     * Defaults to ``4096``
1425
+     */
1426
+    'preview_max_x' => 4096,
1427
+    /**
1428
+     * The maximum height, in pixels, of a preview. A value of ``null`` means there
1429
+     * is no limit.
1430
+     *
1431
+     * Defaults to ``4096``
1432
+     */
1433
+    'preview_max_y' => 4096,
1434
+
1435
+    /**
1436
+     * Max file size for generating image previews with imagegd (default behavior).
1437
+     * If the image is bigger, it'll try other preview generators, but will most
1438
+     * likely either show the default mimetype icon or not display the image at all.
1439
+     * Set to ``-1`` for no limit and try to generate image previews on all file sizes.
1440
+     *
1441
+     * Defaults to ``50`` megabytes
1442
+     */
1443
+    'preview_max_filesize_image' => 50,
1444
+
1445
+    /**
1446
+     * Max memory for generating image previews with imagegd (default behavior)
1447
+     * Reads the image dimensions from the header and assumes 32 bits per pixel.
1448
+     * If creating the image would allocate more memory, preview generation will
1449
+     * be disabled and the default mimetype icon is shown. Set to ``-1`` for no limit.
1450
+     *
1451
+     * Defaults to ``256`` megabytes
1452
+     */
1453
+    'preview_max_memory' => 256,
1454
+
1455
+    /**
1456
+     * Custom path for LibreOffice/OpenOffice binary
1457
+     *
1458
+     *
1459
+     * Defaults to ``''`` (empty string)
1460
+     */
1461
+    'preview_libreoffice_path' => '/usr/bin/libreoffice',
1462
+
1463
+    /**
1464
+     * Custom path for ffmpeg binary
1465
+     *
1466
+     * Defaults to ``null`` and falls back to searching ``ffmpeg``
1467
+     * in the configured ``PATH`` environment
1468
+     */
1469
+    'preview_ffmpeg_path' => '/usr/bin/ffmpeg',
1470
+
1471
+    /**
1472
+     * Custom path for ffprobe binary
1473
+     *
1474
+     * Defaults to ``null`` and falls back to using the same path as ffmpeg.
1475
+     * ffprobe is typically packaged with ffmpeg and is required for
1476
+     * enhanced preview generation for HDR videos.
1477
+     */
1478
+    'preview_ffprobe_path' => '/usr/bin/ffprobe',
1479
+
1480
+    /**
1481
+     * Set the URL of the Imaginary service to send image previews to.
1482
+     * Also requires the ``OC\Preview\Imaginary`` provider to be enabled in the
1483
+     * ``enabledPreviewProviders`` array, to create previews for these mimetypes: bmp,
1484
+     * x-bitmap, png, jpeg, gif, heic, heif, svg+xml, tiff, webp, and illustrator.
1485
+     *
1486
+     * If you want Imaginary to also create preview images from PDF documents, you
1487
+     * have to add the ``OC\Preview\ImaginaryPDF`` provider as well.
1488
+     *
1489
+     * See https://github.com/h2non/imaginary
1490
+     */
1491
+    'preview_imaginary_url' => 'http://previews_hpb:8088/',
1492
+
1493
+    /**
1494
+     * If you want to set an API key for Imaginary.
1495
+     */
1496
+    'preview_imaginary_key' => 'secret',
1497
+
1498
+    /**
1499
+     * Only register providers that have been explicitly enabled
1500
+     *
1501
+     * The following providers are disabled by default due to performance or privacy
1502
+     * concerns:
1503
+     *
1504
+     *  - ``OC\Preview\EMF``
1505
+     *  - ``OC\Preview\Font``
1506
+     *  - ``OC\Preview\HEIC``
1507
+     *  - ``OC\Preview\Illustrator``
1508
+     *  - ``OC\Preview\MP3``
1509
+     *  - ``OC\Preview\MSOffice2003``
1510
+     *  - ``OC\Preview\MSOffice2007``
1511
+     *  - ``OC\Preview\MSOfficeDoc``
1512
+     *  - ``OC\Preview\Movie``
1513
+     *  - ``OC\Preview\PDF``
1514
+     *  - ``OC\Preview\Photoshop``
1515
+     *  - ``OC\Preview\Postscript``
1516
+     *  - ``OC\Preview\SVG``
1517
+     *  - ``OC\Preview\StarOffice``
1518
+     *  - ``OC\Preview\TIFF``
1519
+     *
1520
+     * Defaults to the following providers:
1521
+     *
1522
+     *  - ``OC\Preview\BMP``
1523
+     *  - ``OC\Preview\GIF``
1524
+     *  - ``OC\Preview\JPEG``
1525
+     *  - ``OC\Preview\Krita``
1526
+     *  - ``OC\Preview\MarkDown``
1527
+     *  - ``OC\Preview\OpenDocument``
1528
+     *  - ``OC\Preview\PNG``
1529
+     *  - ``OC\Preview\TXT``
1530
+     *  - ``OC\Preview\XBitmap``
1531
+     *
1532
+     */
1533
+    'enabledPreviewProviders' => [
1534
+        'OC\Preview\BMP',
1535
+        'OC\Preview\GIF',
1536
+        'OC\Preview\JPEG',
1537
+        'OC\Preview\Krita',
1538
+        'OC\Preview\MarkDown',
1539
+        'OC\Preview\OpenDocument',
1540
+        'OC\Preview\PNG',
1541
+        'OC\Preview\TXT',
1542
+        'OC\Preview\XBitmap',
1543
+    ],
1544
+
1545
+    /**
1546
+     * Maximum file size for metadata generation.
1547
+     * If a file exceeds this size, metadata generation will be skipped.
1548
+     *
1549
+     * NOTE: memory equivalent to this size will be used for metadata generation.
1550
+     *
1551
+     * Default: 256 megabytes.
1552
+     */
1553
+    'metadata_max_filesize' => 256,
1554
+
1555
+    /**
1556
+     * Maximum file size for file conversion.
1557
+     * If a file exceeds this size, the file will not be converted.
1558
+     *
1559
+     * Default: 100 MiB
1560
+     */
1561
+    'max_file_conversion_filesize' => 100,
1562
+
1563
+    /**
1564
+     * LDAP
1565
+     *
1566
+     * Global settings used by LDAP User and Group Backend
1567
+     */
1568
+
1569
+    /**
1570
+     * Defines the interval in minutes for the background job that checks user
1571
+     * existence and marks them as ready to be cleaned up. The number is always
1572
+     * minutes. Setting it to 0 disables the feature.
1573
+     * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete``
1574
+     *
1575
+     * Defaults to ``51`` minutes
1576
+     */
1577
+    'ldapUserCleanupInterval' => 51,
1578
+
1579
+    /**
1580
+     * Sort groups in the user settings by name instead of the user count
1581
+     *
1582
+     * By enabling this, the user count beside the group name is disabled as well.
1583
+     * @deprecated since Nextcloud 29 - Use the frontend instead or set the app config value ``group.sortBy`` for ``core`` to ``2``
1584
+     */
1585
+    'sort_groups_by_name' => false,
1586
+
1587
+    /**
1588
+     * Comments
1589
+     *
1590
+     * Global settings for the Comments infrastructure
1591
+     */
1592
+
1593
+    /**
1594
+     * Replaces the default Comments Manager Factory. This can be utilized if an
1595
+     * own or 3rd-party CommentsManager should be used that – for instance – uses the
1596
+     * filesystem instead of the database to keep the comments.
1597
+     *
1598
+     * Defaults to ``\OC\Comments\ManagerFactory``
1599
+     */
1600
+    'comments.managerFactory' => '\OC\Comments\ManagerFactory',
1601
+
1602
+    /**
1603
+     * Replaces the default System Tags Manager Factory. This can be utilized if an
1604
+     * own or 3rd-party SystemTagsManager should be used that – for instance – uses the
1605
+     * filesystem instead of the database to keep the tags.
1606
+     *
1607
+     * Defaults to ``\OC\SystemTag\ManagerFactory``
1608
+     */
1609
+    'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory',
1610
+
1611
+    /**
1612
+     * Maintenance
1613
+     *
1614
+     * These options are for halting user activity when you are performing server
1615
+     * maintenance.
1616
+     */
1617
+
1618
+    /**
1619
+     * Enable maintenance mode to disable Nextcloud
1620
+     *
1621
+     * If you want to prevent users from logging in to Nextcloud before you start
1622
+     * doing some maintenance work, you need to set the value of the maintenance
1623
+     * parameter to true. Please keep in mind that users who are already logged in
1624
+     * are kicked out of Nextcloud instantly.
1625
+     *
1626
+     * Defaults to ``false``
1627
+     */
1628
+    'maintenance' => false,
1629
+
1630
+    /**
1631
+     * UTC Hour for maintenance windows
1632
+     *
1633
+     * Some background jobs only run once a day. When an hour is defined for this config,
1634
+     * the background jobs which advertise themselves as not time sensitive will be
1635
+     * delayed during the "working" hours and only run in the 4 hours after the given time.
1636
+     * This is, e.g., used for activity expiration, suspicious login training, and update checks.
1637
+     *
1638
+     * A value of 1, e.g., will only run these background jobs between 01:00am UTC and 05:00am UTC.
1639
+     *
1640
+     * Defaults to ``100`` which disables the feature
1641
+     */
1642
+    'maintenance_window_start' => 1,
1643
+
1644
+    /**
1645
+     * Log all LDAP requests into a file
1646
+     *
1647
+     * Warning: This heavily decreases the performance of the server and is only
1648
+     * meant to debug/profile the LDAP interaction manually.
1649
+     * Also, it might log sensitive data into a plain text file.
1650
+     */
1651
+    'ldap_log_file' => '',
1652
+
1653
+    /**
1654
+     * SSL
1655
+     */
1656
+
1657
+    /**
1658
+     * Extra SSL options to be used for configuration.
1659
+     *
1660
+     * Defaults to an empty array.
1661
+     */
1662
+    'openssl' => [
1663
+        'config' => '/absolute/location/of/openssl.cnf',
1664
+    ],
1665
+
1666
+    /**
1667
+     * Memory caching backend configuration
1668
+     *
1669
+     * Available cache backends:
1670
+     *
1671
+     * * ``\OC\Memcache\APCu``       APC user backend
1672
+     * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
1673
+     * * ``\OC\Memcache\Memcached``  Memcached backend
1674
+     * * ``\OC\Memcache\Redis``      Redis backend
1675
+     *
1676
+     * Advice on choosing between the various backends:
1677
+     *
1678
+     * * APCu should be easiest to install. Almost all distributions have packages.
1679
+     *   Use this for single user environment for all caches.
1680
+     * * Use Redis or Memcached for distributed environments.
1681
+     *   For the local cache (you can configure two) take APCu.
1682
+     */
1683
+
1684
+    /**
1685
+     * Memory caching backend for locally stored data
1686
+     *
1687
+     * * Used for host-specific data, e.g., file paths
1688
+     *
1689
+     * Defaults to ``none``
1690
+     */
1691
+    'memcache.local' => '\\OC\\Memcache\\APCu',
1692
+
1693
+    /**
1694
+     * Memory caching backend for distributed data
1695
+     *
1696
+     * * Used for installation-specific data, e.g., database caching
1697
+     * * If unset, defaults to the value of memcache.local
1698
+     *
1699
+     * Defaults to ``none``
1700
+     */
1701
+    'memcache.distributed' => '\\OC\\Memcache\\Memcached',
1702
+
1703
+    /**
1704
+     * Connection details for Redis to use for memory caching in a single server configuration.
1705
+     *
1706
+     * For enhanced security, it is recommended to configure Redis
1707
+     * to require a password. See http://redis.io/topics/security
1708
+     * for more information.
1709
+     *
1710
+     * We also support Redis SSL/TLS encryption as of version 6.
1711
+     * See https://redis.io/topics/encryption for more information.
1712
+     */
1713
+    'redis' => [
1714
+        'host' => 'localhost', // can also be a Unix domain socket: '/tmp/redis.sock'
1715
+        'port' => 6379,
1716
+        'timeout' => 0.0,
1717
+        'read_timeout' => 0.0,
1718
+        'user' => '', // Optional: if not defined, no password will be used.
1719
+        'password' => '', // Optional: if not defined, no password will be used.
1720
+        'dbindex' => 0, // Optional: if undefined, SELECT will not run and will use Redis Server's default DB Index.
1721
+        // If Redis in-transit encryption is enabled, provide certificates
1722
+        // SSL context https://www.php.net/manual/en/context.ssl.php
1723
+        'ssl_context' => [
1724
+            'local_cert' => '/certs/redis.crt',
1725
+            'local_pk' => '/certs/redis.key',
1726
+            'cafile' => '/certs/ca.crt'
1727
+        ]
1728
+    ],
1729
+
1730
+    /**
1731
+     * Connection details for a Redis Cluster.
1732
+     *
1733
+     * Redis Cluster support requires the PHP module phpredis in version 3.0.0 or
1734
+     * higher.
1735
+     *
1736
+     * Available failover modes:
1737
+     *  - ``\RedisCluster::FAILOVER_NONE`` - only send commands to master nodes (default)
1738
+     *  - ``\RedisCluster::FAILOVER_ERROR`` - failover to slaves for read commands if master is unavailable (recommended)
1739
+     *  - ``\RedisCluster::FAILOVER_DISTRIBUTE`` - randomly distribute read commands across master and slaves
1740
+     *
1741
+     * WARNING: ``\RedisCluster::FAILOVER_DISTRIBUTE`` is a not recommended setting, and we strongly
1742
+     * suggest to not use it if you use Redis for file locking. Due to the way Redis
1743
+     * is synchronized, it could happen that the read for an existing lock is
1744
+     * scheduled to a slave that is not fully synchronized with the connected master
1745
+     * which then causes a FileLocked exception.
1746
+     *
1747
+     * See https://redis.io/topics/cluster-spec for details about the Redis cluster
1748
+     *
1749
+     * Authentication works with phpredis version 4.2.1+. See
1750
+     * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1
1751
+     */
1752
+    'redis.cluster' => [
1753
+        'seeds' => [ // provide some or all of the cluster servers to bootstrap discovery, port required
1754
+            'localhost:7000',
1755
+            'localhost:7001',
1756
+        ],
1757
+        'timeout' => 0.0,
1758
+        'read_timeout' => 0.0,
1759
+        'failover_mode' => \RedisCluster::FAILOVER_ERROR,
1760
+        'user' => '', // Optional: if not defined, no password will be used.
1761
+        'password' => '', // Optional: if not defined, no password will be used.
1762
+        // If Redis in-transit encryption is enabled, provide certificates
1763
+        // SSL context https://www.php.net/manual/en/context.ssl.php
1764
+        'ssl_context' => [
1765
+            'local_cert' => '/certs/redis.crt',
1766
+            'local_pk' => '/certs/redis.key',
1767
+            'cafile' => '/certs/ca.crt'
1768
+        ]
1769
+    ],
1770
+
1771
+
1772
+    /**
1773
+     * Server details for one or more Memcached servers to use for memory caching.
1774
+     */
1775
+    'memcached_servers' => [
1776
+        // hostname, port and optional weight
1777
+        // or path and port 0 for Unix socket. Also see:
1778
+        // https://www.php.net/manual/en/memcached.addservers.php
1779
+        // https://www.php.net/manual/en/memcached.addserver.php
1780
+        ['localhost', 11211],
1781
+        //array('other.host.local', 11211),
1782
+    ],
1783
+
1784
+    /**
1785
+     * Connection options for Memcached
1786
+     */
1787
+    'memcached_options' => [
1788
+        // Set timeouts to 50ms
1789
+        \Memcached::OPT_CONNECT_TIMEOUT => 50,
1790
+        \Memcached::OPT_RETRY_TIMEOUT => 50,
1791
+        \Memcached::OPT_SEND_TIMEOUT => 50,
1792
+        \Memcached::OPT_RECV_TIMEOUT => 50,
1793
+        \Memcached::OPT_POLL_TIMEOUT => 50,
1794
+
1795
+        // Enable compression
1796
+        \Memcached::OPT_COMPRESSION => true,
1797
+
1798
+        // Turn on consistent hashing
1799
+        \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
1800
+
1801
+        // Enable Binary Protocol
1802
+        \Memcached::OPT_BINARY_PROTOCOL => true,
1803
+
1804
+        // Binary serializer will be enabled if the igbinary PECL module is available
1805
+        //\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY,
1806
+    ],
1807
+
1808
+
1809
+    /**
1810
+     * Location of the cache folder, defaults to ``data/$user/cache`` where
1811
+     * ``$user`` is the current user. When specified, the format will change to
1812
+     * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
1813
+     * and ``$user`` is the user.
1814
+     *
1815
+     * Defaults to ``''`` (empty string)
1816
+     */
1817
+    'cache_path' => '',
1818
+
1819
+    /**
1820
+     * TTL of chunks located in the cache folder before they're removed by
1821
+     * garbage collection (in seconds). Increase this value if users have
1822
+     * issues uploading very large files via the Nextcloud Client as upload isn't
1823
+     * completed within one day.
1824
+     *
1825
+     * Defaults to ``60*60*24`` (1 day)
1826
+     */
1827
+    'cache_chunk_gc_ttl' => 60 * 60 * 24,
1828
+
1829
+    /**
1830
+     * Enable caching of the app config values.
1831
+     * If enabled the app config will be cached locally for a short TTL,
1832
+     * reducing database load significantly on larger setups.
1833
+     *
1834
+     * Defaults to ``true``
1835
+     */
1836
+    'cache_app_config' => true,
1837
+
1838
+    /**
1839
+     * Using Object Store with Nextcloud
1840
+     */
1841
+
1842
+    /**
1843
+     * This example shows how to configure Nextcloud to store all files in a
1844
+     * Swift object storage.
1845
+     *
1846
+     * It is important to note that Nextcloud in object store mode will expect
1847
+     * exclusive access to the object store container because it only stores the
1848
+     * binary data for each file. The metadata is currently kept in the local
1849
+     * database for performance reasons.
1850
+     *
1851
+     * WARNING: The current implementation is incompatible with any app that uses
1852
+     * direct file I/O and circumvents our virtual filesystem. That includes
1853
+     * Encryption and Gallery. Gallery will store thumbnails directly in the
1854
+     * filesystem, and encryption will cause severe overhead because key files need
1855
+     * to be fetched in addition to any requested file.
1856
+     *
1857
+     */
1858
+    'objectstore' => [
1859
+        'class' => 'OC\\Files\\ObjectStore\\Swift',
1860
+        'arguments' => [
1861
+            // trystack will use your Facebook ID as the username
1862
+            'username' => 'facebook100000123456789',
1863
+            // in the trystack dashboard, go to user -> settings -> API Password to
1864
+            // generate a password
1865
+            'password' => 'Secr3tPaSSWoRdt7',
1866
+            // must already exist in the objectstore, name can be different
1867
+            'container' => 'nextcloud',
1868
+            // prefix to prepend to the fileid, default is 'oid:urn:'
1869
+            'objectPrefix' => 'oid:urn:',
1870
+            // create the container if it does not exist. default is false
1871
+            'autocreate' => true,
1872
+            // required, dev-/trystack defaults to 'RegionOne'
1873
+            'region' => 'RegionOne',
1874
+            // The Identity / Keystone endpoint
1875
+            'url' => 'http://8.21.28.222:5000/v2.0',
1876
+            // uploadPartSize: size of the uploaded chunks, defaults to 524288000
1877
+            'uploadPartSize' => 524288000,
1878
+            // required on dev-/trystack
1879
+            'tenantName' => 'facebook100000123456789',
1880
+            // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
1881
+            // if omitted
1882
+            'serviceName' => 'swift',
1883
+            // The Interface / URL Type, optional
1884
+            'urlType' => 'internal',
1885
+            // Maximum amount of data that can be uploaded
1886
+            'totalSizeLimit' => 1024 * 1024 * 1024,
1887
+        ],
1888
+    ],
1889
+
1890
+    /**
1891
+     * To use Swift V3
1892
+     */
1893
+    'objectstore' => [
1894
+        'class' => 'OC\\Files\\ObjectStore\\Swift',
1895
+        'arguments' => [
1896
+            'autocreate' => true,
1897
+            'user' => [
1898
+                'name' => 'swift',
1899
+                'password' => 'swift',
1900
+                'domain' => [
1901
+                    'name' => 'default',
1902
+                ],
1903
+            ],
1904
+            'scope' => [
1905
+                'project' => [
1906
+                    'name' => 'service',
1907
+                    'domain' => [
1908
+                        'name' => 'default',
1909
+                    ],
1910
+                ],
1911
+            ],
1912
+            'tenantName' => 'service',
1913
+            'serviceName' => 'swift',
1914
+            'region' => 'regionOne',
1915
+            'url' => 'http://yourswifthost:5000/v3',
1916
+            'bucket' => 'nextcloud',
1917
+        ],
1918
+    ],
1919
+
1920
+    /**
1921
+     * If this is set to true and a multibucket object store is configured, then
1922
+     * newly created previews are put into 256 dedicated buckets.
1923
+     *
1924
+     * Those buckets are named like the multibucket version but with the postfix
1925
+     * ``-preview-NUMBER`` where NUMBER is between 0 and 255.
1926
+     *
1927
+     * Keep in mind that only previews of files are put in there that don't have
1928
+     * some already. Otherwise, the old bucket will be used.
1929
+     *
1930
+     * To migrate existing previews to this new multibucket distribution of previews,
1931
+     * use the occ command ``preview:repair``. For now, this will only migrate
1932
+     * previews that were generated before Nextcloud 19 in the flat
1933
+     * ``appdata_INSTANCEID/previews/FILEID`` folder structure.
1934
+     */
1935
+    'objectstore.multibucket.preview-distribution' => false,
1936
+
1937
+
1938
+    /**
1939
+     * Sharing
1940
+     *
1941
+     * Global settings for Sharing
1942
+     */
1943
+
1944
+    /**
1945
+     * Replaces the default Share Provider Factory. This can be utilized if
1946
+     * own or 3rd-party Share Providers are used that – for instance – use the
1947
+     * filesystem instead of the database to keep the share information.
1948
+     *
1949
+     * Defaults to ``\OC\Share20\ProviderFactory``
1950
+     */
1951
+    'sharing.managerFactory' => '\OC\Share20\ProviderFactory',
1952
+
1953
+    /**
1954
+     * Enables expiration for link share passwords sent by email (sharebymail).
1955
+     * The passwords will expire after the configured interval; the users can
1956
+     * still request a new one on the public link page.
1957
+     */
1958
+    'sharing.enable_mail_link_password_expiration' => false,
1959
+
1960
+    /**
1961
+     * Expiration interval for passwords, in seconds.
1962
+     */
1963
+    'sharing.mail_link_password_expiration_interval' => 3600,
1964
+
1965
+    /**
1966
+     * Define max number of results returned by the search for auto-completion of
1967
+     * users, groups, etc. The value must not be lower than 0 (for unlimited).
1968
+     *
1969
+     * If more, different sources are requested (e.g., different user backends; or
1970
+     * both users and groups), the value is applied per source and might not be
1971
+     * truncated after collecting the results. I.e., more results can appear than
1972
+     * configured here.
1973
+     *
1974
+     * Default is 25.
1975
+     */
1976
+    'sharing.maxAutocompleteResults' => 25,
1977
+
1978
+    /**
1979
+     * Define the minimum length of the search string before we start auto-completion
1980
+     * Default is no limit (value set to 0)
1981
+     */
1982
+    'sharing.minSearchStringLength' => 0,
1983
+
1984
+    /**
1985
+     * Set to true to enable that internal shares need to be accepted by the users by default.
1986
+     * Users can change this for their account in their personal sharing settings
1987
+     */
1988
+    'sharing.enable_share_accept' => false,
1989
+
1990
+    /**
1991
+     * Set to ``true`` to enforce that internal shares need to be accepted
1992
+     */
1993
+    'sharing.force_share_accept' => false,
1994
+
1995
+    /**
1996
+     * Set to ``false`` to prevent users from setting a custom share_folder
1997
+     */
1998
+    'sharing.allow_custom_share_folder' => true,
1999
+
2000
+    /**
2001
+     * Define a default folder for shared files and folders other than root.
2002
+     * Changes to this value will only have effect on new shares.
2003
+     *
2004
+     * Defaults to ``/``
2005
+     */
2006
+    'share_folder' => '/',
2007
+
2008
+    /**
2009
+     * Set to ``false`` to stop sending a mail when users receive a share
2010
+     */
2011
+    'sharing.enable_share_mail' => true,
2012
+
2013
+    /**
2014
+     * Set to true to enable the feature to add exceptions for share password enforcement
2015
+     */
2016
+    'sharing.allow_disabled_password_enforcement_groups' => false,
2017
+
2018
+    /**
2019
+     * Set to true to always transfer incoming shares by default
2020
+     * when running ``occ files:transfer-ownership``.
2021
+     * Defaults to ``false``, so incoming shares are not transferred if not specifically requested
2022
+     * by a command line argument.
2023
+     */
2024
+    'transferIncomingShares' => false,
2025
+
2026
+    /**
2027
+     * Federated Cloud Sharing
2028
+     */
2029
+
2030
+    /**
2031
+     * Allow self-signed certificates for federated shares
2032
+     */
2033
+    'sharing.federation.allowSelfSignedCertificates' => false,
2034
+
2035
+    /**
2036
+     * Hashing
2037
+     */
2038
+
2039
+    /**
2040
+     * By default, Nextcloud will use the Argon2 password hashing if available.
2041
+     * However, if for whatever reason you want to stick with the PASSWORD_DEFAULT
2042
+     * of your PHP version, then set the setting to true.
2043
+     *
2044
+     * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
2045
+     * own and exposes its configuration options as following. More information can
2046
+     * be found at: https://www.php.net/manual/en/function.password-hash.php
2047
+     */
2048
+    'hashing_default_password' => false,
2049
+
2050
+    /**
2051
+     * The number of CPU threads to be used by the algorithm for computing a hash.
2052
+     * The value must be an integer, and the minimum value is ``1``. Rationally, it does
2053
+     * not help to provide a number higher than the available threads on the machine.
2054
+     * Values that undershoot the minimum will be ignored in favor of the minimum.
2055
+     */
2056
+    'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
2057
+
2058
+    /**
2059
+     * The memory in KiB to be used by the algorithm for computing a hash. The value
2060
+     * must be an integer, and the minimum value is 8 times the number of CPU threads.
2061
+     * Values that undershoot the minimum will be ignored in favor of the minimum.
2062
+     */
2063
+    'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
2064
+
2065
+    /**
2066
+     * The number of iterations that are used by the algorithm for computing a hash.
2067
+     * The value must be an integer, and the minimum value is ``1``. Values that
2068
+     * undershoot the minimum will be ignored in favor of the minimum.
2069
+     */
2070
+    'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
2071
+
2072
+    /**
2073
+     * The hashing cost used by hashes generated by Nextcloud
2074
+     * Using a higher value requires more time and CPU power to calculate the hashes
2075
+     */
2076
+    'hashingCost' => 10,
2077
+
2078
+    /**
2079
+     * All other configuration options
2080
+     */
2081
+
2082
+    /**
2083
+     * Additional driver options for the database connection, e.g., to enable SSL
2084
+     * encryption in MySQL or specify a custom wait timeout on a cheap hoster.
2085
+     *
2086
+     * When setting up TLS/SSL for encrypting the connections, you need to ensure that
2087
+     * the passed keys and certificates are readable by the PHP process. In addition,
2088
+     * ``PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT`` might need to be set to false, if the
2089
+     * database server's certificate CN does not match with the hostname used to connect.
2090
+     * The standard behavior here is different from the MySQL/MariaDB CLI client, which
2091
+     * does not verify the server cert except ``--ssl-verify-server-cert`` is passed manually.
2092
+     */
2093
+    'dbdriveroptions' => [
2094
+        PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
2095
+        PDO::MYSQL_ATTR_SSL_KEY => '/file/path/to/mysql-client-key.pem',
2096
+        PDO::MYSQL_ATTR_SSL_CERT => '/file/path/to/mysql-client-cert.pem',
2097
+        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
2098
+        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800'
2099
+    ],
2100
+
2101
+    /**
2102
+     * SQLite3 journal mode can be specified using this configuration parameter -
2103
+     * can be ``'WAL'`` or ``'DELETE'``. See https://www.sqlite.org/wal.html for more details.
2104
+     */
2105
+    'sqlite.journal_mode' => 'DELETE',
2106
+
2107
+    /**
2108
+     * During setup, if requirements are met (see below), this setting is set to true
2109
+     * to enable MySQL to handle 4-byte characters instead of 3-byte characters.
2110
+     *
2111
+     * To convert an existing 3-byte setup to a 4-byte setup, configure the MySQL
2112
+     * parameters as described below and run the migration command:
2113
+     * ``./occ db:convert-mysql-charset``
2114
+     * This config setting will be automatically updated after a successful migration.
2115
+     *
2116
+     * Refer to the documentation for more details.
2117
+     *
2118
+     * MySQL requires specific settings for longer indexes (> 767 bytes), which are
2119
+     * necessary for 4-byte character support::
2120
+     *
2121
+     *     [mysqld]
2122
+     *     innodb_large_prefix=ON
2123
+     *     innodb_file_format=Barracuda
2124
+     *     innodb_file_per_table=ON
2125
+     *
2126
+     * Tables will be created with:
2127
+     *  * character set: ``utf8mb4``
2128
+     *  * collation:     ``utf8mb4_bin``
2129
+     *  * row_format:    ``dynamic``
2130
+     *
2131
+     * See:
2132
+     *  * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html
2133
+     *  * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
2134
+     *  * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
2135
+     *  * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html
2136
+     *  * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/
2137
+     */
2138
+    'mysql.utf8mb4' => false,
2139
+
2140
+    /**
2141
+     * For search queries in the database, a default collation is chosen based on the
2142
+     * character set. In some cases, a different collation is desired, such as for
2143
+     * accent-sensitive searches.
2144
+     *
2145
+     * MariaDB and MySQL share some collations, but also have incompatible ones,
2146
+     * depending on the database server version.
2147
+     *
2148
+     * This option allows overriding the automatic collation choice. Example::
2149
+     *
2150
+     *     'mysql.collation' => 'utf8mb4_0900_as_ci',
2151
+     *
2152
+     * This setting does not affect table creation or setup, where utf8[mb4]_bin is
2153
+     * always used. It applies only to SQL queries using LIKE comparison operators.
2154
+     */
2155
+    'mysql.collation' => null,
2156
+
2157
+    /**
2158
+     * PostgreSQL SSL connection
2159
+     */
2160
+    'pgsql_ssl' => [
2161
+        'mode' => '',
2162
+        'cert' => '',
2163
+        'rootcert' => '',
2164
+        'key' => '',
2165
+        'crl' => '',
2166
+    ],
2167
+
2168
+    /**
2169
+     * Database types supported for installation.
2170
+     *
2171
+     * Available:
2172
+     *  - sqlite (SQLite3)
2173
+     *  - mysql (MySQL)
2174
+     *  - pgsql (PostgreSQL)
2175
+     *  - oci (Oracle)
2176
+     *
2177
+     * Defaults to:
2178
+     *  - sqlite (SQLite3)
2179
+     *  - mysql (MySQL)
2180
+     *  - pgsql (PostgreSQL)
2181
+     */
2182
+    'supportedDatabases' => [
2183
+        'sqlite',
2184
+        'mysql',
2185
+        'pgsql',
2186
+        'oci',
2187
+    ],
2188
+
2189
+    /**
2190
+     * Override the location where Nextcloud stores temporary files. Useful in setups
2191
+     * where the system temporary directory is on a limited-space ramdisk, restricted,
2192
+     * or when using external storage that does not support streaming.
2193
+     *
2194
+     * The web server user/PHP must have write access to this directory. Ensure that
2195
+     * PHP configuration recognizes this as a valid temporary directory by setting
2196
+     * the TMP, TMPDIR, and TEMP environment variables accordingly. Additional
2197
+     * permissions may be required for AppArmor or SELinux.
2198
+     */
2199
+    'tempdirectory' => '/tmp/nextcloudtemp',
2200
+
2201
+    /**
2202
+     * Override the location where Nextcloud stores update files during updates.
2203
+     * Useful when the default ``datadirectory`` is on a network disk like NFS or is
2204
+     * otherwise restricted. Defaults to the value of ``datadirectory`` if unset.
2205
+     *
2206
+     * If set, the directory must be located outside the Nextcloud installation
2207
+     * directory and writable by the web server user.
2208
+     */
2209
+    'updatedirectory' => '',
2210
+
2211
+    /**
2212
+     * Block specific files or filenames, disallowing uploads or access (read and write).
2213
+     * ``.htaccess`` is blocked by default.
2214
+     *
2215
+     * WARNING: Use this only if you understand the implications.
2216
+     *
2217
+     * NOTE: This list is case-insensitive.
2218
+     *
2219
+     * Defaults to ``['.htaccess']``
2220
+     */
2221
+    'forbidden_filenames' => ['.htaccess'],
2222
+
2223
+    /**
2224
+     * Disallow uploads of files with specific basenames. Matching existing files
2225
+     * cannot be updated, and no new files can be created in matching folders.
2226
+     *
2227
+     * The basename is the filename without the extension, e.g., for "archive.tar.gz",
2228
+     * the basename is "archive".
2229
+     *
2230
+     * NOTE: This list is case-insensitive.
2231
+     *
2232
+     * Defaults to ``[]`` (empty array)
2233
+     */
2234
+    'forbidden_filename_basenames' => [],
2235
+
2236
+    /**
2237
+     * Block specific characters in filenames. Useful for filesystems or operating
2238
+     * systems (e.g., Windows) that do not support certain characters. Matching
2239
+     * existing files cannot be updated, and no new files can be created in matching
2240
+     * folders.
2241
+     *
2242
+     * The ``/`` and ``\`` characters, as well as ASCII characters [0-31], are always
2243
+     * forbidden.
2244
+     *
2245
+     * Example for Windows: ``['?', '<', '>', ':', '*', '|', '"']``
2246
+     * See: https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
2247
+     *
2248
+     * Defaults to ``[]`` (empty array)
2249
+     */
2250
+    'forbidden_filename_characters' => [],
2251
+
2252
+    /**
2253
+     * Deny specific file extensions. Matching existing files cannot be updated, and
2254
+     * no new files can be created in matching folders.
2255
+     *
2256
+     * The ``'.part'`` extension is always forbidden, as it is used internally by Nextcloud.
2257
+     *
2258
+     * Defaults to ``['.filepart', '.part']``
2259
+     */
2260
+    'forbidden_filename_extensions' => ['.part', '.filepart'],
2261
+
2262
+    /**
2263
+     * Specify the name of a theme to apply to Nextcloud. Themes are located in
2264
+     * ``nextcloud/themes/`` by default.
2265
+     *
2266
+     * Defaults to the theming app, included since Nextcloud 9.
2267
+     */
2268
+    'theme' => '',
2269
+
2270
+    /**
2271
+     * Enforce a specific user theme, disabling user theming settings. Must be a
2272
+     * valid ITheme ID, e.g., ``dark``, ``dark-highcontrast``, ``default``, ``light``,
2273
+     * ``light-highcontrast``, ``opendyslexic``.
2274
+     */
2275
+    'enforce_theme' => '',
2276
+
2277
+    /**
2278
+     * Enable or disable Progressive Web App (PWA) functionality, which allows
2279
+     * browsers to open web applications in dedicated windows.
2280
+     *
2281
+     * Defaults to ``true``
2282
+     */
2283
+    'theming.standalone_window.enabled' => true,
2284
+
2285
+    /**
2286
+     * Specify the default cipher for encrypting files. Supported ciphers:
2287
+     *  - AES-256-CTR
2288
+     *  - AES-128-CTR
2289
+     *  - AES-256-CFB
2290
+     *  - AES-128-CFB
2291
+     *
2292
+     * Defaults to ``AES-256-CTR``
2293
+     */
2294
+    'cipher' => 'AES-256-CTR',
2295
+
2296
+    /**
2297
+     * Use the legacy base64 format for encrypted files instead of the more
2298
+     * space-efficient binary format. This affects only newly written files; existing
2299
+     * encrypted files remain readable regardless of the format.
2300
+     *
2301
+     * Defaults to ``false``
2302
+     */
2303
+    'encryption.use_legacy_base64_encoding' => false,
2304
+
2305
+    /**
2306
+     * Specify the minimum Nextcloud desktop client version allowed to sync with this
2307
+     * server. Connections from earlier clients will be denied. Defaults to the
2308
+     * minimum officially supported version at the time of this server release.
2309
+     *
2310
+     * Changing this may cause older, unsupported clients to malfunction, potentially
2311
+     * leading to data loss or unexpected behavior.
2312
+     *
2313
+     * Defaults to ``3.1.0``
2314
+     */
2315
+    'minimum.supported.desktop.version' => '3.1.0',
2316
+
2317
+    /**
2318
+     * Specify the maximum Nextcloud desktop client version allowed to sync with this
2319
+     * server. Connections from later clients will be denied.
2320
+     *
2321
+     * Defaults to ``99.99.99``
2322
+     */
2323
+    'maximum.supported.desktop.version' => '99.99.99',
2324
+
2325
+    /**
2326
+     * Allow local storage to contain symlinks.
2327
+     * WARNING: Not recommended, as this allows Nextcloud to access files outside the
2328
+     * data directory, posing a potential security risk.
2329
+     *
2330
+     * Defaults to ``false``
2331
+     */
2332
+    'localstorage.allowsymlinks' => false,
2333
+
2334
+    /**
2335
+     * Nextcloud overrides umask to ensure suitable access permissions regardless of
2336
+     * web server or PHP-FPM configuration. Modifying this value has security
2337
+     * implications and may cause issues with the installation.
2338
+     *
2339
+     * Most installations should not modify this value.
2340
+     *
2341
+     * Defaults to ``0022``
2342
+     */
2343
+    'localstorage.umask' => 0022,
2344
+
2345
+    /**
2346
+     * Allow storage systems that do not support modifying existing files to overcome
2347
+     * this limitation by removing files before overwriting.
2348
+     *
2349
+     * Defaults to ``false``
2350
+     */
2351
+    'localstorage.unlink_on_truncate' => false,
2352
+
2353
+    /**
2354
+     * EXPERIMENTAL: Include external storage in quota calculations.
2355
+     *
2356
+     * Defaults to ``false``
2357
+     */
2358
+    'quota_include_external_storage' => false,
2359
+
2360
+    /**
2361
+     * When an external storage is unavailable (e.g., due to failed authentication),
2362
+     * it is flagged as such for a specified duration. For authentication failures,
2363
+     * this delay can be customized to reduce the likelihood of account lockouts in
2364
+     * systems like Active Directory.
2365
+     *
2366
+     * Defaults to ``1800`` seconds (30 minutes)
2367
+     */
2368
+    'external_storage.auth_availability_delay' => 1800,
2369
+
2370
+    /**
2371
+     * Allow creation of external storages of type "Local" via the web interface and
2372
+     * APIs. When disabled, local storages can still be created using the occ command::
2373
+     *   occ files_external:create /mountpoint local null::null -c datadir=/path/to/data
2374
+     *
2375
+     * Defaults to ``true``
2376
+     */
2377
+    'files_external_allow_create_new_local' => true,
2378
+
2379
+    /**
2380
+     * Specify how often the local filesystem (Nextcloud data/ directory and NFS
2381
+     * mounts in data/) is checked for changes made outside Nextcloud. This does not
2382
+     * apply to external storage.
2383
+     *
2384
+     * - ``0`` -> Never check the filesystem for outside changes, improving performance when no external changes are expected.
2385
+     * - ``1`` -> Check each file or folder at most once per request, recommended for general use if outside changes are possible.
2386
+     *
2387
+     * Defaults to ``0``
2388
+     */
2389
+    'filesystem_check_changes' => 0,
2390
+
2391
+    /**
2392
+     * Store part files created during upload in the same storage as the upload
2393
+     * target. Setting this to false stores part files in the root of the user's
2394
+     * folder, which may be necessary for external storage with limited rename
2395
+     * capabilities.
2396
+     *
2397
+     * Defaults to ``true``
2398
+     */
2399
+    'part_file_in_storage' => true,
2400
+
2401
+    /**
2402
+     * Specify the location of the ``mount.json`` file.
2403
+     *
2404
+     * Defaults to ``data/mount.json`` in the Nextcloud directory.
2405
+     */
2406
+    'mount_file' => '/var/www/nextcloud/data/mount.json',
2407
+
2408
+    /**
2409
+     * Prevent Nextcloud from updating the cache due to filesystem changes for all
2410
+     * storage.
2411
+     *
2412
+     * Defaults to ``false``
2413
+     */
2414
+    'filesystem_cache_readonly' => false,
2415
+
2416
+    /**
2417
+     * List of trusted proxy servers. Supported formats:
2418
+     *
2419
+     * - IPv4 addresses, e.g., ``192.168.2.123``
2420
+     * - IPv4 ranges in CIDR notation, e.g., ``192.168.2.0/24``
2421
+     * - IPv6 addresses, e.g., ``fd9e:21a7:a92c:2323::1``
2422
+     * - IPv6 ranges in CIDR notation, e.g., ``2001:db8:85a3:8d3:1319:8a20::/95``
2423
+     *
2424
+     * If a request's ``REMOTE_ADDR`` matches an address here, it is treated as a proxy,
2425
+     * and the client IP is read from the HTTP header specified in
2426
+     * ``forwarded_for_headers`` instead of ``REMOTE_ADDR``.
2427
+     *
2428
+     * Ensure ``forwarded_for_headers`` is configured if ``trusted_proxies`` is set.
2429
+     *
2430
+     * Defaults to ``[]`` (empty array)
2431
+     */
2432
+    'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],
2433
+
2434
+    /**
2435
+     * Headers trusted as containing the client IP address when used with
2436
+     * ``trusted_proxies``. For example, use ``HTTP_X_FORWARDED_FOR`` for the
2437
+     * ``X-Forwarded-For`` header.
2438
+     *
2439
+     * Incorrect configuration allows clients to spoof their IP address, bypassing
2440
+     * access controls and rendering logs unreliable.
2441
+     *
2442
+     * Defaults to ``['HTTP_X_FORWARDED_FOR']``
2443
+     */
2444
+    'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],
2445
+
2446
+    /**
2447
+     * List of trusted IP ranges for admin actions. If non-empty, all admin actions
2448
+     * must originate from IPs within these ranges.
2449
+     *
2450
+     * Supported formats:
2451
+     * - IPv4 addresses or ranges, e.g., ``192.0.2.42/32``, ``233.252.0.0/24``
2452
+     * - IPv6 addresses or ranges, e.g., ``2001:db8::13:37/64``
2453
+     *
2454
+     * Defaults to ``[]`` (empty array)
2455
+     */
2456
+    'allowed_admin_ranges' => ['192.0.2.42/32', '233.252.0.0/24', '2001:db8::13:37/64'],
2457
+
2458
+    /**
2459
+     * Maximum file size (in megabytes) for animating GIFs on public sharing pages.
2460
+     * If a GIF exceeds this size, a static preview is shown.
2461
+     *
2462
+     * Set to ``-1`` for no limit.
2463
+     *
2464
+     * Defaults to ``10`` megabytes
2465
+     */
2466
+    'max_filesize_animated_gifs_public_sharing' => 10,
2467
+
2468
+    /**
2469
+     * Set the lock's time-to-live (TTL) in seconds. Locks older than this are
2470
+     * automatically cleaned up.
2471
+     *
2472
+     * Defaults to ``3600`` seconds (1 hour) or the PHP ``max_execution_time``,
2473
+     * whichever is higher.
2474
+     */
2475
+    'filelocking.ttl' => 60 * 60,
2476
+
2477
+    /**
2478
+     * Memory caching backend for file locking. Redis is highly recommended to avoid
2479
+     * data loss, as many memcache backends may evict values unexpectedly.
2480
+     *
2481
+     * Defaults to ``none``
2482
+     */
2483
+    'memcache.locking' => '\\OC\\Memcache\\Redis',
2484
+
2485
+    /**
2486
+     * Enable debug logging for file locking. This can generate a large volume of log
2487
+     * entries, potentially causing performance degradation and large log files on
2488
+     * busy instances.
2489
+     *
2490
+     * Use with ``log.condition`` to limit logging in production environments.
2491
+     *
2492
+     * Defaults to ``false``
2493
+     */
2494
+    'filelocking.debug' => false,
2495
+
2496
+    /**
2497
+     * Disable the web-based updater.
2498
+     *
2499
+     * Defaults to ``false``
2500
+     */
2501
+    'upgrade.disable-web' => false,
2502
+
2503
+    /**
2504
+     * Customize the CLI upgrade documentation link.
2505
+     */
2506
+    'upgrade.cli-upgrade-link' => '',
2507
+
2508
+    /**
2509
+     * Additional line(s) (string or array of strings)
2510
+     * that will be added to .user.ini on each update by the updater.
2511
+     *
2512
+     * Defaults to ``''`` (empty string)
2513
+     */
2514
+    'user_ini_additional_lines' => '',
2515
+
2516
+    /**
2517
+     * Customize the server logs documentation link for exception handling.
2518
+     */
2519
+    'documentation_url.server_logs' => '',
2520
+
2521
+    /**
2522
+     * Enable debugging mode for Nextcloud. Only use for local development, not in
2523
+     * production, as it disables minification and outputs additional debug
2524
+     * information.
2525
+     *
2526
+     * Defaults to ``false``
2527
+     */
2528
+    'debug' => false,
2529
+
2530
+    /**
2531
+     * Set the data fingerprint for the current data served. Used by clients to
2532
+     * detect if a backup has been restored. Update this by running::
2533
+     *   occ maintenance:data-fingerprint
2534
+     *
2535
+     * Changing or deleting this value may cause connected clients to stall until
2536
+     * conflicts are resolved.
2537
+     *
2538
+     * Defaults to ``''`` (empty string)
2539
+     */
2540
+    'data-fingerprint' => '',
2541
+
2542
+    /**
2543
+     * This entry serves as a warning if the sample configuration was copied.
2544
+     * DO NOT ADD THIS TO YOUR CONFIGURATION!
2545
+     *
2546
+     * Ensure all settings are modified only after consulting the documentation.
2547
+     */
2548
+    'copied_sample_config' => true,
2549
+
2550
+    /**
2551
+     * Use a custom lookup server to publish user data.
2552
+     *
2553
+     * Defaults to ``https://lookup.nextcloud.com``
2554
+     */
2555
+    'lookup_server' => 'https://lookup.nextcloud.com',
2556
+
2557
+    /**
2558
+     * Enable Nextcloud's Global Scale architecture.
2559
+     *
2560
+     * Defaults to ``false``
2561
+     */
2562
+    'gs.enabled' => false,
2563
+
2564
+    /**
2565
+     * Configure federation for Global Scale setups. Set to ``global`` to allow
2566
+     * federation outside the environment.
2567
+     *
2568
+     * Defaults to ``internal``
2569
+     */
2570
+    'gs.federation' => 'internal',
2571
+
2572
+    /**
2573
+     * List of user agents exempt from SameSite cookie protection due to non-standard
2574
+     * HTTP behavior.
2575
+     *
2576
+     * WARNING: Use only if you understand the implications.
2577
+     *
2578
+     * Defaults to:
2579
+     *
2580
+     * - ``/^WebDAVFS/`` (OS X Finder)
2581
+     * - ``/^Microsoft-WebDAV-MiniRedir/`` (Windows WebDAV drive)
2582
+     */
2583
+    'csrf.optout' => [
2584
+        '/^WebDAVFS/', // OS X Finder
2585
+        '/^Microsoft-WebDAV-MiniRedir/', // Windows WebDAV drive
2586
+    ],
2587
+
2588
+    /**
2589
+     * Specify allowed user agents for Login Flow V2 using regular expressions.
2590
+     * User agents not matching this list are denied access to Login Flow V2.
2591
+     *
2592
+     * WARNING: Use only if you understand the implications.
2593
+     *
2594
+     * Example: Allow only the Nextcloud Android app::
2595
+     *
2596
+     *    'core.login_flow_v2.allowed_user_agents' => ['/Nextcloud-android/i'],
2597
+     *
2598
+     * Defaults to ``[]`` (empty array)
2599
+     */
2600
+    'core.login_flow_v2.allowed_user_agents' => [],
2601
+
2602
+    /**
2603
+     * Show or hide the "simple sign up" link on public pages.
2604
+     * See: https://nextcloud.com/signup/
2605
+     *
2606
+     * Defaults to ``true``
2607
+     */
2608
+    'simpleSignUpLink.shown' => true,
2609
+
2610
+    /**
2611
+     * Enable or disable autocompletion for the login form. Disabling this prevents
2612
+     * browsers from remembering login credentials, which may be required for
2613
+     * compliance with certain security policies.
2614
+     *
2615
+     * Defaults to ``true``
2616
+     */
2617
+    'login_form_autocomplete' => true,
2618
+
2619
+    /**
2620
+     * Set a timeout (in seconds) for the login form. After this period, the form is
2621
+     * reset to prevent password leaks on public devices if the user forgets to clear
2622
+     * it.
2623
+     *
2624
+     * A value of 0 disables the timeout.
2625
+     *
2626
+     * Defaults to ``300`` seconds (5 minutes)
2627
+     */
2628
+    'login_form_timeout' => 300,
2629
+
2630
+    /**
2631
+     * Suppress warnings for outdated or unsupported browsers. When enabled, users
2632
+     * can bypass the warning after reading it.
2633
+     *
2634
+     * Set to ``true`` to disable the warning.
2635
+     *
2636
+     * Defaults to ``false``
2637
+     */
2638
+    'no_unsupported_browser_warning' => false,
2639
+
2640
+    /**
2641
+     * Disable background scanning of files. When enabled, a background job runs
2642
+     * every 10 minutes to sync the filesystem and database for up to 500 users with
2643
+     * unscanned files (size < 0 in filecache).
2644
+     *
2645
+     * Defaults to ``false``
2646
+     */
2647
+    'files_no_background_scan' => false,
2648
+
2649
+    /**
2650
+     * Log all database queries to a file.
2651
+     *
2652
+     * WARNING: This significantly reduces server performance and is intended only
2653
+     * for debugging or profiling query interactions. Sensitive data may be logged in
2654
+     * plain text.
2655
+     */
2656
+    'query_log_file' => '',
2657
+
2658
+    /**
2659
+     * Prefix all queries with the request ID when set to `yes`.
2660
+     *
2661
+     * Requires ``query_log_file`` to be set.
2662
+     */
2663
+    'query_log_file_requestid' => '',
2664
+
2665
+    /**
2666
+     * Include all query parameters in the query log when set to `yes`.
2667
+     *
2668
+     * Requires ``query_log_file`` to be set.
2669
+     * WARNING: This may log sensitive data in plain text.
2670
+     */
2671
+    'query_log_file_parameters' => '',
2672
+
2673
+    /**
2674
+     * Include a backtrace in the query log when set to `yes`.
2675
+     *
2676
+     * Requires ``query_log_file`` to be set.
2677
+     */
2678
+    'query_log_file_backtrace' => '',
2679
+
2680
+    /**
2681
+     * Log all Redis requests to a file.
2682
+     *
2683
+     * WARNING: This significantly reduces server performance and is intended only
2684
+     * for debugging or profiling Redis interactions. Sensitive data may be logged in
2685
+     * plain text.
2686
+     */
2687
+    'redis_log_file' => '',
2688
+
2689
+    /**
2690
+     * Enable diagnostics event logging. Logs timings of common execution steps at
2691
+     * debug level. Use with ``log.condition`` to enable conditionally in production.
2692
+     *
2693
+     * Defaults to ``true``
2694
+     */
2695
+    'diagnostics.logging' => true,
2696
+
2697
+    /**
2698
+     * Limit diagnostics event logging to events longer than the specified threshold
2699
+     * (in milliseconds). A value of 0 disables diagnostics event logging.
2700
+     */
2701
+    'diagnostics.logging.threshold' => 0,
2702
+
2703
+    /**
2704
+     * Enable profiling globally.
2705
+     *
2706
+     * Defaults to ``true``
2707
+     */
2708
+    'profile.enabled' => true,
2709
+
2710
+    /**
2711
+     * Override default scopes for account data. Valid properties and scopes are
2712
+     * defined in ``OCP\Accounts\IAccountManager``. Values are merged with defaults
2713
+     * from ``OC\Accounts\AccountManager``.
2714
+     *
2715
+     * Example: Set phone property to private scope:
2716
+     * ``[\OCP\Accounts\IAccountManager::PROPERTY_PHONE => \OCP\Accounts\IAccountManager::SCOPE_PRIVATE]``
2717
+     */
2718
+    'account_manager.default_property_scope' => [],
2719
+
2720
+    /**
2721
+     * Enable the deprecated Projects feature, superseded by Related Resources since
2722
+     * Nextcloud 25.
2723
+     *
2724
+     * Defaults to ``false``
2725
+     */
2726
+    'projects.enabled' => false,
2727
+
2728
+    /**
2729
+     * Enable the bulk upload feature.
2730
+     *
2731
+     * Defaults to ``true``
2732
+     */
2733
+    'bulkupload.enabled' => true,
2734
+
2735
+    /**
2736
+     * Enable fetching Open Graph metadata from remote URLs.
2737
+     *
2738
+     * Defaults to ``true``
2739
+     */
2740
+    'reference_opengraph' => true,
2741
+
2742
+    /**
2743
+     * Enable the legacy unified search.
2744
+     *
2745
+     * Defaults to ``false``
2746
+     */
2747
+    'unified_search.enabled' => false,
2748
+
2749
+    /**
2750
+     * Enable features that do not yet comply with accessibility standards.
2751
+     *
2752
+     * Defaults to ``true``
2753
+     */
2754
+    'enable_non-accessible_features' => true,
2755
+
2756
+    /**
2757
+     * Directories where Nextcloud searches for external binaries (e.g., LibreOffice,
2758
+     * sendmail, ffmpeg).
2759
+     *
2760
+     * Defaults to:
2761
+     * - /usr/local/sbin
2762
+     * - /usr/local/bin
2763
+     * - /usr/sbin
2764
+     * - /usr/bin
2765
+     * - /sbin
2766
+     * - /bin
2767
+     * - /opt/bin
2768
+     */
2769
+    'binary_search_paths' => [
2770
+        '/usr/local/sbin',
2771
+        '/usr/local/bin',
2772
+        '/usr/sbin',
2773
+        '/usr/bin',
2774
+        '/sbin',
2775
+        '/bin',
2776
+        '/opt/bin',
2777
+    ],
2778
+
2779
+    /**
2780
+     * Maximum chunk size for chunked uploads (in bytes). Larger chunks increase
2781
+     * throughput but yield diminishing returns above 100 MiB. Services like
2782
+     * Cloudflare may limit to 100 MiB.
2783
+     *
2784
+     * Defaults to ``100 * 1024 * 1024`` (100 MiB)
2785
+     */
2786
+    'files.chunked_upload.max_size' => 100 * 1024 * 1024,
2787
+
2788
+    /**
2789
+     * Maximum number of chunks uploaded in parallel during chunked uploads. Higher
2790
+     * counts increase throughput but consume more server resources, with diminishing
2791
+     * returns.
2792
+     *
2793
+     * Defaults to ``5``
2794
+     */
2795
+    'files.chunked_upload.max_parallel_count' => 5,
2796
+
2797
+    /**
2798
+     * Allow users to manually delete files from their trashbin. Automated deletions
2799
+     * (e.g., due to low quota) are unaffected.
2800
+     *
2801
+     * Defaults to ``true``
2802
+     */
2803
+    'files.trash.delete' => true,
2804
+
2805
+    /**
2806
+     * Enable PHP 8.4 lazy objects for Dependency Injection to improve performance by
2807
+     * avoiding instantiation of unused objects.
2808
+     *
2809
+     * Defaults to ``true``
2810
+     */
2811
+    'enable_lazy_objects' => true,
2812 2812
 ];
Please login to merge, or discard this patch.