]> git.p6c8.net - jirafeau_project.git/blob - lib/config.original.php
[BUGFIX] Limit upload chunk size to a reasonable value
[jirafeau_project.git] / lib / config.original.php
1 <?php
2 /*
3 * Jirafeau, your web file repository
4 * Copyright (C) 2008 Julien "axolotl" BERNARD <axolotl@magieeternelle.org>
5 * Copyright (C) 2015 Jerome Jutteau <jerome@jutteau.fr>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as
9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21 /**
22 * Default configuration
23 *
24 * To overwrite these settings copy the file,
25 * rename it to »config.local.php« and adapt the parameters.
26 **/
27
28 /* URL of installation, with trailing slash (eg. »https://example.com/jirafeau/«)
29 */
30 $cfg['web_root'] = '';
31
32 /* Path to data directory, with trailing slash (eg. »/var/www/data/var_314159265358979323846264«
33 */
34 $cfg['var_root'] = '';
35
36 /* Language - choose between 'auto' or any language located in the /lib/locales/ folder.
37 * The mode »auto« will cause the script to detect the user's browser information
38 * and offer a matching language, or use »en« if it is not available.
39 * Forcing a specific lang will slightly reduce computation time.
40 */
41 $cfg['lang'] = 'auto';
42
43 /* Select a theme - see media folder for available themes
44 */
45 $cfg['style'] = 'courgette';
46
47 /* Name the organisation running this installation, eg. 'ACME'
48 */
49 $cfg['organisation'] = 'ACME';
50
51 /* Provide a contact person for this installation, eg. 'John Doe <doe@example.com>'
52 */
53 $cfg['contactperson'] = '';
54
55 /* Give the installation a title, eg. 'Datahub' or 'John Doe Filehost'
56 */
57 $cfg['title'] = '';
58
59 /* Propose a preview link if file type is previewable
60 */
61 $cfg['preview'] = true;
62
63 /* Enable the encryption feature
64 * By enabling it, file-level deduplication won't work anymore. See FAQ.
65 */
66 $cfg['enable_crypt'] = false;
67
68 /* Length of link reference
69 */
70 $cfg['link_name_length'] = 8;
71
72 /* Upload password(s).
73 * An empty array will disable password authentication.
74 * $cfg['upload_password'] = array(); // No password
75 * $cfg['upload_password'] = array('psw1'); // One password
76 * $cfg['upload_password'] = array('psw1', 'psw2'); // Two passwords
77 */
78 $cfg['upload_password'] = array();
79
80 /* List of IP allowed to upload a file.
81 * If the list is empty, then there is no upload restriction based on IP.
82 * Elements of the list can be a single IP (e.g. "123.45.67.89") or
83 * an IP range (e.g. "123.45.0.0/16").
84 * Note that CIDR notation is available for IPv4 only for the moment.
85 */
86 $cfg['upload_ip'] = array();
87
88 /* List of IP allowed to upload a file without password.
89 * Elements of the list can be a single IP (e.g. "123.45.67.89") or
90 * an IP range (e.g. "123.45.0.0/16").
91 * Note that CIDR notation is available for IPv4 only for the moment.
92 */
93 $cfg['upload_ip_nopassword'] = array();
94
95 /* Password for the admin interface.
96 * An empty password will disable password authentication.
97 * The password is a sha256 hash of the original version.
98 * Example: echo -n "myVerySecretAdminPassword" | sha256sum
99 */
100 $cfg['admin_password'] = '';
101
102 /* If set, let the user be authenticated as administrator.
103 * The user provided here is the user authenticated by HTTP authentication.
104 * Note that Jirafeau does not manage the HTTP login part, it just checks
105 * that the provided user is logged in.
106 * If »admin_password« parameter is set, then the »admin_password« is ignored.
107 */
108 $cfg['admin_http_auth_user'] = '';
109
110 /* Allow user to select different options for file expiration time.
111 * Possible values in array:
112 * 'minute': file is available for one minute
113 * 'hour': file available for one hour
114 * 'day': file available for one day
115 * 'week': file available for one week
116 * 'fortnight': file is available for two weeks
117 * 'month': file is available for one month
118 * 'quarter': file is available for three months
119 * 'year': file available for one year
120 * 'none': unlimited availability
121 */
122 $cfg['availabilities'] = array(
123 'minute' => true,
124 'hour' => true,
125 'day' => true,
126 'week' => true,
127 'fortnight' => true,
128 'month' => true,
129 'quarter' => false,
130 'year' => false,
131 'none' => false
132 );
133
134 /* Set a default value for the expiration time.
135 * The value has to equal one of the enabled options in »availabilities«, e.g. »month«.
136 */
137 $cfg['availability_default'] = 'month';
138
139 /* Give the uploading user the option to have the file
140 * deleted after the first download.
141 */
142 $cfg['one_time_download'] = true;
143
144 /* Set maximal upload size expressed in MB.
145 * »0« means unlimited upload size.
146 */
147 $cfg['maximal_upload_size'] = 0;
148
149 /* Proxy IP
150 * If the installation is behind some reverse proxies, it is possible to set
151 * the allowed proxy IP.
152 * $cfg['proxy_ip'] = array('12.34.56.78');
153 * Jirafeau will then get a visitor's IP from HTTP_X_FORWARDED_FOR
154 * instead of REMOTE_ADDR.
155 */
156 $cfg['proxy_ip'] = array();
157
158 /* File hash
159 * In order to make file deduplication work, files can be hashed through different methods.
160 * By default, files are hashed through md5 but other methods are available.
161 *
162 * Possible values are 'md5', 'md5_outside' and 'random'.
163 *
164 * With 'md5' option, the whole file is hashed through md5. This is the default.
165 * With 'md5_outside', hash is computed using:
166 * - md5 of the first part of the file,
167 * - md5 of the last part of the file and
168 * - file's size.
169 * This method offer file deduplication at minimal cost but can be dangerous as files with the same partial hash can be mistaken.
170 * With 'random' option, file hash is set to a random value and file deduplication cannot work anymore but it is fast and safe.
171 */
172 $cfg['file_hash'] = 'md5';
173
174 /* Work around that LiteSpeed truncates large files when downloading.
175 * Only for use with the LiteSpeed web server!
176 * An internal redirect is made using X-LiteSpeed-Location instead
177 * of streaming the file from PHP.
178 * Limitations:
179 * - The Jirafeau files folder has to be placed under the document root and should be
180 * protected from unauthorized access using rewrite rules.
181 * See https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:config:internal-redirect#protection_from_direct_access
182 * - Incompatible with server side encryption.
183 * - Incompatible with one time download.
184 */
185 $cfg['litespeed_workaround'] = false;
186
187 /* Use the X-Sendfile header which should cause your webserver to handle
188 * the sending of the file. The webserver must be configured to do this
189 * using the mod_xsendfile module in Apache or the appropriate config in
190 * lighttpd. The offload will not happen in the case of server-side encrypted
191 * files, but all other cases should work. Benefits include being able
192 * to resume downloads and seek instantly in media players like VLC or
193 * the Firefox/Discord/Chrome embedded player.
194 */
195 $cfg['use_xsendfile'] = false;
196
197 /* Store uploader's IP along with 'link' file.
198 * Depending of your legislation, you may have to adjust this parameter.
199 */
200 $cfg['store_uploader_ip'] = true;
201
202 /* Required flag to test if the installation is already installed
203 * or needs to start the installation script
204 */
205 $cfg['installation_done'] = false;
206
207 /* Enable this debug flag to allow eventual PHP error reporting.
208 * This is disabled by default permission misconfiguration might generate warnings or errors.
209 * Those warnings can break Jirafeau and also show path to var- folder in debug messages.
210 * var- folder should kept secret and accessing it may lead to data leak if unprotected.
211 */
212 $cfg['debug'] = false;
213
214 /** Set Jirafeau's maximal upload chunk
215 * When Jirafeau upload a large file, Jirafeau sends several data chunks to fit server's capabilities.
216 * Jirafeau tries to upload each data chunk with the maximal size allowed by PHP (post_max_size and upload_max_filesize).
217 * However, too large PHP configuration values are not needed and could induce unwanted side effects (see #303).
218 * This parameter set Jirafeau's own maximal chunk size with a reasonable value.
219 * Option is only used for async uploads and won't be used for browsers without html5 support.
220 * You should not touch this parameter unless you have good reason to do so. Feel free to open an issue to ask questions.
221 * Set to 0 to remove limitation.
222 */
223 $cfg['max_upload_chunk_size_bytes'] = 100000000; // 100MB

patrick-canterino.de