Completed
Push — master ( 9938bc...3f85bc )
by Joas
34:51
created
config/config.sample.php 1 patch
Indentation   +2781 added lines, -2781 removed lines patch added patch discarded remove patch
@@ -29,2785 +29,2785 @@
 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 30 days
834
-	 *     and automatically deletes anytime after that if space is needed (note:
835
-	 *     files may not be deleted if space is not needed).
836
-	 * * ``D1, auto``
837
-	 *     keeps files and folders in the trash bin for D1+ days, delete anytime if
838
-	 *     space needed (note: files may not be deleted if space is not needed)
839
-	 * * ``auto, D2``
840
-	 *     delete all files in the trash bin that are older than D2 days
841
-	 *     automatically, delete other files anytime if space needed
842
-	 * * ``D1, D2``
843
-	 *     keep files and folders in the trash bin for at least D1 days and
844
-	 *     delete when exceeds D2 days (note: files will not be deleted automatically if space is needed)
845
-	 * * ``disabled``
846
-	 *     trash bin auto clean disabled, files and folders will be kept forever
847
-	 *
848
-	 * Defaults to ``auto``
849
-	 */
850
-	'trashbin_retention_obligation' => 'auto',
851
-
852
-
853
-	/**
854
-	 * File versions
855
-	 *
856
-	 * These parameters control the Versions app.
857
-	 */
858
-
859
-	/**
860
-	 * If the versions app is enabled (default), this setting defines the policy
861
-	 * for when versions will be permanently deleted.
862
-	 * The app allows for two settings, a minimum time for version retention,
863
-	 * and a maximum time for version retention.
864
-	 * Minimum time is the number of days a version will be kept, after which it
865
-	 * may be deleted. Maximum time is the number of days at which it is guaranteed
866
-	 * to be deleted.
867
-	 * Both minimum and maximum times can be set together to explicitly define
868
-	 * version deletion. For migration purposes, this setting is installed
869
-	 * initially set to "auto", which is equivalent to the default setting in
870
-	 * Nextcloud.
871
-	 *
872
-	 * Available values:
873
-	 *
874
-	 * * ``auto``
875
-	 *     default setting. Automatically expire versions according to expire
876
-	 *     rules. Please refer to :doc:`../configuration_files/file_versioning` for
877
-	 *     more information.
878
-	 * * ``D, auto``
879
-	 *     keep versions at least for D days, apply expiration rules to all versions
880
-	 *     that are older than D days
881
-	 * * ``auto, D``
882
-	 *     delete all versions that are older than D days automatically, delete
883
-	 *     other versions according to expire rules
884
-	 * * ``D1, D2``
885
-	 *     keep versions for at least D1 days and delete when exceeds D2 days
886
-	 * * ``disabled``
887
-	 *     versions auto clean disabled, versions will be kept forever
888
-	 *
889
-	 * Defaults to ``auto``
890
-	 */
891
-	'versions_retention_obligation' => 'auto',
892
-
893
-	/**
894
-	 * Nextcloud Verifications
895
-	 *
896
-	 * Nextcloud performs several verification checks. There are two options,
897
-	 * ``true`` and ``false``.
898
-	 */
899
-
900
-	/**
901
-	 * Checks an app before install whether it uses private APIs instead of the
902
-	 * proper public APIs. If this is set to true, it will only allow installing or
903
-	 * enabling apps that pass this check.
904
-	 *
905
-	 * Defaults to ``false``
906
-	 */
907
-	'appcodechecker' => true,
908
-
909
-	/**
910
-	 * Check if Nextcloud is up-to-date and shows a notification if a new version is
911
-	 * available. It sends current version, PHP version, installation and last update
912
-	 * time, and release channel to the updater server which responds with the latest
913
-	 * available version based on those metrics.
914
-	 *
915
-	 * Defaults to ``true``
916
-	 */
917
-	'updatechecker' => true,
918
-
919
-	/**
920
-	 * URL that Nextcloud should use to look for updates
921
-	 *
922
-	 * Defaults to ``https://updates.nextcloud.com/updater_server/``
923
-	 */
924
-	'updater.server.url' => 'https://updates.nextcloud.com/updater_server/',
925
-
926
-	/**
927
-	 * The channel that Nextcloud should use to look for updates
928
-	 *
929
-	 * Supported values:
930
-	 *
931
-	 * - ``daily``
932
-	 * - ``beta``
933
-	 * - ``stable``
934
-	 */
935
-	'updater.release.channel' => 'stable',
936
-
937
-	/**
938
-	 * Is Nextcloud connected to the Internet or running in a closed network?
939
-	 *
940
-	 * Defaults to ``true``
941
-	 */
942
-	'has_internet_connection' => true,
943
-
944
-	/**
945
-	 * Which domains to request to determine the availability of an Internet
946
-	 * connection. If none of these hosts are reachable, the administration panel
947
-	 * will show a warning. Set to an empty list to not do any such checks (warning
948
-	 * will still be shown).
949
-	 * If no protocol is provided, both http and https will be tested.
950
-	 * For example, ``http://www.nextcloud.com`` and ``https://www.nextcloud.com``
951
-	 * will be tested for ``www.nextcloud.com``
952
-	 * If a protocol is provided, only this one will be tested.
953
-	 *
954
-	 * Defaults to the following domains:
955
-	 *
956
-	 *  - https://www.nextcloud.com
957
-	 *  - https://www.startpage.com
958
-	 *  - https://www.eff.org
959
-	 *  - https://www.edri.org
960
-	 */
961
-	'connectivity_check_domains' => [
962
-		'https://www.nextcloud.com',
963
-		'https://www.startpage.com',
964
-		'https://www.eff.org',
965
-		'https://www.edri.org'
966
-	],
967
-
968
-	/**
969
-	 * Allows Nextcloud to verify a working .well-known URL redirects. This is done
970
-	 * by attempting to make a request from JS to
971
-	 * ``https://example.tld/.well-known/caldav/``
972
-	 *
973
-	 * Defaults to ``true``
974
-	 */
975
-	'check_for_working_wellknown_setup' => true,
976
-
977
-	/**
978
-	 * This is a crucial security check on Apache servers that should always be set
979
-	 * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
980
-	 * If it is not, then any options controlled by ``.htaccess``, such as large
981
-	 * file uploads, will not work. It also runs checks on the ``data/`` directory,
982
-	 * which verifies that it can't be accessed directly through the Web server.
983
-	 *
984
-	 * Defaults to ``true``
985
-	 */
986
-	'check_for_working_htaccess' => true,
987
-
988
-	/**
989
-	 * In rare setups (e.g., on OpenShift or Docker on Windows), the permissions check
990
-	 * might block the installation while the underlying system offers no means to
991
-	 * "correct" the permissions. In this case, set the value to false.
992
-	 *
993
-	 * In regular cases, if issues with permissions are encountered, they should be
994
-	 * adjusted accordingly. Changing the flag is discouraged.
995
-	 *
996
-	 * Defaults to ``true``
997
-	 */
998
-	'check_data_directory_permissions' => true,
999
-
1000
-	/**
1001
-	 * In certain environments, it is desired to have a read-only configuration file.
1002
-	 * When this switch is set to ``true``, writing to the config file will be
1003
-	 * forbidden. Therefore, it will not be possible to configure all options via
1004
-	 * the Web interface. Furthermore, when updating Nextcloud, it is required to
1005
-	 * make the configuration file writable again and to set this switch to ``false``
1006
-	 * for the update process.
1007
-	 *
1008
-	 * Defaults to ``false``
1009
-	 */
1010
-	'config_is_read_only' => false,
1011
-
1012
-	/**
1013
-	 * Logging
1014
-	 */
1015
-
1016
-	/**
1017
-	 * This parameter determines where the Nextcloud logs are sent.
1018
-	 *
1019
-	 * - ``file``: the logs are written to file ``nextcloud.log`` in the default Nextcloud data directory. The log file can be changed with parameter ``logfile``.
1020
-	 * - ``syslog``: the logs are sent to the system log. This requires a syslog daemon to be active.
1021
-	 * - ``errorlog``: the logs are sent to the PHP ``error_log`` function.
1022
-	 * - ``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.
1023
-	 *
1024
-	 * Defaults to ``file``
1025
-	 */
1026
-	'log_type' => 'file',
1027
-
1028
-	/**
1029
-	 * This parameter determines where the audit logs are sent. See ``log_type`` for more information.
1030
-	 *
1031
-	 * Defaults to ``file``
1032
-	 */
1033
-	'log_type_audit' => 'file',
1034
-
1035
-	/**
1036
-	 * Name of the file to which the Nextcloud logs are written if parameter
1037
-	 * ``log_type`` is set to ``file``.
1038
-	 *
1039
-	 * Defaults to ``[datadirectory]/nextcloud.log``
1040
-	 */
1041
-	'logfile' => '/var/log/nextcloud.log',
1042
-
1043
-	/**
1044
-	 * Name of the file to which the audit logs are written if parameter
1045
-	 * ``log_type`` is set to ``file``.
1046
-	 *
1047
-	 * Defaults to ``[datadirectory]/audit.log``
1048
-	 */
1049
-	'logfile_audit' => '/var/log/audit.log',
1050
-
1051
-	/**
1052
-	 * Log file mode for the Nextcloud logging type in octal notation.
1053
-	 *
1054
-	 * Defaults to ``0640`` (writable by user, readable by group).
1055
-	 */
1056
-	'logfilemode' => 0640,
1057
-
1058
-	/**
1059
-	 * Loglevel to start logging at. Valid values are:
1060
-	 *
1061
-	 * - ``0`` = Debug
1062
-	 * - ``1`` = Info
1063
-	 * - ``2`` = Warning
1064
-	 * - ``3`` = Error
1065
-	 * - ``4`` = Fatal.
1066
-	 *
1067
-	 *
1068
-	 * Defaults to ``2`` (Warning)
1069
-	 */
1070
-	'loglevel' => 2,
1071
-
1072
-	/**
1073
-	 * Loglevel used by the frontend to start logging at. The same values as
1074
-	 * for ``loglevel`` can be used. If not set, it defaults to the value
1075
-	 * configured for ``loglevel`` or Warning if that is not set either.
1076
-	 *
1077
-	 * Defaults to ``2``
1078
-	 */
1079
-	'loglevel_frontend' => 2,
1080
-
1081
-	/**
1082
-	 * Loglevel used by the dirty database query detection. Useful to identify
1083
-	 * potential database bugs in production. Set this to loglevel or higher to
1084
-	 * see dirty queries in the logs.
1085
-	 *
1086
-	 * Defaults to ``0`` (debug)
1087
-	 */
1088
-	'loglevel_dirty_database_queries' => 0,
1089
-
1090
-	/**
1091
-	 * If you maintain different instances and aggregate the logs, you may want
1092
-	 * to distinguish between them. ``syslog_tag`` can be set per instance
1093
-	 * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1094
-	 * ``systemd``.
1095
-	 *
1096
-	 * The default value is ``Nextcloud``.
1097
-	 */
1098
-	'syslog_tag' => 'Nextcloud',
1099
-
1100
-	/**
1101
-	 * If you maintain different instances and aggregate the logs, you may want
1102
-	 * to distinguish between them. ``syslog_tag_audit`` can be set per instance
1103
-	 * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1104
-	 * ``systemd``.
1105
-	 *
1106
-	 * The default value is the value of ``syslog_tag``.
1107
-	 */
1108
-	'syslog_tag_audit' => 'Nextcloud',
1109
-
1110
-	/**
1111
-	 * Log condition for log level increase based on conditions. Once one of these
1112
-	 * conditions is met, the required log level is set to debug. This allows
1113
-	 * debugging specific requests, users, or apps
1114
-	 *
1115
-	 * Supported conditions:
1116
-	 *  - ``shared_secret``: if a request parameter with the name `log_secret` is set to
1117
-	 *                this value, the condition is met
1118
-	 *  - ``users``:  if the current request is done by one of the specified users,
1119
-	 *                this condition is met
1120
-	 *  - ``apps``:   if the log message is invoked by one of the specified apps,
1121
-	 *                this condition is met
1122
-	 *  - ``matches``: if all the conditions inside a group match,
1123
-	 *                this condition is met. This allows logging only entries to an app
1124
-	 *                by a few users.
1125
-	 *
1126
-	 * Defaults to an empty array.
1127
-	 */
1128
-	'log.condition' => [
1129
-		'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1130
-		'users' => ['sample-user'],
1131
-		'apps' => ['files'],
1132
-		'matches' => [
1133
-			[
1134
-				'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1135
-				'users' => ['sample-user'],
1136
-				'apps' => ['files'],
1137
-				'loglevel' => 1,
1138
-				'message' => 'contains substring'
1139
-			],
1140
-		],
1141
-	],
1142
-
1143
-	/**
1144
-	 * Enables logging a backtrace with each log line. Normally, only Exceptions
1145
-	 * carry backtrace information, which are logged automatically. This
1146
-	 * switch turns them on for any log message. Enabling this option will lead
1147
-	 * to increased log data size.
1148
-	 *
1149
-	 * Defaults to ``false``.
1150
-	 */
1151
-	'log.backtrace' => false,
1152
-
1153
-	/**
1154
-	 * This uses PHP.date formatting; see https://www.php.net/manual/en/function.date.php
1155
-	 *
1156
-	 * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00``, see ``\DateTime::ATOM``
1157
-	 * https://www.php.net/manual/en/class.datetimeinterface.php#datetimeinterface.constants.atom
1158
-	 */
1159
-	'logdateformat' => 'F d, Y H:i:s',
1160
-
1161
-	/**
1162
-	 * The timezone for logfiles. See https://www.php.net/manual/en/timezones.php
1163
-	 *
1164
-	 * Defaults to ``UTC``
1165
-	 */
1166
-	'logtimezone' => 'Europe/Berlin',
1167
-
1168
-	/**
1169
-	 * Append all database queries and parameters to the log file. Use this only for
1170
-	 * debugging, as your logfile will become huge.
1171
-	 */
1172
-	'log_query' => false,
1173
-
1174
-	/**
1175
-	 * Enables log rotation and limits the total size of logfiles. Set it to 0 for
1176
-	 * no rotation. Specify a size in bytes, for example, 104857600 (100 megabytes
1177
-	 * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
1178
-	 * old logfile reaches your limit. If a rotated log file is already present, it
1179
-	 * will be overwritten.
1180
-	 *
1181
-	 * Defaults to 100 MB
1182
-	 */
1183
-	'log_rotate_size' => 100 * 1024 * 1024,
1184
-
1185
-	/**
1186
-	 * Enable built-in profiler. Helpful when trying to debug performance
1187
-	 * issues.
1188
-	 *
1189
-	 * Note that this has a performance impact and shouldn't be enabled
1190
-	 * on production.
1191
-	 */
1192
-	'profiler' => false,
1193
-
1194
-	/**
1195
-	 * Enable profiling for individual requests if profiling single requests is enabled or the secret is passed.
1196
-	 * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1197
-	 *
1198
-	 * The profile data will be stored as a JSON file in the profiling.path directory that can be analyzed with speedscope.
1199
-	 *
1200
-	 * Defaults to ``false``
1201
-	 */
1202
-	'profiling.request' => false,
1203
-
1204
-	/**
1205
-	 * The rate at which profiling data is collected for individual requests.
1206
-	 * A lower value means more data points but higher overhead.
1207
-	 *
1208
-	 * Defaults to ``0.001``
1209
-	 */
1210
-	'profiling.request.rate' => 0.001,
1211
-
1212
-	/**
1213
-	 * A secret token that can be passed via ?profile_secret=<secret> to enable profiling for a specific request.
1214
-	 * This allows profiling specific requests in production without enabling it globally.
1215
-	 *
1216
-	 * No default value.
1217
-	 */
1218
-	'profiling.secret' => '',
1219
-
1220
-	/**
1221
-	 * Enable sampling-based profiling. This collects profiling data periodically rather than per-request.
1222
-	 * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1223
-	 *
1224
-	 * The profile data will be stored as a plain text file in the profiling.path directory that can be analyzed with speedscope.
1225
-	 *
1226
-	 * Defaults to ``false``
1227
-	 */
1228
-	'profiling.sample' => false,
1229
-
1230
-	/**
1231
-	 * The rate at which sampling profiling data is collected in seconds.
1232
-	 * A lower value means more frequent samples but higher overhead.
1233
-	 *
1234
-	 * Defaults to ``1``
1235
-	 */
1236
-	'profiling.sample.rate' => 1,
1237
-
1238
-	/**
1239
-	 * How often (in minutes) the sample log files are rotated.
1240
-	 *
1241
-	 * Defaults to ``60``
1242
-	 */
1243
-	'profiling.sample.rotation' => 60,
1244
-
1245
-	/**
1246
-	 * The directory where profiling data is stored.
1247
-	 *
1248
-	 * Note that this directory must be writable by the web server user and will not be cleaned up automatically.
1249
-	 */
1250
-	'profiling.path' => '/tmp',
1251
-
1252
-
1253
-	/**
1254
-	 * Alternate Code Locations
1255
-	 *
1256
-	 * Some Nextcloud code may be stored in alternate locations.
1257
-	 */
1258
-
1259
-	/**
1260
-	 * This section is for configuring the download links for Nextcloud clients, as
1261
-	 * seen in the first-run wizard and on Personal pages.
1262
-	 *
1263
-	 * Defaults to:
1264
-	 *
1265
-	 * - Desktop client: ``https://nextcloud.com/install/#install-clients``
1266
-	 * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client``
1267
-	 * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8``
1268
-	 * - iOS client app ID: ``1125420102``
1269
-	 * - F-Droid client: ``https://f-droid.org/packages/com.nextcloud.client/``
1270
-	 */
1271
-	'customclient_desktop'
1272
-		=> 'https://nextcloud.com/install/#install-clients',
1273
-	'customclient_android'
1274
-		=> 'https://play.google.com/store/apps/details?id=com.nextcloud.client',
1275
-	'customclient_ios'
1276
-		=> 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8',
1277
-	'customclient_ios_appid'
1278
-		=> '1125420102',
1279
-	'customclient_fdroid'
1280
-		=> 'https://f-droid.org/packages/com.nextcloud.client/',
1281
-
1282
-	/**
1283
-	 * Activity
1284
-	 *
1285
-	 * Options for the activity app.
1286
-	 */
1287
-
1288
-	/**
1289
-	 * Retention of activities.
1290
-	 *
1291
-	 * A daily cron job deletes all activities for all users which are older than
1292
-	 * the number of days specified here.
1293
-	 *
1294
-	 * Defaults to ``365``
1295
-	 */
1296
-	'activity_expire_days' => 365,
1297
-
1298
-	/**
1299
-	 * Activities in Team Folders and External Storages.
1300
-	 *
1301
-	 * By default, activities in team folders or external storages are only generated
1302
-	 * for the current user. This is due to a limitations in current implementations.
1303
-	 * This config flag makes activities in group folders and external storages work
1304
-	 * like in normal shares (when set to ``true``).
1305
-	 *
1306
-	 * WARNING: Enabling this comes with some CRITICAL trade-offs:
1307
-	 *
1308
-	 * - If team folder "Advanced Permissions" (ACLs) are used, activities do not
1309
-	 *   respect the permissions and therefore all users see all activities, even
1310
-	 *   for files and directories they do not have access to.
1311
-	 * - Users who had access to a team folder, share, or external storage can see
1312
-	 *   activities in their stream and emails that happen after they are removed
1313
-	 *   until they log in again.
1314
-	 * - Users who are newly added to a team folder, share, or external storage
1315
-	 *   cannot see activities in their stream or emails that happen after they
1316
-	 *   are added until they log in again.
1317
-	 *
1318
-	 * Defaults to ``false``
1319
-	 */
1320
-	'activity_use_cached_mountpoints' => false,
1321
-
1322
-	/**
1323
-	 * Apps
1324
-	 *
1325
-	 * Options for the Apps folder, Apps store, and App code checker.
1326
-	 */
1327
-
1328
-	/**
1329
-	 * Set the default app to open on login. The entry IDs can be retrieved from
1330
-	 * the Navigations OCS API endpoint: https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/operations/core-navigation-get-apps-navigation.
1331
-	 * You can use a comma-separated list of app names, so if the first
1332
-	 * app is not enabled for a user, then Nextcloud will try the second one, and so
1333
-	 * on. If no enabled apps are found, it defaults to the dashboard app.
1334
-	 *
1335
-	 * Defaults to ``dashboard,files``
1336
-	 */
1337
-	'defaultapp' => 'dashboard,files',
1338
-
1339
-	/**
1340
-	 * When enabled, admins may install apps from the Nextcloud app store.
1341
-	 *
1342
-	 * Defaults to ``true``
1343
-	 */
1344
-	'appstoreenabled' => true,
1345
-
1346
-	/**
1347
-	 * Enables the installation of apps from a self-hosted apps store.
1348
-	 * Requires that at least one of the configured apps directories is writable.
1349
-	 *
1350
-	 * Defaults to ``https://apps.nextcloud.com/api/v1``
1351
-	 */
1352
-	'appstoreurl' => 'https://apps.nextcloud.com/api/v1',
1353
-
1354
-	/**
1355
-	 * Filters allowed installable apps from the appstore.
1356
-	 * Empty array will prevent all apps from the store to be found.
1357
-	 */
1358
-	'appsallowlist' => [],
1359
-
1360
-	/**
1361
-	 * Use the ``apps_paths`` parameter to set the location of the Apps directory,
1362
-	 * which should be scanned for available apps, and where user-specific apps
1363
-	 * should be installed from the Apps store. The ``path`` defines the absolute
1364
-	 * file system path to the app folder. The key ``url`` defines the HTTP Web path
1365
-	 * to that folder, starting from the Nextcloud webroot. The key ``writable``
1366
-	 * indicates if a Web server can write files to that folder.
1367
-	 */
1368
-	'apps_paths' => [
1369
-		[
1370
-			'path' => '/var/www/nextcloud/apps',
1371
-			'url' => '/apps',
1372
-			'writable' => true,
1373
-		],
1374
-	],
1375
-
1376
-	/**
1377
-	 * @see appcodechecker
1378
-	 */
1379
-
1380
-	/**
1381
-	 * Previews
1382
-	 *
1383
-	 * Nextcloud supports generating previews for various file types, such as images, audio files, and text files.
1384
-	 * These options control enabling and disabling previews, and thumbnail size.
1385
-	 */
1386
-
1387
-	/**
1388
-	 * By default, Nextcloud can generate previews for the following filetypes:
1389
-	 *
1390
-	 * - Image files
1391
-	 * - Text documents
1392
-	 *
1393
-	 * Valid values are ``true``, to enable previews, or
1394
-	 * ``false``, to disable previews
1395
-	 *
1396
-	 * Defaults to ``true``
1397
-	 */
1398
-	'enable_previews' => true,
1399
-
1400
-	/**
1401
-	 * Number of all preview requests being processed concurrently,
1402
-	 * including previews that need to be newly generated, and those that have
1403
-	 * been generated.
1404
-	 *
1405
-	 * This should be greater than ``preview_concurrency_new``.
1406
-	 * If unspecified, defaults to twice the value of ``preview_concurrency_new``.
1407
-	 */
1408
-	'preview_concurrency_all' => 8,
1409
-
1410
-	/**
1411
-	 * Number of new previews that are being concurrently generated.
1412
-	 *
1413
-	 * Depending on the max preview size set by ``preview_max_x`` and ``preview_max_y``,
1414
-	 * the generation process can consume considerable CPU and memory resources.
1415
-	 * It's recommended to limit this to be no greater than the number of CPU cores.
1416
-	 * If unspecified, defaults to the number of CPU cores, or 4 if that cannot
1417
-	 * be determined.
1418
-	 */
1419
-	'preview_concurrency_new' => 4,
1420
-
1421
-	/**
1422
-	 * The maximum width, in pixels, of a preview. A value of ``null`` means there
1423
-	 * is no limit.
1424
-	 *
1425
-	 * Defaults to ``4096``
1426
-	 */
1427
-	'preview_max_x' => 4096,
1428
-	/**
1429
-	 * The maximum height, in pixels, of a preview. A value of ``null`` means there
1430
-	 * is no limit.
1431
-	 *
1432
-	 * Defaults to ``4096``
1433
-	 */
1434
-	'preview_max_y' => 4096,
1435
-
1436
-	/**
1437
-	 * Max file size for generating image previews with imagegd (default behavior).
1438
-	 * If the image is bigger, it'll try other preview generators, but will most
1439
-	 * likely either show the default mimetype icon or not display the image at all.
1440
-	 * Set to ``-1`` for no limit and try to generate image previews on all file sizes.
1441
-	 *
1442
-	 * Defaults to ``50`` megabytes
1443
-	 */
1444
-	'preview_max_filesize_image' => 50,
1445
-
1446
-	/**
1447
-	 * Max memory for generating image previews with imagegd (default behavior)
1448
-	 * Reads the image dimensions from the header and assumes 32 bits per pixel.
1449
-	 * If creating the image would allocate more memory, preview generation will
1450
-	 * be disabled and the default mimetype icon is shown. Set to ``-1`` for no limit.
1451
-	 *
1452
-	 * Defaults to ``256`` megabytes
1453
-	 */
1454
-	'preview_max_memory' => 256,
1455
-
1456
-	/**
1457
-	 * Custom path for LibreOffice/OpenOffice binary
1458
-	 *
1459
-	 *
1460
-	 * Defaults to ``''`` (empty string)
1461
-	 */
1462
-	'preview_libreoffice_path' => '/usr/bin/libreoffice',
1463
-
1464
-	/**
1465
-	 * Custom path for ffmpeg binary
1466
-	 *
1467
-	 * Defaults to ``null`` and falls back to searching ``ffmpeg``
1468
-	 * in the configured ``PATH`` environment
1469
-	 */
1470
-	'preview_ffmpeg_path' => '/usr/bin/ffmpeg',
1471
-
1472
-	/**
1473
-	 * Custom path for ffprobe binary
1474
-	 *
1475
-	 * Defaults to ``null`` and falls back to using the same path as ffmpeg.
1476
-	 * ffprobe is typically packaged with ffmpeg and is required for
1477
-	 * enhanced preview generation for HDR videos.
1478
-	 */
1479
-	'preview_ffprobe_path' => '/usr/bin/ffprobe',
1480
-
1481
-	/**
1482
-	 * Set the URL of the Imaginary service to send image previews to.
1483
-	 * Also requires the ``OC\Preview\Imaginary`` provider to be enabled in the
1484
-	 * ``enabledPreviewProviders`` array, to create previews for these mimetypes: bmp,
1485
-	 * x-bitmap, png, jpeg, gif, heic, heif, svg+xml, tiff, webp, and illustrator.
1486
-	 *
1487
-	 * If you want Imaginary to also create preview images from PDF documents, you
1488
-	 * have to add the ``OC\Preview\ImaginaryPDF`` provider as well.
1489
-	 *
1490
-	 * See https://github.com/h2non/imaginary
1491
-	 */
1492
-	'preview_imaginary_url' => 'http://previews_hpb:8088/',
1493
-
1494
-	/**
1495
-	 * If you want to set an API key for Imaginary.
1496
-	 */
1497
-	'preview_imaginary_key' => 'secret',
1498
-
1499
-	/**
1500
-	 * Only register providers that have been explicitly enabled
1501
-	 *
1502
-	 * The following providers are disabled by default due to performance or privacy
1503
-	 * concerns:
1504
-	 *
1505
-	 *  - ``OC\Preview\EMF``
1506
-	 *  - ``OC\Preview\Font``
1507
-	 *  - ``OC\Preview\HEIC``
1508
-	 *  - ``OC\Preview\Illustrator``
1509
-	 *  - ``OC\Preview\MP3``
1510
-	 *  - ``OC\Preview\MSOffice2003``
1511
-	 *  - ``OC\Preview\MSOffice2007``
1512
-	 *  - ``OC\Preview\MSOfficeDoc``
1513
-	 *  - ``OC\Preview\Movie``
1514
-	 *  - ``OC\Preview\PDF``
1515
-	 *  - ``OC\Preview\Photoshop``
1516
-	 *  - ``OC\Preview\Postscript``
1517
-	 *  - ``OC\Preview\SVG``
1518
-	 *  - ``OC\Preview\StarOffice``
1519
-	 *  - ``OC\Preview\TIFF``
1520
-	 *
1521
-	 * Defaults to the following providers:
1522
-	 *
1523
-	 *  - ``OC\Preview\BMP``
1524
-	 *  - ``OC\Preview\GIF``
1525
-	 *  - ``OC\Preview\JPEG``
1526
-	 *  - ``OC\Preview\Krita``
1527
-	 *  - ``OC\Preview\MarkDown``
1528
-	 *  - ``OC\Preview\OpenDocument``
1529
-	 *  - ``OC\Preview\PNG``
1530
-	 *  - ``OC\Preview\TXT``
1531
-	 *  - ``OC\Preview\XBitmap``
1532
-	 *
1533
-	 */
1534
-	'enabledPreviewProviders' => [
1535
-		'OC\Preview\BMP',
1536
-		'OC\Preview\GIF',
1537
-		'OC\Preview\JPEG',
1538
-		'OC\Preview\Krita',
1539
-		'OC\Preview\MarkDown',
1540
-		'OC\Preview\OpenDocument',
1541
-		'OC\Preview\PNG',
1542
-		'OC\Preview\TXT',
1543
-		'OC\Preview\XBitmap',
1544
-	],
1545
-
1546
-	/**
1547
-	 * Maximum file size for metadata generation.
1548
-	 * If a file exceeds this size, metadata generation will be skipped.
1549
-	 *
1550
-	 * NOTE: memory equivalent to this size will be used for metadata generation.
1551
-	 *
1552
-	 * Default: 256 megabytes.
1553
-	 */
1554
-	'metadata_max_filesize' => 256,
1555
-
1556
-	/**
1557
-	 * Maximum file size for file conversion.
1558
-	 * If a file exceeds this size, the file will not be converted.
1559
-	 *
1560
-	 * Default: 100 MiB
1561
-	 */
1562
-	'max_file_conversion_filesize' => 100,
1563
-
1564
-	/**
1565
-	 * LDAP
1566
-	 *
1567
-	 * Global settings used by LDAP User and Group Backend
1568
-	 */
1569
-
1570
-	/**
1571
-	 * Defines the interval in minutes for the background job that checks user
1572
-	 * existence and marks them as ready to be cleaned up. The number is always
1573
-	 * minutes. Setting it to 0 disables the feature.
1574
-	 * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete``
1575
-	 *
1576
-	 * Defaults to ``51`` minutes
1577
-	 */
1578
-	'ldapUserCleanupInterval' => 51,
1579
-
1580
-	/**
1581
-	 * Sort groups in the user settings by name instead of the user count
1582
-	 *
1583
-	 * By enabling this, the user count beside the group name is disabled as well.
1584
-	 * @deprecated since Nextcloud 29 - Use the frontend instead or set the app config value ``group.sortBy`` for ``core`` to ``2``
1585
-	 */
1586
-	'sort_groups_by_name' => false,
1587
-
1588
-	/**
1589
-	 * Comments
1590
-	 *
1591
-	 * Global settings for the Comments infrastructure
1592
-	 */
1593
-
1594
-	/**
1595
-	 * Replaces the default Comments Manager Factory. This can be utilized if an
1596
-	 * own or 3rd-party CommentsManager should be used that – for instance – uses the
1597
-	 * filesystem instead of the database to keep the comments.
1598
-	 *
1599
-	 * Defaults to ``\OC\Comments\ManagerFactory``
1600
-	 */
1601
-	'comments.managerFactory' => '\OC\Comments\ManagerFactory',
1602
-
1603
-	/**
1604
-	 * Replaces the default System Tags Manager Factory. This can be utilized if an
1605
-	 * own or 3rd-party SystemTagsManager should be used that – for instance – uses the
1606
-	 * filesystem instead of the database to keep the tags.
1607
-	 *
1608
-	 * Defaults to ``\OC\SystemTag\ManagerFactory``
1609
-	 */
1610
-	'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory',
1611
-
1612
-	/**
1613
-	 * Maintenance
1614
-	 *
1615
-	 * These options are for halting user activity when you are performing server
1616
-	 * maintenance.
1617
-	 */
1618
-
1619
-	/**
1620
-	 * Enable maintenance mode to disable Nextcloud
1621
-	 *
1622
-	 * If you want to prevent users from logging in to Nextcloud before you start
1623
-	 * doing some maintenance work, you need to set the value of the maintenance
1624
-	 * parameter to true. Please keep in mind that users who are already logged in
1625
-	 * are kicked out of Nextcloud instantly.
1626
-	 *
1627
-	 * Defaults to ``false``
1628
-	 */
1629
-	'maintenance' => false,
1630
-
1631
-	/**
1632
-	 * UTC Hour for maintenance windows
1633
-	 *
1634
-	 * Some background jobs only run once a day. When an hour is defined for this config,
1635
-	 * the background jobs which advertise themselves as not time sensitive will be
1636
-	 * delayed during the "working" hours and only run in the 4 hours after the given time.
1637
-	 * This is, e.g., used for activity expiration, suspicious login training, and update checks.
1638
-	 *
1639
-	 * A value of 1, e.g., will only run these background jobs between 01:00am UTC and 05:00am UTC.
1640
-	 *
1641
-	 * Defaults to ``100`` which disables the feature
1642
-	 */
1643
-	'maintenance_window_start' => 1,
1644
-
1645
-	/**
1646
-	 * Log all LDAP requests into a file
1647
-	 *
1648
-	 * Warning: This heavily decreases the performance of the server and is only
1649
-	 * meant to debug/profile the LDAP interaction manually.
1650
-	 * Also, it might log sensitive data into a plain text file.
1651
-	 */
1652
-	'ldap_log_file' => '',
1653
-
1654
-	/**
1655
-	 * SSL
1656
-	 */
1657
-
1658
-	/**
1659
-	 * Extra SSL options to be used for configuration.
1660
-	 *
1661
-	 * Defaults to an empty array.
1662
-	 */
1663
-	'openssl' => [
1664
-		'config' => '/absolute/location/of/openssl.cnf',
1665
-	],
1666
-
1667
-	/**
1668
-	 * Memory caching backend configuration
1669
-	 *
1670
-	 * Available cache backends:
1671
-	 *
1672
-	 * * ``\OC\Memcache\APCu``       APC user backend
1673
-	 * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
1674
-	 * * ``\OC\Memcache\Memcached``  Memcached backend
1675
-	 * * ``\OC\Memcache\Redis``      Redis backend
1676
-	 *
1677
-	 * Advice on choosing between the various backends:
1678
-	 *
1679
-	 * * APCu should be easiest to install. Almost all distributions have packages.
1680
-	 *   Use this for single user environment for all caches.
1681
-	 * * Use Redis or Memcached for distributed environments.
1682
-	 *   For the local cache (you can configure two) take APCu.
1683
-	 */
1684
-
1685
-	/**
1686
-	 * Memory caching backend for locally stored data
1687
-	 *
1688
-	 * * Used for host-specific data, e.g., file paths
1689
-	 *
1690
-	 * Defaults to ``none``
1691
-	 */
1692
-	'memcache.local' => '\\OC\\Memcache\\APCu',
1693
-
1694
-	/**
1695
-	 * Memory caching backend for distributed data
1696
-	 *
1697
-	 * * Used for installation-specific data, e.g., database caching
1698
-	 * * If unset, defaults to the value of memcache.local
1699
-	 *
1700
-	 * Defaults to ``none``
1701
-	 */
1702
-	'memcache.distributed' => '\\OC\\Memcache\\Memcached',
1703
-
1704
-	/**
1705
-	 * Connection details for Redis to use for memory caching in a single server configuration.
1706
-	 *
1707
-	 * For enhanced security, it is recommended to configure Redis
1708
-	 * to require a password. See http://redis.io/topics/security
1709
-	 * for more information.
1710
-	 *
1711
-	 * We also support Redis SSL/TLS encryption as of version 6.
1712
-	 * See https://redis.io/topics/encryption for more information.
1713
-	 */
1714
-	'redis' => [
1715
-		'host' => 'localhost', // can also be a Unix domain socket: '/tmp/redis.sock'
1716
-		'port' => 6379,
1717
-		'timeout' => 0.0,
1718
-		'read_timeout' => 0.0,
1719
-		'user' => '', // Optional: if not defined, no password will be used.
1720
-		'password' => '', // Optional: if not defined, no password will be used.
1721
-		'dbindex' => 0, // Optional: if undefined, SELECT will not run and will use Redis Server's default DB Index.
1722
-		// If Redis in-transit encryption is enabled, provide certificates
1723
-		// SSL context https://www.php.net/manual/en/context.ssl.php
1724
-		'ssl_context' => [
1725
-			'local_cert' => '/certs/redis.crt',
1726
-			'local_pk' => '/certs/redis.key',
1727
-			'cafile' => '/certs/ca.crt'
1728
-		]
1729
-	],
1730
-
1731
-	/**
1732
-	 * Connection details for a Redis Cluster.
1733
-	 *
1734
-	 * Redis Cluster support requires the PHP module phpredis in version 3.0.0 or
1735
-	 * higher.
1736
-	 *
1737
-	 * Available failover modes:
1738
-	 *  - ``\RedisCluster::FAILOVER_NONE`` - only send commands to master nodes (default)
1739
-	 *  - ``\RedisCluster::FAILOVER_ERROR`` - failover to slaves for read commands if master is unavailable (recommended)
1740
-	 *  - ``\RedisCluster::FAILOVER_DISTRIBUTE`` - randomly distribute read commands across master and slaves
1741
-	 *
1742
-	 * WARNING: ``\RedisCluster::FAILOVER_DISTRIBUTE`` is a not recommended setting, and we strongly
1743
-	 * suggest to not use it if you use Redis for file locking. Due to the way Redis
1744
-	 * is synchronized, it could happen that the read for an existing lock is
1745
-	 * scheduled to a slave that is not fully synchronized with the connected master
1746
-	 * which then causes a FileLocked exception.
1747
-	 *
1748
-	 * See https://redis.io/topics/cluster-spec for details about the Redis cluster
1749
-	 *
1750
-	 * Authentication works with phpredis version 4.2.1+. See
1751
-	 * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1
1752
-	 */
1753
-	'redis.cluster' => [
1754
-		'seeds' => [ // provide some or all of the cluster servers to bootstrap discovery, port required
1755
-			'localhost:7000',
1756
-			'localhost:7001',
1757
-		],
1758
-		'timeout' => 0.0,
1759
-		'read_timeout' => 0.0,
1760
-		'failover_mode' => \RedisCluster::FAILOVER_ERROR,
1761
-		'user' => '', // Optional: if not defined, no password will be used.
1762
-		'password' => '', // Optional: if not defined, no password will be used.
1763
-		// If Redis in-transit encryption is enabled, provide certificates
1764
-		// SSL context https://www.php.net/manual/en/context.ssl.php
1765
-		'ssl_context' => [
1766
-			'local_cert' => '/certs/redis.crt',
1767
-			'local_pk' => '/certs/redis.key',
1768
-			'cafile' => '/certs/ca.crt'
1769
-		]
1770
-	],
1771
-
1772
-
1773
-	/**
1774
-	 * Server details for one or more Memcached servers to use for memory caching.
1775
-	 */
1776
-	'memcached_servers' => [
1777
-		// hostname, port and optional weight
1778
-		// or path and port 0 for Unix socket. Also see:
1779
-		// https://www.php.net/manual/en/memcached.addservers.php
1780
-		// https://www.php.net/manual/en/memcached.addserver.php
1781
-		['localhost', 11211],
1782
-		//array('other.host.local', 11211),
1783
-	],
1784
-
1785
-	/**
1786
-	 * Connection options for Memcached
1787
-	 */
1788
-	'memcached_options' => [
1789
-		// Set timeouts to 50ms
1790
-		\Memcached::OPT_CONNECT_TIMEOUT => 50,
1791
-		\Memcached::OPT_RETRY_TIMEOUT => 50,
1792
-		\Memcached::OPT_SEND_TIMEOUT => 50,
1793
-		\Memcached::OPT_RECV_TIMEOUT => 50,
1794
-		\Memcached::OPT_POLL_TIMEOUT => 50,
1795
-
1796
-		// Enable compression
1797
-		\Memcached::OPT_COMPRESSION => true,
1798
-
1799
-		// Turn on consistent hashing
1800
-		\Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
1801
-
1802
-		// Enable Binary Protocol
1803
-		\Memcached::OPT_BINARY_PROTOCOL => true,
1804
-
1805
-		// Binary serializer will be enabled if the igbinary PECL module is available
1806
-		//\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY,
1807
-	],
1808
-
1809
-
1810
-	/**
1811
-	 * Location of the cache folder, defaults to ``data/$user/cache`` where
1812
-	 * ``$user`` is the current user. When specified, the format will change to
1813
-	 * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
1814
-	 * and ``$user`` is the user.
1815
-	 *
1816
-	 * Defaults to ``''`` (empty string)
1817
-	 */
1818
-	'cache_path' => '',
1819
-
1820
-	/**
1821
-	 * TTL of chunks located in the cache folder before they're removed by
1822
-	 * garbage collection (in seconds). Increase this value if users have
1823
-	 * issues uploading very large files via the Nextcloud Client as upload isn't
1824
-	 * completed within one day.
1825
-	 *
1826
-	 * Defaults to ``60*60*24`` (1 day)
1827
-	 */
1828
-	'cache_chunk_gc_ttl' => 60 * 60 * 24,
1829
-
1830
-	/**
1831
-	 * Enable caching of the app config values.
1832
-	 * If enabled the app config will be cached locally for a short TTL,
1833
-	 * reducing database load significantly on larger setups.
1834
-	 *
1835
-	 * Defaults to ``true``
1836
-	 */
1837
-	'cache_app_config' => true,
1838
-
1839
-	/**
1840
-	 * Using Object Store with Nextcloud
1841
-	 */
1842
-
1843
-	/**
1844
-	 * This example shows how to configure Nextcloud to store all files in a
1845
-	 * Swift object storage.
1846
-	 *
1847
-	 * It is important to note that Nextcloud in object store mode will expect
1848
-	 * exclusive access to the object store container because it only stores the
1849
-	 * binary data for each file. The metadata is currently kept in the local
1850
-	 * database for performance reasons.
1851
-	 *
1852
-	 * WARNING: The current implementation is incompatible with any app that uses
1853
-	 * direct file I/O and circumvents our virtual filesystem. That includes
1854
-	 * Encryption and Gallery. Gallery will store thumbnails directly in the
1855
-	 * filesystem, and encryption will cause severe overhead because key files need
1856
-	 * to be fetched in addition to any requested file.
1857
-	 *
1858
-	 */
1859
-	'objectstore' => [
1860
-		'class' => 'OC\\Files\\ObjectStore\\Swift',
1861
-		'arguments' => [
1862
-			// trystack will use your Facebook ID as the username
1863
-			'username' => 'facebook100000123456789',
1864
-			// in the trystack dashboard, go to user -> settings -> API Password to
1865
-			// generate a password
1866
-			'password' => 'Secr3tPaSSWoRdt7',
1867
-			// must already exist in the objectstore, name can be different
1868
-			'container' => 'nextcloud',
1869
-			// prefix to prepend to the fileid, default is 'oid:urn:'
1870
-			'objectPrefix' => 'oid:urn:',
1871
-			// create the container if it does not exist. default is false
1872
-			'autocreate' => true,
1873
-			// required, dev-/trystack defaults to 'RegionOne'
1874
-			'region' => 'RegionOne',
1875
-			// The Identity / Keystone endpoint
1876
-			'url' => 'http://8.21.28.222:5000/v2.0',
1877
-			// uploadPartSize: size of the uploaded chunks, defaults to 524288000
1878
-			'uploadPartSize' => 524288000,
1879
-			// required on dev-/trystack
1880
-			'tenantName' => 'facebook100000123456789',
1881
-			// dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
1882
-			// if omitted
1883
-			'serviceName' => 'swift',
1884
-			// The Interface / URL Type, optional
1885
-			'urlType' => 'internal',
1886
-			// Maximum amount of data that can be uploaded
1887
-			'totalSizeLimit' => 1024 * 1024 * 1024,
1888
-		],
1889
-	],
1890
-
1891
-	/**
1892
-	 * To use Swift V3
1893
-	 */
1894
-	'objectstore' => [
1895
-		'class' => 'OC\\Files\\ObjectStore\\Swift',
1896
-		'arguments' => [
1897
-			'autocreate' => true,
1898
-			'user' => [
1899
-				'name' => 'swift',
1900
-				'password' => 'swift',
1901
-				'domain' => [
1902
-					'name' => 'default',
1903
-				],
1904
-			],
1905
-			'scope' => [
1906
-				'project' => [
1907
-					'name' => 'service',
1908
-					'domain' => [
1909
-						'name' => 'default',
1910
-					],
1911
-				],
1912
-			],
1913
-			'tenantName' => 'service',
1914
-			'serviceName' => 'swift',
1915
-			'region' => 'regionOne',
1916
-			'url' => 'http://yourswifthost:5000/v3',
1917
-			'bucket' => 'nextcloud',
1918
-		],
1919
-	],
1920
-
1921
-	/**
1922
-	 * If this is set to true and a multibucket object store is configured, then
1923
-	 * newly created previews are put into 256 dedicated buckets.
1924
-	 *
1925
-	 * Those buckets are named like the multibucket version but with the postfix
1926
-	 * ``-preview-NUMBER`` where NUMBER is between 0 and 255.
1927
-	 *
1928
-	 * Keep in mind that only previews of files are put in there that don't have
1929
-	 * some already. Otherwise, the old bucket will be used.
1930
-	 *
1931
-	 * To migrate existing previews to this new multibucket distribution of previews,
1932
-	 * use the occ command ``preview:repair``. For now, this will only migrate
1933
-	 * previews that were generated before Nextcloud 19 in the flat
1934
-	 * ``appdata_INSTANCEID/previews/FILEID`` folder structure.
1935
-	 */
1936
-	'objectstore.multibucket.preview-distribution' => false,
1937
-
1938
-
1939
-	/**
1940
-	 * Sharing
1941
-	 *
1942
-	 * Global settings for Sharing
1943
-	 */
1944
-
1945
-	/**
1946
-	 * Replaces the default Share Provider Factory. This can be utilized if
1947
-	 * own or 3rd-party Share Providers are used that – for instance – use the
1948
-	 * filesystem instead of the database to keep the share information.
1949
-	 *
1950
-	 * Defaults to ``\OC\Share20\ProviderFactory``
1951
-	 */
1952
-	'sharing.managerFactory' => '\OC\Share20\ProviderFactory',
1953
-
1954
-	/**
1955
-	 * Enables expiration for link share passwords sent by email (sharebymail).
1956
-	 * The passwords will expire after the configured interval; the users can
1957
-	 * still request a new one on the public link page.
1958
-	 */
1959
-	'sharing.enable_mail_link_password_expiration' => false,
1960
-
1961
-	/**
1962
-	 * Expiration interval for passwords, in seconds.
1963
-	 */
1964
-	'sharing.mail_link_password_expiration_interval' => 3600,
1965
-
1966
-	/**
1967
-	 * Define max number of results returned by the search for auto-completion of
1968
-	 * users, groups, etc. The value must not be lower than 0 (for unlimited).
1969
-	 *
1970
-	 * If more, different sources are requested (e.g., different user backends; or
1971
-	 * both users and groups), the value is applied per source and might not be
1972
-	 * truncated after collecting the results. I.e., more results can appear than
1973
-	 * configured here.
1974
-	 *
1975
-	 * Default is 25.
1976
-	 */
1977
-	'sharing.maxAutocompleteResults' => 25,
1978
-
1979
-	/**
1980
-	 * Define the minimum length of the search string before we start auto-completion
1981
-	 * Default is no limit (value set to 0)
1982
-	 */
1983
-	'sharing.minSearchStringLength' => 0,
1984
-
1985
-	/**
1986
-	 * Set to true to enable that internal shares need to be accepted by the users by default.
1987
-	 * Users can change this for their account in their personal sharing settings
1988
-	 */
1989
-	'sharing.enable_share_accept' => false,
1990
-
1991
-	/**
1992
-	 * Set to ``true`` to enforce that internal shares need to be accepted
1993
-	 */
1994
-	'sharing.force_share_accept' => false,
1995
-
1996
-	/**
1997
-	 * Set to ``false`` to prevent users from setting a custom share_folder
1998
-	 */
1999
-	'sharing.allow_custom_share_folder' => true,
2000
-
2001
-	/**
2002
-	 * Define a default folder for shared files and folders other than root.
2003
-	 * Changes to this value will only have effect on new shares.
2004
-	 *
2005
-	 * Defaults to ``/``
2006
-	 */
2007
-	'share_folder' => '/',
2008
-
2009
-	/**
2010
-	 * Set to ``false`` to stop sending a mail when users receive a share
2011
-	 */
2012
-	'sharing.enable_share_mail' => true,
2013
-
2014
-	/**
2015
-	 * Set to true to enable the feature to add exceptions for share password enforcement
2016
-	 */
2017
-	'sharing.allow_disabled_password_enforcement_groups' => false,
2018
-
2019
-	/**
2020
-	 * Set to true to always transfer incoming shares by default
2021
-	 * when running ``occ files:transfer-ownership``.
2022
-	 * Defaults to ``false``, so incoming shares are not transferred if not specifically requested
2023
-	 * by a command line argument.
2024
-	 */
2025
-	'transferIncomingShares' => false,
2026
-
2027
-	/**
2028
-	 * Federated Cloud Sharing
2029
-	 */
2030
-
2031
-	/**
2032
-	 * Allow self-signed certificates for federated shares
2033
-	 */
2034
-	'sharing.federation.allowSelfSignedCertificates' => false,
2035
-
2036
-	/**
2037
-	 * Hashing
2038
-	 */
2039
-
2040
-	/**
2041
-	 * By default, Nextcloud will use the Argon2 password hashing if available.
2042
-	 * However, if for whatever reason you want to stick with the PASSWORD_DEFAULT
2043
-	 * of your PHP version, then set the setting to true.
2044
-	 *
2045
-	 * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
2046
-	 * own and exposes its configuration options as following. More information can
2047
-	 * be found at: https://www.php.net/manual/en/function.password-hash.php
2048
-	 */
2049
-	'hashing_default_password' => false,
2050
-
2051
-	/**
2052
-	 * The number of CPU threads to be used by the algorithm for computing a hash.
2053
-	 * The value must be an integer, and the minimum value is ``1``. Rationally, it does
2054
-	 * not help to provide a number higher than the available threads on the machine.
2055
-	 * Values that undershoot the minimum will be ignored in favor of the minimum.
2056
-	 */
2057
-	'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
2058
-
2059
-	/**
2060
-	 * The memory in KiB to be used by the algorithm for computing a hash. The value
2061
-	 * must be an integer, and the minimum value is 8 times the number of CPU threads.
2062
-	 * Values that undershoot the minimum will be ignored in favor of the minimum.
2063
-	 */
2064
-	'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
2065
-
2066
-	/**
2067
-	 * The number of iterations that are used by the algorithm for computing a hash.
2068
-	 * The value must be an integer, and the minimum value is ``1``. Values that
2069
-	 * undershoot the minimum will be ignored in favor of the minimum.
2070
-	 */
2071
-	'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
2072
-
2073
-	/**
2074
-	 * The hashing cost used by hashes generated by Nextcloud
2075
-	 * Using a higher value requires more time and CPU power to calculate the hashes
2076
-	 */
2077
-	'hashingCost' => 10,
2078
-
2079
-	/**
2080
-	 * All other configuration options
2081
-	 */
2082
-
2083
-	/**
2084
-	 * Additional driver options for the database connection, e.g., to enable SSL
2085
-	 * encryption in MySQL or specify a custom wait timeout on a cheap hoster.
2086
-	 *
2087
-	 * When setting up TLS/SSL for encrypting the connections, you need to ensure that
2088
-	 * the passed keys and certificates are readable by the PHP process. In addition,
2089
-	 * ``PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT`` might need to be set to false, if the
2090
-	 * database server's certificate CN does not match with the hostname used to connect.
2091
-	 * The standard behavior here is different from the MySQL/MariaDB CLI client, which
2092
-	 * does not verify the server cert except ``--ssl-verify-server-cert`` is passed manually.
2093
-	 */
2094
-	'dbdriveroptions' => [
2095
-		PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
2096
-		PDO::MYSQL_ATTR_SSL_KEY => '/file/path/to/mysql-client-key.pem',
2097
-		PDO::MYSQL_ATTR_SSL_CERT => '/file/path/to/mysql-client-cert.pem',
2098
-		PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
2099
-		PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800'
2100
-	],
2101
-
2102
-	/**
2103
-	 * SQLite3 journal mode can be specified using this configuration parameter -
2104
-	 * can be ``'WAL'`` or ``'DELETE'``. See https://www.sqlite.org/wal.html for more details.
2105
-	 */
2106
-	'sqlite.journal_mode' => 'DELETE',
2107
-
2108
-	/**
2109
-	 * During setup, if requirements are met (see below), this setting is set to true
2110
-	 * to enable MySQL to handle 4-byte characters instead of 3-byte characters.
2111
-	 *
2112
-	 * To convert an existing 3-byte setup to a 4-byte setup, configure the MySQL
2113
-	 * parameters as described below and run the migration command:
2114
-	 * ``./occ db:convert-mysql-charset``
2115
-	 * This config setting will be automatically updated after a successful migration.
2116
-	 *
2117
-	 * Refer to the documentation for more details.
2118
-	 *
2119
-	 * MySQL requires specific settings for longer indexes (> 767 bytes), which are
2120
-	 * necessary for 4-byte character support::
2121
-	 *
2122
-	 *     [mysqld]
2123
-	 *     innodb_large_prefix=ON
2124
-	 *     innodb_file_format=Barracuda
2125
-	 *     innodb_file_per_table=ON
2126
-	 *
2127
-	 * Tables will be created with:
2128
-	 *  * character set: ``utf8mb4``
2129
-	 *  * collation:     ``utf8mb4_bin``
2130
-	 *  * row_format:    ``dynamic``
2131
-	 *
2132
-	 * See:
2133
-	 *  * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html
2134
-	 *  * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
2135
-	 *  * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
2136
-	 *  * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html
2137
-	 *  * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/
2138
-	 */
2139
-	'mysql.utf8mb4' => false,
2140
-
2141
-	/**
2142
-	 * For search queries in the database, a default collation is chosen based on the
2143
-	 * character set. In some cases, a different collation is desired, such as for
2144
-	 * accent-sensitive searches.
2145
-	 *
2146
-	 * MariaDB and MySQL share some collations, but also have incompatible ones,
2147
-	 * depending on the database server version.
2148
-	 *
2149
-	 * This option allows overriding the automatic collation choice. Example::
2150
-	 *
2151
-	 *     'mysql.collation' => 'utf8mb4_0900_as_ci',
2152
-	 *
2153
-	 * This setting does not affect table creation or setup, where utf8[mb4]_bin is
2154
-	 * always used. It applies only to SQL queries using LIKE comparison operators.
2155
-	 */
2156
-	'mysql.collation' => null,
2157
-
2158
-	/**
2159
-	 * PostgreSQL SSL connection
2160
-	 */
2161
-	'pgsql_ssl' => [
2162
-		'mode' => '',
2163
-		'cert' => '',
2164
-		'rootcert' => '',
2165
-		'key' => '',
2166
-		'crl' => '',
2167
-	],
2168
-
2169
-	/**
2170
-	 * Database types supported for installation.
2171
-	 *
2172
-	 * Available:
2173
-	 *  - sqlite (SQLite3)
2174
-	 *  - mysql (MySQL)
2175
-	 *  - pgsql (PostgreSQL)
2176
-	 *  - oci (Oracle)
2177
-	 *
2178
-	 * Defaults to:
2179
-	 *  - sqlite (SQLite3)
2180
-	 *  - mysql (MySQL)
2181
-	 *  - pgsql (PostgreSQL)
2182
-	 */
2183
-	'supportedDatabases' => [
2184
-		'sqlite',
2185
-		'mysql',
2186
-		'pgsql',
2187
-		'oci',
2188
-	],
2189
-
2190
-	/**
2191
-	 * Override the location where Nextcloud stores temporary files. Useful in setups
2192
-	 * where the system temporary directory is on a limited-space ramdisk, restricted,
2193
-	 * or when using external storage that does not support streaming.
2194
-	 *
2195
-	 * The web server user/PHP must have write access to this directory. Ensure that
2196
-	 * PHP configuration recognizes this as a valid temporary directory by setting
2197
-	 * the TMP, TMPDIR, and TEMP environment variables accordingly. Additional
2198
-	 * permissions may be required for AppArmor or SELinux.
2199
-	 */
2200
-	'tempdirectory' => '/tmp/nextcloudtemp',
2201
-
2202
-	/**
2203
-	 * Override the location where Nextcloud stores update files during updates.
2204
-	 * Useful when the default ``datadirectory`` is on a network disk like NFS or is
2205
-	 * otherwise restricted. Defaults to the value of ``datadirectory`` if unset.
2206
-	 *
2207
-	 * If set, the directory must be located outside the Nextcloud installation
2208
-	 * directory and writable by the web server user.
2209
-	 */
2210
-	'updatedirectory' => '',
2211
-
2212
-	/**
2213
-	 * Block specific files or filenames, disallowing uploads or access (read and write).
2214
-	 * ``.htaccess`` is blocked by default.
2215
-	 *
2216
-	 * WARNING: Use this only if you understand the implications.
2217
-	 *
2218
-	 * NOTE: This list is case-insensitive.
2219
-	 *
2220
-	 * Defaults to ``['.htaccess']``
2221
-	 */
2222
-	'forbidden_filenames' => ['.htaccess'],
2223
-
2224
-	/**
2225
-	 * Disallow uploads of files with specific basenames. Matching existing files
2226
-	 * cannot be updated, and no new files can be created in matching folders.
2227
-	 *
2228
-	 * The basename is the filename without the extension, e.g., for "archive.tar.gz",
2229
-	 * the basename is "archive".
2230
-	 *
2231
-	 * NOTE: This list is case-insensitive.
2232
-	 *
2233
-	 * Defaults to ``[]`` (empty array)
2234
-	 */
2235
-	'forbidden_filename_basenames' => [],
2236
-
2237
-	/**
2238
-	 * Block specific characters in filenames. Useful for filesystems or operating
2239
-	 * systems (e.g., Windows) that do not support certain characters. Matching
2240
-	 * existing files cannot be updated, and no new files can be created in matching
2241
-	 * folders.
2242
-	 *
2243
-	 * The ``/`` and ``\`` characters, as well as ASCII characters [0-31], are always
2244
-	 * forbidden.
2245
-	 *
2246
-	 * Example for Windows: ``['?', '<', '>', ':', '*', '|', '"']``
2247
-	 * See: https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
2248
-	 *
2249
-	 * Defaults to ``[]`` (empty array)
2250
-	 */
2251
-	'forbidden_filename_characters' => [],
2252
-
2253
-	/**
2254
-	 * Deny specific file extensions. Matching existing files cannot be updated, and
2255
-	 * no new files can be created in matching folders.
2256
-	 *
2257
-	 * The ``'.part'`` extension is always forbidden, as it is used internally by Nextcloud.
2258
-	 *
2259
-	 * Defaults to ``['.filepart', '.part']``
2260
-	 */
2261
-	'forbidden_filename_extensions' => ['.part', '.filepart'],
2262
-
2263
-	/**
2264
-	 * Specify the name of a theme to apply to Nextcloud. Themes are located in
2265
-	 * ``nextcloud/themes/`` by default.
2266
-	 *
2267
-	 * Defaults to the theming app, included since Nextcloud 9.
2268
-	 */
2269
-	'theme' => '',
2270
-
2271
-	/**
2272
-	 * Enforce a specific user theme, disabling user theming settings. Must be a
2273
-	 * valid ITheme ID, e.g., ``dark``, ``dark-highcontrast``, ``default``, ``light``,
2274
-	 * ``light-highcontrast``, ``opendyslexic``.
2275
-	 */
2276
-	'enforce_theme' => '',
2277
-
2278
-	/**
2279
-	 * Enable or disable Progressive Web App (PWA) functionality, which allows
2280
-	 * browsers to open web applications in dedicated windows.
2281
-	 *
2282
-	 * Defaults to ``true``
2283
-	 */
2284
-	'theming.standalone_window.enabled' => true,
2285
-
2286
-	/**
2287
-	 * Specify the default cipher for encrypting files. Supported ciphers:
2288
-	 *  - AES-256-CTR
2289
-	 *  - AES-128-CTR
2290
-	 *  - AES-256-CFB
2291
-	 *  - AES-128-CFB
2292
-	 *
2293
-	 * Defaults to ``AES-256-CTR``
2294
-	 */
2295
-	'cipher' => 'AES-256-CTR',
2296
-
2297
-	/**
2298
-	 * Use the legacy base64 format for encrypted files instead of the more
2299
-	 * space-efficient binary format. This affects only newly written files; existing
2300
-	 * encrypted files remain readable regardless of the format.
2301
-	 *
2302
-	 * Defaults to ``false``
2303
-	 */
2304
-	'encryption.use_legacy_base64_encoding' => false,
2305
-
2306
-	/**
2307
-	 * Specify the minimum Nextcloud desktop client version allowed to sync with this
2308
-	 * server. Connections from earlier clients will be denied. Defaults to the
2309
-	 * minimum officially supported version at the time of this server release.
2310
-	 *
2311
-	 * Changing this may cause older, unsupported clients to malfunction, potentially
2312
-	 * leading to data loss or unexpected behavior.
2313
-	 *
2314
-	 * Defaults to ``3.1.0``
2315
-	 */
2316
-	'minimum.supported.desktop.version' => '3.1.0',
2317
-
2318
-	/**
2319
-	 * Specify the maximum Nextcloud desktop client version allowed to sync with this
2320
-	 * server. Connections from later clients will be denied.
2321
-	 *
2322
-	 * Defaults to ``99.99.99``
2323
-	 */
2324
-	'maximum.supported.desktop.version' => '99.99.99',
2325
-
2326
-	/**
2327
-	 * Allow local storage to contain symlinks.
2328
-	 * WARNING: Not recommended, as this allows Nextcloud to access files outside the
2329
-	 * data directory, posing a potential security risk.
2330
-	 *
2331
-	 * Defaults to ``false``
2332
-	 */
2333
-	'localstorage.allowsymlinks' => false,
2334
-
2335
-	/**
2336
-	 * Nextcloud overrides umask to ensure suitable access permissions regardless of
2337
-	 * web server or PHP-FPM configuration. Modifying this value has security
2338
-	 * implications and may cause issues with the installation.
2339
-	 *
2340
-	 * Most installations should not modify this value.
2341
-	 *
2342
-	 * Defaults to ``0022``
2343
-	 */
2344
-	'localstorage.umask' => 0022,
2345
-
2346
-	/**
2347
-	 * Allow storage systems that do not support modifying existing files to overcome
2348
-	 * this limitation by removing files before overwriting.
2349
-	 *
2350
-	 * Defaults to ``false``
2351
-	 */
2352
-	'localstorage.unlink_on_truncate' => false,
2353
-
2354
-	/**
2355
-	 * EXPERIMENTAL: Include external storage in quota calculations.
2356
-	 *
2357
-	 * Defaults to ``false``
2358
-	 */
2359
-	'quota_include_external_storage' => false,
2360
-
2361
-	/**
2362
-	 * When an external storage is unavailable (e.g., due to failed authentication),
2363
-	 * it is flagged as such for a specified duration. For authentication failures,
2364
-	 * this delay can be customized to reduce the likelihood of account lockouts in
2365
-	 * systems like Active Directory.
2366
-	 *
2367
-	 * Defaults to ``1800`` seconds (30 minutes)
2368
-	 */
2369
-	'external_storage.auth_availability_delay' => 1800,
2370
-
2371
-	/**
2372
-	 * Allow creation of external storages of type "Local" via the web interface and
2373
-	 * APIs. When disabled, local storages can still be created using the occ command::
2374
-	 *   occ files_external:create /mountpoint local null::null -c datadir=/path/to/data
2375
-	 *
2376
-	 * Defaults to ``true``
2377
-	 */
2378
-	'files_external_allow_create_new_local' => true,
2379
-
2380
-	/**
2381
-	 * Specify how often the local filesystem (Nextcloud data/ directory and NFS
2382
-	 * mounts in data/) is checked for changes made outside Nextcloud. This does not
2383
-	 * apply to external storage.
2384
-	 *
2385
-	 * - ``0`` -> Never check the filesystem for outside changes, improving performance when no external changes are expected.
2386
-	 * - ``1`` -> Check each file or folder at most once per request, recommended for general use if outside changes are possible.
2387
-	 *
2388
-	 * Defaults to ``0``
2389
-	 */
2390
-	'filesystem_check_changes' => 0,
2391
-
2392
-	/**
2393
-	 * Store part files created during upload in the same storage as the upload
2394
-	 * target. Setting this to false stores part files in the root of the user's
2395
-	 * folder, which may be necessary for external storage with limited rename
2396
-	 * capabilities.
2397
-	 *
2398
-	 * Defaults to ``true``
2399
-	 */
2400
-	'part_file_in_storage' => true,
2401
-
2402
-	/**
2403
-	 * Specify the location of the ``mount.json`` file.
2404
-	 *
2405
-	 * Defaults to ``data/mount.json`` in the Nextcloud directory.
2406
-	 */
2407
-	'mount_file' => '/var/www/nextcloud/data/mount.json',
2408
-
2409
-	/**
2410
-	 * Prevent Nextcloud from updating the cache due to filesystem changes for all
2411
-	 * storage.
2412
-	 *
2413
-	 * Defaults to ``false``
2414
-	 */
2415
-	'filesystem_cache_readonly' => false,
2416
-
2417
-	/**
2418
-	 * List of trusted proxy servers. Supported formats:
2419
-	 *
2420
-	 * - IPv4 addresses, e.g., ``192.168.2.123``
2421
-	 * - IPv4 ranges in CIDR notation, e.g., ``192.168.2.0/24``
2422
-	 * - IPv6 addresses, e.g., ``fd9e:21a7:a92c:2323::1``
2423
-	 * - IPv6 ranges in CIDR notation, e.g., ``2001:db8:85a3:8d3:1319:8a20::/95``
2424
-	 *
2425
-	 * If a request's ``REMOTE_ADDR`` matches an address here, it is treated as a proxy,
2426
-	 * and the client IP is read from the HTTP header specified in
2427
-	 * ``forwarded_for_headers`` instead of ``REMOTE_ADDR``.
2428
-	 *
2429
-	 * Ensure ``forwarded_for_headers`` is configured if ``trusted_proxies`` is set.
2430
-	 *
2431
-	 * Defaults to ``[]`` (empty array)
2432
-	 */
2433
-	'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],
2434
-
2435
-	/**
2436
-	 * Headers trusted as containing the client IP address when used with
2437
-	 * ``trusted_proxies``. For example, use ``HTTP_X_FORWARDED_FOR`` for the
2438
-	 * ``X-Forwarded-For`` header.
2439
-	 *
2440
-	 * Incorrect configuration allows clients to spoof their IP address, bypassing
2441
-	 * access controls and rendering logs unreliable.
2442
-	 *
2443
-	 * Defaults to ``['HTTP_X_FORWARDED_FOR']``
2444
-	 */
2445
-	'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],
2446
-
2447
-	/**
2448
-	 * List of trusted IP ranges for admin actions. If non-empty, all admin actions
2449
-	 * must originate from IPs within these ranges.
2450
-	 *
2451
-	 * Supported formats:
2452
-	 * - IPv4 addresses or ranges, e.g., ``192.0.2.42/32``, ``233.252.0.0/24``
2453
-	 * - IPv6 addresses or ranges, e.g., ``2001:db8::13:37/64``
2454
-	 *
2455
-	 * Defaults to ``[]`` (empty array)
2456
-	 */
2457
-	'allowed_admin_ranges' => ['192.0.2.42/32', '233.252.0.0/24', '2001:db8::13:37/64'],
2458
-
2459
-	/**
2460
-	 * Maximum file size (in megabytes) for animating GIFs on public sharing pages.
2461
-	 * If a GIF exceeds this size, a static preview is shown.
2462
-	 *
2463
-	 * Set to ``-1`` for no limit.
2464
-	 *
2465
-	 * Defaults to ``10`` megabytes
2466
-	 */
2467
-	'max_filesize_animated_gifs_public_sharing' => 10,
2468
-
2469
-	/**
2470
-	 * Set the lock's time-to-live (TTL) in seconds. Locks older than this are
2471
-	 * automatically cleaned up.
2472
-	 *
2473
-	 * Defaults to ``3600`` seconds (1 hour) or the PHP ``max_execution_time``,
2474
-	 * whichever is higher.
2475
-	 */
2476
-	'filelocking.ttl' => 60 * 60,
2477
-
2478
-	/**
2479
-	 * Memory caching backend for file locking. Redis is highly recommended to avoid
2480
-	 * data loss, as many memcache backends may evict values unexpectedly.
2481
-	 *
2482
-	 * Defaults to ``none``
2483
-	 */
2484
-	'memcache.locking' => '\\OC\\Memcache\\Redis',
2485
-
2486
-	/**
2487
-	 * Enable debug logging for file locking. This can generate a large volume of log
2488
-	 * entries, potentially causing performance degradation and large log files on
2489
-	 * busy instances.
2490
-	 *
2491
-	 * Use with ``log.condition`` to limit logging in production environments.
2492
-	 *
2493
-	 * Defaults to ``false``
2494
-	 */
2495
-	'filelocking.debug' => false,
2496
-
2497
-	/**
2498
-	 * Disable the web-based updater.
2499
-	 *
2500
-	 * Defaults to ``false``
2501
-	 */
2502
-	'upgrade.disable-web' => false,
2503
-
2504
-	/**
2505
-	 * Customize the CLI upgrade documentation link.
2506
-	 */
2507
-	'upgrade.cli-upgrade-link' => '',
2508
-
2509
-	/**
2510
-	 * Additional line(s) (string or array of strings)
2511
-	 * that will be added to .user.ini on each update by the updater.
2512
-	 *
2513
-	 * Defaults to ``''`` (empty string)
2514
-	 */
2515
-	'user_ini_additional_lines' => '',
2516
-
2517
-	/**
2518
-	 * Customize the server logs documentation link for exception handling.
2519
-	 */
2520
-	'documentation_url.server_logs' => '',
2521
-
2522
-	/**
2523
-	 * Enable debugging mode for Nextcloud. Only use for local development, not in
2524
-	 * production, as it disables minification and outputs additional debug
2525
-	 * information.
2526
-	 *
2527
-	 * Defaults to ``false``
2528
-	 */
2529
-	'debug' => false,
2530
-
2531
-	/**
2532
-	 * Set the data fingerprint for the current data served. Used by clients to
2533
-	 * detect if a backup has been restored. Update this by running::
2534
-	 *   occ maintenance:data-fingerprint
2535
-	 *
2536
-	 * Changing or deleting this value may cause connected clients to stall until
2537
-	 * conflicts are resolved.
2538
-	 *
2539
-	 * Defaults to ``''`` (empty string)
2540
-	 */
2541
-	'data-fingerprint' => '',
2542
-
2543
-	/**
2544
-	 * This entry serves as a warning if the sample configuration was copied.
2545
-	 * DO NOT ADD THIS TO YOUR CONFIGURATION!
2546
-	 *
2547
-	 * Ensure all settings are modified only after consulting the documentation.
2548
-	 */
2549
-	'copied_sample_config' => true,
2550
-
2551
-	/**
2552
-	 * Use a custom lookup server to publish user data.
2553
-	 *
2554
-	 * Defaults to ``https://lookup.nextcloud.com``
2555
-	 */
2556
-	'lookup_server' => 'https://lookup.nextcloud.com',
2557
-
2558
-	/**
2559
-	 * Enable Nextcloud's Global Scale architecture.
2560
-	 *
2561
-	 * Defaults to ``false``
2562
-	 */
2563
-	'gs.enabled' => false,
2564
-
2565
-	/**
2566
-	 * Configure federation for Global Scale setups. Set to ``global`` to allow
2567
-	 * federation outside the environment.
2568
-	 *
2569
-	 * Defaults to ``internal``
2570
-	 */
2571
-	'gs.federation' => 'internal',
2572
-
2573
-	/**
2574
-	 * List of user agents exempt from SameSite cookie protection due to non-standard
2575
-	 * HTTP behavior.
2576
-	 *
2577
-	 * WARNING: Use only if you understand the implications.
2578
-	 *
2579
-	 * Defaults to:
2580
-	 *
2581
-	 * - ``/^WebDAVFS/`` (OS X Finder)
2582
-	 * - ``/^Microsoft-WebDAV-MiniRedir/`` (Windows WebDAV drive)
2583
-	 */
2584
-	'csrf.optout' => [
2585
-		'/^WebDAVFS/', // OS X Finder
2586
-		'/^Microsoft-WebDAV-MiniRedir/', // Windows WebDAV drive
2587
-	],
2588
-
2589
-	/**
2590
-	 * Specify allowed user agents for Login Flow V2 using regular expressions.
2591
-	 * User agents not matching this list are denied access to Login Flow V2.
2592
-	 *
2593
-	 * WARNING: Use only if you understand the implications.
2594
-	 *
2595
-	 * Example: Allow only the Nextcloud Android app::
2596
-	 *
2597
-	 *    'core.login_flow_v2.allowed_user_agents' => ['/Nextcloud-android/i'],
2598
-	 *
2599
-	 * Defaults to ``[]`` (empty array)
2600
-	 */
2601
-	'core.login_flow_v2.allowed_user_agents' => [],
2602
-
2603
-	/**
2604
-	 * Show or hide the "simple sign up" link on public pages.
2605
-	 * See: https://nextcloud.com/signup/
2606
-	 *
2607
-	 * Defaults to ``true``
2608
-	 */
2609
-	'simpleSignUpLink.shown' => true,
2610
-
2611
-	/**
2612
-	 * Enable or disable autocompletion for the login form. Disabling this prevents
2613
-	 * browsers from remembering login credentials, which may be required for
2614
-	 * compliance with certain security policies.
2615
-	 *
2616
-	 * Defaults to ``true``
2617
-	 */
2618
-	'login_form_autocomplete' => true,
2619
-
2620
-	/**
2621
-	 * Set a timeout (in seconds) for the login form. After this period, the form is
2622
-	 * reset to prevent password leaks on public devices if the user forgets to clear
2623
-	 * it.
2624
-	 *
2625
-	 * A value of 0 disables the timeout.
2626
-	 *
2627
-	 * Defaults to ``300`` seconds (5 minutes)
2628
-	 */
2629
-	'login_form_timeout' => 300,
2630
-
2631
-	/**
2632
-	 * Suppress warnings for outdated or unsupported browsers. When enabled, users
2633
-	 * can bypass the warning after reading it.
2634
-	 *
2635
-	 * Set to ``true`` to disable the warning.
2636
-	 *
2637
-	 * Defaults to ``false``
2638
-	 */
2639
-	'no_unsupported_browser_warning' => false,
2640
-
2641
-	/**
2642
-	 * Disable background scanning of files. When enabled, a background job runs
2643
-	 * every 10 minutes to sync the filesystem and database for up to 500 users with
2644
-	 * unscanned files (size < 0 in filecache).
2645
-	 *
2646
-	 * Defaults to ``false``
2647
-	 */
2648
-	'files_no_background_scan' => false,
2649
-
2650
-	/**
2651
-	 * Log all database queries to a file.
2652
-	 *
2653
-	 * WARNING: This significantly reduces server performance and is intended only
2654
-	 * for debugging or profiling query interactions. Sensitive data may be logged in
2655
-	 * plain text.
2656
-	 */
2657
-	'query_log_file' => '',
2658
-
2659
-	/**
2660
-	 * Prefix all queries with the request ID when set to `yes`.
2661
-	 *
2662
-	 * Requires ``query_log_file`` to be set.
2663
-	 */
2664
-	'query_log_file_requestid' => '',
2665
-
2666
-	/**
2667
-	 * Include all query parameters in the query log when set to `yes`.
2668
-	 *
2669
-	 * Requires ``query_log_file`` to be set.
2670
-	 * WARNING: This may log sensitive data in plain text.
2671
-	 */
2672
-	'query_log_file_parameters' => '',
2673
-
2674
-	/**
2675
-	 * Include a backtrace in the query log when set to `yes`.
2676
-	 *
2677
-	 * Requires ``query_log_file`` to be set.
2678
-	 */
2679
-	'query_log_file_backtrace' => '',
2680
-
2681
-	/**
2682
-	 * Log all Redis requests to a file.
2683
-	 *
2684
-	 * WARNING: This significantly reduces server performance and is intended only
2685
-	 * for debugging or profiling Redis interactions. Sensitive data may be logged in
2686
-	 * plain text.
2687
-	 */
2688
-	'redis_log_file' => '',
2689
-
2690
-	/**
2691
-	 * Enable diagnostics event logging. Logs timings of common execution steps at
2692
-	 * debug level. Use with ``log.condition`` to enable conditionally in production.
2693
-	 *
2694
-	 * Defaults to ``true``
2695
-	 */
2696
-	'diagnostics.logging' => true,
2697
-
2698
-	/**
2699
-	 * Limit diagnostics event logging to events longer than the specified threshold
2700
-	 * (in milliseconds). A value of 0 disables diagnostics event logging.
2701
-	 */
2702
-	'diagnostics.logging.threshold' => 0,
2703
-
2704
-	/**
2705
-	 * Enable profiling globally.
2706
-	 *
2707
-	 * Defaults to ``true``
2708
-	 */
2709
-	'profile.enabled' => true,
2710
-
2711
-	/**
2712
-	 * Override default scopes for account data. Valid properties and scopes are
2713
-	 * defined in ``OCP\Accounts\IAccountManager``. Values are merged with defaults
2714
-	 * from ``OC\Accounts\AccountManager``.
2715
-	 *
2716
-	 * Example: Set phone property to private scope:
2717
-	 * ``[\OCP\Accounts\IAccountManager::PROPERTY_PHONE => \OCP\Accounts\IAccountManager::SCOPE_PRIVATE]``
2718
-	 */
2719
-	'account_manager.default_property_scope' => [],
2720
-
2721
-	/**
2722
-	 * Enable the deprecated Projects feature, superseded by Related Resources since
2723
-	 * Nextcloud 25.
2724
-	 *
2725
-	 * Defaults to ``false``
2726
-	 */
2727
-	'projects.enabled' => false,
2728
-
2729
-	/**
2730
-	 * Enable the bulk upload feature.
2731
-	 *
2732
-	 * Defaults to ``true``
2733
-	 */
2734
-	'bulkupload.enabled' => true,
2735
-
2736
-	/**
2737
-	 * Enable fetching Open Graph metadata from remote URLs.
2738
-	 *
2739
-	 * Defaults to ``true``
2740
-	 */
2741
-	'reference_opengraph' => true,
2742
-
2743
-	/**
2744
-	 * Enable the legacy unified search.
2745
-	 *
2746
-	 * Defaults to ``false``
2747
-	 */
2748
-	'unified_search.enabled' => false,
2749
-
2750
-	/**
2751
-	 * Enable features that do not yet comply with accessibility standards.
2752
-	 *
2753
-	 * Defaults to ``true``
2754
-	 */
2755
-	'enable_non-accessible_features' => true,
2756
-
2757
-	/**
2758
-	 * Directories where Nextcloud searches for external binaries (e.g., LibreOffice,
2759
-	 * sendmail, ffmpeg).
2760
-	 *
2761
-	 * Defaults to:
2762
-	 * - /usr/local/sbin
2763
-	 * - /usr/local/bin
2764
-	 * - /usr/sbin
2765
-	 * - /usr/bin
2766
-	 * - /sbin
2767
-	 * - /bin
2768
-	 * - /opt/bin
2769
-	 */
2770
-	'binary_search_paths' => [
2771
-		'/usr/local/sbin',
2772
-		'/usr/local/bin',
2773
-		'/usr/sbin',
2774
-		'/usr/bin',
2775
-		'/sbin',
2776
-		'/bin',
2777
-		'/opt/bin',
2778
-	],
2779
-
2780
-	/**
2781
-	 * Maximum chunk size for chunked uploads (in bytes). Larger chunks increase
2782
-	 * throughput but yield diminishing returns above 100 MiB. Services like
2783
-	 * Cloudflare may limit to 100 MiB.
2784
-	 *
2785
-	 * Defaults to ``100 * 1024 * 1024`` (100 MiB)
2786
-	 */
2787
-	'files.chunked_upload.max_size' => 100 * 1024 * 1024,
2788
-
2789
-	/**
2790
-	 * Maximum number of chunks uploaded in parallel during chunked uploads. Higher
2791
-	 * counts increase throughput but consume more server resources, with diminishing
2792
-	 * returns.
2793
-	 *
2794
-	 * Defaults to ``5``
2795
-	 */
2796
-	'files.chunked_upload.max_parallel_count' => 5,
2797
-
2798
-	/**
2799
-	 * Allow users to manually delete files from their trashbin. Automated deletions
2800
-	 * (e.g., due to low quota) are unaffected.
2801
-	 *
2802
-	 * Defaults to ``true``
2803
-	 */
2804
-	'files.trash.delete' => true,
2805
-
2806
-	/**
2807
-	 * Enable PHP 8.4 lazy objects for Dependency Injection to improve performance by
2808
-	 * avoiding instantiation of unused objects.
2809
-	 *
2810
-	 * Defaults to ``true``
2811
-	 */
2812
-	'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 30 days
834
+     *     and automatically deletes anytime after that if space is needed (note:
835
+     *     files may not be deleted if space is not needed).
836
+     * * ``D1, auto``
837
+     *     keeps files and folders in the trash bin for D1+ days, delete anytime if
838
+     *     space needed (note: files may not be deleted if space is not needed)
839
+     * * ``auto, D2``
840
+     *     delete all files in the trash bin that are older than D2 days
841
+     *     automatically, delete other files anytime if space needed
842
+     * * ``D1, D2``
843
+     *     keep files and folders in the trash bin for at least D1 days and
844
+     *     delete when exceeds D2 days (note: files will not be deleted automatically if space is needed)
845
+     * * ``disabled``
846
+     *     trash bin auto clean disabled, files and folders will be kept forever
847
+     *
848
+     * Defaults to ``auto``
849
+     */
850
+    'trashbin_retention_obligation' => 'auto',
851
+
852
+
853
+    /**
854
+     * File versions
855
+     *
856
+     * These parameters control the Versions app.
857
+     */
858
+
859
+    /**
860
+     * If the versions app is enabled (default), this setting defines the policy
861
+     * for when versions will be permanently deleted.
862
+     * The app allows for two settings, a minimum time for version retention,
863
+     * and a maximum time for version retention.
864
+     * Minimum time is the number of days a version will be kept, after which it
865
+     * may be deleted. Maximum time is the number of days at which it is guaranteed
866
+     * to be deleted.
867
+     * Both minimum and maximum times can be set together to explicitly define
868
+     * version deletion. For migration purposes, this setting is installed
869
+     * initially set to "auto", which is equivalent to the default setting in
870
+     * Nextcloud.
871
+     *
872
+     * Available values:
873
+     *
874
+     * * ``auto``
875
+     *     default setting. Automatically expire versions according to expire
876
+     *     rules. Please refer to :doc:`../configuration_files/file_versioning` for
877
+     *     more information.
878
+     * * ``D, auto``
879
+     *     keep versions at least for D days, apply expiration rules to all versions
880
+     *     that are older than D days
881
+     * * ``auto, D``
882
+     *     delete all versions that are older than D days automatically, delete
883
+     *     other versions according to expire rules
884
+     * * ``D1, D2``
885
+     *     keep versions for at least D1 days and delete when exceeds D2 days
886
+     * * ``disabled``
887
+     *     versions auto clean disabled, versions will be kept forever
888
+     *
889
+     * Defaults to ``auto``
890
+     */
891
+    'versions_retention_obligation' => 'auto',
892
+
893
+    /**
894
+     * Nextcloud Verifications
895
+     *
896
+     * Nextcloud performs several verification checks. There are two options,
897
+     * ``true`` and ``false``.
898
+     */
899
+
900
+    /**
901
+     * Checks an app before install whether it uses private APIs instead of the
902
+     * proper public APIs. If this is set to true, it will only allow installing or
903
+     * enabling apps that pass this check.
904
+     *
905
+     * Defaults to ``false``
906
+     */
907
+    'appcodechecker' => true,
908
+
909
+    /**
910
+     * Check if Nextcloud is up-to-date and shows a notification if a new version is
911
+     * available. It sends current version, PHP version, installation and last update
912
+     * time, and release channel to the updater server which responds with the latest
913
+     * available version based on those metrics.
914
+     *
915
+     * Defaults to ``true``
916
+     */
917
+    'updatechecker' => true,
918
+
919
+    /**
920
+     * URL that Nextcloud should use to look for updates
921
+     *
922
+     * Defaults to ``https://updates.nextcloud.com/updater_server/``
923
+     */
924
+    'updater.server.url' => 'https://updates.nextcloud.com/updater_server/',
925
+
926
+    /**
927
+     * The channel that Nextcloud should use to look for updates
928
+     *
929
+     * Supported values:
930
+     *
931
+     * - ``daily``
932
+     * - ``beta``
933
+     * - ``stable``
934
+     */
935
+    'updater.release.channel' => 'stable',
936
+
937
+    /**
938
+     * Is Nextcloud connected to the Internet or running in a closed network?
939
+     *
940
+     * Defaults to ``true``
941
+     */
942
+    'has_internet_connection' => true,
943
+
944
+    /**
945
+     * Which domains to request to determine the availability of an Internet
946
+     * connection. If none of these hosts are reachable, the administration panel
947
+     * will show a warning. Set to an empty list to not do any such checks (warning
948
+     * will still be shown).
949
+     * If no protocol is provided, both http and https will be tested.
950
+     * For example, ``http://www.nextcloud.com`` and ``https://www.nextcloud.com``
951
+     * will be tested for ``www.nextcloud.com``
952
+     * If a protocol is provided, only this one will be tested.
953
+     *
954
+     * Defaults to the following domains:
955
+     *
956
+     *  - https://www.nextcloud.com
957
+     *  - https://www.startpage.com
958
+     *  - https://www.eff.org
959
+     *  - https://www.edri.org
960
+     */
961
+    'connectivity_check_domains' => [
962
+        'https://www.nextcloud.com',
963
+        'https://www.startpage.com',
964
+        'https://www.eff.org',
965
+        'https://www.edri.org'
966
+    ],
967
+
968
+    /**
969
+     * Allows Nextcloud to verify a working .well-known URL redirects. This is done
970
+     * by attempting to make a request from JS to
971
+     * ``https://example.tld/.well-known/caldav/``
972
+     *
973
+     * Defaults to ``true``
974
+     */
975
+    'check_for_working_wellknown_setup' => true,
976
+
977
+    /**
978
+     * This is a crucial security check on Apache servers that should always be set
979
+     * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
980
+     * If it is not, then any options controlled by ``.htaccess``, such as large
981
+     * file uploads, will not work. It also runs checks on the ``data/`` directory,
982
+     * which verifies that it can't be accessed directly through the Web server.
983
+     *
984
+     * Defaults to ``true``
985
+     */
986
+    'check_for_working_htaccess' => true,
987
+
988
+    /**
989
+     * In rare setups (e.g., on OpenShift or Docker on Windows), the permissions check
990
+     * might block the installation while the underlying system offers no means to
991
+     * "correct" the permissions. In this case, set the value to false.
992
+     *
993
+     * In regular cases, if issues with permissions are encountered, they should be
994
+     * adjusted accordingly. Changing the flag is discouraged.
995
+     *
996
+     * Defaults to ``true``
997
+     */
998
+    'check_data_directory_permissions' => true,
999
+
1000
+    /**
1001
+     * In certain environments, it is desired to have a read-only configuration file.
1002
+     * When this switch is set to ``true``, writing to the config file will be
1003
+     * forbidden. Therefore, it will not be possible to configure all options via
1004
+     * the Web interface. Furthermore, when updating Nextcloud, it is required to
1005
+     * make the configuration file writable again and to set this switch to ``false``
1006
+     * for the update process.
1007
+     *
1008
+     * Defaults to ``false``
1009
+     */
1010
+    'config_is_read_only' => false,
1011
+
1012
+    /**
1013
+     * Logging
1014
+     */
1015
+
1016
+    /**
1017
+     * This parameter determines where the Nextcloud logs are sent.
1018
+     *
1019
+     * - ``file``: the logs are written to file ``nextcloud.log`` in the default Nextcloud data directory. The log file can be changed with parameter ``logfile``.
1020
+     * - ``syslog``: the logs are sent to the system log. This requires a syslog daemon to be active.
1021
+     * - ``errorlog``: the logs are sent to the PHP ``error_log`` function.
1022
+     * - ``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.
1023
+     *
1024
+     * Defaults to ``file``
1025
+     */
1026
+    'log_type' => 'file',
1027
+
1028
+    /**
1029
+     * This parameter determines where the audit logs are sent. See ``log_type`` for more information.
1030
+     *
1031
+     * Defaults to ``file``
1032
+     */
1033
+    'log_type_audit' => 'file',
1034
+
1035
+    /**
1036
+     * Name of the file to which the Nextcloud logs are written if parameter
1037
+     * ``log_type`` is set to ``file``.
1038
+     *
1039
+     * Defaults to ``[datadirectory]/nextcloud.log``
1040
+     */
1041
+    'logfile' => '/var/log/nextcloud.log',
1042
+
1043
+    /**
1044
+     * Name of the file to which the audit logs are written if parameter
1045
+     * ``log_type`` is set to ``file``.
1046
+     *
1047
+     * Defaults to ``[datadirectory]/audit.log``
1048
+     */
1049
+    'logfile_audit' => '/var/log/audit.log',
1050
+
1051
+    /**
1052
+     * Log file mode for the Nextcloud logging type in octal notation.
1053
+     *
1054
+     * Defaults to ``0640`` (writable by user, readable by group).
1055
+     */
1056
+    'logfilemode' => 0640,
1057
+
1058
+    /**
1059
+     * Loglevel to start logging at. Valid values are:
1060
+     *
1061
+     * - ``0`` = Debug
1062
+     * - ``1`` = Info
1063
+     * - ``2`` = Warning
1064
+     * - ``3`` = Error
1065
+     * - ``4`` = Fatal.
1066
+     *
1067
+     *
1068
+     * Defaults to ``2`` (Warning)
1069
+     */
1070
+    'loglevel' => 2,
1071
+
1072
+    /**
1073
+     * Loglevel used by the frontend to start logging at. The same values as
1074
+     * for ``loglevel`` can be used. If not set, it defaults to the value
1075
+     * configured for ``loglevel`` or Warning if that is not set either.
1076
+     *
1077
+     * Defaults to ``2``
1078
+     */
1079
+    'loglevel_frontend' => 2,
1080
+
1081
+    /**
1082
+     * Loglevel used by the dirty database query detection. Useful to identify
1083
+     * potential database bugs in production. Set this to loglevel or higher to
1084
+     * see dirty queries in the logs.
1085
+     *
1086
+     * Defaults to ``0`` (debug)
1087
+     */
1088
+    'loglevel_dirty_database_queries' => 0,
1089
+
1090
+    /**
1091
+     * If you maintain different instances and aggregate the logs, you may want
1092
+     * to distinguish between them. ``syslog_tag`` can be set per instance
1093
+     * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1094
+     * ``systemd``.
1095
+     *
1096
+     * The default value is ``Nextcloud``.
1097
+     */
1098
+    'syslog_tag' => 'Nextcloud',
1099
+
1100
+    /**
1101
+     * If you maintain different instances and aggregate the logs, you may want
1102
+     * to distinguish between them. ``syslog_tag_audit`` can be set per instance
1103
+     * with a unique ID. Only available if ``log_type`` is set to ``syslog`` or
1104
+     * ``systemd``.
1105
+     *
1106
+     * The default value is the value of ``syslog_tag``.
1107
+     */
1108
+    'syslog_tag_audit' => 'Nextcloud',
1109
+
1110
+    /**
1111
+     * Log condition for log level increase based on conditions. Once one of these
1112
+     * conditions is met, the required log level is set to debug. This allows
1113
+     * debugging specific requests, users, or apps
1114
+     *
1115
+     * Supported conditions:
1116
+     *  - ``shared_secret``: if a request parameter with the name `log_secret` is set to
1117
+     *                this value, the condition is met
1118
+     *  - ``users``:  if the current request is done by one of the specified users,
1119
+     *                this condition is met
1120
+     *  - ``apps``:   if the log message is invoked by one of the specified apps,
1121
+     *                this condition is met
1122
+     *  - ``matches``: if all the conditions inside a group match,
1123
+     *                this condition is met. This allows logging only entries to an app
1124
+     *                by a few users.
1125
+     *
1126
+     * Defaults to an empty array.
1127
+     */
1128
+    'log.condition' => [
1129
+        'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1130
+        'users' => ['sample-user'],
1131
+        'apps' => ['files'],
1132
+        'matches' => [
1133
+            [
1134
+                'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
1135
+                'users' => ['sample-user'],
1136
+                'apps' => ['files'],
1137
+                'loglevel' => 1,
1138
+                'message' => 'contains substring'
1139
+            ],
1140
+        ],
1141
+    ],
1142
+
1143
+    /**
1144
+     * Enables logging a backtrace with each log line. Normally, only Exceptions
1145
+     * carry backtrace information, which are logged automatically. This
1146
+     * switch turns them on for any log message. Enabling this option will lead
1147
+     * to increased log data size.
1148
+     *
1149
+     * Defaults to ``false``.
1150
+     */
1151
+    'log.backtrace' => false,
1152
+
1153
+    /**
1154
+     * This uses PHP.date formatting; see https://www.php.net/manual/en/function.date.php
1155
+     *
1156
+     * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00``, see ``\DateTime::ATOM``
1157
+     * https://www.php.net/manual/en/class.datetimeinterface.php#datetimeinterface.constants.atom
1158
+     */
1159
+    'logdateformat' => 'F d, Y H:i:s',
1160
+
1161
+    /**
1162
+     * The timezone for logfiles. See https://www.php.net/manual/en/timezones.php
1163
+     *
1164
+     * Defaults to ``UTC``
1165
+     */
1166
+    'logtimezone' => 'Europe/Berlin',
1167
+
1168
+    /**
1169
+     * Append all database queries and parameters to the log file. Use this only for
1170
+     * debugging, as your logfile will become huge.
1171
+     */
1172
+    'log_query' => false,
1173
+
1174
+    /**
1175
+     * Enables log rotation and limits the total size of logfiles. Set it to 0 for
1176
+     * no rotation. Specify a size in bytes, for example, 104857600 (100 megabytes
1177
+     * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
1178
+     * old logfile reaches your limit. If a rotated log file is already present, it
1179
+     * will be overwritten.
1180
+     *
1181
+     * Defaults to 100 MB
1182
+     */
1183
+    'log_rotate_size' => 100 * 1024 * 1024,
1184
+
1185
+    /**
1186
+     * Enable built-in profiler. Helpful when trying to debug performance
1187
+     * issues.
1188
+     *
1189
+     * Note that this has a performance impact and shouldn't be enabled
1190
+     * on production.
1191
+     */
1192
+    'profiler' => false,
1193
+
1194
+    /**
1195
+     * Enable profiling for individual requests if profiling single requests is enabled or the secret is passed.
1196
+     * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1197
+     *
1198
+     * The profile data will be stored as a JSON file in the profiling.path directory that can be analyzed with speedscope.
1199
+     *
1200
+     * Defaults to ``false``
1201
+     */
1202
+    'profiling.request' => false,
1203
+
1204
+    /**
1205
+     * The rate at which profiling data is collected for individual requests.
1206
+     * A lower value means more data points but higher overhead.
1207
+     *
1208
+     * Defaults to ``0.001``
1209
+     */
1210
+    'profiling.request.rate' => 0.001,
1211
+
1212
+    /**
1213
+     * A secret token that can be passed via ?profile_secret=<secret> to enable profiling for a specific request.
1214
+     * This allows profiling specific requests in production without enabling it globally.
1215
+     *
1216
+     * No default value.
1217
+     */
1218
+    'profiling.secret' => '',
1219
+
1220
+    /**
1221
+     * Enable sampling-based profiling. This collects profiling data periodically rather than per-request.
1222
+     * This requires the excimer extension to be installed. Be careful with this, as it can generate a lot of data.
1223
+     *
1224
+     * The profile data will be stored as a plain text file in the profiling.path directory that can be analyzed with speedscope.
1225
+     *
1226
+     * Defaults to ``false``
1227
+     */
1228
+    'profiling.sample' => false,
1229
+
1230
+    /**
1231
+     * The rate at which sampling profiling data is collected in seconds.
1232
+     * A lower value means more frequent samples but higher overhead.
1233
+     *
1234
+     * Defaults to ``1``
1235
+     */
1236
+    'profiling.sample.rate' => 1,
1237
+
1238
+    /**
1239
+     * How often (in minutes) the sample log files are rotated.
1240
+     *
1241
+     * Defaults to ``60``
1242
+     */
1243
+    'profiling.sample.rotation' => 60,
1244
+
1245
+    /**
1246
+     * The directory where profiling data is stored.
1247
+     *
1248
+     * Note that this directory must be writable by the web server user and will not be cleaned up automatically.
1249
+     */
1250
+    'profiling.path' => '/tmp',
1251
+
1252
+
1253
+    /**
1254
+     * Alternate Code Locations
1255
+     *
1256
+     * Some Nextcloud code may be stored in alternate locations.
1257
+     */
1258
+
1259
+    /**
1260
+     * This section is for configuring the download links for Nextcloud clients, as
1261
+     * seen in the first-run wizard and on Personal pages.
1262
+     *
1263
+     * Defaults to:
1264
+     *
1265
+     * - Desktop client: ``https://nextcloud.com/install/#install-clients``
1266
+     * - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client``
1267
+     * - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8``
1268
+     * - iOS client app ID: ``1125420102``
1269
+     * - F-Droid client: ``https://f-droid.org/packages/com.nextcloud.client/``
1270
+     */
1271
+    'customclient_desktop'
1272
+        => 'https://nextcloud.com/install/#install-clients',
1273
+    'customclient_android'
1274
+        => 'https://play.google.com/store/apps/details?id=com.nextcloud.client',
1275
+    'customclient_ios'
1276
+        => 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8',
1277
+    'customclient_ios_appid'
1278
+        => '1125420102',
1279
+    'customclient_fdroid'
1280
+        => 'https://f-droid.org/packages/com.nextcloud.client/',
1281
+
1282
+    /**
1283
+     * Activity
1284
+     *
1285
+     * Options for the activity app.
1286
+     */
1287
+
1288
+    /**
1289
+     * Retention of activities.
1290
+     *
1291
+     * A daily cron job deletes all activities for all users which are older than
1292
+     * the number of days specified here.
1293
+     *
1294
+     * Defaults to ``365``
1295
+     */
1296
+    'activity_expire_days' => 365,
1297
+
1298
+    /**
1299
+     * Activities in Team Folders and External Storages.
1300
+     *
1301
+     * By default, activities in team folders or external storages are only generated
1302
+     * for the current user. This is due to a limitations in current implementations.
1303
+     * This config flag makes activities in group folders and external storages work
1304
+     * like in normal shares (when set to ``true``).
1305
+     *
1306
+     * WARNING: Enabling this comes with some CRITICAL trade-offs:
1307
+     *
1308
+     * - If team folder "Advanced Permissions" (ACLs) are used, activities do not
1309
+     *   respect the permissions and therefore all users see all activities, even
1310
+     *   for files and directories they do not have access to.
1311
+     * - Users who had access to a team folder, share, or external storage can see
1312
+     *   activities in their stream and emails that happen after they are removed
1313
+     *   until they log in again.
1314
+     * - Users who are newly added to a team folder, share, or external storage
1315
+     *   cannot see activities in their stream or emails that happen after they
1316
+     *   are added until they log in again.
1317
+     *
1318
+     * Defaults to ``false``
1319
+     */
1320
+    'activity_use_cached_mountpoints' => false,
1321
+
1322
+    /**
1323
+     * Apps
1324
+     *
1325
+     * Options for the Apps folder, Apps store, and App code checker.
1326
+     */
1327
+
1328
+    /**
1329
+     * Set the default app to open on login. The entry IDs can be retrieved from
1330
+     * the Navigations OCS API endpoint: https://docs.nextcloud.com/server/latest/developer_manual/_static/openapi.html#/operations/core-navigation-get-apps-navigation.
1331
+     * You can use a comma-separated list of app names, so if the first
1332
+     * app is not enabled for a user, then Nextcloud will try the second one, and so
1333
+     * on. If no enabled apps are found, it defaults to the dashboard app.
1334
+     *
1335
+     * Defaults to ``dashboard,files``
1336
+     */
1337
+    'defaultapp' => 'dashboard,files',
1338
+
1339
+    /**
1340
+     * When enabled, admins may install apps from the Nextcloud app store.
1341
+     *
1342
+     * Defaults to ``true``
1343
+     */
1344
+    'appstoreenabled' => true,
1345
+
1346
+    /**
1347
+     * Enables the installation of apps from a self-hosted apps store.
1348
+     * Requires that at least one of the configured apps directories is writable.
1349
+     *
1350
+     * Defaults to ``https://apps.nextcloud.com/api/v1``
1351
+     */
1352
+    'appstoreurl' => 'https://apps.nextcloud.com/api/v1',
1353
+
1354
+    /**
1355
+     * Filters allowed installable apps from the appstore.
1356
+     * Empty array will prevent all apps from the store to be found.
1357
+     */
1358
+    'appsallowlist' => [],
1359
+
1360
+    /**
1361
+     * Use the ``apps_paths`` parameter to set the location of the Apps directory,
1362
+     * which should be scanned for available apps, and where user-specific apps
1363
+     * should be installed from the Apps store. The ``path`` defines the absolute
1364
+     * file system path to the app folder. The key ``url`` defines the HTTP Web path
1365
+     * to that folder, starting from the Nextcloud webroot. The key ``writable``
1366
+     * indicates if a Web server can write files to that folder.
1367
+     */
1368
+    'apps_paths' => [
1369
+        [
1370
+            'path' => '/var/www/nextcloud/apps',
1371
+            'url' => '/apps',
1372
+            'writable' => true,
1373
+        ],
1374
+    ],
1375
+
1376
+    /**
1377
+     * @see appcodechecker
1378
+     */
1379
+
1380
+    /**
1381
+     * Previews
1382
+     *
1383
+     * Nextcloud supports generating previews for various file types, such as images, audio files, and text files.
1384
+     * These options control enabling and disabling previews, and thumbnail size.
1385
+     */
1386
+
1387
+    /**
1388
+     * By default, Nextcloud can generate previews for the following filetypes:
1389
+     *
1390
+     * - Image files
1391
+     * - Text documents
1392
+     *
1393
+     * Valid values are ``true``, to enable previews, or
1394
+     * ``false``, to disable previews
1395
+     *
1396
+     * Defaults to ``true``
1397
+     */
1398
+    'enable_previews' => true,
1399
+
1400
+    /**
1401
+     * Number of all preview requests being processed concurrently,
1402
+     * including previews that need to be newly generated, and those that have
1403
+     * been generated.
1404
+     *
1405
+     * This should be greater than ``preview_concurrency_new``.
1406
+     * If unspecified, defaults to twice the value of ``preview_concurrency_new``.
1407
+     */
1408
+    'preview_concurrency_all' => 8,
1409
+
1410
+    /**
1411
+     * Number of new previews that are being concurrently generated.
1412
+     *
1413
+     * Depending on the max preview size set by ``preview_max_x`` and ``preview_max_y``,
1414
+     * the generation process can consume considerable CPU and memory resources.
1415
+     * It's recommended to limit this to be no greater than the number of CPU cores.
1416
+     * If unspecified, defaults to the number of CPU cores, or 4 if that cannot
1417
+     * be determined.
1418
+     */
1419
+    'preview_concurrency_new' => 4,
1420
+
1421
+    /**
1422
+     * The maximum width, in pixels, of a preview. A value of ``null`` means there
1423
+     * is no limit.
1424
+     *
1425
+     * Defaults to ``4096``
1426
+     */
1427
+    'preview_max_x' => 4096,
1428
+    /**
1429
+     * The maximum height, in pixels, of a preview. A value of ``null`` means there
1430
+     * is no limit.
1431
+     *
1432
+     * Defaults to ``4096``
1433
+     */
1434
+    'preview_max_y' => 4096,
1435
+
1436
+    /**
1437
+     * Max file size for generating image previews with imagegd (default behavior).
1438
+     * If the image is bigger, it'll try other preview generators, but will most
1439
+     * likely either show the default mimetype icon or not display the image at all.
1440
+     * Set to ``-1`` for no limit and try to generate image previews on all file sizes.
1441
+     *
1442
+     * Defaults to ``50`` megabytes
1443
+     */
1444
+    'preview_max_filesize_image' => 50,
1445
+
1446
+    /**
1447
+     * Max memory for generating image previews with imagegd (default behavior)
1448
+     * Reads the image dimensions from the header and assumes 32 bits per pixel.
1449
+     * If creating the image would allocate more memory, preview generation will
1450
+     * be disabled and the default mimetype icon is shown. Set to ``-1`` for no limit.
1451
+     *
1452
+     * Defaults to ``256`` megabytes
1453
+     */
1454
+    'preview_max_memory' => 256,
1455
+
1456
+    /**
1457
+     * Custom path for LibreOffice/OpenOffice binary
1458
+     *
1459
+     *
1460
+     * Defaults to ``''`` (empty string)
1461
+     */
1462
+    'preview_libreoffice_path' => '/usr/bin/libreoffice',
1463
+
1464
+    /**
1465
+     * Custom path for ffmpeg binary
1466
+     *
1467
+     * Defaults to ``null`` and falls back to searching ``ffmpeg``
1468
+     * in the configured ``PATH`` environment
1469
+     */
1470
+    'preview_ffmpeg_path' => '/usr/bin/ffmpeg',
1471
+
1472
+    /**
1473
+     * Custom path for ffprobe binary
1474
+     *
1475
+     * Defaults to ``null`` and falls back to using the same path as ffmpeg.
1476
+     * ffprobe is typically packaged with ffmpeg and is required for
1477
+     * enhanced preview generation for HDR videos.
1478
+     */
1479
+    'preview_ffprobe_path' => '/usr/bin/ffprobe',
1480
+
1481
+    /**
1482
+     * Set the URL of the Imaginary service to send image previews to.
1483
+     * Also requires the ``OC\Preview\Imaginary`` provider to be enabled in the
1484
+     * ``enabledPreviewProviders`` array, to create previews for these mimetypes: bmp,
1485
+     * x-bitmap, png, jpeg, gif, heic, heif, svg+xml, tiff, webp, and illustrator.
1486
+     *
1487
+     * If you want Imaginary to also create preview images from PDF documents, you
1488
+     * have to add the ``OC\Preview\ImaginaryPDF`` provider as well.
1489
+     *
1490
+     * See https://github.com/h2non/imaginary
1491
+     */
1492
+    'preview_imaginary_url' => 'http://previews_hpb:8088/',
1493
+
1494
+    /**
1495
+     * If you want to set an API key for Imaginary.
1496
+     */
1497
+    'preview_imaginary_key' => 'secret',
1498
+
1499
+    /**
1500
+     * Only register providers that have been explicitly enabled
1501
+     *
1502
+     * The following providers are disabled by default due to performance or privacy
1503
+     * concerns:
1504
+     *
1505
+     *  - ``OC\Preview\EMF``
1506
+     *  - ``OC\Preview\Font``
1507
+     *  - ``OC\Preview\HEIC``
1508
+     *  - ``OC\Preview\Illustrator``
1509
+     *  - ``OC\Preview\MP3``
1510
+     *  - ``OC\Preview\MSOffice2003``
1511
+     *  - ``OC\Preview\MSOffice2007``
1512
+     *  - ``OC\Preview\MSOfficeDoc``
1513
+     *  - ``OC\Preview\Movie``
1514
+     *  - ``OC\Preview\PDF``
1515
+     *  - ``OC\Preview\Photoshop``
1516
+     *  - ``OC\Preview\Postscript``
1517
+     *  - ``OC\Preview\SVG``
1518
+     *  - ``OC\Preview\StarOffice``
1519
+     *  - ``OC\Preview\TIFF``
1520
+     *
1521
+     * Defaults to the following providers:
1522
+     *
1523
+     *  - ``OC\Preview\BMP``
1524
+     *  - ``OC\Preview\GIF``
1525
+     *  - ``OC\Preview\JPEG``
1526
+     *  - ``OC\Preview\Krita``
1527
+     *  - ``OC\Preview\MarkDown``
1528
+     *  - ``OC\Preview\OpenDocument``
1529
+     *  - ``OC\Preview\PNG``
1530
+     *  - ``OC\Preview\TXT``
1531
+     *  - ``OC\Preview\XBitmap``
1532
+     *
1533
+     */
1534
+    'enabledPreviewProviders' => [
1535
+        'OC\Preview\BMP',
1536
+        'OC\Preview\GIF',
1537
+        'OC\Preview\JPEG',
1538
+        'OC\Preview\Krita',
1539
+        'OC\Preview\MarkDown',
1540
+        'OC\Preview\OpenDocument',
1541
+        'OC\Preview\PNG',
1542
+        'OC\Preview\TXT',
1543
+        'OC\Preview\XBitmap',
1544
+    ],
1545
+
1546
+    /**
1547
+     * Maximum file size for metadata generation.
1548
+     * If a file exceeds this size, metadata generation will be skipped.
1549
+     *
1550
+     * NOTE: memory equivalent to this size will be used for metadata generation.
1551
+     *
1552
+     * Default: 256 megabytes.
1553
+     */
1554
+    'metadata_max_filesize' => 256,
1555
+
1556
+    /**
1557
+     * Maximum file size for file conversion.
1558
+     * If a file exceeds this size, the file will not be converted.
1559
+     *
1560
+     * Default: 100 MiB
1561
+     */
1562
+    'max_file_conversion_filesize' => 100,
1563
+
1564
+    /**
1565
+     * LDAP
1566
+     *
1567
+     * Global settings used by LDAP User and Group Backend
1568
+     */
1569
+
1570
+    /**
1571
+     * Defines the interval in minutes for the background job that checks user
1572
+     * existence and marks them as ready to be cleaned up. The number is always
1573
+     * minutes. Setting it to 0 disables the feature.
1574
+     * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete``
1575
+     *
1576
+     * Defaults to ``51`` minutes
1577
+     */
1578
+    'ldapUserCleanupInterval' => 51,
1579
+
1580
+    /**
1581
+     * Sort groups in the user settings by name instead of the user count
1582
+     *
1583
+     * By enabling this, the user count beside the group name is disabled as well.
1584
+     * @deprecated since Nextcloud 29 - Use the frontend instead or set the app config value ``group.sortBy`` for ``core`` to ``2``
1585
+     */
1586
+    'sort_groups_by_name' => false,
1587
+
1588
+    /**
1589
+     * Comments
1590
+     *
1591
+     * Global settings for the Comments infrastructure
1592
+     */
1593
+
1594
+    /**
1595
+     * Replaces the default Comments Manager Factory. This can be utilized if an
1596
+     * own or 3rd-party CommentsManager should be used that – for instance – uses the
1597
+     * filesystem instead of the database to keep the comments.
1598
+     *
1599
+     * Defaults to ``\OC\Comments\ManagerFactory``
1600
+     */
1601
+    'comments.managerFactory' => '\OC\Comments\ManagerFactory',
1602
+
1603
+    /**
1604
+     * Replaces the default System Tags Manager Factory. This can be utilized if an
1605
+     * own or 3rd-party SystemTagsManager should be used that – for instance – uses the
1606
+     * filesystem instead of the database to keep the tags.
1607
+     *
1608
+     * Defaults to ``\OC\SystemTag\ManagerFactory``
1609
+     */
1610
+    'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory',
1611
+
1612
+    /**
1613
+     * Maintenance
1614
+     *
1615
+     * These options are for halting user activity when you are performing server
1616
+     * maintenance.
1617
+     */
1618
+
1619
+    /**
1620
+     * Enable maintenance mode to disable Nextcloud
1621
+     *
1622
+     * If you want to prevent users from logging in to Nextcloud before you start
1623
+     * doing some maintenance work, you need to set the value of the maintenance
1624
+     * parameter to true. Please keep in mind that users who are already logged in
1625
+     * are kicked out of Nextcloud instantly.
1626
+     *
1627
+     * Defaults to ``false``
1628
+     */
1629
+    'maintenance' => false,
1630
+
1631
+    /**
1632
+     * UTC Hour for maintenance windows
1633
+     *
1634
+     * Some background jobs only run once a day. When an hour is defined for this config,
1635
+     * the background jobs which advertise themselves as not time sensitive will be
1636
+     * delayed during the "working" hours and only run in the 4 hours after the given time.
1637
+     * This is, e.g., used for activity expiration, suspicious login training, and update checks.
1638
+     *
1639
+     * A value of 1, e.g., will only run these background jobs between 01:00am UTC and 05:00am UTC.
1640
+     *
1641
+     * Defaults to ``100`` which disables the feature
1642
+     */
1643
+    'maintenance_window_start' => 1,
1644
+
1645
+    /**
1646
+     * Log all LDAP requests into a file
1647
+     *
1648
+     * Warning: This heavily decreases the performance of the server and is only
1649
+     * meant to debug/profile the LDAP interaction manually.
1650
+     * Also, it might log sensitive data into a plain text file.
1651
+     */
1652
+    'ldap_log_file' => '',
1653
+
1654
+    /**
1655
+     * SSL
1656
+     */
1657
+
1658
+    /**
1659
+     * Extra SSL options to be used for configuration.
1660
+     *
1661
+     * Defaults to an empty array.
1662
+     */
1663
+    'openssl' => [
1664
+        'config' => '/absolute/location/of/openssl.cnf',
1665
+    ],
1666
+
1667
+    /**
1668
+     * Memory caching backend configuration
1669
+     *
1670
+     * Available cache backends:
1671
+     *
1672
+     * * ``\OC\Memcache\APCu``       APC user backend
1673
+     * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
1674
+     * * ``\OC\Memcache\Memcached``  Memcached backend
1675
+     * * ``\OC\Memcache\Redis``      Redis backend
1676
+     *
1677
+     * Advice on choosing between the various backends:
1678
+     *
1679
+     * * APCu should be easiest to install. Almost all distributions have packages.
1680
+     *   Use this for single user environment for all caches.
1681
+     * * Use Redis or Memcached for distributed environments.
1682
+     *   For the local cache (you can configure two) take APCu.
1683
+     */
1684
+
1685
+    /**
1686
+     * Memory caching backend for locally stored data
1687
+     *
1688
+     * * Used for host-specific data, e.g., file paths
1689
+     *
1690
+     * Defaults to ``none``
1691
+     */
1692
+    'memcache.local' => '\\OC\\Memcache\\APCu',
1693
+
1694
+    /**
1695
+     * Memory caching backend for distributed data
1696
+     *
1697
+     * * Used for installation-specific data, e.g., database caching
1698
+     * * If unset, defaults to the value of memcache.local
1699
+     *
1700
+     * Defaults to ``none``
1701
+     */
1702
+    'memcache.distributed' => '\\OC\\Memcache\\Memcached',
1703
+
1704
+    /**
1705
+     * Connection details for Redis to use for memory caching in a single server configuration.
1706
+     *
1707
+     * For enhanced security, it is recommended to configure Redis
1708
+     * to require a password. See http://redis.io/topics/security
1709
+     * for more information.
1710
+     *
1711
+     * We also support Redis SSL/TLS encryption as of version 6.
1712
+     * See https://redis.io/topics/encryption for more information.
1713
+     */
1714
+    'redis' => [
1715
+        'host' => 'localhost', // can also be a Unix domain socket: '/tmp/redis.sock'
1716
+        'port' => 6379,
1717
+        'timeout' => 0.0,
1718
+        'read_timeout' => 0.0,
1719
+        'user' => '', // Optional: if not defined, no password will be used.
1720
+        'password' => '', // Optional: if not defined, no password will be used.
1721
+        'dbindex' => 0, // Optional: if undefined, SELECT will not run and will use Redis Server's default DB Index.
1722
+        // If Redis in-transit encryption is enabled, provide certificates
1723
+        // SSL context https://www.php.net/manual/en/context.ssl.php
1724
+        'ssl_context' => [
1725
+            'local_cert' => '/certs/redis.crt',
1726
+            'local_pk' => '/certs/redis.key',
1727
+            'cafile' => '/certs/ca.crt'
1728
+        ]
1729
+    ],
1730
+
1731
+    /**
1732
+     * Connection details for a Redis Cluster.
1733
+     *
1734
+     * Redis Cluster support requires the PHP module phpredis in version 3.0.0 or
1735
+     * higher.
1736
+     *
1737
+     * Available failover modes:
1738
+     *  - ``\RedisCluster::FAILOVER_NONE`` - only send commands to master nodes (default)
1739
+     *  - ``\RedisCluster::FAILOVER_ERROR`` - failover to slaves for read commands if master is unavailable (recommended)
1740
+     *  - ``\RedisCluster::FAILOVER_DISTRIBUTE`` - randomly distribute read commands across master and slaves
1741
+     *
1742
+     * WARNING: ``\RedisCluster::FAILOVER_DISTRIBUTE`` is a not recommended setting, and we strongly
1743
+     * suggest to not use it if you use Redis for file locking. Due to the way Redis
1744
+     * is synchronized, it could happen that the read for an existing lock is
1745
+     * scheduled to a slave that is not fully synchronized with the connected master
1746
+     * which then causes a FileLocked exception.
1747
+     *
1748
+     * See https://redis.io/topics/cluster-spec for details about the Redis cluster
1749
+     *
1750
+     * Authentication works with phpredis version 4.2.1+. See
1751
+     * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1
1752
+     */
1753
+    'redis.cluster' => [
1754
+        'seeds' => [ // provide some or all of the cluster servers to bootstrap discovery, port required
1755
+            'localhost:7000',
1756
+            'localhost:7001',
1757
+        ],
1758
+        'timeout' => 0.0,
1759
+        'read_timeout' => 0.0,
1760
+        'failover_mode' => \RedisCluster::FAILOVER_ERROR,
1761
+        'user' => '', // Optional: if not defined, no password will be used.
1762
+        'password' => '', // Optional: if not defined, no password will be used.
1763
+        // If Redis in-transit encryption is enabled, provide certificates
1764
+        // SSL context https://www.php.net/manual/en/context.ssl.php
1765
+        'ssl_context' => [
1766
+            'local_cert' => '/certs/redis.crt',
1767
+            'local_pk' => '/certs/redis.key',
1768
+            'cafile' => '/certs/ca.crt'
1769
+        ]
1770
+    ],
1771
+
1772
+
1773
+    /**
1774
+     * Server details for one or more Memcached servers to use for memory caching.
1775
+     */
1776
+    'memcached_servers' => [
1777
+        // hostname, port and optional weight
1778
+        // or path and port 0 for Unix socket. Also see:
1779
+        // https://www.php.net/manual/en/memcached.addservers.php
1780
+        // https://www.php.net/manual/en/memcached.addserver.php
1781
+        ['localhost', 11211],
1782
+        //array('other.host.local', 11211),
1783
+    ],
1784
+
1785
+    /**
1786
+     * Connection options for Memcached
1787
+     */
1788
+    'memcached_options' => [
1789
+        // Set timeouts to 50ms
1790
+        \Memcached::OPT_CONNECT_TIMEOUT => 50,
1791
+        \Memcached::OPT_RETRY_TIMEOUT => 50,
1792
+        \Memcached::OPT_SEND_TIMEOUT => 50,
1793
+        \Memcached::OPT_RECV_TIMEOUT => 50,
1794
+        \Memcached::OPT_POLL_TIMEOUT => 50,
1795
+
1796
+        // Enable compression
1797
+        \Memcached::OPT_COMPRESSION => true,
1798
+
1799
+        // Turn on consistent hashing
1800
+        \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
1801
+
1802
+        // Enable Binary Protocol
1803
+        \Memcached::OPT_BINARY_PROTOCOL => true,
1804
+
1805
+        // Binary serializer will be enabled if the igbinary PECL module is available
1806
+        //\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY,
1807
+    ],
1808
+
1809
+
1810
+    /**
1811
+     * Location of the cache folder, defaults to ``data/$user/cache`` where
1812
+     * ``$user`` is the current user. When specified, the format will change to
1813
+     * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
1814
+     * and ``$user`` is the user.
1815
+     *
1816
+     * Defaults to ``''`` (empty string)
1817
+     */
1818
+    'cache_path' => '',
1819
+
1820
+    /**
1821
+     * TTL of chunks located in the cache folder before they're removed by
1822
+     * garbage collection (in seconds). Increase this value if users have
1823
+     * issues uploading very large files via the Nextcloud Client as upload isn't
1824
+     * completed within one day.
1825
+     *
1826
+     * Defaults to ``60*60*24`` (1 day)
1827
+     */
1828
+    'cache_chunk_gc_ttl' => 60 * 60 * 24,
1829
+
1830
+    /**
1831
+     * Enable caching of the app config values.
1832
+     * If enabled the app config will be cached locally for a short TTL,
1833
+     * reducing database load significantly on larger setups.
1834
+     *
1835
+     * Defaults to ``true``
1836
+     */
1837
+    'cache_app_config' => true,
1838
+
1839
+    /**
1840
+     * Using Object Store with Nextcloud
1841
+     */
1842
+
1843
+    /**
1844
+     * This example shows how to configure Nextcloud to store all files in a
1845
+     * Swift object storage.
1846
+     *
1847
+     * It is important to note that Nextcloud in object store mode will expect
1848
+     * exclusive access to the object store container because it only stores the
1849
+     * binary data for each file. The metadata is currently kept in the local
1850
+     * database for performance reasons.
1851
+     *
1852
+     * WARNING: The current implementation is incompatible with any app that uses
1853
+     * direct file I/O and circumvents our virtual filesystem. That includes
1854
+     * Encryption and Gallery. Gallery will store thumbnails directly in the
1855
+     * filesystem, and encryption will cause severe overhead because key files need
1856
+     * to be fetched in addition to any requested file.
1857
+     *
1858
+     */
1859
+    'objectstore' => [
1860
+        'class' => 'OC\\Files\\ObjectStore\\Swift',
1861
+        'arguments' => [
1862
+            // trystack will use your Facebook ID as the username
1863
+            'username' => 'facebook100000123456789',
1864
+            // in the trystack dashboard, go to user -> settings -> API Password to
1865
+            // generate a password
1866
+            'password' => 'Secr3tPaSSWoRdt7',
1867
+            // must already exist in the objectstore, name can be different
1868
+            'container' => 'nextcloud',
1869
+            // prefix to prepend to the fileid, default is 'oid:urn:'
1870
+            'objectPrefix' => 'oid:urn:',
1871
+            // create the container if it does not exist. default is false
1872
+            'autocreate' => true,
1873
+            // required, dev-/trystack defaults to 'RegionOne'
1874
+            'region' => 'RegionOne',
1875
+            // The Identity / Keystone endpoint
1876
+            'url' => 'http://8.21.28.222:5000/v2.0',
1877
+            // uploadPartSize: size of the uploaded chunks, defaults to 524288000
1878
+            'uploadPartSize' => 524288000,
1879
+            // required on dev-/trystack
1880
+            'tenantName' => 'facebook100000123456789',
1881
+            // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
1882
+            // if omitted
1883
+            'serviceName' => 'swift',
1884
+            // The Interface / URL Type, optional
1885
+            'urlType' => 'internal',
1886
+            // Maximum amount of data that can be uploaded
1887
+            'totalSizeLimit' => 1024 * 1024 * 1024,
1888
+        ],
1889
+    ],
1890
+
1891
+    /**
1892
+     * To use Swift V3
1893
+     */
1894
+    'objectstore' => [
1895
+        'class' => 'OC\\Files\\ObjectStore\\Swift',
1896
+        'arguments' => [
1897
+            'autocreate' => true,
1898
+            'user' => [
1899
+                'name' => 'swift',
1900
+                'password' => 'swift',
1901
+                'domain' => [
1902
+                    'name' => 'default',
1903
+                ],
1904
+            ],
1905
+            'scope' => [
1906
+                'project' => [
1907
+                    'name' => 'service',
1908
+                    'domain' => [
1909
+                        'name' => 'default',
1910
+                    ],
1911
+                ],
1912
+            ],
1913
+            'tenantName' => 'service',
1914
+            'serviceName' => 'swift',
1915
+            'region' => 'regionOne',
1916
+            'url' => 'http://yourswifthost:5000/v3',
1917
+            'bucket' => 'nextcloud',
1918
+        ],
1919
+    ],
1920
+
1921
+    /**
1922
+     * If this is set to true and a multibucket object store is configured, then
1923
+     * newly created previews are put into 256 dedicated buckets.
1924
+     *
1925
+     * Those buckets are named like the multibucket version but with the postfix
1926
+     * ``-preview-NUMBER`` where NUMBER is between 0 and 255.
1927
+     *
1928
+     * Keep in mind that only previews of files are put in there that don't have
1929
+     * some already. Otherwise, the old bucket will be used.
1930
+     *
1931
+     * To migrate existing previews to this new multibucket distribution of previews,
1932
+     * use the occ command ``preview:repair``. For now, this will only migrate
1933
+     * previews that were generated before Nextcloud 19 in the flat
1934
+     * ``appdata_INSTANCEID/previews/FILEID`` folder structure.
1935
+     */
1936
+    'objectstore.multibucket.preview-distribution' => false,
1937
+
1938
+
1939
+    /**
1940
+     * Sharing
1941
+     *
1942
+     * Global settings for Sharing
1943
+     */
1944
+
1945
+    /**
1946
+     * Replaces the default Share Provider Factory. This can be utilized if
1947
+     * own or 3rd-party Share Providers are used that – for instance – use the
1948
+     * filesystem instead of the database to keep the share information.
1949
+     *
1950
+     * Defaults to ``\OC\Share20\ProviderFactory``
1951
+     */
1952
+    'sharing.managerFactory' => '\OC\Share20\ProviderFactory',
1953
+
1954
+    /**
1955
+     * Enables expiration for link share passwords sent by email (sharebymail).
1956
+     * The passwords will expire after the configured interval; the users can
1957
+     * still request a new one on the public link page.
1958
+     */
1959
+    'sharing.enable_mail_link_password_expiration' => false,
1960
+
1961
+    /**
1962
+     * Expiration interval for passwords, in seconds.
1963
+     */
1964
+    'sharing.mail_link_password_expiration_interval' => 3600,
1965
+
1966
+    /**
1967
+     * Define max number of results returned by the search for auto-completion of
1968
+     * users, groups, etc. The value must not be lower than 0 (for unlimited).
1969
+     *
1970
+     * If more, different sources are requested (e.g., different user backends; or
1971
+     * both users and groups), the value is applied per source and might not be
1972
+     * truncated after collecting the results. I.e., more results can appear than
1973
+     * configured here.
1974
+     *
1975
+     * Default is 25.
1976
+     */
1977
+    'sharing.maxAutocompleteResults' => 25,
1978
+
1979
+    /**
1980
+     * Define the minimum length of the search string before we start auto-completion
1981
+     * Default is no limit (value set to 0)
1982
+     */
1983
+    'sharing.minSearchStringLength' => 0,
1984
+
1985
+    /**
1986
+     * Set to true to enable that internal shares need to be accepted by the users by default.
1987
+     * Users can change this for their account in their personal sharing settings
1988
+     */
1989
+    'sharing.enable_share_accept' => false,
1990
+
1991
+    /**
1992
+     * Set to ``true`` to enforce that internal shares need to be accepted
1993
+     */
1994
+    'sharing.force_share_accept' => false,
1995
+
1996
+    /**
1997
+     * Set to ``false`` to prevent users from setting a custom share_folder
1998
+     */
1999
+    'sharing.allow_custom_share_folder' => true,
2000
+
2001
+    /**
2002
+     * Define a default folder for shared files and folders other than root.
2003
+     * Changes to this value will only have effect on new shares.
2004
+     *
2005
+     * Defaults to ``/``
2006
+     */
2007
+    'share_folder' => '/',
2008
+
2009
+    /**
2010
+     * Set to ``false`` to stop sending a mail when users receive a share
2011
+     */
2012
+    'sharing.enable_share_mail' => true,
2013
+
2014
+    /**
2015
+     * Set to true to enable the feature to add exceptions for share password enforcement
2016
+     */
2017
+    'sharing.allow_disabled_password_enforcement_groups' => false,
2018
+
2019
+    /**
2020
+     * Set to true to always transfer incoming shares by default
2021
+     * when running ``occ files:transfer-ownership``.
2022
+     * Defaults to ``false``, so incoming shares are not transferred if not specifically requested
2023
+     * by a command line argument.
2024
+     */
2025
+    'transferIncomingShares' => false,
2026
+
2027
+    /**
2028
+     * Federated Cloud Sharing
2029
+     */
2030
+
2031
+    /**
2032
+     * Allow self-signed certificates for federated shares
2033
+     */
2034
+    'sharing.federation.allowSelfSignedCertificates' => false,
2035
+
2036
+    /**
2037
+     * Hashing
2038
+     */
2039
+
2040
+    /**
2041
+     * By default, Nextcloud will use the Argon2 password hashing if available.
2042
+     * However, if for whatever reason you want to stick with the PASSWORD_DEFAULT
2043
+     * of your PHP version, then set the setting to true.
2044
+     *
2045
+     * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
2046
+     * own and exposes its configuration options as following. More information can
2047
+     * be found at: https://www.php.net/manual/en/function.password-hash.php
2048
+     */
2049
+    'hashing_default_password' => false,
2050
+
2051
+    /**
2052
+     * The number of CPU threads to be used by the algorithm for computing a hash.
2053
+     * The value must be an integer, and the minimum value is ``1``. Rationally, it does
2054
+     * not help to provide a number higher than the available threads on the machine.
2055
+     * Values that undershoot the minimum will be ignored in favor of the minimum.
2056
+     */
2057
+    'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
2058
+
2059
+    /**
2060
+     * The memory in KiB to be used by the algorithm for computing a hash. The value
2061
+     * must be an integer, and the minimum value is 8 times the number of CPU threads.
2062
+     * Values that undershoot the minimum will be ignored in favor of the minimum.
2063
+     */
2064
+    'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
2065
+
2066
+    /**
2067
+     * The number of iterations that are used by the algorithm for computing a hash.
2068
+     * The value must be an integer, and the minimum value is ``1``. Values that
2069
+     * undershoot the minimum will be ignored in favor of the minimum.
2070
+     */
2071
+    'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
2072
+
2073
+    /**
2074
+     * The hashing cost used by hashes generated by Nextcloud
2075
+     * Using a higher value requires more time and CPU power to calculate the hashes
2076
+     */
2077
+    'hashingCost' => 10,
2078
+
2079
+    /**
2080
+     * All other configuration options
2081
+     */
2082
+
2083
+    /**
2084
+     * Additional driver options for the database connection, e.g., to enable SSL
2085
+     * encryption in MySQL or specify a custom wait timeout on a cheap hoster.
2086
+     *
2087
+     * When setting up TLS/SSL for encrypting the connections, you need to ensure that
2088
+     * the passed keys and certificates are readable by the PHP process. In addition,
2089
+     * ``PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT`` might need to be set to false, if the
2090
+     * database server's certificate CN does not match with the hostname used to connect.
2091
+     * The standard behavior here is different from the MySQL/MariaDB CLI client, which
2092
+     * does not verify the server cert except ``--ssl-verify-server-cert`` is passed manually.
2093
+     */
2094
+    'dbdriveroptions' => [
2095
+        PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
2096
+        PDO::MYSQL_ATTR_SSL_KEY => '/file/path/to/mysql-client-key.pem',
2097
+        PDO::MYSQL_ATTR_SSL_CERT => '/file/path/to/mysql-client-cert.pem',
2098
+        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
2099
+        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800'
2100
+    ],
2101
+
2102
+    /**
2103
+     * SQLite3 journal mode can be specified using this configuration parameter -
2104
+     * can be ``'WAL'`` or ``'DELETE'``. See https://www.sqlite.org/wal.html for more details.
2105
+     */
2106
+    'sqlite.journal_mode' => 'DELETE',
2107
+
2108
+    /**
2109
+     * During setup, if requirements are met (see below), this setting is set to true
2110
+     * to enable MySQL to handle 4-byte characters instead of 3-byte characters.
2111
+     *
2112
+     * To convert an existing 3-byte setup to a 4-byte setup, configure the MySQL
2113
+     * parameters as described below and run the migration command:
2114
+     * ``./occ db:convert-mysql-charset``
2115
+     * This config setting will be automatically updated after a successful migration.
2116
+     *
2117
+     * Refer to the documentation for more details.
2118
+     *
2119
+     * MySQL requires specific settings for longer indexes (> 767 bytes), which are
2120
+     * necessary for 4-byte character support::
2121
+     *
2122
+     *     [mysqld]
2123
+     *     innodb_large_prefix=ON
2124
+     *     innodb_file_format=Barracuda
2125
+     *     innodb_file_per_table=ON
2126
+     *
2127
+     * Tables will be created with:
2128
+     *  * character set: ``utf8mb4``
2129
+     *  * collation:     ``utf8mb4_bin``
2130
+     *  * row_format:    ``dynamic``
2131
+     *
2132
+     * See:
2133
+     *  * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html
2134
+     *  * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
2135
+     *  * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
2136
+     *  * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html
2137
+     *  * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/
2138
+     */
2139
+    'mysql.utf8mb4' => false,
2140
+
2141
+    /**
2142
+     * For search queries in the database, a default collation is chosen based on the
2143
+     * character set. In some cases, a different collation is desired, such as for
2144
+     * accent-sensitive searches.
2145
+     *
2146
+     * MariaDB and MySQL share some collations, but also have incompatible ones,
2147
+     * depending on the database server version.
2148
+     *
2149
+     * This option allows overriding the automatic collation choice. Example::
2150
+     *
2151
+     *     'mysql.collation' => 'utf8mb4_0900_as_ci',
2152
+     *
2153
+     * This setting does not affect table creation or setup, where utf8[mb4]_bin is
2154
+     * always used. It applies only to SQL queries using LIKE comparison operators.
2155
+     */
2156
+    'mysql.collation' => null,
2157
+
2158
+    /**
2159
+     * PostgreSQL SSL connection
2160
+     */
2161
+    'pgsql_ssl' => [
2162
+        'mode' => '',
2163
+        'cert' => '',
2164
+        'rootcert' => '',
2165
+        'key' => '',
2166
+        'crl' => '',
2167
+    ],
2168
+
2169
+    /**
2170
+     * Database types supported for installation.
2171
+     *
2172
+     * Available:
2173
+     *  - sqlite (SQLite3)
2174
+     *  - mysql (MySQL)
2175
+     *  - pgsql (PostgreSQL)
2176
+     *  - oci (Oracle)
2177
+     *
2178
+     * Defaults to:
2179
+     *  - sqlite (SQLite3)
2180
+     *  - mysql (MySQL)
2181
+     *  - pgsql (PostgreSQL)
2182
+     */
2183
+    'supportedDatabases' => [
2184
+        'sqlite',
2185
+        'mysql',
2186
+        'pgsql',
2187
+        'oci',
2188
+    ],
2189
+
2190
+    /**
2191
+     * Override the location where Nextcloud stores temporary files. Useful in setups
2192
+     * where the system temporary directory is on a limited-space ramdisk, restricted,
2193
+     * or when using external storage that does not support streaming.
2194
+     *
2195
+     * The web server user/PHP must have write access to this directory. Ensure that
2196
+     * PHP configuration recognizes this as a valid temporary directory by setting
2197
+     * the TMP, TMPDIR, and TEMP environment variables accordingly. Additional
2198
+     * permissions may be required for AppArmor or SELinux.
2199
+     */
2200
+    'tempdirectory' => '/tmp/nextcloudtemp',
2201
+
2202
+    /**
2203
+     * Override the location where Nextcloud stores update files during updates.
2204
+     * Useful when the default ``datadirectory`` is on a network disk like NFS or is
2205
+     * otherwise restricted. Defaults to the value of ``datadirectory`` if unset.
2206
+     *
2207
+     * If set, the directory must be located outside the Nextcloud installation
2208
+     * directory and writable by the web server user.
2209
+     */
2210
+    'updatedirectory' => '',
2211
+
2212
+    /**
2213
+     * Block specific files or filenames, disallowing uploads or access (read and write).
2214
+     * ``.htaccess`` is blocked by default.
2215
+     *
2216
+     * WARNING: Use this only if you understand the implications.
2217
+     *
2218
+     * NOTE: This list is case-insensitive.
2219
+     *
2220
+     * Defaults to ``['.htaccess']``
2221
+     */
2222
+    'forbidden_filenames' => ['.htaccess'],
2223
+
2224
+    /**
2225
+     * Disallow uploads of files with specific basenames. Matching existing files
2226
+     * cannot be updated, and no new files can be created in matching folders.
2227
+     *
2228
+     * The basename is the filename without the extension, e.g., for "archive.tar.gz",
2229
+     * the basename is "archive".
2230
+     *
2231
+     * NOTE: This list is case-insensitive.
2232
+     *
2233
+     * Defaults to ``[]`` (empty array)
2234
+     */
2235
+    'forbidden_filename_basenames' => [],
2236
+
2237
+    /**
2238
+     * Block specific characters in filenames. Useful for filesystems or operating
2239
+     * systems (e.g., Windows) that do not support certain characters. Matching
2240
+     * existing files cannot be updated, and no new files can be created in matching
2241
+     * folders.
2242
+     *
2243
+     * The ``/`` and ``\`` characters, as well as ASCII characters [0-31], are always
2244
+     * forbidden.
2245
+     *
2246
+     * Example for Windows: ``['?', '<', '>', ':', '*', '|', '"']``
2247
+     * See: https://en.wikipedia.org/wiki/Comparison_of_file_systems#Limits
2248
+     *
2249
+     * Defaults to ``[]`` (empty array)
2250
+     */
2251
+    'forbidden_filename_characters' => [],
2252
+
2253
+    /**
2254
+     * Deny specific file extensions. Matching existing files cannot be updated, and
2255
+     * no new files can be created in matching folders.
2256
+     *
2257
+     * The ``'.part'`` extension is always forbidden, as it is used internally by Nextcloud.
2258
+     *
2259
+     * Defaults to ``['.filepart', '.part']``
2260
+     */
2261
+    'forbidden_filename_extensions' => ['.part', '.filepart'],
2262
+
2263
+    /**
2264
+     * Specify the name of a theme to apply to Nextcloud. Themes are located in
2265
+     * ``nextcloud/themes/`` by default.
2266
+     *
2267
+     * Defaults to the theming app, included since Nextcloud 9.
2268
+     */
2269
+    'theme' => '',
2270
+
2271
+    /**
2272
+     * Enforce a specific user theme, disabling user theming settings. Must be a
2273
+     * valid ITheme ID, e.g., ``dark``, ``dark-highcontrast``, ``default``, ``light``,
2274
+     * ``light-highcontrast``, ``opendyslexic``.
2275
+     */
2276
+    'enforce_theme' => '',
2277
+
2278
+    /**
2279
+     * Enable or disable Progressive Web App (PWA) functionality, which allows
2280
+     * browsers to open web applications in dedicated windows.
2281
+     *
2282
+     * Defaults to ``true``
2283
+     */
2284
+    'theming.standalone_window.enabled' => true,
2285
+
2286
+    /**
2287
+     * Specify the default cipher for encrypting files. Supported ciphers:
2288
+     *  - AES-256-CTR
2289
+     *  - AES-128-CTR
2290
+     *  - AES-256-CFB
2291
+     *  - AES-128-CFB
2292
+     *
2293
+     * Defaults to ``AES-256-CTR``
2294
+     */
2295
+    'cipher' => 'AES-256-CTR',
2296
+
2297
+    /**
2298
+     * Use the legacy base64 format for encrypted files instead of the more
2299
+     * space-efficient binary format. This affects only newly written files; existing
2300
+     * encrypted files remain readable regardless of the format.
2301
+     *
2302
+     * Defaults to ``false``
2303
+     */
2304
+    'encryption.use_legacy_base64_encoding' => false,
2305
+
2306
+    /**
2307
+     * Specify the minimum Nextcloud desktop client version allowed to sync with this
2308
+     * server. Connections from earlier clients will be denied. Defaults to the
2309
+     * minimum officially supported version at the time of this server release.
2310
+     *
2311
+     * Changing this may cause older, unsupported clients to malfunction, potentially
2312
+     * leading to data loss or unexpected behavior.
2313
+     *
2314
+     * Defaults to ``3.1.0``
2315
+     */
2316
+    'minimum.supported.desktop.version' => '3.1.0',
2317
+
2318
+    /**
2319
+     * Specify the maximum Nextcloud desktop client version allowed to sync with this
2320
+     * server. Connections from later clients will be denied.
2321
+     *
2322
+     * Defaults to ``99.99.99``
2323
+     */
2324
+    'maximum.supported.desktop.version' => '99.99.99',
2325
+
2326
+    /**
2327
+     * Allow local storage to contain symlinks.
2328
+     * WARNING: Not recommended, as this allows Nextcloud to access files outside the
2329
+     * data directory, posing a potential security risk.
2330
+     *
2331
+     * Defaults to ``false``
2332
+     */
2333
+    'localstorage.allowsymlinks' => false,
2334
+
2335
+    /**
2336
+     * Nextcloud overrides umask to ensure suitable access permissions regardless of
2337
+     * web server or PHP-FPM configuration. Modifying this value has security
2338
+     * implications and may cause issues with the installation.
2339
+     *
2340
+     * Most installations should not modify this value.
2341
+     *
2342
+     * Defaults to ``0022``
2343
+     */
2344
+    'localstorage.umask' => 0022,
2345
+
2346
+    /**
2347
+     * Allow storage systems that do not support modifying existing files to overcome
2348
+     * this limitation by removing files before overwriting.
2349
+     *
2350
+     * Defaults to ``false``
2351
+     */
2352
+    'localstorage.unlink_on_truncate' => false,
2353
+
2354
+    /**
2355
+     * EXPERIMENTAL: Include external storage in quota calculations.
2356
+     *
2357
+     * Defaults to ``false``
2358
+     */
2359
+    'quota_include_external_storage' => false,
2360
+
2361
+    /**
2362
+     * When an external storage is unavailable (e.g., due to failed authentication),
2363
+     * it is flagged as such for a specified duration. For authentication failures,
2364
+     * this delay can be customized to reduce the likelihood of account lockouts in
2365
+     * systems like Active Directory.
2366
+     *
2367
+     * Defaults to ``1800`` seconds (30 minutes)
2368
+     */
2369
+    'external_storage.auth_availability_delay' => 1800,
2370
+
2371
+    /**
2372
+     * Allow creation of external storages of type "Local" via the web interface and
2373
+     * APIs. When disabled, local storages can still be created using the occ command::
2374
+     *   occ files_external:create /mountpoint local null::null -c datadir=/path/to/data
2375
+     *
2376
+     * Defaults to ``true``
2377
+     */
2378
+    'files_external_allow_create_new_local' => true,
2379
+
2380
+    /**
2381
+     * Specify how often the local filesystem (Nextcloud data/ directory and NFS
2382
+     * mounts in data/) is checked for changes made outside Nextcloud. This does not
2383
+     * apply to external storage.
2384
+     *
2385
+     * - ``0`` -> Never check the filesystem for outside changes, improving performance when no external changes are expected.
2386
+     * - ``1`` -> Check each file or folder at most once per request, recommended for general use if outside changes are possible.
2387
+     *
2388
+     * Defaults to ``0``
2389
+     */
2390
+    'filesystem_check_changes' => 0,
2391
+
2392
+    /**
2393
+     * Store part files created during upload in the same storage as the upload
2394
+     * target. Setting this to false stores part files in the root of the user's
2395
+     * folder, which may be necessary for external storage with limited rename
2396
+     * capabilities.
2397
+     *
2398
+     * Defaults to ``true``
2399
+     */
2400
+    'part_file_in_storage' => true,
2401
+
2402
+    /**
2403
+     * Specify the location of the ``mount.json`` file.
2404
+     *
2405
+     * Defaults to ``data/mount.json`` in the Nextcloud directory.
2406
+     */
2407
+    'mount_file' => '/var/www/nextcloud/data/mount.json',
2408
+
2409
+    /**
2410
+     * Prevent Nextcloud from updating the cache due to filesystem changes for all
2411
+     * storage.
2412
+     *
2413
+     * Defaults to ``false``
2414
+     */
2415
+    'filesystem_cache_readonly' => false,
2416
+
2417
+    /**
2418
+     * List of trusted proxy servers. Supported formats:
2419
+     *
2420
+     * - IPv4 addresses, e.g., ``192.168.2.123``
2421
+     * - IPv4 ranges in CIDR notation, e.g., ``192.168.2.0/24``
2422
+     * - IPv6 addresses, e.g., ``fd9e:21a7:a92c:2323::1``
2423
+     * - IPv6 ranges in CIDR notation, e.g., ``2001:db8:85a3:8d3:1319:8a20::/95``
2424
+     *
2425
+     * If a request's ``REMOTE_ADDR`` matches an address here, it is treated as a proxy,
2426
+     * and the client IP is read from the HTTP header specified in
2427
+     * ``forwarded_for_headers`` instead of ``REMOTE_ADDR``.
2428
+     *
2429
+     * Ensure ``forwarded_for_headers`` is configured if ``trusted_proxies`` is set.
2430
+     *
2431
+     * Defaults to ``[]`` (empty array)
2432
+     */
2433
+    'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],
2434
+
2435
+    /**
2436
+     * Headers trusted as containing the client IP address when used with
2437
+     * ``trusted_proxies``. For example, use ``HTTP_X_FORWARDED_FOR`` for the
2438
+     * ``X-Forwarded-For`` header.
2439
+     *
2440
+     * Incorrect configuration allows clients to spoof their IP address, bypassing
2441
+     * access controls and rendering logs unreliable.
2442
+     *
2443
+     * Defaults to ``['HTTP_X_FORWARDED_FOR']``
2444
+     */
2445
+    'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],
2446
+
2447
+    /**
2448
+     * List of trusted IP ranges for admin actions. If non-empty, all admin actions
2449
+     * must originate from IPs within these ranges.
2450
+     *
2451
+     * Supported formats:
2452
+     * - IPv4 addresses or ranges, e.g., ``192.0.2.42/32``, ``233.252.0.0/24``
2453
+     * - IPv6 addresses or ranges, e.g., ``2001:db8::13:37/64``
2454
+     *
2455
+     * Defaults to ``[]`` (empty array)
2456
+     */
2457
+    'allowed_admin_ranges' => ['192.0.2.42/32', '233.252.0.0/24', '2001:db8::13:37/64'],
2458
+
2459
+    /**
2460
+     * Maximum file size (in megabytes) for animating GIFs on public sharing pages.
2461
+     * If a GIF exceeds this size, a static preview is shown.
2462
+     *
2463
+     * Set to ``-1`` for no limit.
2464
+     *
2465
+     * Defaults to ``10`` megabytes
2466
+     */
2467
+    'max_filesize_animated_gifs_public_sharing' => 10,
2468
+
2469
+    /**
2470
+     * Set the lock's time-to-live (TTL) in seconds. Locks older than this are
2471
+     * automatically cleaned up.
2472
+     *
2473
+     * Defaults to ``3600`` seconds (1 hour) or the PHP ``max_execution_time``,
2474
+     * whichever is higher.
2475
+     */
2476
+    'filelocking.ttl' => 60 * 60,
2477
+
2478
+    /**
2479
+     * Memory caching backend for file locking. Redis is highly recommended to avoid
2480
+     * data loss, as many memcache backends may evict values unexpectedly.
2481
+     *
2482
+     * Defaults to ``none``
2483
+     */
2484
+    'memcache.locking' => '\\OC\\Memcache\\Redis',
2485
+
2486
+    /**
2487
+     * Enable debug logging for file locking. This can generate a large volume of log
2488
+     * entries, potentially causing performance degradation and large log files on
2489
+     * busy instances.
2490
+     *
2491
+     * Use with ``log.condition`` to limit logging in production environments.
2492
+     *
2493
+     * Defaults to ``false``
2494
+     */
2495
+    'filelocking.debug' => false,
2496
+
2497
+    /**
2498
+     * Disable the web-based updater.
2499
+     *
2500
+     * Defaults to ``false``
2501
+     */
2502
+    'upgrade.disable-web' => false,
2503
+
2504
+    /**
2505
+     * Customize the CLI upgrade documentation link.
2506
+     */
2507
+    'upgrade.cli-upgrade-link' => '',
2508
+
2509
+    /**
2510
+     * Additional line(s) (string or array of strings)
2511
+     * that will be added to .user.ini on each update by the updater.
2512
+     *
2513
+     * Defaults to ``''`` (empty string)
2514
+     */
2515
+    'user_ini_additional_lines' => '',
2516
+
2517
+    /**
2518
+     * Customize the server logs documentation link for exception handling.
2519
+     */
2520
+    'documentation_url.server_logs' => '',
2521
+
2522
+    /**
2523
+     * Enable debugging mode for Nextcloud. Only use for local development, not in
2524
+     * production, as it disables minification and outputs additional debug
2525
+     * information.
2526
+     *
2527
+     * Defaults to ``false``
2528
+     */
2529
+    'debug' => false,
2530
+
2531
+    /**
2532
+     * Set the data fingerprint for the current data served. Used by clients to
2533
+     * detect if a backup has been restored. Update this by running::
2534
+     *   occ maintenance:data-fingerprint
2535
+     *
2536
+     * Changing or deleting this value may cause connected clients to stall until
2537
+     * conflicts are resolved.
2538
+     *
2539
+     * Defaults to ``''`` (empty string)
2540
+     */
2541
+    'data-fingerprint' => '',
2542
+
2543
+    /**
2544
+     * This entry serves as a warning if the sample configuration was copied.
2545
+     * DO NOT ADD THIS TO YOUR CONFIGURATION!
2546
+     *
2547
+     * Ensure all settings are modified only after consulting the documentation.
2548
+     */
2549
+    'copied_sample_config' => true,
2550
+
2551
+    /**
2552
+     * Use a custom lookup server to publish user data.
2553
+     *
2554
+     * Defaults to ``https://lookup.nextcloud.com``
2555
+     */
2556
+    'lookup_server' => 'https://lookup.nextcloud.com',
2557
+
2558
+    /**
2559
+     * Enable Nextcloud's Global Scale architecture.
2560
+     *
2561
+     * Defaults to ``false``
2562
+     */
2563
+    'gs.enabled' => false,
2564
+
2565
+    /**
2566
+     * Configure federation for Global Scale setups. Set to ``global`` to allow
2567
+     * federation outside the environment.
2568
+     *
2569
+     * Defaults to ``internal``
2570
+     */
2571
+    'gs.federation' => 'internal',
2572
+
2573
+    /**
2574
+     * List of user agents exempt from SameSite cookie protection due to non-standard
2575
+     * HTTP behavior.
2576
+     *
2577
+     * WARNING: Use only if you understand the implications.
2578
+     *
2579
+     * Defaults to:
2580
+     *
2581
+     * - ``/^WebDAVFS/`` (OS X Finder)
2582
+     * - ``/^Microsoft-WebDAV-MiniRedir/`` (Windows WebDAV drive)
2583
+     */
2584
+    'csrf.optout' => [
2585
+        '/^WebDAVFS/', // OS X Finder
2586
+        '/^Microsoft-WebDAV-MiniRedir/', // Windows WebDAV drive
2587
+    ],
2588
+
2589
+    /**
2590
+     * Specify allowed user agents for Login Flow V2 using regular expressions.
2591
+     * User agents not matching this list are denied access to Login Flow V2.
2592
+     *
2593
+     * WARNING: Use only if you understand the implications.
2594
+     *
2595
+     * Example: Allow only the Nextcloud Android app::
2596
+     *
2597
+     *    'core.login_flow_v2.allowed_user_agents' => ['/Nextcloud-android/i'],
2598
+     *
2599
+     * Defaults to ``[]`` (empty array)
2600
+     */
2601
+    'core.login_flow_v2.allowed_user_agents' => [],
2602
+
2603
+    /**
2604
+     * Show or hide the "simple sign up" link on public pages.
2605
+     * See: https://nextcloud.com/signup/
2606
+     *
2607
+     * Defaults to ``true``
2608
+     */
2609
+    'simpleSignUpLink.shown' => true,
2610
+
2611
+    /**
2612
+     * Enable or disable autocompletion for the login form. Disabling this prevents
2613
+     * browsers from remembering login credentials, which may be required for
2614
+     * compliance with certain security policies.
2615
+     *
2616
+     * Defaults to ``true``
2617
+     */
2618
+    'login_form_autocomplete' => true,
2619
+
2620
+    /**
2621
+     * Set a timeout (in seconds) for the login form. After this period, the form is
2622
+     * reset to prevent password leaks on public devices if the user forgets to clear
2623
+     * it.
2624
+     *
2625
+     * A value of 0 disables the timeout.
2626
+     *
2627
+     * Defaults to ``300`` seconds (5 minutes)
2628
+     */
2629
+    'login_form_timeout' => 300,
2630
+
2631
+    /**
2632
+     * Suppress warnings for outdated or unsupported browsers. When enabled, users
2633
+     * can bypass the warning after reading it.
2634
+     *
2635
+     * Set to ``true`` to disable the warning.
2636
+     *
2637
+     * Defaults to ``false``
2638
+     */
2639
+    'no_unsupported_browser_warning' => false,
2640
+
2641
+    /**
2642
+     * Disable background scanning of files. When enabled, a background job runs
2643
+     * every 10 minutes to sync the filesystem and database for up to 500 users with
2644
+     * unscanned files (size < 0 in filecache).
2645
+     *
2646
+     * Defaults to ``false``
2647
+     */
2648
+    'files_no_background_scan' => false,
2649
+
2650
+    /**
2651
+     * Log all database queries to a file.
2652
+     *
2653
+     * WARNING: This significantly reduces server performance and is intended only
2654
+     * for debugging or profiling query interactions. Sensitive data may be logged in
2655
+     * plain text.
2656
+     */
2657
+    'query_log_file' => '',
2658
+
2659
+    /**
2660
+     * Prefix all queries with the request ID when set to `yes`.
2661
+     *
2662
+     * Requires ``query_log_file`` to be set.
2663
+     */
2664
+    'query_log_file_requestid' => '',
2665
+
2666
+    /**
2667
+     * Include all query parameters in the query log when set to `yes`.
2668
+     *
2669
+     * Requires ``query_log_file`` to be set.
2670
+     * WARNING: This may log sensitive data in plain text.
2671
+     */
2672
+    'query_log_file_parameters' => '',
2673
+
2674
+    /**
2675
+     * Include a backtrace in the query log when set to `yes`.
2676
+     *
2677
+     * Requires ``query_log_file`` to be set.
2678
+     */
2679
+    'query_log_file_backtrace' => '',
2680
+
2681
+    /**
2682
+     * Log all Redis requests to a file.
2683
+     *
2684
+     * WARNING: This significantly reduces server performance and is intended only
2685
+     * for debugging or profiling Redis interactions. Sensitive data may be logged in
2686
+     * plain text.
2687
+     */
2688
+    'redis_log_file' => '',
2689
+
2690
+    /**
2691
+     * Enable diagnostics event logging. Logs timings of common execution steps at
2692
+     * debug level. Use with ``log.condition`` to enable conditionally in production.
2693
+     *
2694
+     * Defaults to ``true``
2695
+     */
2696
+    'diagnostics.logging' => true,
2697
+
2698
+    /**
2699
+     * Limit diagnostics event logging to events longer than the specified threshold
2700
+     * (in milliseconds). A value of 0 disables diagnostics event logging.
2701
+     */
2702
+    'diagnostics.logging.threshold' => 0,
2703
+
2704
+    /**
2705
+     * Enable profiling globally.
2706
+     *
2707
+     * Defaults to ``true``
2708
+     */
2709
+    'profile.enabled' => true,
2710
+
2711
+    /**
2712
+     * Override default scopes for account data. Valid properties and scopes are
2713
+     * defined in ``OCP\Accounts\IAccountManager``. Values are merged with defaults
2714
+     * from ``OC\Accounts\AccountManager``.
2715
+     *
2716
+     * Example: Set phone property to private scope:
2717
+     * ``[\OCP\Accounts\IAccountManager::PROPERTY_PHONE => \OCP\Accounts\IAccountManager::SCOPE_PRIVATE]``
2718
+     */
2719
+    'account_manager.default_property_scope' => [],
2720
+
2721
+    /**
2722
+     * Enable the deprecated Projects feature, superseded by Related Resources since
2723
+     * Nextcloud 25.
2724
+     *
2725
+     * Defaults to ``false``
2726
+     */
2727
+    'projects.enabled' => false,
2728
+
2729
+    /**
2730
+     * Enable the bulk upload feature.
2731
+     *
2732
+     * Defaults to ``true``
2733
+     */
2734
+    'bulkupload.enabled' => true,
2735
+
2736
+    /**
2737
+     * Enable fetching Open Graph metadata from remote URLs.
2738
+     *
2739
+     * Defaults to ``true``
2740
+     */
2741
+    'reference_opengraph' => true,
2742
+
2743
+    /**
2744
+     * Enable the legacy unified search.
2745
+     *
2746
+     * Defaults to ``false``
2747
+     */
2748
+    'unified_search.enabled' => false,
2749
+
2750
+    /**
2751
+     * Enable features that do not yet comply with accessibility standards.
2752
+     *
2753
+     * Defaults to ``true``
2754
+     */
2755
+    'enable_non-accessible_features' => true,
2756
+
2757
+    /**
2758
+     * Directories where Nextcloud searches for external binaries (e.g., LibreOffice,
2759
+     * sendmail, ffmpeg).
2760
+     *
2761
+     * Defaults to:
2762
+     * - /usr/local/sbin
2763
+     * - /usr/local/bin
2764
+     * - /usr/sbin
2765
+     * - /usr/bin
2766
+     * - /sbin
2767
+     * - /bin
2768
+     * - /opt/bin
2769
+     */
2770
+    'binary_search_paths' => [
2771
+        '/usr/local/sbin',
2772
+        '/usr/local/bin',
2773
+        '/usr/sbin',
2774
+        '/usr/bin',
2775
+        '/sbin',
2776
+        '/bin',
2777
+        '/opt/bin',
2778
+    ],
2779
+
2780
+    /**
2781
+     * Maximum chunk size for chunked uploads (in bytes). Larger chunks increase
2782
+     * throughput but yield diminishing returns above 100 MiB. Services like
2783
+     * Cloudflare may limit to 100 MiB.
2784
+     *
2785
+     * Defaults to ``100 * 1024 * 1024`` (100 MiB)
2786
+     */
2787
+    'files.chunked_upload.max_size' => 100 * 1024 * 1024,
2788
+
2789
+    /**
2790
+     * Maximum number of chunks uploaded in parallel during chunked uploads. Higher
2791
+     * counts increase throughput but consume more server resources, with diminishing
2792
+     * returns.
2793
+     *
2794
+     * Defaults to ``5``
2795
+     */
2796
+    'files.chunked_upload.max_parallel_count' => 5,
2797
+
2798
+    /**
2799
+     * Allow users to manually delete files from their trashbin. Automated deletions
2800
+     * (e.g., due to low quota) are unaffected.
2801
+     *
2802
+     * Defaults to ``true``
2803
+     */
2804
+    'files.trash.delete' => true,
2805
+
2806
+    /**
2807
+     * Enable PHP 8.4 lazy objects for Dependency Injection to improve performance by
2808
+     * avoiding instantiation of unused objects.
2809
+     *
2810
+     * Defaults to ``true``
2811
+     */
2812
+    'enable_lazy_objects' => true,
2813 2813
 ];
Please login to merge, or discard this patch.