+Installation steps:
+- Clone the [repository](https://gitlab.com/mojo42/Jirafeau/) or download the latest [release](https://gitlab.com/mojo42/Jirafeau/tags) from GitLab onto your webserver
+- Set owner & group according to your webserver
+- A) Setup with the installation wizard (web):
+ - Open your browser and go to your installed location, eg. ```https://example.com/jirafeau/```
+ - The script will redirect to you to a minimal installation wizard to set up all required options
+ - All optional parameters may be set in ```lib/config.local.php```, take a look at ```lib/config.original.php``` to see all default values
+- B) Setup without the installation wizard (cli):
+ - Just copy ```config.original.php``` to ```config.local.php``` and customize it
+
+## Upgrade
+
+### General procedure for all versions
+
+1. Backup your Jirafeau installation!
+2. Block access to Jirafeau
+3. Checkout the new version with Git using the [tagged release](https://gitlab.com/mojo42/Jirafeau/tags)
+ * 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.
+4. With you browser, go to your Jirafeau root page
+5. Follow the installation wizard, it should propose you the same data folder or even update automatically
+7. Check your ```/lib/config.local.php``` and compare it with the ```/lib/config.original.php``` to see if new configuration items are available
+
+### From version 1.0 to 1.1
+
+1. The 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
+1. The default theme changed
+ * Optionally change the theme in ```lib/config.local.php``` to »courgette«
+
+### From version 1.2.0 to 2.0.0
+
+1. The "Terms of Service" text file changed
+ * To reuse previous changes to the ToS, move the old ```/tos_text.php``` file to ```/lib/tos.local.txt``` and remove all HTML und PHP Tags, leaving a regular text file
+
+### from version 2.0.0 to 3.4.1
+
+There is nothing special to do to update from/to the following versions:
+- 2.0.0 -> 3.0.0
+- 3.0.0 -> 3.1.0
+- 3.1.0 -> 3.2.0
+- 3.2.0 -> 3.2.1
+- 3.2.1 -> 3.3.0
+- 3.3.0 -> 3.4.0
+- 3.4.0 -> 3.4.1
+
+### From 3.4.1 to 4.0.0
+
+You may have to change your administrator password in your config file as admin password are only stored using sha256 (SHA2).
+To do so, edit `lib/config.local.php` and update `admin_password` option using `echo -n MyNewPassw0rd | sha256sum` command.
+
+Subfolder division changed so Jirafeau storage. If you need to migrate your data:
+1. Be sure to make any backups before any operation
+2. Go to `var-` folder
+3. Be sure you have the rigths to create and delete files and folders with your current user
+4. Run the following commands:
+```bash
+# Migrate files folder
+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 {} \;
+# Migrate links folder
+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 {} \;
+```
+
+### Troubleshooting
+
+If you have some troubles, consider the following cases
+
+- Check your ```/lib/config.local.php``` file and compare it with ```/lib/config.original.php```, the configuration syntax or a parameter may have changed
+- Check owner & permissions of your files
+
+## Security