/*
* Jirafeau, your web file repository
* Copyright (C) 2008 Julien "axolotl" BERNARD <axolotl@magieeternelle.org>
+ * Copyright (C) 2015 Jerome Jutteau <jerome@jutteau.fr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-
-/*
- * default configuration
- * if you want to change this, overwrite in a config.local.php file
+
+/**
+ * Default configuration
+ *
+ * To overwrite these settings copy the file,
+ * rename it to »config.local.php« and adapt the parameters.
+ **/
+
+/* URL of installation, with traling slash (eg. »https://exmaple.com/jirafeau/«)
*/
- global $cfg;
-
-/* don't forget the ending '/' */
$cfg['web_root'] = '';
+
+/* Path to data directory, with trailing slash (eg. »/var/www/data/var_314159265358979323846264«
+ */
$cfg['var_root'] = '';
-/* Lang choice between 'auto', 'en' and 'fr'.
- 'auto' mode will take the user's browser informations. Will take english if
- user's langage is not available.
+/* Language - choice between 'auto' or any language located in the /lib/locales/ folder.
+ * The mode »auto« will cause the script to detect the user's browser information
+ * and offer a matching language, and use »en« if it is not available.
+ * Forcing to a specific lang lightly reduce lang computation.
*/
$cfg['lang'] = 'auto';
-$cfg['style'] = 'modern';
-$cfg['rewrite'] = false;
-/* An empty admin password will disable the admin interface. */
-$cfg['admin_password'] = '';
-/* preview: false (will download file) or true (will preview in browser if
- * possible) . */
+
+/* Select a theme - see media folder for available themes
+ */
+$cfg['style'] = 'courgette';
+
+/* Name the organisation running this installation, eg. 'ACME'
+ */
+$cfg['organisation'] = 'ACME';
+
+/* Provide a contact person for this installation, eg. 'John Doe <doe@example.com>'
+ */
+$cfg['contactperson'] = '';
+
+/* Give the installation a title, eg. 'Datahub' or 'John Doe Filehost'
+ */
+$cfg['title'] = '';
+
+/* Propose a preview link if file type is previewable
+ */
$cfg['preview'] = true;
-/* Download page:
- * true: Will show a download page (with preview if permited and possible).
- * false: Will directly download file or preview (if permited and possible). */
-$cfg['download_page'] = false;
-/* Block feature:
- The scripting interface can propose to create, read, write, delete blocks
- of data. */
-$cfg['enable_blocks'] = false;
-/* Encryption feature. disable it by default.
- * By enabling it, file-level deduplication won't work. */
+
+/* Enable the encryption feature
+ * By enabling it, file-level deduplication won't work anymore. See FAQ.
+ */
$cfg['enable_crypt'] = false;
-/* Split lenght of link refenrece. */
-$cfg['link_name_lenght'] = 8;
-if ((basename (__FILE__) != 'config.local.php')
- && file_exists (JIRAFEAU_ROOT.'lib/config.local.php'))
-{
- require (JIRAFEAU_ROOT.'lib/config.local.php');
-}
+/* Length of link reference
+ */
+$cfg['link_name_length'] = 8;
+
+/* Upload password(s).
+ * An empty array will disable the password authentification.
+ * $cfg['upload_password'] = array(); // No password
+ * $cfg['upload_password'] = array('psw1'); // One password
+ * $cfg['upload_password'] = array('psw1', 'psw2'); // Two passwords
+ */
+$cfg['upload_password'] = array();
+
+/* List of IP allowed to upload a file.
+ * If the list is empty, then there is no upload restriction based on IP.
+ * Elements of the list can be a single IP (e.g. "123.45.67.89") or
+ * an IP range (e.g. "123.45.0.0/16").
+ * Note that CIDR notation is available for IPv4 only for the moment.
+ */
+$cfg['upload_ip'] = array();
+
+/* List of IP allowed to upload a file without password.
+ * Elements of the list can be a single IP (e.g. "123.45.67.89") or
+ * an IP range (e.g. "123.45.0.0/16").
+ * Note that CIDR notation is available for IPv4 only for the moment.
+ */
+$cfg['upload_ip_nopassword'] = array();
+
+/* Password for the admin interface.
+ * An empty password will disable the password authentification.
+ * The password is a sha256 hash of the original version.
+ */
+$cfg['admin_password'] = '';
+
+/* If set, let the user be authenticated as administrator.
+ * The user provided here is the user authenticated by HTTP authentication.
+ * Note that Jirafeau does not manage the HTTP login part, it just checks
+ * that the provided user is logged in.
+ * If »admin_password« parameter is set, then the »admin_password« is ignored.
+ */
+$cfg['admin_http_auth_user'] = '';
+
+/* Allow user to select different options for file expiration time.
+ * Possible values in array:
+ * 'minute': file is available for one minute
+ * 'hour': file available for one hour
+ * 'day': file available for one day
+ * 'week': file available for one week
+ * 'month': file is available for one month
+ * 'quarter': file is available for three month
+ * 'year': file available for one year
+ * 'none': unlimited availability
+ */
+$cfg['availabilities'] = array(
+ 'minute' => true,
+ 'hour' => true,
+ 'day' => true,
+ 'week' => true,
+ 'month' => true,
+ 'quarter' => false,
+ 'year' => false,
+ 'none' => false
+);
+
+/* Set a default value for the expiration time.
+ * The value has to equal one of the enabled options in »availabilities«, e.g. »month«.
+ */
+$cfg['availability_default'] = 'month';
-?>
+/* Give the uploading user the option to have the file
+ * deleted after the first download.
+ */
+$cfg['one_time_download'] = true;
+
+/* Set maximal upload size expressed in MB.
+ * »0« means unlimited upload size.
+ */
+$cfg['maximal_upload_size'] = 0;
+
+/* Proxy IP
+ * If the installation is behind some reverse proxies, it is possible to set
+ * the allowed proxy IP.
+ * $cfg['proxy_ip'] = array('12.34.56.78');
+ * Jirafeau will then get a visitor's IP from HTTP_X_FORWARDED_FOR
+ * instead of REMOTE_ADDR.
+ */
+$cfg['proxy_ip'] = array();
+
+/* File hash
+ * In order to make file deduplication work, files can be hashed through different methods.
+ * By default, files are hashed through md5 but other methods are available.
+ * Possible values are 'md5' and 'md5_outside'.
+ * With 'md5' option, the whole file is hashed through md5. This is the default.
+ * With 'md5_outside', md5 is used to hash the first part of the file, the last part of the file. This method offer file deduplication at minimal cost but can be dangerous as files with the same partial hash can be mistaken.
+ * With 'random', file hash not set to a random value and file deduplication cannot work anymore but it is fast and safe.
+ * and the file's size. This method is fast for large files but cannot be perfect.
+ */
+$cfg['file_hash'] = 'md5';
+
+/* Work around that LiteSpeed truncates large files when downloading.
+ * Only for use with the LiteSpeed web server!
+ * An internal redirect is made using X-LiteSpeed-Location instead
+ * of streaming the file from PHP.
+ * Limitations:
+ * - The Jirafeau files folder has to be placed under the document root and should be
+ * protected from unauthorized access using rewrite rules.
+ * See https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:config:internal-redirect#protection_from_direct_access
+ * - Incompatible with server side encryption.
+ * - Incompatible with one time download.
+ */
+$cfg['litespeed_workaround'] = false;
+
+/* Required flag to test if the installation is already installed
+ * or needs to start the installation script
+ */
+$cfg['installation_done'] = false;