"Fossies" - the Fresh Open Source Software Archive

Member "nextcloud/config/config.sample.php" (8 Apr 2021, 59161 Bytes) of package /linux/www/nextcloud-21.0.1.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) PHP source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "config.sample.php": 21.0.0_vs_21.0.1.

    1 <?php
    2 
    3 /**
    4  * This configuration file is only provided to document the different
    5  * configuration options and their usage.
    6  *
    7  * DO NOT COMPLETELY BASE YOUR CONFIGURATION FILE ON THIS SAMPLE. THIS MAY BREAK
    8  * YOUR INSTANCE. Instead, manually copy configuration switches that you
    9  * consider important for your instance to your working ``config.php``, and
   10  * apply configuration options that are pertinent for your instance.
   11  *
   12  * This file is used to generate the configuration documentation.
   13  * Please consider following requirements of the current parser:
   14  *  * all comments need to start with `/**` and end with ` *\/` - each on their
   15  *    own line
   16  *  * add a `@see CONFIG_INDEX` to copy a previously described config option
   17  *    also to this line
   18  *  * everything between the ` *\/` and the next `/**` will be treated as the
   19  *    config option
   20  *  * use RST syntax
   21  */
   22 
   23 $CONFIG = [
   24 
   25 
   26 /**
   27  * Default Parameters
   28  *
   29  * These parameters are configured by the Nextcloud installer, and are required
   30  * for your Nextcloud server to operate.
   31  */
   32 
   33 
   34 /**
   35  * This is a unique identifier for your Nextcloud installation, created
   36  * automatically by the installer. This example is for documentation only,
   37  * and you should never use it because it will not work. A valid ``instanceid``
   38  * is created when you install Nextcloud.
   39  *
   40  * 'instanceid' => 'd3c944a9a',
   41  */
   42 'instanceid' => '',
   43 
   44  /**
   45   * The salt used to hash all passwords, auto-generated by the Nextcloud
   46   * installer. (There are also per-user salts.) If you lose this salt you lose
   47   * all your passwords. This example is for documentation only, and you should
   48   * never use it.
   49   *
   50   * @deprecated This salt is deprecated and only used for legacy-compatibility,
   51   * developers should *NOT* use this value for anything nowadays.
   52   *
   53   * 'passwordsalt' => 'd3c944a9af095aa08f',
   54  */
   55 'passwordsalt' => '',
   56 
   57 /**
   58  * Your list of trusted domains that users can log into. Specifying trusted
   59  * domains prevents host header poisoning. Do not remove this, as it performs
   60  * necessary security checks.
   61  * You can specify:
   62  *
   63  * - the exact hostname of your host or virtual host, e.g. demo.example.org.
   64  * - the exact hostname with permitted port, e.g. demo.example.org:443.
   65  *   This disallows all other ports on this host
   66  * - use * as a wildcard, e.g. ubos-raspberry-pi*.local will allow
   67  *   ubos-raspberry-pi.local and ubos-raspberry-pi-2.local
   68  * - the IP address with or without permitted port, e.g. [2001:db8::1]:8080
   69  *   Using TLS certificates where commonName=<IP address> is deprecated
   70  */
   71 'trusted_domains' =>
   72    [
   73     'demo.example.org',
   74     'otherdomain.example.org',
   75     '10.111.112.113',
   76     '[2001:db8::1]'
   77   ],
   78 
   79 
   80 /**
   81  * Where user files are stored. The SQLite database is also stored here, when
   82  * you use SQLite.
   83  *
   84  * Default to ``data/`` in the Nextcloud directory.
   85  */
   86 'datadirectory' => '/var/www/nextcloud/data',
   87 
   88 /**
   89  * The current version number of your Nextcloud installation. This is set up
   90  * during installation and update, so you shouldn't need to change it.
   91  */
   92 'version' => '',
   93 
   94 /**
   95  * Identifies the database used with this installation. See also config option
   96  * ``supportedDatabases``
   97  *
   98  * Available:
   99  *  - sqlite3 (SQLite3)
  100  *  - mysql (MySQL/MariaDB)
  101  *  - pgsql (PostgreSQL)
  102  *
  103  * Defaults to ``sqlite3``
  104  */
  105 'dbtype' => 'sqlite3',
  106 
  107 /**
  108  * Your host server name, for example ``localhost``, ``hostname``,
  109  * ``hostname.example.com``, or the IP address. To specify a port use
  110  * ``hostname:####``; to specify a Unix socket use
  111  * ``localhost:/path/to/socket``.
  112  */
  113 'dbhost' => '',
  114 
  115 /**
  116  * The name of the Nextcloud database, which is set during installation. You
  117  * should not need to change this.
  118  */
  119 'dbname' => 'nextcloud',
  120 
  121 /**
  122  * The user that Nextcloud uses to write to the database. This must be unique
  123  * across Nextcloud instances using the same SQL database. This is set up during
  124  * installation, so you shouldn't need to change it.
  125  */
  126 'dbuser' => '',
  127 
  128 /**
  129  * The password for the database user. This is set up during installation, so
  130  * you shouldn't need to change it.
  131  */
  132 'dbpassword' => '',
  133 
  134 /**
  135  * Prefix for the Nextcloud tables in the database.
  136  *
  137  * Default to ``oc_``
  138  */
  139 'dbtableprefix' => '',
  140 
  141 
  142 /**
  143  * Indicates whether the Nextcloud instance was installed successfully; ``true``
  144  * indicates a successful installation, and ``false`` indicates an unsuccessful
  145  * installation.
  146  *
  147  * Defaults to ``false``
  148  */
  149 'installed' => false,
  150 
  151 
  152 /**
  153  * User Experience
  154  *
  155  * These optional parameters control some aspects of the user interface. Default
  156  * values, where present, are shown.
  157  */
  158 
  159 /**
  160  * This sets the default language on your Nextcloud server, using ISO_639-1
  161  * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
  162  * French. It overrides automatic language detection on public pages like login
  163  * or shared items. User's language preferences configured under "personal ->
  164  * language" override this setting after they have logged in. Nextcloud has two
  165  * distinguished language codes for German, 'de' and 'de_DE'. 'de' is used for
  166  * informal German and 'de_DE' for formal German. By setting this value to 'de_DE'
  167  * you can enforce the formal version of German unless the user has chosen
  168  * something different explicitly.
  169  *
  170  * Defaults to ``en``
  171  */
  172 'default_language' => 'en',
  173 
  174 /**
  175  * With this setting a language can be forced for all users. If a language is
  176  * forced, the users are also unable to change their language in the personal
  177  * settings. If users shall be unable to change their language, but users have
  178  * different languages, this value can be set to ``true`` instead of a language
  179  * code.
  180  *
  181  * Defaults to ``false``
  182  */
  183 'force_language' => 'en',
  184 
  185 /**
  186  * This sets the default locale on your Nextcloud server, using ISO_639
  187  * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
  188  * French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined
  189  * in RFC 5646. It overrides automatic locale detection on public pages like
  190  * login or shared items. User's locale preferences configured under "personal
  191  * -> locale" override this setting after they have logged in.
  192  *
  193  * Defaults to ``en``
  194  */
  195 'default_locale' => 'en_US',
  196 
  197 /**
  198  * This sets the default region for phone numbers on your Nextcloud server,
  199  * using ISO 3166-1 country codes such as ``DE`` for Germany, ``FR`` for France, …
  200  * It is required to allow inserting phone numbers in the user profiles starting
  201  * without the country code (e.g. +49 for Germany).
  202  *
  203  * No default value!
  204  */
  205 'default_phone_region' => 'GB',
  206 
  207 /**
  208  * With this setting a locale can be forced for all users. If a locale is
  209  * forced, the users are also unable to change their locale in the personal
  210  * settings. If users shall be unable to change their locale, but users have
  211  * different languages, this value can be set to ``true`` instead of a locale
  212  * code.
  213  *
  214  * Defaults to ``false``
  215  */
  216 'force_locale' => 'en_US',
  217 
  218 /**
  219  * Set the default app to open on login. Use the app names as they appear in the
  220  * URL after clicking them in the Apps menu, such as documents, calendar, and
  221  * gallery. You can use a comma-separated list of app names, so if the first
  222  * app is not enabled for a user then Nextcloud will try the second one, and so
  223  * on. If no enabled apps are found it defaults to the dashboard app.
  224  *
  225  * Defaults to ``dashboard,files``
  226  */
  227 'defaultapp' => 'dashboard,files',
  228 
  229 /**
  230  * ``true`` enables the Help menu item in the user menu (top right of the
  231  * Nextcloud Web interface). ``false`` removes the Help item.
  232  */
  233 'knowledgebaseenabled' => true,
  234 
  235 /**
  236  * ``true`` allows users to change their display names (on their Personal
  237  * pages), and ``false`` prevents them from changing their display names.
  238  */
  239 'allow_user_to_change_display_name' => true,
  240 
  241 /**
  242  * Lifetime of the remember login cookie. This should be larger than the
  243  * session_lifetime. If it is set to 0 remember me is disabled.
  244  *
  245  * Defaults to ``60*60*24*15`` seconds (15 days)
  246  */
  247 'remember_login_cookie_lifetime' => 60*60*24*15,
  248 
  249 /**
  250  * The lifetime of a session after inactivity.
  251  *
  252  * Defaults to ``60*60*24`` seconds (24 hours)
  253  */
  254 'session_lifetime' => 60 * 60 * 24,
  255 
  256 /**
  257  * Enable or disable session keep-alive when a user is logged in to the Web UI.
  258  * Enabling this sends a "heartbeat" to the server to keep it from timing out.
  259  *
  260  * Defaults to ``true``
  261  */
  262 'session_keepalive' => true,
  263 
  264 /**
  265  * Enable or disable the automatic logout after session_lifetime, even if session
  266  * keepalive is enabled. This will make sure that an inactive browser will be logged out
  267  * even if requests to the server might extend the session lifetime.
  268  *
  269  * Defaults to ``false``
  270  */
  271 'auto_logout' => false,
  272 
  273 /**
  274  * Enforce token authentication for clients, which blocks requests using the user
  275  * password for enhanced security. Users need to generate tokens in personal settings
  276  * which can be used as passwords on their clients.
  277  *
  278  * Defaults to ``false``
  279  */
  280 'token_auth_enforced' => false,
  281 
  282 /**
  283  * The interval at which token activity should be updated.
  284  * Increasing this value means that the last activty on the security page gets
  285  * more outdated.
  286  *
  287  * Tokens are still checked every 5 minutes for validity
  288  * max value: 300
  289  *
  290  * Defaults to ``300``
  291  */
  292 'token_auth_activity_update' => 60,
  293 
  294 /**
  295  * Whether the bruteforce protection shipped with Nextcloud should be enabled or not.
  296  *
  297  * Disabling this is discouraged for security reasons.
  298  *
  299  * Defaults to ``true``
  300  */
  301 'auth.bruteforce.protection.enabled' => true,
  302 
  303 /**
  304  * By default WebAuthn is available but it can be explicitly disabled by admins
  305  */
  306 'auth.webauthn.enabled' => true,
  307 
  308 /**
  309  * The directory where the skeleton files are located. These files will be
  310  * copied to the data directory of new users. Leave empty to not copy any
  311  * skeleton files.
  312  * ``{lang}`` can be used as a placeholder for the language of the user.
  313  * If the directory does not exist, it falls back to non dialect (from ``de_DE``
  314  * to ``de``). If that does not exist either, it falls back to ``default``
  315  *
  316  * Defaults to ``core/skeleton`` in the Nextcloud directory.
  317  */
  318 'skeletondirectory' => '/path/to/nextcloud/core/skeleton',
  319 
  320 
  321 /**
  322  * The directory where the template files are located. These files will be
  323  * copied to the template directory of new users. Leave empty to not copy any
  324  * template files.
  325  * ``{lang}`` can be used as a placeholder for the language of the user.
  326  * If the directory does not exist, it falls back to non dialect (from ``de_DE``
  327  * to ``de``). If that does not exist either, it falls back to ``default``
  328  *
  329  * If this is not set creating a template directory will only happen if no custom
  330  * ``skeletondirectory`` is defined, otherwise the shipped templates will be used
  331  * to create a template directory for the user.
  332  */
  333 'templatedirectory' => '/path/to/nextcloud/templates',
  334 
  335 /**
  336  * If your user backend does not allow password resets (e.g. when it's a
  337  * read-only user backend like LDAP), you can specify a custom link, where the
  338  * user is redirected to, when clicking the "reset password" link after a failed
  339  * login-attempt.
  340  * In case you do not want to provide any link, replace the url with 'disabled'
  341  */
  342 'lost_password_link' => 'https://example.org/link/to/password/reset',
  343 
  344 /**
  345  * Mail Parameters
  346  *
  347  * These configure the email settings for Nextcloud notifications and password
  348  * resets.
  349  */
  350 
  351 /**
  352  * The return address that you want to appear on emails sent by the Nextcloud
  353  * server, for example ``nc-admin@example.com``, substituting your own domain,
  354  * of course.
  355  */
  356 'mail_domain' => 'example.com',
  357 
  358 /**
  359  * FROM address that overrides the built-in ``sharing-noreply`` and
  360  * ``lostpassword-noreply`` FROM addresses.
  361  *
  362  * Defaults to different from addresses depending on the feature.
  363  */
  364 'mail_from_address' => 'nextcloud',
  365 
  366 /**
  367  * Enable SMTP class debugging.
  368  *
  369  * Defaults to ``false``
  370  */
  371 'mail_smtpdebug' => false,
  372 
  373 /**
  374  * Which mode to use for sending mail: ``sendmail``, ``smtp`` or ``qmail``.
  375  *
  376  * If you are using local or remote SMTP, set this to ``smtp``.
  377  *
  378  * For the ``sendmail`` option you need an installed and working email system on
  379  * the server, with ``/usr/sbin/sendmail`` installed on your Unix system.
  380  *
  381  * For ``qmail`` the binary is /var/qmail/bin/sendmail, and it must be installed
  382  * on your Unix system.
  383  *
  384  * Defaults to ``smtp``
  385  */
  386 'mail_smtpmode' => 'smtp',
  387 
  388 /**
  389  * This depends on ``mail_smtpmode``. Specify the IP address of your mail
  390  * server host. This may contain multiple hosts separated by a semi-colon. If
  391  * you need to specify the port number append it to the IP address separated by
  392  * a colon, like this: ``127.0.0.1:24``.
  393  *
  394  * Defaults to ``127.0.0.1``
  395  */
  396 'mail_smtphost' => '127.0.0.1',
  397 
  398 /**
  399  * This depends on ``mail_smtpmode``. Specify the port for sending mail.
  400  *
  401  * Defaults to ``25``
  402  */
  403 'mail_smtpport' => 25,
  404 
  405 /**
  406  * This depends on ``mail_smtpmode``. This sets the SMTP server timeout, in
  407  * seconds. You may need to increase this if you are running an anti-malware or
  408  * spam scanner.
  409  *
  410  * Defaults to ``10`` seconds
  411  */
  412 'mail_smtptimeout' => 10,
  413 
  414 /**
  415  * This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` for SSL/TLS or
  416  * ``tls`` for STARTTLS, or leave empty for no encryption.
  417  *
  418  * Defaults to ``''`` (empty string)
  419  */
  420 'mail_smtpsecure' => '',
  421 
  422 /**
  423  * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
  424  * server requires authentication.
  425  *
  426  * Defaults to ``false``
  427  */
  428 'mail_smtpauth' => false,
  429 
  430 /**
  431  * This depends on ``mail_smtpmode``. If SMTP authentication is required, choose
  432  * the authentication type as ``LOGIN`` or ``PLAIN``.
  433  *
  434  * Defaults to ``LOGIN``
  435  */
  436 'mail_smtpauthtype' => 'LOGIN',
  437 
  438 /**
  439  * This depends on ``mail_smtpauth``. Specify the username for authenticating to
  440  * the SMTP server.
  441  *
  442  * Defaults to ``''`` (empty string)
  443  */
  444 'mail_smtpname' => '',
  445 
  446 /**
  447  * This depends on ``mail_smtpauth``. Specify the password for authenticating to
  448  * the SMTP server.
  449  *
  450  * Default to ``''`` (empty string)
  451  */
  452 'mail_smtppassword' => '',
  453 
  454 /**
  455  * Replaces the default mail template layout. This can be utilized if the
  456  * options to modify the mail texts with the theming app is not enough.
  457  * The class must extend  ``\OC\Mail\EMailTemplate``
  458  */
  459 'mail_template_class' => '\OC\Mail\EMailTemplate',
  460 
  461 /**
  462  * Email will be send by default with an HTML and a plain text body. This option
  463  * allows to only send plain text emails.
  464  */
  465 'mail_send_plaintext_only' => false,
  466 
  467 /**
  468  * This depends on ``mail_smtpmode``. Array of additional streams options that
  469  * will be passed to underlying Swift mailer implementation.
  470  * Defaults to an empty array.
  471  */
  472 'mail_smtpstreamoptions' => [],
  473 
  474 /**
  475  * Which mode is used for sendmail/qmail: ``smtp`` or ``pipe``.
  476  *
  477  * For ``smtp`` the sendmail binary is started with the parameter ``-bs``:
  478  *   - Use the SMTP protocol on standard input and output.
  479  *
  480  * For ``pipe`` the binary is started with the parameters ``-t``:
  481  *   - Read message from STDIN and extract recipients.
  482  *
  483  * Defaults to ``smtp``
  484  */
  485 'mail_sendmailmode' => 'smtp',
  486 
  487 /**
  488  * Proxy Configurations
  489  */
  490 
  491 /**
  492  * The automatic hostname detection of Nextcloud can fail in certain reverse
  493  * proxy and CLI/cron situations. This option allows you to manually override
  494  * the automatic detection; for example ``www.example.com``, or specify the port
  495  * ``www.example.com:8080``.
  496  */
  497 'overwritehost' => '',
  498 
  499 /**
  500  * When generating URLs, Nextcloud attempts to detect whether the server is
  501  * accessed via ``https`` or ``http``. However, if Nextcloud is behind a proxy
  502  * and the proxy handles the ``https`` calls, Nextcloud would not know that
  503  * ``ssl`` is in use, which would result in incorrect URLs being generated.
  504  * Valid values are ``http`` and ``https``.
  505  */
  506 'overwriteprotocol' => '',
  507 
  508 /**
  509  * Nextcloud attempts to detect the webroot for generating URLs automatically.
  510  * For example, if ``www.example.com/nextcloud`` is the URL pointing to the
  511  * Nextcloud instance, the webroot is ``/nextcloud``. When proxies are in use,
  512  * it may be difficult for Nextcloud to detect this parameter, resulting in
  513  * invalid URLs.
  514  */
  515 'overwritewebroot' => '',
  516 
  517 /**
  518  * This option allows you to define a manual override condition as a regular
  519  * expression for the remote IP address. For example, defining a range of IP
  520  * addresses starting with ``10.0.0.`` and ending with 1 to 3:
  521  * ``^10\.0\.0\.[1-3]$``
  522  *
  523  * Defaults to ``''`` (empty string)
  524  */
  525 'overwritecondaddr' => '',
  526 
  527 /**
  528  * Use this configuration parameter to specify the base URL for any URLs which
  529  * are generated within Nextcloud using any kind of command line tools (cron or
  530  * occ). The value should contain the full base URL:
  531  * ``https://www.example.com/nextcloud``
  532  *
  533  * Defaults to ``''`` (empty string)
  534  */
  535 'overwrite.cli.url' => '',
  536 
  537 /**
  538  * To have clean URLs without `/index.php` this parameter needs to be configured.
  539  *
  540  * This parameter will be written as "RewriteBase" on update and installation of
  541  * Nextcloud to your `.htaccess` file. While this value is often simply the URL
  542  * path of the Nextcloud installation it cannot be set automatically properly in
  543  * every scenario and needs thus some manual configuration.
  544  *
  545  * In a standard Apache setup this usually equals the folder that Nextcloud is
  546  * accessible at. So if Nextcloud is accessible via "https://mycloud.org/nextcloud"
  547  * the correct value would most likely be "/nextcloud". If Nextcloud is running
  548  * under "https://mycloud.org/" then it would be "/".
  549  *
  550  * Note that the above rule is not valid in every case, as there are some rare setup
  551  * cases where this may not apply. However, to avoid any update problems this
  552  * configuration value is explicitly opt-in.
  553  *
  554  * After setting this value run `occ maintenance:update:htaccess`. Now, when the
  555  * following conditions are met Nextcloud URLs won't contain `index.php`:
  556  *
  557  * - `mod_rewrite` is installed
  558  * - `mod_env` is installed
  559  *
  560  * Defaults to ``''`` (empty string)
  561  */
  562 'htaccess.RewriteBase' => '/',
  563 
  564 /**
  565  * For server setups, that don't have `mod_env` enabled or restricted (e.g. suEXEC)
  566  * this parameter has to be set to true and will assume mod_rewrite.
  567  *
  568  * Please check, if `mod_rewrite` is active and functional before setting this
  569  * parameter and you updated your .htaccess with `occ maintenance:update:htaccess`.
  570  * Otherwise your nextcloud installation might not be reachable anymore.
  571  * For example, try accessing resources by leaving out `index.php` in the URL.
  572  */
  573 'htaccess.IgnoreFrontController' => false,
  574 
  575 /**
  576  * The URL of your proxy server, for example ``proxy.example.com:8081``.
  577  *
  578  * Note: Guzzle (the http library used by Nextcloud) is reading the environment
  579  * variables HTTP_PROXY (only for cli request), HTTPS_PROXY, and NO_PROXY by default.
  580  *
  581  * If you configure proxy with Nextcloud any default configuration by Guzzle
  582  * is overwritten. Make sure to set ``proxyexclude`` accordingly if necessary.
  583  *
  584  * Defaults to ``''`` (empty string)
  585  */
  586 'proxy' => '',
  587 
  588 /**
  589  * The optional authentication for the proxy to use to connect to the internet.
  590  * The format is: ``username:password``.
  591  *
  592  * Defaults to ``''`` (empty string)
  593  */
  594 'proxyuserpwd' => '',
  595 
  596 /**
  597  * List of host names that should not be proxied to.
  598  * For example: ``['.mit.edu', 'foo.com']``.
  599  *
  600  * Hint: Use something like ``explode(',', getenv('NO_PROXY'))`` to sync this
  601  * value with the global NO_PROXY option.
  602  *
  603  * Defaults to empty array.
  604  */
  605 'proxyexclude' => [],
  606 
  607 /**
  608  * Allow remote servers with local addresses e.g. in federated shares, webcal services and more
  609  *
  610  * Defaults to false
  611  */
  612 'allow_local_remote_servers' => true,
  613 
  614 /**
  615  * Deleted Items (trash bin)
  616  *
  617  * These parameters control the Deleted files app.
  618  */
  619 
  620 /**
  621  * If the trash bin app is enabled (default), this setting defines the policy
  622  * for when files and folders in the trash bin will be permanently deleted.
  623  * The app allows for two settings, a minimum time for trash bin retention,
  624  * and a maximum time for trash bin retention.
  625  * Minimum time is the number of days a file will be kept, after which it
  626  * may be deleted. Maximum time is the number of days at which it is guaranteed
  627  * to be deleted.
  628  * Both minimum and maximum times can be set together to explicitly define
  629  * file and folder deletion. For migration purposes, this setting is installed
  630  * initially set to "auto", which is equivalent to the default setting in
  631  * Nextcloud.
  632  *
  633  * Available values:
  634  *
  635  * * ``auto``
  636  *     default setting. keeps files and folders in the trash bin for 30 days
  637  *     and automatically deletes anytime after that if space is needed (note:
  638  *     files may not be deleted if space is not needed).
  639  * * ``D, auto``
  640  *     keeps files and folders in the trash bin for D+ days, delete anytime if
  641  *     space needed (note: files may not be deleted if space is not needed)
  642  * * ``auto, D``
  643  *     delete all files in the trash bin that are older than D days
  644  *     automatically, delete other files anytime if space needed
  645  * * ``D1, D2``
  646  *     keep files and folders in the trash bin for at least D1 days and
  647  *     delete when exceeds D2 days (note: files will not be deleted automatically if space is needed)
  648  * * ``disabled``
  649  *     trash bin auto clean disabled, files and folders will be kept forever
  650  *
  651  * Defaults to ``auto``
  652  */
  653 'trashbin_retention_obligation' => 'auto',
  654 
  655 
  656 /**
  657  * File versions
  658  *
  659  * These parameters control the Versions app.
  660  */
  661 
  662 /**
  663  * If the versions app is enabled (default), this setting defines the policy
  664  * for when versions will be permanently deleted.
  665  * The app allows for two settings, a minimum time for version retention,
  666  * and a maximum time for version retention.
  667  * Minimum time is the number of days a version will be kept, after which it
  668  * may be deleted. Maximum time is the number of days at which it is guaranteed
  669  * to be deleted.
  670  * Both minimum and maximum times can be set together to explicitly define
  671  * version deletion. For migration purposes, this setting is installed
  672  * initially set to "auto", which is equivalent to the default setting in
  673  * Nextcloud.
  674  *
  675  * Available values:
  676  *
  677  * * ``auto``
  678  *     default setting. Automatically expire versions according to expire
  679  *     rules. Please refer to :doc:`../configuration_files/file_versioning` for
  680  *     more information.
  681  * * ``D, auto``
  682  *     keep versions at least for D days, apply expire rules to all versions
  683  *     that are older than D days
  684  * * ``auto, D``
  685  *     delete all versions that are older than D days automatically, delete
  686  *     other versions according to expire rules
  687  * * ``D1, D2``
  688  *     keep versions for at least D1 days and delete when exceeds D2 days
  689  * * ``disabled``
  690  *     versions auto clean disabled, versions will be kept forever
  691  *
  692  * Defaults to ``auto``
  693  */
  694 'versions_retention_obligation' => 'auto',
  695 
  696 /**
  697  * Nextcloud Verifications
  698  *
  699  * Nextcloud performs several verification checks. There are two options,
  700  * ``true`` and ``false``.
  701  */
  702 
  703 /**
  704  * Checks an app before install whether it uses private APIs instead of the
  705  * proper public APIs. If this is set to true it will only allow to install or
  706  * enable apps that pass this check.
  707  *
  708  * Defaults to ``false``
  709  */
  710 'appcodechecker' => true,
  711 
  712 /**
  713  * Check if Nextcloud is up-to-date and shows a notification if a new version is
  714  * available.
  715  *
  716  * Defaults to ``true``
  717  */
  718 'updatechecker' => true,
  719 
  720 /**
  721  * URL that Nextcloud should use to look for updates
  722  *
  723  * Defaults to ``https://updates.nextcloud.com/updater_server/``
  724  */
  725 'updater.server.url' => 'https://updates.nextcloud.com/updater_server/',
  726 
  727 /**
  728  * The channel that Nextcloud should use to look for updates
  729  *
  730  * Supported values:
  731  *   - ``daily``
  732  *   - ``beta``
  733  *   - ``stable``
  734  */
  735 'updater.release.channel' => 'stable',
  736 
  737 /**
  738  * Is Nextcloud connected to the Internet or running in a closed network?
  739  *
  740  * Defaults to ``true``
  741  */
  742 'has_internet_connection' => true,
  743 
  744 /**
  745  * Which domains to request to determine the availability of an Internet
  746  * connection. If none of these hosts are reachable, the administration panel
  747  * will show a warning. Set to an empty list to not do any such checks (warning
  748  * will still be shown).
  749  *
  750  * Defaults to the following domains:
  751  *
  752  *  - www.nextcloud.com
  753  *  - www.startpage.com
  754  *  - www.eff.org
  755  *  - www.edri.org
  756  */
  757 'connectivity_check_domains' => [
  758     'www.nextcloud.com',
  759     'www.startpage.com',
  760     'www.eff.org',
  761     'www.edri.org'
  762 ],
  763 
  764 /**
  765  * Allows Nextcloud to verify a working .well-known URL redirects. This is done
  766  * by attempting to make a request from JS to
  767  * https://your-domain.com/.well-known/caldav/
  768  *
  769  * Defaults to ``true``
  770  */
  771 'check_for_working_wellknown_setup' => true,
  772 
  773 /**
  774  * This is a crucial security check on Apache servers that should always be set
  775  * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
  776  * If it is not, then any options controlled by ``.htaccess``, such as large
  777  * file uploads, will not work. It also runs checks on the ``data/`` directory,
  778  * which verifies that it can't be accessed directly through the Web server.
  779  *
  780  * Defaults to ``true``
  781  */
  782 'check_for_working_htaccess' => true,
  783 
  784 /**
  785  * In rare setups (e.g. on Openshift or docker on windows) the permissions check
  786  * might block the installation while the underlying system offers no means to
  787  * "correct" the permissions. In this case, set the value to false.
  788  *
  789  * In regular cases, if issues with permissions are encountered they should be
  790  * adjusted accordingly. Changing the flag is discouraged.
  791  *
  792  * Defaults to ``true``
  793  */
  794 'check_data_directory_permissions' => true,
  795 
  796 /**
  797  * In certain environments it is desired to have a read-only configuration file.
  798  * When this switch is set to ``true`` Nextcloud will not verify whether the
  799  * configuration is writable. However, it will not be possible to configure
  800  * all options via the Web interface. Furthermore, when updating Nextcloud
  801  * it is required to make the configuration file writable again for the update
  802  * process.
  803  *
  804  * Defaults to ``false``
  805  */
  806 'config_is_read_only' => false,
  807 
  808 /**
  809  * Logging
  810  */
  811 
  812 /**
  813  * This parameter determines where the Nextcloud logs are sent.
  814  * ``file``: the logs are written to file ``nextcloud.log`` in the default
  815  * Nextcloud data directory. The log file can be changed with parameter
  816  * ``logfile``.
  817  * ``syslog``: the logs are sent to the system log. This requires a syslog daemon
  818  * to be active.
  819  * ``errorlog``: the logs are sent to the PHP ``error_log`` function.
  820  * ``systemd``: the logs are sent to the Systemd journal. This requires a system
  821  * that runs Systemd and the Systemd journal. The PHP extension ``systemd``
  822  * must be installed and active.
  823  *
  824  * Defaults to ``file``
  825  */
  826 'log_type' => 'file',
  827 
  828 /**
  829  * Name of the file to which the Nextcloud logs are written if parameter
  830  * ``log_type`` is set to ``file``.
  831  *
  832  * Defaults to ``[datadirectory]/nextcloud.log``
  833  */
  834 'logfile' => '/var/log/nextcloud.log',
  835 
  836 /**
  837  * Log file mode for the Nextcloud loggin type in octal notation.
  838  *
  839  * Defaults to 0640 (writeable by user, readable by group).
  840  */
  841 'logfilemode' => 0640,
  842 
  843 /**
  844  * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 =
  845  * Warning, 3 = Error, and 4 = Fatal. The default value is Warning.
  846  *
  847  * Defaults to ``2``
  848  */
  849 'loglevel' => 2,
  850 
  851 /**
  852  * If you maintain different instances and aggregate the logs, you may want
  853  * to distinguish between them. ``syslog_tag`` can be set per instance
  854  * with a unique id. Only available if ``log_type`` is set to ``syslog`` or
  855  * ``systemd``.
  856  *
  857  * The default value is ``Nextcloud``.
  858  */
  859 'syslog_tag' => 'Nextcloud',
  860 
  861 /**
  862  * Log condition for log level increase based on conditions. Once one of these
  863  * conditions is met, the required log level is set to debug. This allows to
  864  * debug specific requests, users or apps
  865  *
  866  * Supported conditions:
  867  *  - ``shared_secret``: if a request parameter with the name `log_secret` is set to
  868  *                this value the condition is met
  869  *  - ``users``:  if the current request is done by one of the specified users,
  870  *                this condition is met
  871  *  - ``apps``:   if the log message is invoked by one of the specified apps,
  872  *                this condition is met
  873  *
  874  * Defaults to an empty array.
  875  */
  876 'log.condition' => [
  877     'shared_secret' => '57b58edb6637fe3059b3595cf9c41b9',
  878     'users' => ['sample-user'],
  879     'apps' => ['files'],
  880 ],
  881 
  882 /**
  883  * This uses PHP.date formatting; see https://www.php.net/manual/en/function.date.php
  884  *
  885  * Defaults to ISO 8601 ``2005-08-15T15:52:01+00:00`` - see \DateTime::ATOM
  886  * (https://www.php.net/manual/en/class.datetime.php#datetime.constants.atom)
  887  */
  888 'logdateformat' => 'F d, Y H:i:s',
  889 
  890 /**
  891  * The timezone for logfiles. You may change this; see
  892  * https://www.php.net/manual/en/timezones.php
  893  *
  894  * Defaults to ``UTC``
  895  */
  896 'logtimezone' => 'Europe/Berlin',
  897 
  898 /**
  899  * Append all database queries and parameters to the log file. Use this only for
  900  * debugging, as your logfile will become huge.
  901  */
  902 'log_query' => false,
  903 
  904 /**
  905  * Enables log rotation and limits the total size of logfiles. Set it to 0 for
  906  * no rotation. Specify a size in bytes, for example 104857600 (100 megabytes
  907  * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
  908  * old logfile reaches your limit. If a rotated log file is already present, it
  909  * will be overwritten.
  910  *
  911  * Defaults to 100 MB
  912  */
  913 'log_rotate_size' => 100 * 1024 * 1024,
  914 
  915 
  916 /**
  917  * Alternate Code Locations
  918  *
  919  * Some of the Nextcloud code may be stored in alternate locations.
  920  */
  921 
  922 /**
  923  * This section is for configuring the download links for Nextcloud clients, as
  924  * seen in the first-run wizard and on Personal pages.
  925  *
  926  * Defaults to:
  927  *  - Desktop client: ``https://nextcloud.com/install/#install-clients``
  928  *  - Android client: ``https://play.google.com/store/apps/details?id=com.nextcloud.client``
  929  *  - iOS client: ``https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8``
  930  *  - iOS client app id: ``1125420102``
  931  */
  932 'customclient_desktop' =>
  933     'https://nextcloud.com/install/#install-clients',
  934 'customclient_android' =>
  935     'https://play.google.com/store/apps/details?id=com.nextcloud.client',
  936 'customclient_ios' =>
  937     'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8',
  938 'customclient_ios_appid' =>
  939         '1125420102',
  940 /**
  941  * Apps
  942  *
  943  * Options for the Apps folder, Apps store, and App code checker.
  944  */
  945 
  946 /**
  947  * When enabled, admins may install apps from the Nextcloud app store.
  948  *
  949  * Defaults to ``true``
  950  */
  951 'appstoreenabled' => true,
  952 
  953 /**
  954  * Enables the installation of apps from a self hosted apps store.
  955  * Requires that at least one of the configured apps directories is writeable.
  956  *
  957  * Defaults to ``https://apps.nextcloud.com/api/v1``
  958  */
  959 'appstoreurl' => 'https://apps.nextcloud.com/api/v1',
  960 
  961 /**
  962  * Use the ``apps_paths`` parameter to set the location of the Apps directory,
  963  * which should be scanned for available apps, and where user-specific apps
  964  * should be installed from the Apps store. The ``path`` defines the absolute
  965  * file system path to the app folder. The key ``url`` defines the HTTP Web path
  966  * to that folder, starting from the Nextcloud webroot. The key ``writable``
  967  * indicates if a Web server can write files to that folder.
  968  */
  969 'apps_paths' => [
  970     [
  971         'path'=> '/var/www/nextcloud/apps',
  972         'url' => '/apps',
  973         'writable' => true,
  974     ],
  975 ],
  976 
  977 /**
  978  * @see appcodechecker
  979  */
  980 
  981 /**
  982  * Previews
  983  *
  984  * Nextcloud supports previews of image files, the covers of MP3 files, and text
  985  * files. These options control enabling and disabling previews, and thumbnail
  986  * size.
  987  */
  988 
  989 /**
  990  * By default, Nextcloud can generate previews for the following filetypes:
  991  *
  992  * - Image files
  993  * - Covers of MP3 files
  994  * - Text documents
  995  *
  996  * Valid values are ``true``, to enable previews, or
  997  * ``false``, to disable previews
  998  *
  999  * Defaults to ``true``
 1000  */
 1001 'enable_previews' => true,
 1002 /**
 1003  * The maximum width, in pixels, of a preview. A value of ``null`` means there
 1004  * is no limit.
 1005  *
 1006  * Defaults to ``4096``
 1007  */
 1008 'preview_max_x' => 4096,
 1009 /**
 1010  * The maximum height, in pixels, of a preview. A value of ``null`` means there
 1011  * is no limit.
 1012  *
 1013  * Defaults to ``4096``
 1014  */
 1015 'preview_max_y' => 4096,
 1016 
 1017 /**
 1018  * max file size for generating image previews with imagegd (default behavior)
 1019  * If the image is bigger, it'll try other preview generators, but will most
 1020  * likely show the default mimetype icon. Set to -1 for no limit.
 1021  *
 1022  * Defaults to ``50`` megabytes
 1023  */
 1024 'preview_max_filesize_image' => 50,
 1025 
 1026 /**
 1027  * custom path for LibreOffice/OpenOffice binary
 1028  *
 1029  *
 1030  * Defaults to ``''`` (empty string)
 1031  */
 1032 'preview_libreoffice_path' => '/usr/bin/libreoffice',
 1033 /**
 1034  * Use this if LibreOffice/OpenOffice requires additional arguments.
 1035  *
 1036  * Defaults to ``''`` (empty string)
 1037  */
 1038 'preview_office_cl_parameters' =>
 1039     ' --headless --nologo --nofirststartwizard --invisible --norestore '.
 1040     '--convert-to png --outdir ',
 1041 
 1042 /**
 1043  * Only register providers that have been explicitly enabled
 1044  *
 1045  * The following providers are disabled by default due to performance or privacy
 1046  * concerns:
 1047  *
 1048  *  - OC\Preview\Illustrator
 1049  *  - OC\Preview\Movie
 1050  *  - OC\Preview\MSOffice2003
 1051  *  - OC\Preview\MSOffice2007
 1052  *  - OC\Preview\MSOfficeDoc
 1053  *  - OC\Preview\PDF
 1054  *  - OC\Preview\Photoshop
 1055  *  - OC\Preview\Postscript
 1056  *  - OC\Preview\StarOffice
 1057  *  - OC\Preview\SVG
 1058  *  - OC\Preview\TIFF
 1059  *  - OC\Preview\Font
 1060  *
 1061  *
 1062  * Defaults to the following providers:
 1063  *
 1064  *  - OC\Preview\BMP
 1065  *  - OC\Preview\GIF
 1066  *  - OC\Preview\HEIC
 1067  *  - OC\Preview\JPEG
 1068  *  - OC\Preview\MarkDown
 1069  *  - OC\Preview\MP3
 1070  *  - OC\Preview\PNG
 1071  *  - OC\Preview\TXT
 1072  *  - OC\Preview\XBitmap
 1073  *  - OC\Preview\OpenDocument
 1074  *  - OC\Preview\Krita
 1075  */
 1076 'enabledPreviewProviders' => [
 1077     'OC\Preview\PNG',
 1078     'OC\Preview\JPEG',
 1079     'OC\Preview\GIF',
 1080     'OC\Preview\HEIC',
 1081     'OC\Preview\BMP',
 1082     'OC\Preview\XBitmap',
 1083     'OC\Preview\MP3',
 1084     'OC\Preview\TXT',
 1085     'OC\Preview\MarkDown',
 1086     'OC\Preview\OpenDocument',
 1087     'OC\Preview\Krita',
 1088 ],
 1089 
 1090 /**
 1091  * LDAP
 1092  *
 1093  * Global settings used by LDAP User and Group Backend
 1094  */
 1095 
 1096 /**
 1097  * defines the interval in minutes for the background job that checks user
 1098  * existence and marks them as ready to be cleaned up. The number is always
 1099  * minutes. Setting it to 0 disables the feature.
 1100  * See command line (occ) methods ``ldap:show-remnants`` and ``user:delete``
 1101  *
 1102  * Defaults to ``51`` minutes
 1103  */
 1104 'ldapUserCleanupInterval' => 51,
 1105 
 1106 /**
 1107  * Sort groups in the user settings by name instead of the user count
 1108  *
 1109  * By enabling this the user count beside the group name is disabled as well.
 1110  */
 1111 'sort_groups_by_name' => false,
 1112 
 1113 /**
 1114  * Comments
 1115  *
 1116  * Global settings for the Comments infrastructure
 1117  */
 1118 
 1119 /**
 1120  * Replaces the default Comments Manager Factory. This can be utilized if an
 1121  * own or 3rdParty CommentsManager should be used that – for instance – uses the
 1122  * filesystem instead of the database to keep the comments.
 1123  *
 1124  * Defaults to ``\OC\Comments\ManagerFactory``
 1125  */
 1126 'comments.managerFactory' => '\OC\Comments\ManagerFactory',
 1127 
 1128 /**
 1129  * Replaces the default System Tags Manager Factory. This can be utilized if an
 1130  * own or 3rdParty SystemTagsManager should be used that – for instance – uses the
 1131  * filesystem instead of the database to keep the tags.
 1132  *
 1133  * Defaults to ``\OC\SystemTag\ManagerFactory``
 1134  */
 1135 'systemtags.managerFactory' => '\OC\SystemTag\ManagerFactory',
 1136 
 1137 /**
 1138  * Maintenance
 1139  *
 1140  * These options are for halting user activity when you are performing server
 1141  * maintenance.
 1142  */
 1143 
 1144 /**
 1145  * Enable maintenance mode to disable Nextcloud
 1146  *
 1147  * If you want to prevent users from logging in to Nextcloud before you start
 1148  * doing some maintenance work, you need to set the value of the maintenance
 1149  * parameter to true. Please keep in mind that users who are already logged-in
 1150  * are kicked out of Nextcloud instantly.
 1151  *
 1152  * Defaults to ``false``
 1153  */
 1154 'maintenance' => false,
 1155 
 1156 
 1157 /**
 1158  * SSL
 1159  */
 1160 
 1161 /**
 1162  * Extra SSL options to be used for configuration.
 1163   *
 1164  * Defaults to an empty array.
 1165  */
 1166 'openssl' => [
 1167     'config' => '/absolute/location/of/openssl.cnf',
 1168 ],
 1169 
 1170 /**
 1171  * Memory caching backend configuration
 1172  *
 1173  * Available cache backends:
 1174  *
 1175  * * ``\OC\Memcache\APCu``       APC user backend
 1176  * * ``\OC\Memcache\ArrayCache`` In-memory array-based backend (not recommended)
 1177  * * ``\OC\Memcache\Memcached``  Memcached backend
 1178  * * ``\OC\Memcache\Redis``      Redis backend
 1179  *
 1180  * Advice on choosing between the various backends:
 1181  *
 1182  * * APCu should be easiest to install. Almost all distributions have packages.
 1183  *   Use this for single user environment for all caches.
 1184  * * Use Redis or Memcached for distributed environments.
 1185  *   For the local cache (you can configure two) take APCu.
 1186  */
 1187 
 1188 /**
 1189  * Memory caching backend for locally stored data
 1190  *
 1191  * * Used for host-specific data, e.g. file paths
 1192  *
 1193  * Defaults to ``none``
 1194  */
 1195 'memcache.local' => '\OC\Memcache\APCu',
 1196 
 1197 /**
 1198  * Memory caching backend for distributed data
 1199  *
 1200  * * Used for installation-specific data, e.g. database caching
 1201  * * If unset, defaults to the value of memcache.local
 1202  *
 1203  * Defaults to ``none``
 1204  */
 1205 'memcache.distributed' => '\OC\Memcache\Memcached',
 1206 
 1207 /**
 1208  * Connection details for redis to use for memory caching in a single server configuration.
 1209  *
 1210  * For enhanced security it is recommended to configure Redis
 1211  * to require a password. See http://redis.io/topics/security
 1212  * for more information.
 1213  */
 1214 'redis' => [
 1215     'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock'
 1216     'port' => 6379,
 1217     'timeout' => 0.0,
 1218     'password' => '', // Optional, if not defined no password will be used.
 1219     'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index.
 1220 ],
 1221 
 1222 /**
 1223  * Connection details for a Redis Cluster
 1224  *
 1225  * Only for use with Redis Clustering, for Sentinel-based setups use the single
 1226  * server configuration above, and perform HA on the hostname.
 1227  *
 1228  * Redis Cluster support requires the php module phpredis in version 3.0.0 or
 1229  * higher.
 1230  *
 1231  * Available failover modes:
 1232  *  - \RedisCluster::FAILOVER_NONE - only send commands to master nodes (default)
 1233  *  - \RedisCluster::FAILOVER_ERROR - failover to slaves for read commands if master is unavailable (recommended)
 1234  *  - \RedisCluster::FAILOVER_DISTRIBUTE - randomly distribute read commands across master and slaves
 1235  *
 1236  * WARNING: FAILOVER_DISTRIBUTE is a not recommended setting and we strongly
 1237  * suggest to not use it if you use Redis for file locking. Due to the way Redis
 1238  * is synchronized it could happen, that the read for an existing lock is
 1239  * scheduled to a slave that is not fully synchronized with the connected master
 1240  * which then causes a FileLocked exception.
 1241  *
 1242  * See https://redis.io/topics/cluster-spec for details about the Redis cluster
 1243  *
 1244  * Authentication works with phpredis version 4.2.1+. See
 1245  * https://github.com/phpredis/phpredis/commit/c5994f2a42b8a348af92d3acb4edff1328ad8ce1
 1246  */
 1247 'redis.cluster' => [
 1248     'seeds' => [ // provide some/all of the cluster servers to bootstrap discovery, port required
 1249         'localhost:7000',
 1250         'localhost:7001',
 1251     ],
 1252     'timeout' => 0.0,
 1253     'read_timeout' => 0.0,
 1254     'failover_mode' => \RedisCluster::FAILOVER_ERROR,
 1255     'password' => '', // Optional, if not defined no password will be used.
 1256 ],
 1257 
 1258 
 1259 /**
 1260  * Server details for one or more memcached servers to use for memory caching.
 1261  */
 1262 'memcached_servers' => [
 1263     // hostname, port and optional weight. Also see:
 1264     // https://www.php.net/manual/en/memcached.addservers.php
 1265     // https://www.php.net/manual/en/memcached.addserver.php
 1266     ['localhost', 11211],
 1267     //array('other.host.local', 11211),
 1268 ],
 1269 
 1270 /**
 1271  * Connection options for memcached
 1272  */
 1273 'memcached_options' => [
 1274     // Set timeouts to 50ms
 1275     \Memcached::OPT_CONNECT_TIMEOUT => 50,
 1276     \Memcached::OPT_RETRY_TIMEOUT =>   50,
 1277     \Memcached::OPT_SEND_TIMEOUT =>    50,
 1278     \Memcached::OPT_RECV_TIMEOUT =>    50,
 1279     \Memcached::OPT_POLL_TIMEOUT =>    50,
 1280 
 1281     // Enable compression
 1282     \Memcached::OPT_COMPRESSION =>          true,
 1283 
 1284     // Turn on consistent hashing
 1285     \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
 1286 
 1287     // Enable Binary Protocol
 1288     \Memcached::OPT_BINARY_PROTOCOL =>      true,
 1289 
 1290     // Binary serializer vill be enabled if the igbinary PECL module is available
 1291     //\Memcached::OPT_SERIALIZER => \Memcached::SERIALIZER_IGBINARY,
 1292 ],
 1293 
 1294 
 1295 /**
 1296  * Location of the cache folder, defaults to ``data/$user/cache`` where
 1297  * ``$user`` is the current user. When specified, the format will change to
 1298  * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
 1299  * and ``$user`` is the user.
 1300  *
 1301  * Defaults to ``''`` (empty string)
 1302  */
 1303 'cache_path' => '',
 1304 
 1305 /**
 1306  * TTL of chunks located in the cache folder before they're removed by
 1307  * garbage collection (in seconds). Increase this value if users have
 1308  * issues uploading very large files via the Nextcloud Client as upload isn't
 1309  * completed within one day.
 1310  *
 1311  * Defaults to ``60*60*24`` (1 day)
 1312  */
 1313 'cache_chunk_gc_ttl' => 60*60*24,
 1314 
 1315 /**
 1316  * Using Object Store with Nextcloud
 1317  */
 1318 
 1319 /**
 1320  * This example shows how to configure Nextcloud to store all files in a
 1321  * swift object storage.
 1322  *
 1323  * It is important to note that Nextcloud in object store mode will expect
 1324  * exclusive access to the object store container because it only stores the
 1325  * binary data for each file. The metadata is currently kept in the local
 1326  * database for performance reasons.
 1327  *
 1328  * WARNING: The current implementation is incompatible with any app that uses
 1329  * direct file IO and circumvents our virtual filesystem. That includes
 1330  * Encryption and Gallery. Gallery will store thumbnails directly in the
 1331  * filesystem and encryption will cause severe overhead because key files need
 1332  * to be fetched in addition to any requested file.
 1333  *
 1334  * One way to test is applying for a trystack account at http://trystack.org/
 1335  */
 1336 'objectstore' => [
 1337     'class' => 'OC\\Files\\ObjectStore\\Swift',
 1338     'arguments' => [
 1339         // trystack will use your facebook id as the user name
 1340         'username' => 'facebook100000123456789',
 1341         // in the trystack dashboard go to user -> settings -> API Password to
 1342         // generate a password
 1343         'password' => 'Secr3tPaSSWoRdt7',
 1344         // must already exist in the objectstore, name can be different
 1345         'container' => 'nextcloud',
 1346         // prefix to prepend to the fileid, default is 'oid:urn:'
 1347         'objectPrefix' => 'oid:urn:',
 1348         // create the container if it does not exist. default is false
 1349         'autocreate' => true,
 1350         // required, dev-/trystack defaults to 'RegionOne'
 1351         'region' => 'RegionOne',
 1352         // The Identity / Keystone endpoint
 1353         'url' => 'http://8.21.28.222:5000/v2.0',
 1354         // required on dev-/trystack
 1355         'tenantName' => 'facebook100000123456789',
 1356         // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
 1357         // if omitted
 1358         'serviceName' => 'swift',
 1359         // The Interface / url Type, optional
 1360         'urlType' => 'internal'
 1361     ],
 1362 ],
 1363 
 1364 /**
 1365  * To use swift V3
 1366  */
 1367 'objectstore' => [
 1368     'class' => 'OC\\Files\\ObjectStore\\Swift',
 1369     'arguments' => [
 1370         'autocreate' => true,
 1371         'user' => [
 1372             'name' => 'swift',
 1373             'password' => 'swift',
 1374             'domain' => [
 1375                 'name' => 'default',
 1376             ],
 1377         ],
 1378         'scope' => [
 1379             'project' => [
 1380                 'name' => 'service',
 1381                 'domain' => [
 1382                     'name' => 'default',
 1383                 ],
 1384             ],
 1385         ],
 1386         'tenantName' => 'service',
 1387         'serviceName' => 'swift',
 1388         'region' => 'regionOne',
 1389         'url' => 'http://yourswifthost:5000/v3',
 1390         'bucket' => 'nextcloud',
 1391     ],
 1392 ],
 1393 
 1394 /**
 1395  * If this is set to true and a multibucket object store is configured then
 1396  * newly created previews are put into 256 dedicated buckets.
 1397  *
 1398  * Those buckets are named like the mulibucket version but with the postfix
 1399  * ``-preview-NUMBER`` where NUMBER is between 0 and 255.
 1400  *
 1401  * Keep in mind that only previews of files are put in there that don't have
 1402  * some already. Otherwise the old bucket will be used.
 1403  *
 1404  * To migrate existing previews to this new multibucket distribution of previews
 1405  * use the occ command ``preview:repair``. For now this will only migrate
 1406  * previews that were generated before Nextcloud 19 in the flat
 1407  * ``appdata_INSTANCEID/previews/FILEID`` folder structure.
 1408  */
 1409 'objectstore.multibucket.preview-distribution' => false,
 1410 
 1411 
 1412 /**
 1413  * Sharing
 1414  *
 1415  * Global settings for Sharing
 1416  */
 1417 
 1418 /**
 1419  * Replaces the default Share Provider Factory. This can be utilized if
 1420  * own or 3rdParty Share Providers are used that – for instance – use the
 1421  * filesystem instead of the database to keep the share information.
 1422  *
 1423  * Defaults to ``\OC\Share20\ProviderFactory``
 1424  */
 1425 'sharing.managerFactory' => '\OC\Share20\ProviderFactory',
 1426 
 1427 /**
 1428  * Define max number of results returned by the search for auto-completion of
 1429  * users, groups, etc. The value must not be lower than 0 (for unlimited).
 1430  *
 1431  * If more, different sources are requested (e.g. different user backends; or
 1432  * both users and groups), the value is applied per source and might not be
 1433  * truncated after collecting the results. I.e. more results can appear than
 1434  * configured here.
 1435  *
 1436  * Default is 25.
 1437  */
 1438 'sharing.maxAutocompleteResults' => 25,
 1439 
 1440 /**
 1441  * Define the minimum length of the search string before we start auto-completion
 1442  * Default is no limit (value set to 0)
 1443  */
 1444 'sharing.minSearchStringLength' => 0,
 1445 
 1446 /**
 1447  * Set to true to enable that internal shares need to be accepted by the users by default.
 1448  * Users can change this for their account in their personal sharing settings
 1449  */
 1450 'sharing.enable_share_accept' => false,
 1451 
 1452 /**
 1453  * Set to true to enforce that internal shares need to be accepted
 1454  */
 1455 'sharing.force_share_accept' => false,
 1456 
 1457 /**
 1458  * Set to false to stop sending a mail when users receive a share
 1459  */
 1460 'sharing.enable_share_mail' => true,
 1461 
 1462 
 1463 /**
 1464  * All other configuration options
 1465  */
 1466 
 1467 /**
 1468  * Additional driver options for the database connection, eg. to enable SSL
 1469  * encryption in MySQL or specify a custom wait timeout on a cheap hoster.
 1470  */
 1471 'dbdriveroptions' => [
 1472     PDO::MYSQL_ATTR_SSL_CA => '/file/path/to/ca_cert.pem',
 1473     PDO::MYSQL_ATTR_INIT_COMMAND => 'SET wait_timeout = 28800'
 1474 ],
 1475 
 1476 /**
 1477  * sqlite3 journal mode can be specified using this configuration parameter -
 1478  * can be 'WAL' or 'DELETE' see for more details https://www.sqlite.org/wal.html
 1479  */
 1480 'sqlite.journal_mode' => 'DELETE',
 1481 
 1482 /**
 1483  * During setup, if requirements are met (see below), this setting is set to true
 1484  * and MySQL can handle 4 byte characters instead of 3 byte characters.
 1485  *
 1486  * If you want to convert an existing 3-byte setup into a 4-byte setup please
 1487  * set the parameters in MySQL as mentioned below and run the migration command:
 1488  * ./occ db:convert-mysql-charset
 1489  * The config setting will be set automatically after a successful run.
 1490  *
 1491  * Consult the documentation for more details.
 1492  *
 1493  * MySQL requires a special setup for longer indexes (> 767 bytes) which are
 1494  * needed:
 1495  *
 1496  * [mysqld]
 1497  * innodb_large_prefix=ON
 1498  * innodb_file_format=Barracuda
 1499  * innodb_file_per_table=ON
 1500  *
 1501  * Tables will be created with
 1502  *  * character set: utf8mb4
 1503  *  * collation:     utf8mb4_bin
 1504  *  * row_format:    compressed
 1505  *
 1506  * See:
 1507  * https://dev.mysql.com/doc/refman/5.7/en/charset-unicode-utf8mb4.html
 1508  * https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_large_prefix
 1509  * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix
 1510  * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html
 1511  * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/
 1512  */
 1513 'mysql.utf8mb4' => false,
 1514 
 1515 /**
 1516  * Database types that are supported for installation.
 1517  *
 1518  * Available:
 1519  *  - sqlite (SQLite3)
 1520  *  - mysql (MySQL)
 1521  *  - pgsql (PostgreSQL)
 1522  *  - oci (Oracle)
 1523  *
 1524  * Defaults to the following databases:
 1525  *  - sqlite (SQLite3)
 1526  *  - mysql (MySQL)
 1527  *  - pgsql (PostgreSQL)
 1528  */
 1529 'supportedDatabases' => [
 1530     'sqlite',
 1531     'mysql',
 1532     'pgsql',
 1533     'oci',
 1534 ],
 1535 
 1536 /**
 1537  * Override where Nextcloud stores temporary files. Useful in situations where
 1538  * the system temporary directory is on a limited space ramdisk or is otherwise
 1539  * restricted, or if external storages which do not support streaming are in
 1540  * use.
 1541  *
 1542  * The Web server user must have write access to this directory.
 1543  */
 1544 'tempdirectory' => '/tmp/nextcloudtemp',
 1545 
 1546 /**
 1547  * Hashing
 1548  */
 1549 
 1550 /**
 1551  * By default Nextcloud will use the Argon2 password hashing if available.
 1552  * However if for whatever reason you want to stick with the PASSWORD_DEFAULT
 1553  * of your php version. Then set the setting to true.
 1554  */
 1555 'hashing_default_password' => false,
 1556 
 1557 /**
 1558  *
 1559  * Nextcloud uses the Argon2 algorithm (with PHP >= 7.2) to create hashes by its
 1560  * own and exposes its configuration options as following. More information can
 1561  * be found at: https://www.php.net/manual/en/function.password-hash.php
 1562  */
 1563 
 1564 /**
 1565  * The number of CPU threads to be used by the algorithm for computing a hash.
 1566  * The value must be an integer, and the minimum value is 1. Rationally it does
 1567  * not help to provide a number higher than the available threads on the machine.
 1568  * Values that undershoot the minimum will be ignored in favor of the minimum.
 1569  */
 1570 'hashingThreads' => PASSWORD_ARGON2_DEFAULT_THREADS,
 1571 
 1572 /**
 1573  * The memory in KiB to be used by the algorithm for computing a hash. The value
 1574  * must be an integer, and the minimum value is 8 times the number of CPU threads.
 1575  * Values that undershoot the minimum will be ignored in favor of the minimum.
 1576  */
 1577 'hashingMemoryCost' => PASSWORD_ARGON2_DEFAULT_MEMORY_COST,
 1578 
 1579 /**
 1580  * The number of iterations that are used by the algorithm for computing a hash.
 1581  * The value must be an integer, and the minimum value is 1. Values that
 1582  * undershoot the minimum will be ignored in favor of the minimum.
 1583  */
 1584 'hashingTimeCost' => PASSWORD_ARGON2_DEFAULT_TIME_COST,
 1585 
 1586 /**
 1587  * The hashing cost used by hashes generated by Nextcloud
 1588  * Using a higher value requires more time and CPU power to calculate the hashes
 1589  */
 1590 'hashingCost' => 10,
 1591 
 1592 /**
 1593  * Blacklist a specific file or files and disallow the upload of files
 1594  * with this name. ``.htaccess`` is blocked by default.
 1595  * WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING.
 1596  *
 1597  * Defaults to ``array('.htaccess')``
 1598  */
 1599 'blacklisted_files' => ['.htaccess'],
 1600 
 1601 /**
 1602  * Define a default folder for shared files and folders other than root.
 1603  * Changes to this value will only have effect on new shares.
 1604  *
 1605  * Defaults to ``/``
 1606  */
 1607 'share_folder' => '/',
 1608 
 1609 /**
 1610  * If you are applying a theme to Nextcloud, enter the name of the theme here.
 1611  * The default location for themes is ``nextcloud/themes/``.
 1612  *
 1613  * Defaults to the theming app which is shipped since Nextcloud 9
 1614  */
 1615 'theme' => '',
 1616 
 1617 /**
 1618  * The default cipher for encrypting files. Currently supported are:
 1619  *  - AES-256-CTR
 1620  *  - AES-128-CTR
 1621  *  - AES-256-CFB
 1622  *  - AES-128-CFB
 1623  *
 1624  * Defaults to ``AES-256-CTR``
 1625  */
 1626 'cipher' => 'AES-256-CTR',
 1627 
 1628 /**
 1629  * The minimum Nextcloud desktop client version that will be allowed to sync with
 1630  * this server instance. All connections made from earlier clients will be denied
 1631  * by the server. Defaults to the minimum officially supported Nextcloud desktop
 1632  * clientversion at the time of release of this server version.
 1633  *
 1634  * When changing this, note that older unsupported versions of the Nextcloud desktop
 1635  * client may not function as expected, and could lead to permanent data loss for
 1636  * clients or other unexpected results.
 1637  *
 1638  * Defaults to ``2.0.0``
 1639  */
 1640 'minimum.supported.desktop.version' => '2.0.0',
 1641 
 1642 /**
 1643  * Option to allow local storage to contain symlinks.
 1644  * WARNING: Not recommended. This would make it possible for Nextcloud to access
 1645  * files outside the data directory and could be considered a security risk.
 1646  *
 1647  * Defaults to ``false``
 1648  */
 1649 'localstorage.allowsymlinks' => false,
 1650 
 1651 /**
 1652  * EXPERIMENTAL: option whether to include external storage in quota
 1653  * calculation, defaults to false.
 1654  *
 1655  * Defaults to ``false``
 1656  */
 1657 'quota_include_external_storage' => false,
 1658 
 1659 /**
 1660  * When an external storage is unavailable for some reasons, it will be flagged
 1661  * as such for 10 minutes. When the trigger is a failed authentication attempt
 1662  * the delay is higher and can be controlled with this option. The motivation
 1663  * is to make account lock outs at Active Directories (and compatible) more
 1664  * unlikely.
 1665  *
 1666  * Defaults to ``1800`` (seconds)
 1667  */
 1668 'external_storage.auth_availability_delay' => 1800,
 1669 
 1670 /**
 1671  * Specifies how often the local filesystem (the Nextcloud data/ directory, and
 1672  * NFS mounts in data/) is checked for changes made outside Nextcloud. This
 1673  * does not apply to external storages.
 1674  *
 1675  * 0 -> Never check the filesystem for outside changes, provides a performance
 1676  * increase when it's certain that no changes are made directly to the
 1677  * filesystem
 1678  *
 1679  * 1 -> Check each file or folder at most once per request, recommended for
 1680  * general use if outside changes might happen.
 1681  *
 1682  * Defaults to ``0``
 1683  */
 1684 'filesystem_check_changes' => 0,
 1685 
 1686 /**
 1687  * By default Nextcloud will store the part files created during upload in the
 1688  * same storage as the upload target. Setting this to false will store the part
 1689  * files in the root of the users folder which might be required to work with certain
 1690  * external storage setups that have limited rename capabilities.
 1691  *
 1692  * Defaults to ``true``
 1693  */
 1694 'part_file_in_storage' => true,
 1695 
 1696 /**
 1697  * Where ``mount.json`` file should be stored, defaults to ``data/mount.json``
 1698  * in the Nextcloud directory.
 1699  *
 1700  * Defaults to ``data/mount.json`` in the Nextcloud directory.
 1701  */
 1702 'mount_file' => '/var/www/nextcloud/data/mount.json',
 1703 
 1704 /**
 1705  * When ``true``, prevent Nextcloud from changing the cache due to changes in
 1706  * the filesystem for all storage.
 1707  *
 1708  * Defaults to ``false``
 1709  */
 1710 'filesystem_cache_readonly' => false,
 1711 
 1712 /**
 1713  * Secret used by Nextcloud for various purposes, e.g. to encrypt data. If you
 1714  * lose this string there will be data corruption.
 1715  */
 1716 'secret' => '',
 1717 
 1718 /**
 1719  * List of trusted proxy servers
 1720  *
 1721  * You may set this to an array containing a combination of
 1722  * - IPv4 addresses, e.g. `192.168.2.123`
 1723  * - IPv4 ranges in CIDR notation, e.g. `192.168.2.0/24`
 1724  * - IPv6 addresses, e.g. `fd9e:21a7:a92c:2323::1`
 1725  *
 1726  * _(CIDR notation for IPv6 is currently work in progress and thus not
 1727  * available as of yet)_
 1728  *
 1729  * When an incoming request's `REMOTE_ADDR` matches any of the IP addresses
 1730  * specified here, it is assumed to be a proxy instead of a client. Thus, the
 1731  * client IP will be read from the HTTP header specified in
 1732  * `forwarded_for_headers` instead of from `REMOTE_ADDR`.
 1733  *
 1734  * So if you configure `trusted_proxies`, also consider setting
 1735  * `forwarded_for_headers` which otherwise defaults to `HTTP_X_FORWARDED_FOR`
 1736  * (the `X-Forwarded-For` header).
 1737  *
 1738  * Defaults to an empty array.
 1739  */
 1740 'trusted_proxies' => ['203.0.113.45', '198.51.100.128', '192.168.2.0/24'],
 1741 
 1742 /**
 1743  * Headers that should be trusted as client IP address in combination with
 1744  * `trusted_proxies`. If the HTTP header looks like 'X-Forwarded-For', then use
 1745  * 'HTTP_X_FORWARDED_FOR' here.
 1746  *
 1747  * If set incorrectly, a client can spoof their IP address as visible to
 1748  * Nextcloud, bypassing access controls and making logs useless!
 1749  *
 1750  * Defaults to ``'HTTP_X_FORWARDED_FOR'``
 1751  */
 1752 'forwarded_for_headers' => ['HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'],
 1753 
 1754 /**
 1755  * max file size for animating gifs on public-sharing-site.
 1756  * If the gif is bigger, it'll show a static preview
 1757  *
 1758  * Value represents the maximum filesize in megabytes. Set to ``-1`` for
 1759  * no limit.
 1760  *
 1761  * Defaults to ``10`` megabytes
 1762  */
 1763 'max_filesize_animated_gifs_public_sharing' => 10,
 1764 
 1765 
 1766 /**
 1767  * Enables transactional file locking.
 1768  * This is enabled by default.
 1769  *
 1770  * Prevents concurrent processes from accessing the same files
 1771  * at the same time. Can help prevent side effects that would
 1772  * be caused by concurrent operations. Mainly relevant for
 1773  * very large installations with many users working with
 1774  * shared files.
 1775  *
 1776  * Defaults to ``true``
 1777  */
 1778 'filelocking.enabled' => true,
 1779 
 1780 /**
 1781  * Set the lock's time-to-live in seconds.
 1782  *
 1783  * Any lock older than this will be automatically cleaned up.
 1784  *
 1785  * Defaults to ``60*60`` seconds (1 hour) or the php
 1786  *             max_execution_time, whichever is higher.
 1787  */
 1788 'filelocking.ttl' => 60*60,
 1789 
 1790 /**
 1791  * Memory caching backend for file locking
 1792  *
 1793  * Because most memcache backends can clean values without warning using redis
 1794  * is highly recommended to *avoid data loss*.
 1795  *
 1796  * Defaults to ``none``
 1797  */
 1798 'memcache.locking' => '\\OC\\Memcache\\Redis',
 1799 
 1800 /**
 1801  * Enable locking debug logging
 1802  *
 1803  * Note that this can lead to a very large volume of log items being written which can lead
 1804  * to performance degradation and large log files on busy instance.
 1805  *
 1806  * Thus enabling this in production for longer periods of time is not recommended
 1807  * or should be used together with the ``log.condition`` setting.
 1808  */
 1809 'filelocking.debug' => false,
 1810 
 1811 /**
 1812  * Disable the web based updater
 1813  */
 1814 'upgrade.disable-web' => false,
 1815 
 1816 /**
 1817  * Set this Nextcloud instance to debugging mode
 1818  *
 1819  * Only enable this for local development and not in production environments
 1820  * This will disable the minifier and outputs some additional debug information
 1821  *
 1822  * Defaults to ``false``
 1823  */
 1824 'debug' => false,
 1825 
 1826 /**
 1827  * Sets the data-fingerprint of the current data served
 1828  *
 1829  * This is a property used by the clients to find out if a backup has been
 1830  * restored on the server. Once a backup is restored run
 1831  * ./occ maintenance:data-fingerprint
 1832  * To set this to a new value.
 1833  *
 1834  * Updating/Deleting this value can make connected clients stall until
 1835  * the user has resolved conflicts.
 1836  *
 1837  * Defaults to ``''`` (empty string)
 1838  */
 1839 'data-fingerprint' => '',
 1840 
 1841 /**
 1842  * This entry is just here to show a warning in case somebody copied the sample
 1843  * configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION!
 1844  *
 1845  * If you, brave person, have read until here be aware that you should not
 1846  * modify *ANY* settings in this file without reading the documentation.
 1847  */
 1848 'copied_sample_config' => true,
 1849 
 1850 /**
 1851  * use a custom lookup server to publish user data
 1852  */
 1853 'lookup_server' => 'https://lookup.nextcloud.com',
 1854 
 1855 /**
 1856  * set to true if the server is used in a setup based on Nextcloud's Global Scale architecture
 1857  */
 1858 'gs.enabled' => false,
 1859 
 1860 /**
 1861  * by default federation is only used internally in a Global Scale setup
 1862  * If you want to allow federation outside of your environment set it to 'global'
 1863  */
 1864 'gs.federation' => 'internal',
 1865 
 1866 /**
 1867  * List of incompatible user agents opted out from Same Site Cookie Protection.
 1868  * Some user agents are notorious and don't really properly follow HTTP
 1869  * specifications. For those, have an opt-out.
 1870  *
 1871  * WARNING: only use this if you know what you are doing
 1872  */
 1873 'csrf.optout' => [
 1874     '/^WebDAVFS/', // OS X Finder
 1875     '/^Microsoft-WebDAV-MiniRedir/', // Windows webdav drive
 1876 ],
 1877 
 1878 /**
 1879  * By default there is on public pages a link shown that allows users to
 1880  * learn about the "simple sign up" - see https://nextcloud.com/signup/
 1881  *
 1882  * If this is set to "false" it will not show the link.
 1883  */
 1884 'simpleSignUpLink.shown' => true,
 1885 
 1886 /**
 1887  * By default autocompletion is enabled for the login form on Nextcloud's login page.
 1888  * While this is enabled, browsers are allowed to "remember" login names and such.
 1889  * Some companies require it to be disabled to comply with their security policy.
 1890  *
 1891  * Simply set this property to "false", if you want to turn this feature off.
 1892  */
 1893 
 1894 'login_form_autocomplete' => true,
 1895 ];