1 # Jirafeau's change log
3 ## Note about upgrading
5 "in-place upgrade" refers to this general procedure:
7 1. Backup your Jirafeau installation!
8 2. Block access to Jirafeau
9 3. Checkout the new version with Git using the [tagged release](https://gitlab.com/jirafeau/Jirafeau/tags)
10 * If you have installed Jirafeau just by uploading files on your server, you can download the desired version, overwrite/remove all files and chown/chmod files if needed. Keep a backup of your local configuration file tough.
11 4. With you browser, go to your Jirafeau root page
12 5. Follow the installation wizard, it should propose you the same data folder or even update automatically
13 6. Check your `/lib/config.local.php` and compare it with the `/lib/config.original.php` to see if new configuration items are available. If a new item is missing in your `config.local.php`, this may trigger some errors as Jirafeau may expect to have them.
17 - Removed the download button and the corresponding link for encrypted files from the admin interface
18 - Lots of code refactoring and cleanup
19 - Few more little fixes
20 - Typo and spelling mistakes
22 New configuration items:
23 - `one_time_download_preselected` for preselecting the checkbox for deleting the file after the first download
27 - New configuration options for allowing to require, check or generate file download passwords
28 - Re-implemented server side encryption using PHP's `Sodium` extension (the formerly used `mcrypt` extension is deprecated)
29 - Keep and show basic download stats
30 - Removed Lighttpd's `mod_usertrack` from Docker config
31 - Added `<meta name="viewport"…` to template header to support responsive themes
32 - Removed usage of deprecated `strftime()` function
33 - Few more little fixes
34 - Typo and spelling mistakes
36 New configuration items:
37 - `download_password_requirement`, `download_password_gen_len`, `download_password_gen_chars`, `download_password_policy` and `download_password_policy_regex` for configuring file download passwords
38 - `admin_ip` for limiting access to the admin interface to certain IP addresses
39 - `admin_http_auth_user` is now an array (the possibility to use a string is preserved for backward compatibility)
43 - Even more new translation, thanks a lot to all contributors!
44 - Support for automatic dark theme
45 - Fixed wobling admin buttons (light and dark default themes)
46 - Disable file deduplication by default
47 - Fix side effects of setting too high values in php configuration for async upload
48 - Add support for X-Sendfile
49 - Retry on more type of possible errors
50 - Move docker image to PHP 8.1
51 - Print more error details in case of issue
52 - Few more little fixes
53 - IRC channel to discuss :)
55 New configuration items:
56 - `max_upload_chunk_size_bytes` option
58 - Defaulting `file_hash` option from `md5` to `random`
63 - Admin pannel can output informations for bug opening
65 - Fix autocomplete field for passwords
67 - Disallow file preview for image/svg+xml files
68 - Expiry after a fortnight (2 weeks)
69 - Typo and spelling mistakes
70 - Upgrade from 4.3.0: in-place upgrade
72 New configuration items:
73 - `fortnight` value in `availabilities` array (default to `true`)
77 - Fix various docker errors
78 - Fix various upload errors
79 - Add composer (useful for CI)
81 - Add option 'store_uploader_ip' to avoid uploaders ip logging
82 - Upgrade from 4.2.0: in-place upgrade
84 New configuration items:
85 - `store_uploader_ip` (default to `true`)
89 - New file_hash option to eventually speed-up file identification process
90 - one_time_download is now optional
91 - Litespeed workaround for large files
92 - Admin interface can compute data folder size
93 - REUSE compliance test
94 - multiple docker features: mcrypt support, daily cleanup, unprivileged user
95 - Add upload password capability in script options
96 - Various bugfixes around retries and error management
97 - Automatically lower chunk size sent to server refusing large chunks
98 - Romanian lang support and other various lang support
99 - Upgrade from 4.1.1: in-place upgrade
103 - Fix lang sanity check
104 - Upgrade from 4.1.0: in-place upgrade
108 - Fix upload password and allowed ip (#201)
109 - Code refactorisation of IP checking
110 - Fix expiration dates
111 - Add better support for Accept-Language
113 - More languages supported and language fixes
114 - Upgrade from 4.0.0: in-place upgrade
118 - Removed plain-text password support for admin auth (breaking change).
119 - Default folder sub-division to 8 characters (breaking change).
120 - New option `upload_ip_nopassword` to allow a list of IP to access Jirafeau without password
121 - Bugfix with LibreJS
122 - Other minor bug fixes
123 - More languages supported
125 ### Upgrade from 3.4.1 to 4.0.0
127 You may have to change your administrator password in your config file as admin password are only stored using sha256 (SHA2).
128 To do so, edit `lib/config.local.php` and update `admin_password` option using `echo -n MyNewPassw0rd | sha256sum` command.
130 Subfolder division changed in Jirafeau storage. You can either start from a fresh `var-` folder or you need to migrate your data.
132 In order to migrate your existing data:
133 1. Be sure to have a working backup of your Jirafeau instance and/or the rest of your hosting before any operation
134 2. Go to `var-` folder
135 3. Be sure you have read and write permissions on files and folders with your current user
136 4. Run the following commands:
138 # Migrate files folder
139 find files -type f ! -name "*_count" | while read f; do bn="$(basename "$f")"; dst="files/${bn:0:8}/${bn:8:8}/${bn:16:8}/${bn:24:8}/"; mkdir -p "$dst"; mv "$f" "$dst" ; mv "${f}_count" "$dst"; done; find files -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
140 # Migrate links folder
141 find links -type f | while read link; do bn="$(basename "$link")"; mkdir "links/$bn"; mv "$link" "links/$bn/"; done; find links -maxdepth 1 -type d -iname "?" -exec rm -rf {} \;
146 - Security fixes, thanks [Bishopfox Team](https://www.bishopfox.com/)
149 - Advertise JavaScript license for LibreJS compatibility
151 - Upgrade from 3.4.0: in-place upgrade
155 - Add encryption support in bash script
156 - Refactoring of lang system for simpler management
157 - Removed installation step asking for language
158 - Merged weblate contributions
159 - Fixed some spelling issues
160 - Upgrade from 3.3.0 : in-place upgrade
164 - Added Docker Support
165 - Added a copy button next to links to copy URLs in clipboard
166 - Now use a delete page to confirm file deletion (#136)
167 - Fixed object ProgressEvent Error (#127)
168 - Added configuration tips for web servers
171 - Removed useless alias API support (some old toy)
172 - Upgrade from 3.2.1 : in-place upgrade
176 - fix download view after an upload
177 - Upgrade from 3.2.0 : in-place upgrade
181 - Update translations from Update translations from weblate
183 - Fix regression on admin password setting
184 - Upgrade from 3.1.0 : in-place upgrade
188 - Fix regression on user authentication (see #113)
189 - Some cosmetic change
190 - Upgrade from 3.0.0 : in-place upgrade
194 - Remove XHTML doctype, support HTML5 only → breaking change for older browsers
195 - Remove redundant code
196 - Remove baseurl usage and set absolute links instead, which for example fixes SSL issues
197 - Extend contribution guide
198 - Switch to PSR-2 code style (fix line endings, indentations, whitespaces, etc)
199 - Declare system requirements
200 - Catch API errors in upload form
201 - Allow clients to upload files depending on IP or password
202 - Set UTC as timezone to prevent date/time issues
203 - Show readable date & time information
204 - Fix UI glitches in admin panel and upload form
205 - Upgrade from 2.0.0 : in-place upgrade
209 - Various documentation improvements
210 - Simplify automatic generation of local configuration file
212 - Bash Script: Enhanced help, show version, return link to web view as well
213 - »Terms of Service« refactored - Enable admin to overwrite the ToS, without changing existing source code → breaking, see upgrade notes
215 ### Upgrade from version 1.2.0 to 2.0.0
217 The "Terms of Service" text file changed.
218 To reuse a custom version of your ToS, move your ```/tos_text.php``` file to ```/lib/tos.local.txt``` and remove all HTML und PHP Tags, leaving a regular text file.
222 - Link on API page to generate bash script
223 - More informative error codes for API
224 - Security Fix: Prevent authentication bypass for admin interface
225 - CLI script to remove expired files automatically with a cron job
226 - SHA-256 hash the admin password
227 - New theme "elegantish"
228 - Fix for JavaScript MIME-Type, prevents blocking the resource on some servers
229 - Show download link for a file in admin interface
230 - Default time for expiration (set to 'month' by default)
231 - New expiration time: 'quarter'
232 - A lot of translation contributions
234 - Upgrade from 1.1: in-place upgrade
239 - Add optional server side encryption
240 - Unlimited file size upload using HTML5 file API
241 - Show speed and estimated time during upload
243 - A lot of new languages
244 - Small API to upload files
245 - Limit access to Jirafeau using IP, mask, passwords
246 - Manage (some) proxy headers
247 - Configure your maximal upload size
248 - Configure file's lifetime durations
250 - Get Jirafeau's version in admin interface
252 ### Upgrade from version 1.0 to 1.1
254 - Download URL changed. Add a rewrite rule in your web server configuration to rename ```file.php``` to ```f.php``` to make older, still existing links work again-
255 - The default theme changed. Optionally change the theme in ```lib/config.local.php``` to "courgette"
259 The very first version of Jirafeau after the fork of Jyraphe.
263 - Delete link for each upload
264 - No more clear text password storage
265 - Simple language support
266 - Add an admin interface
269 - New path system to manage large number of files
270 - New option to show a page at download time
271 - Add option to activate or not preview mode