From c4d68672a4c59e2ee57833a217c0d4b977028cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Fri, 17 Feb 2023 22:34:43 +0100 Subject: [PATCH 01/13] v2 --- conf/nginx.conf | 2 +- manifest.toml | 51 ++++++++++++++++++++++++++++++++++++++++ scripts/_common.sh | 4 ++-- scripts/backup | 14 +++++------ scripts/install | 58 +++++++++++++++++++++++----------------------- scripts/remove | 20 ++++++++-------- scripts/restore | 36 ++++++++++++++-------------- scripts/upgrade | 52 ++++++++++++++++++++--------------------- 8 files changed, 144 insertions(+), 93 deletions(-) create mode 100644 manifest.toml diff --git a/conf/nginx.conf b/conf/nginx.conf index c9fb7eb..cda1d81 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -2,7 +2,7 @@ location __PATH__/ { # Path to source - alias __FINALPATH__/; + alias __INSTALL_DIR__/; index index.php __PATH__/_h5ai/public/index.php; diff --git a/manifest.toml b/manifest.toml new file mode 100644 index 0000000..8e037be --- /dev/null +++ b/manifest.toml @@ -0,0 +1,51 @@ +packaging_format = 2 + +id = "h5ai" +name = "h5ai" +description.en = "Modern HTTP web server index for NGINX" +description.fr = "Serveur moderne d'index pour NGINX" + +version = "0.30.0~ynh4" + +maintainers = ["alexAubin"] + +[upstream] +license = "MIT" +website = "https://larsjung.de/h5ai/" +demo = "https://larsjung.de/h5ai/demo/" +admindoc = "https://larsjung.de/h5ai/" +code = "https://github.com/lrsjng/h5ai" +cpe = "???" # FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, Yunohost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number) +fund = "???" # FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin. + +[integration] +yunohost = ">= 11.0.9" +architectures = "all" # FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"] +multi_instance = true +ldap = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "sso" key : the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials. +sso = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "ldap" key : the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal. +disk = "50M" # FIXME: replace with an **estimate** minimum disk requirement. e.g. 20M, 400M, 1G, ... +ram.build = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ... +ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ... + +[install] + [install.domain] + # this is a generic question - ask strings are automatically handled by Yunohost's core + type = "domain" + + [install.path] + # this is a generic question - ask strings are automatically handled by Yunohost's core + type = "path" + default = "/documents" + + [install.init_main_permission] + type = "group" + default = "visitors" + +[resources] + [resources.system_user] + + [resources.install_dir] + + [resources.permissions] + main.url = "/" diff --git a/scripts/_common.sh b/scripts/_common.sh index d311fd0..452a1a3 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -8,10 +8,10 @@ YNH_PHP_VERSION=7.4 -php_dependencies="php$YNH_PHP_VERSION-fpm" +#REMOVEME? php_dependencies="php$YNH_PHP_VERSION-fpm" # dependencies used by the app (must be on a single line) -pkg_dependencies="ffmpeg imagemagick $php_dependencies" +#REMOVEME? pkg_dependencies="ffmpeg imagemagick $php_dependencies" #================================================= # PERSONAL HELPERS diff --git a/scripts/backup b/scripts/backup index 140f309..84cfd2d 100644 --- a/scripts/backup +++ b/scripts/backup @@ -14,22 +14,22 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { +#REMOVEME? ynh_clean_setup () { true } # Exit if an error occurs during the execution of the script -ynh_abort_if_errors +#REMOVEME? ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= ynh_print_info --message="Loading settings..." -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -domain=$(ynh_app_setting_get --app=$app --key=domain) -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) +#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # DECLARE DATA AND CONF FILES TO BACKUP @@ -40,7 +40,7 @@ ynh_print_info --message="Declaring files to be backed up..." # BACKUP THE APP MAIN DIR #================================================= -ynh_backup --src_path="$final_path" --is_big +ynh_backup --src_path="$install_dir" --is_big #================================================= # BACKUP THE NGINX CONFIGURATION diff --git a/scripts/install b/scripts/install index 2880df2..6554c4d 100644 --- a/scripts/install +++ b/scripts/install @@ -13,21 +13,21 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { +#REMOVEME? ynh_clean_setup () { true } # Exit if an error occurs during the execution of the script -ynh_abort_if_errors +#REMOVEME? ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= -domain=$YNH_APP_ARG_DOMAIN -path_url=$YNH_APP_ARG_PATH -is_public=$YNH_APP_ARG_IS_PUBLIC +#REMOVEME? domain=$YNH_APP_ARG_DOMAIN +#REMOVEME? path=$YNH_APP_ARG_PATH +#REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME fpm_footprint="low" fpm_free_footprint=0 @@ -36,26 +36,26 @@ fpm_usage="low" #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= -ynh_script_progression --message="Validating installation parameters..." --weight=1 +#REMOVEME? ynh_script_progression --message="Validating installation parameters..." --weight=1 -if [[ "$path_url" != "/" ]] +if [[ "$path" != "/" ]] then # We use the path url name (e.g. /documents) instead of h5ai for convenience... - final_path=/var/www$path_url +#REMOVEME? install_dir=/var/www$path else - final_path=/var/www/$app +#REMOVEME? install_dir=/var/www/$app fi # Register (book) web path -ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url +#REMOVEME? ynh_webpath_register --app=$app --domain=$domain --path=$path #================================================= # STORE SETTINGS FROM MANIFEST #================================================= -ynh_script_progression --message="Storing installation settings..." --weight=1 +#REMOVEME? ynh_script_progression --message="Storing installation settings..." --weight=1 -ynh_app_setting_set --app=$app --key=domain --value=$domain -ynh_app_setting_set --app=$app --key=path --value=$path_url +#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain +#REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint ynh_app_setting_set --app=$app --key=fpm_free_footprint --value=$fpm_free_footprint ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage @@ -63,30 +63,30 @@ ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage #================================================= # INSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Installing dependencies..." --weight=1 +#REMOVEME? ynh_script_progression --message="Installing dependencies..." --weight=1 -ynh_install_app_dependencies $pkg_dependencies +#REMOVEME? ynh_install_app_dependencies $pkg_dependencies #================================================= # CREATE DEDICATED USER #================================================= -ynh_script_progression --message="Configuring system user..." --weight=1 +#REMOVEME? ynh_script_progression --message="Configuring system user..." --weight=1 # Create a system user -ynh_system_user_create --username=$app --home_dir="$final_path" +#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression --message="Setting up source files..." --weight=4 -ynh_app_setting_set --app=$app --key=final_path --value=$final_path +#REMOVEME? ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir # Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$final_path" +ynh_setup_source --dest_dir="$install_dir" -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" +chown -R $app:www-data "$install_dir" #================================================= # PHP-FPM CONFIGURATION @@ -95,7 +95,7 @@ ynh_script_progression --message="Configuring PHP-FPM..." --weight=1 # Create a dedicated PHP-FPM config ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # NGINX CONFIGURATION @@ -110,22 +110,22 @@ ynh_add_nginx_config #================================================= # SETUP SSOWAT #================================================= -ynh_script_progression --message="Configuring permissions..." --weight=1 +#REMOVEME? ynh_script_progression --message="Configuring permissions..." --weight=1 # Make app public if necessary -if [ $is_public -eq 1 ] +#REMOVEME? if [ $is_public -eq 1 ] then # Everyone can access the app. # The "main" permission is automatically created before the install script. - ynh_permission_update --permission="main" --add="visitors" +#REMOVEME? ynh_permission_update --permission="main" --add="visitors" fi #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 +#REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." --weight=1 -ynh_systemd_action --service_name=nginx --action=reload +#REMOVEME? ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/remove b/scripts/remove index b192533..29860a7 100644 --- a/scripts/remove +++ b/scripts/remove @@ -14,25 +14,25 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Loading settings..." --weight=1 -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get --app=$app --key=domain) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) #================================================= # STANDARD REMOVE #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing app main directory..." --weight=3 +#REMOVEME? ynh_script_progression --message="Removing app main directory..." --weight=3 # Remove the app directory securely -ynh_secure_remove --file="$final_path/_h5ai" +#REMOVEME? ynh_secure_remove --file="$install_dir/_h5ai" # Remove the data directory if --purge option is used if [ "${YNH_APP_PURGE:-0}" -eq 1 ] then - ynh_secure_remove --file="$final_path" +#REMOVEME? ynh_secure_remove --file="$install_dir" fi #================================================= @@ -54,20 +54,20 @@ ynh_remove_fpm_config #================================================= # REMOVE DEPENDENCIES #================================================= -ynh_script_progression --message="Removing dependencies..." --weight=1 +#REMOVEME? ynh_script_progression --message="Removing dependencies..." --weight=1 # Remove metapackage and its dependencies -ynh_remove_app_dependencies +#REMOVEME? ynh_remove_app_dependencies #================================================= # GENERIC FINALIZATION #================================================= # REMOVE DEDICATED USER #================================================= -ynh_script_progression --message="Removing the dedicated system user..." --weight=1 +#REMOVEME? ynh_script_progression --message="Removing the dedicated system user..." --weight=1 # Delete a system user -ynh_system_user_delete --username=$app +#REMOVEME? ynh_system_user_delete --username=$app #================================================= # END OF SCRIPT diff --git a/scripts/restore b/scripts/restore index 951ab6c..70be523 100644 --- a/scripts/restore +++ b/scripts/restore @@ -14,62 +14,62 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { +#REMOVEME? ynh_clean_setup () { true } # Exit if an error occurs during the execution of the script -ynh_abort_if_errors +#REMOVEME? ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= ynh_script_progression --message="Loading settings..." --weight=1 -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) +#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) +#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) -fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) -fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) +#REMOVEME? fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +#REMOVEME? fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= -ynh_script_progression --message="Validating restoration parameters..." --weight=1 +#REMOVEME? ynh_script_progression --message="Validating restoration parameters..." --weight=1 #================================================= # STANDARD RESTORATION STEPS #================================================= # RECREATE THE DEDICATED USER #================================================= -ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 +#REMOVEME? ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 # Create the dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" +#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" #================================================= # RESTORE THE APP MAIN DIR #================================================= ynh_script_progression --message="Restoring the app main directory..." --weight=4 -ynh_restore_file --origin_path="$final_path" --not_mandatory +ynh_restore_file --origin_path="$install_dir" --not_mandatory -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" +chown -R $app:www-data "$install_dir" #================================================= # SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Reinstalling dependencies..." --weight=1 +#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=1 # Define and install dependencies -ynh_install_app_dependencies $pkg_dependencies +#REMOVEME? ynh_install_app_dependencies $pkg_dependencies #================================================= # RESTORE THE PHP-FPM CONFIGURATION diff --git a/scripts/upgrade b/scripts/upgrade index 88b463c..0aad612 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -14,23 +14,23 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Loading settings..." --weight=1 -app=$YNH_APP_INSTANCE_NAME -if [[ "$path_url" != "/" ]] +#REMOVEME? app=$YNH_APP_INSTANCE_NAME +if [[ "$path" != "/" ]] then # We use the path url name (e.g. /documents) instead of h5ai for convenience... - final_path=/var/www/$path_url +#REMOVEME? install_dir=/var/www/$path else - final_path=/var/www/$app +#REMOVEME? install_dir=/var/www/$app fi -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) +#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) phpversion=$YNH_PHP_VERSION -fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) -fpm_free_footprint=$(ynh_app_setting_get --app=$app --key=fpm_free_footprint) -fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) +#REMOVEME? fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) +#REMOVEME? fpm_free_footprint=$(ynh_app_setting_get --app=$app --key=fpm_free_footprint) +#REMOVEME? fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) #================================================= # CHECK VERSION @@ -41,16 +41,16 @@ upgrade_type=$(ynh_check_app_version_changed) #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= -ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 +#REMOVEME? ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 # Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { +#REMOVEME? ynh_backup_before_upgrade +#REMOVEME? ynh_clean_setup () { # Restore it if the upgrade fails - ynh_restore_upgradebackup +#REMOVEME? ynh_restore_upgradebackup } # Exit if an error occurs during the execution of the script -ynh_abort_if_errors +#REMOVEME? ynh_abort_if_errors #================================================= # STANDARD UPGRADE STEPS @@ -80,10 +80,10 @@ fi #================================================= # CREATE DEDICATED USER #================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 +#REMOVEME? ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 # Create a dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" +#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -94,19 +94,19 @@ then ynh_script_progression --message="Upgrading source files..." --weight=4 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" + ynh_setup_source --dest_dir="$install_dir" fi -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" +chown -R $app:www-data "$install_dir" #================================================= # UPGRADE DEPENDENCIES #================================================= -ynh_script_progression --message="Upgrading dependencies..." --weight=1 +#REMOVEME? ynh_script_progression --message="Upgrading dependencies..." --weight=1 -ynh_install_app_dependencies $pkg_dependencies +#REMOVEME? ynh_install_app_dependencies $pkg_dependencies #================================================= # PHP-FPM CONFIGURATION @@ -115,7 +115,7 @@ ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # NGINX CONFIGURATION @@ -130,9 +130,9 @@ ynh_add_nginx_config #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 +#REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." --weight=1 -ynh_systemd_action --service_name=nginx --action=reload +#REMOVEME? ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT From 81adda6b198a8e02df13978627272dcacc66b151 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Fri, 17 Feb 2023 22:45:03 +0100 Subject: [PATCH 02/13] Fix --- doc/{DISCLAIMER.md => ADMIN.md} | 0 doc/{DISCLAIMER_fr.md => ADMIN_fr.md} | 0 manifest.json | 50 ---------------- manifest.toml | 21 ++++--- scripts/_common.sh | 7 +-- scripts/backup | 21 ------- scripts/change_url | 10 ---- scripts/install | 85 +-------------------------- scripts/remove | 53 +---------------- scripts/restore | 69 ++-------------------- scripts/upgrade | 66 ++------------------- tests.toml | 10 ++++ 12 files changed, 35 insertions(+), 357 deletions(-) rename doc/{DISCLAIMER.md => ADMIN.md} (100%) rename doc/{DISCLAIMER_fr.md => ADMIN_fr.md} (100%) delete mode 100644 manifest.json create mode 100644 tests.toml diff --git a/doc/DISCLAIMER.md b/doc/ADMIN.md similarity index 100% rename from doc/DISCLAIMER.md rename to doc/ADMIN.md diff --git a/doc/DISCLAIMER_fr.md b/doc/ADMIN_fr.md similarity index 100% rename from doc/DISCLAIMER_fr.md rename to doc/ADMIN_fr.md diff --git a/manifest.json b/manifest.json deleted file mode 100644 index c335aa9..0000000 --- a/manifest.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "h5ai", - "id": "h5ai", - "packaging_format": 1, - "description": { - "en": "Modern HTTP web server index for NGINX", - "fr": "Serveur moderne d'index pour NGINX" - }, - "version": "0.30.0~ynh4", - "url": "https://larsjung.de/h5ai/", - "upstream": { - "license": "MIT", - "website": "https://larsjung.de/h5ai/", - "demo": "https://larsjung.de/h5ai/demo/", - "admindoc": "https://larsjung.de/h5ai/", - "code": "https://github.com/lrsjng/h5ai" - }, - "license": "MIT", - "maintainer": { - "name": "alexAubin", - "email": "alex.aubin@mailoo.org" - }, - "requirements": { - "yunohost": ">= 11.0.9" - }, - "multi_instance": true, - "services": [ - "nginx", - "php7.4-fpm" - ], - "arguments": { - "install": [ - { - "name": "domain", - "type": "domain" - }, - { - "name": "path", - "type": "path", - "example": "/documents", - "default": "/documents" - }, - { - "name": "is_public", - "type": "boolean", - "default": true - } - ] - } -} diff --git a/manifest.toml b/manifest.toml index 8e037be..57ea7d1 100644 --- a/manifest.toml +++ b/manifest.toml @@ -15,26 +15,22 @@ website = "https://larsjung.de/h5ai/" demo = "https://larsjung.de/h5ai/demo/" admindoc = "https://larsjung.de/h5ai/" code = "https://github.com/lrsjng/h5ai" -cpe = "???" # FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, Yunohost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number) -fund = "???" # FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin. [integration] -yunohost = ">= 11.0.9" -architectures = "all" # FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"] +yunohost = ">= 11.1.7" +architectures = "all" multi_instance = true -ldap = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "sso" key : the "ldap" key corresponds to wether or not a user *can* login on the app using its YunoHost credentials. -sso = "?" # FIXME: replace with true, false, or "not_relevant". Not to confuse with the "ldap" key : the "sso" key corresponds to wether or not a user is *automatically logged-in* on the app when logged-in on the YunoHost portal. -disk = "50M" # FIXME: replace with an **estimate** minimum disk requirement. e.g. 20M, 400M, 1G, ... -ram.build = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ... -ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requirement. e.g. 50M, 400M, 1G, ... +ldap = false +sso = false +disk = "50M" +ram.build = "50M" +ram.runtime = "50M" [install] [install.domain] - # this is a generic question - ask strings are automatically handled by Yunohost's core type = "domain" [install.path] - # this is a generic question - ask strings are automatically handled by Yunohost's core type = "path" default = "/documents" @@ -49,3 +45,6 @@ ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requiremen [resources.permissions] main.url = "/" + + [resources.apt] + packages = "php8.0-fpm ffmpeg imagemagick" diff --git a/scripts/_common.sh b/scripts/_common.sh index 452a1a3..e0afece 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -6,12 +6,7 @@ # PHP APP SPECIFIC #================================================= -YNH_PHP_VERSION=7.4 - -#REMOVEME? php_dependencies="php$YNH_PHP_VERSION-fpm" - -# dependencies used by the app (must be on a single line) -#REMOVEME? pkg_dependencies="ffmpeg imagemagick $php_dependencies" +YNH_PHP_VERSION=8.0 #================================================= # PERSONAL HELPERS diff --git a/scripts/backup b/scripts/backup index 84cfd2d..c9a5a41 100644 --- a/scripts/backup +++ b/scripts/backup @@ -10,27 +10,6 @@ source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -#REMOVEME? ynh_clean_setup () { - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_print_info --message="Loading settings..." - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) -#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) -#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) - #================================================= # DECLARE DATA AND CONF FILES TO BACKUP #================================================= diff --git a/scripts/change_url b/scripts/change_url index fa8736a..022afd2 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -19,16 +19,6 @@ old_path=$YNH_APP_OLD_PATH new_domain=$YNH_APP_NEW_DOMAIN new_path=$YNH_APP_NEW_PATH -app=$YNH_APP_INSTANCE_NAME - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading settings..." --weight=1 - -# Needed for helper "ynh_add_nginx_config" -final_path=$(ynh_app_setting_get --app=$app --key=final_path) - #================================================= # BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP #================================================= diff --git a/scripts/install b/scripts/install index 6554c4d..0d839e4 100644 --- a/scripts/install +++ b/scripts/install @@ -9,124 +9,43 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -#REMOVEME? ynh_clean_setup () { - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= -#REMOVEME? domain=$YNH_APP_ARG_DOMAIN -#REMOVEME? path=$YNH_APP_ARG_PATH -#REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - fpm_footprint="low" fpm_free_footprint=0 fpm_usage="low" -#================================================= -# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS -#================================================= -#REMOVEME? ynh_script_progression --message="Validating installation parameters..." --weight=1 - -if [[ "$path" != "/" ]] -then - # We use the path url name (e.g. /documents) instead of h5ai for convenience... -#REMOVEME? install_dir=/var/www$path -else -#REMOVEME? install_dir=/var/www/$app -fi - -# Register (book) web path -#REMOVEME? ynh_webpath_register --app=$app --domain=$domain --path=$path - #================================================= # STORE SETTINGS FROM MANIFEST #================================================= -#REMOVEME? ynh_script_progression --message="Storing installation settings..." --weight=1 -#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain -#REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint ynh_app_setting_set --app=$app --key=fpm_free_footprint --value=$fpm_free_footprint ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage -#================================================= -# INSTALL DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Installing dependencies..." --weight=1 - -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# CREATE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Configuring system user..." --weight=1 - -# Create a system user -#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" - #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression --message="Setting up source files..." --weight=4 -#REMOVEME? ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" -chmod 750 "$install_dir" -chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= -# PHP-FPM CONFIGURATION +# SYSTEM CONFIGURATION #================================================= -ynh_script_progression --message="Configuring PHP-FPM..." --weight=1 +ynh_script_progression --message="Adding system configurations related to $app ..." --weight=3 # Create a dedicated PHP-FPM config ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint -#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) - -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Configuring NGINX web server..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP SSOWAT -#================================================= -#REMOVEME? ynh_script_progression --message="Configuring permissions..." --weight=1 - -# Make app public if necessary -#REMOVEME? if [ $is_public -eq 1 ] -then - # Everyone can access the app. - # The "main" permission is automatically created before the install script. -#REMOVEME? ynh_permission_update --permission="main" --add="visitors" -fi - -#================================================= -# RELOAD NGINX -#================================================= -#REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -#REMOVEME? ynh_systemd_action --service_name=nginx --action=reload - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/remove b/scripts/remove index 29860a7..5b17c2d 100644 --- a/scripts/remove +++ b/scripts/remove @@ -10,65 +10,16 @@ source _common.sh source /usr/share/yunohost/helpers #================================================= -# LOAD SETTINGS +# REMOVE SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Loading settings..." --weight=1 - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) - -#================================================= -# STANDARD REMOVE -#================================================= -# REMOVE APP MAIN DIR -#================================================= -#REMOVEME? ynh_script_progression --message="Removing app main directory..." --weight=3 - -# Remove the app directory securely -#REMOVEME? ynh_secure_remove --file="$install_dir/_h5ai" - -# Remove the data directory if --purge option is used -if [ "${YNH_APP_PURGE:-0}" -eq 1 ] -then -#REMOVEME? ynh_secure_remove --file="$install_dir" -fi - -#================================================= -# REMOVE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 # Remove the dedicated NGINX config ynh_remove_nginx_config -#================================================= -# REMOVE PHP-FPM CONFIGURATION -#================================================= -ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=1 - # Remove the dedicated PHP-FPM config ynh_remove_fpm_config -#================================================= -# REMOVE DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Removing dependencies..." --weight=1 - -# Remove metapackage and its dependencies -#REMOVEME? ynh_remove_app_dependencies - -#================================================= -# GENERIC FINALIZATION -#================================================= -# REMOVE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Removing the dedicated system user..." --weight=1 - -# Delete a system user -#REMOVEME? ynh_system_user_delete --username=$app - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/restore b/scripts/restore index 70be523..b3cc02b 100644 --- a/scripts/restore +++ b/scripts/restore @@ -10,46 +10,6 @@ source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -#REMOVEME? ynh_clean_setup () { - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading settings..." --weight=1 - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) -#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path) -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) -#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) - -#REMOVEME? fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) -#REMOVEME? fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) - -#================================================= -# CHECK IF THE APP CAN BE RESTORED -#================================================= -#REMOVEME? ynh_script_progression --message="Validating restoration parameters..." --weight=1 - -#================================================= -# STANDARD RESTORATION STEPS -#================================================= -# RECREATE THE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 - -# Create the dedicated user (if not existing) -#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" - #================================================= # RESTORE THE APP MAIN DIR #================================================= @@ -57,45 +17,26 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$install_dir" --not_mandatory -chmod 750 "$install_dir" -chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= -# SPECIFIC RESTORATION +# RESTORE SYSTEM CONFIGURATIONS #================================================= -# REINSTALL DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=1 - -# Define and install dependencies -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# RESTORE THE PHP-FPM CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the PHP-FPM configuration..." --weight=1 +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" - -# Recreate a dedicated php-fpm config ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$phpversion - -#================================================= -# RESTORE THE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the NGINX web server configuration..." --weight=1 - ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # GENERIC FINALIZATION #================================================= -# RELOAD NGINX AND PHP-FPM +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE #================================================= -ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." --weight=1 +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 ynh_systemd_action --service_name=php$phpversion-fpm --action=reload + ynh_systemd_action --service_name=nginx --action=reload #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 0aad612..281c6c9 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -14,44 +14,20 @@ source /usr/share/yunohost/helpers #================================================= ynh_script_progression --message="Loading settings..." --weight=1 -#REMOVEME? app=$YNH_APP_INSTANCE_NAME if [[ "$path" != "/" ]] then - # We use the path url name (e.g. /documents) instead of h5ai for convenience... -#REMOVEME? install_dir=/var/www/$path + # We use the path url name (e.g. /documents) instead of h5ai for convenience... + install_dir=/var/www/$path else -#REMOVEME? install_dir=/var/www/$app + install_dir=/var/www/$app fi -#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) -#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path) -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) -phpversion=$YNH_PHP_VERSION - -#REMOVEME? fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) -#REMOVEME? fpm_free_footprint=$(ynh_app_setting_get --app=$app --key=fpm_free_footprint) -#REMOVEME? fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) - #================================================= # CHECK VERSION #================================================= upgrade_type=$(ynh_check_app_version_changed) -#================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP -#================================================= -#REMOVEME? ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 - -# Backup the current version of the app -#REMOVEME? ynh_backup_before_upgrade -#REMOVEME? ynh_clean_setup () { - # Restore it if the upgrade fails -#REMOVEME? ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - #================================================= # STANDARD UPGRADE STEPS #================================================= @@ -77,14 +53,6 @@ if [ -z "$fpm_usage" ]; then ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage fi -#================================================= -# CREATE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 - -# Create a dedicated user (if not existing) -#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir" - #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -97,43 +65,19 @@ then ynh_setup_source --dest_dir="$install_dir" fi -chmod 750 "$install_dir" -chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= -# UPGRADE DEPENDENCIES +# REAPPLY SYSTEM CONFIGURATIONS #================================================= -#REMOVEME? ynh_script_progression --message="Upgrading dependencies..." --weight=1 - -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# PHP-FPM CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 +ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=4 # Create a dedicated PHP-FPM config ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint -#REMOVEME? phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) - -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# GENERIC FINALIZATION -#================================================= -# RELOAD NGINX -#================================================= -#REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -#REMOVEME? ynh_systemd_action --service_name=nginx --action=reload - #================================================= # END OF SCRIPT #================================================= diff --git a/tests.toml b/tests.toml new file mode 100644 index 0000000..84865b2 --- /dev/null +++ b/tests.toml @@ -0,0 +1,10 @@ +test_format = 1.0 + +[default] + + # ------------------------------- + # Commits to test upgrade from + # ------------------------------- + + test_upgrade_from.af190a49.name = "Upgrade from 0.30.0" + \ No newline at end of file From 84397aff97edd6aca46d49048ad9eb007fac7b9c Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Fri, 17 Feb 2023 21:45:08 +0000 Subject: [PATCH 03/13] Auto-update README --- README.md | 11 ++--------- README_fr.md | 31 ++++++++++++------------------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 943b614..985257b 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ It shall NOT be edited by hand. # h5ai for YunoHost -[![Integration level](https://dash.yunohost.org/integration/h5ai.svg)](https://dash.yunohost.org/appci/app/h5ai) ![Working status](https://ci-apps.yunohost.org/ci/badges/h5ai.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/h5ai.maintain.svg) +[![Integration level](https://dash.yunohost.org/integration/h5ai.svg)](https://dash.yunohost.org/appci/app/h5ai) ![Working status](https://ci-apps.yunohost.org/ci/badges/h5ai.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/h5ai.maintain.svg) + [![Install h5ai with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=h5ai) *[Lire ce readme en français.](./README_fr.md)* @@ -33,14 +34,6 @@ Some of the optional features are: file sorting, different view modes, localizat ![Screenshot of h5ai](./doc/screenshots/screenshot.jpg) ![Screenshot of h5ai](./doc/screenshots/h5ai-1024x540.png) -## Disclaimers / important information - -## Configuration - -After installing the application, you can add documents in `/var/www/documents` (or the corresponding path you choosed). -h5ai doesn't allow to edit or upload new documents directly from the web browser. But you can imagine coupling the folder `/var/www/documents` to Nextcloud or some sort of FTP to allow some users to upload content, and use h5ai as a public read-only interface. -The main configuration file is `_h5ai/private/conf/options.json`. You might want to change some of the documented settings. But there are some more files in `_h5ai/private/conf` you might have a look at. - ## Documentation and resources * Official app website: diff --git a/README_fr.md b/README_fr.md index c290517..6894de7 100644 --- a/README_fr.md +++ b/README_fr.md @@ -5,15 +5,16 @@ It shall NOT be edited by hand. # h5ai pour YunoHost -[![Niveau d'intégration](https://dash.yunohost.org/integration/h5ai.svg)](https://dash.yunohost.org/appci/app/h5ai) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/h5ai.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/h5ai.maintain.svg) +[![Niveau d’intégration](https://dash.yunohost.org/integration/h5ai.svg)](https://dash.yunohost.org/appci/app/h5ai) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/h5ai.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/h5ai.maintain.svg) + [![Installer h5ai avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=h5ai) *[Read this readme in english.](./README.md)* -> *Ce package vous permet d'installer h5ai rapidement et simplement sur un serveur YunoHost. -Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* +> *Ce package vous permet d’installer h5ai rapidement et simplement sur un serveur YunoHost. +Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l’installer et en profiter.* -## Vue d'ensemble +## Vue d’ensemble h5ai est un indexeur de fichiers moderne pour les serveurs web HTTP avec un focus sur vos fichiers. Les répertoires sont affichés de manière attrayante et leur navigation est améliorée par différentes vues, un fil d'Ariane et une arborescence. @@ -28,24 +29,16 @@ Parmi les fonctionnalités optionnelles, citons : le tri des fichiers, différen **Démo :** https://larsjung.de/h5ai/demo/ -## Captures d'écran +## Captures d’écran -![Capture d'écran de h5ai](./doc/screenshots/screenshot.jpg) -![Capture d'écran de h5ai](./doc/screenshots/h5ai-1024x540.png) - -## Avertissements / informations importantes - -## Configuration - -Après avoir installé l'application, vous pouvez ajouter des documents dans `/var/www/documents` (ou le chemin correspondant que vous avez choisi). -h5ai ne permet pas de modifier ou de télécharger de nouveaux documents directement à partir du navigateur Web. Vous pouvez imaginer coupler le dossier `/var/www/documents` à Nextcloud ou un FTP pour permettre à certains utilisateurs de télécharger du contenu et d'utiliser h5ai comme interface publique en lecture seule. -Le fichier de configuration principal est `_h5ai / private / conf / options.json`. Vous souhaiterez peut-être modifier certains des paramètres documentés. Mais il y a d'autres fichiers dans `_h5ai / private / conf` que vous pourriez consulter. +![Capture d’écran de h5ai](./doc/screenshots/screenshot.jpg) +![Capture d’écran de h5ai](./doc/screenshots/h5ai-1024x540.png) ## Documentations et ressources -* Site officiel de l'app : -* Documentation officielle de l'admin : -* Dépôt de code officiel de l'app : +* Site officiel de l’app : +* Documentation officielle de l’admin : +* Dépôt de code officiel de l’app : * Documentation YunoHost pour cette app : * Signaler un bug : @@ -61,4 +54,4 @@ ou sudo yunohost app upgrade h5ai -u https://github.com/YunoHost-Apps/h5ai_ynh/tree/testing --debug ``` -**Plus d'infos sur le packaging d'applications :** +**Plus d’infos sur le packaging d’applications :** \ No newline at end of file From a6b8bc896ae22f5877a21faddfd9b51b96c4762e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Fri, 17 Feb 2023 22:46:55 +0100 Subject: [PATCH 04/13] Update upgrade --- scripts/upgrade | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 281c6c9..d1b4968 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -36,19 +36,19 @@ upgrade_type=$(ynh_check_app_version_changed) ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 # If fpm_footprint doesn't exist, create it -if [ -z "$fpm_footprint" ]; then +if [ -z "${fpm_footprint:-}" ]; then fpm_footprint=low ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint fi # If fpm_free_footprint doesn't exist, create it -if [ -z "$fpm_free_footprint" ]; then +if [ -z "${fpm_free_footprint:-}" ]; then fpm_free_footprint=0 ynh_app_setting_set --app=$app --key=fpm_free_footprint --value=$fpm_free_footprint fi # If fpm_usage doesn't exist, create it -if [ -z "$fpm_usage" ]; then +if [ -z "${fpm_usage:-}" ]; then fpm_usage=low ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage fi From a38d356c7b92e3ab08dfc8c1347b42159d26d785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 18 Feb 2023 14:59:50 +0100 Subject: [PATCH 05/13] Delete h5ai-1024x540.png --- doc/screenshots/h5ai-1024x540.png | Bin 200833 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 doc/screenshots/h5ai-1024x540.png diff --git a/doc/screenshots/h5ai-1024x540.png b/doc/screenshots/h5ai-1024x540.png deleted file mode 100644 index 6c0cfba8f877f3cbcf4c6fe39014aee1229abb5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200833 zcmYhj2RzmP{{^m8LP$0j6(KWZugWUfu8?uF%ibd^Nygzt>f2}ifmsW{{#tA41f3K8E;^T47;{YjA>83xA*bd zP~E_DgvvnqOkKH^hczu~~llpcxKDG0i#Wd@J4zW&X61h-CCIu#I59$nhVos_j=_i)H> zX=w@UK%tC&8MOsdaJw4q=y)&aFmMF{98;yO;8W;GVw9~}yy=jMAbS#;D zOO#NysZjFvOj&Dq(>(u}JlkTbPkan}8vl;PRx5tP@+{Yz=!1j41jVCmCLDk9f_GiB6I5jUKe``BSHj69#*i-Ag-qM$Wl(1q@bmaWj5H7sf zVB~+s*$_uXkZlq9*)sJuah?7N5O85U-f6cjtx=$m=XY| z;z_TsXDHV0HR+6sj))+=Lri>~`n8^^=_7Dse{Jt%fryEUdVly?++d(X&U3b7ZtlLE zyu71zSy`Ffi4p^qLiW&0mdKpk+^VeY5Gs!P?G|T!=$kj}hi7MJbHczkD7IJvlB-*0ASW_M-jME+RETNs$p}AaQ2O>Orrpuo2UXe);o9y|Msq!WUFA^O2B?i)+$IFlc{cqV(k0=gM_> zbQC<_4E3>$0u07@c786+Bc6g@8YvJ*BT#dv=+us}hD+z(1OdX((9rGd&`Y zN=$p6fK%&B6f*8l5|Nwrpw!cVkEN!29@osak*SFL3e9?w9ZxxikuKM+FJCf^+u4zC z4k7Q7p5elf>lSWIoChU*!_?-4o zQ&V>ik-}irPLC`2Ur0QBUUps|24!zE;w@&Xa8C&!q~cy=d1cCalGPgRL?+G4#Re$5e=N+KCQRap8r;|0W6sg;t6N+BJ)zs@E8E*0 zK9~-lxy)FD=B`NAS68`Ef)sRw;Lz&R^g%YW-ZFbk_E@qb4dMO zbm3fYJiq&iEa_%<*hWwFLY!|#;!d4b`BMApn$l=jmc~odg3%ZVT)|0XVJ&rN=?v=9 zGC6;sw4rKm=K`%370VJK^b5!nBFnGFd}+#9P%U=M*(YsRj+-2vP^%kVjbF~cD+Xm8 zE6B?=vYhzU5C3^HGEP`b5255>p-yM$NO>#F4bo05l%*=pQl_^8S@Zl-Y^+|G*5RL@Q`Ja|h>SkyR?F%yMk`@^Xjd z%5JK%wqrLEU9|1SDBh*=y>zvzFs)QffH)5&Z0E_i8o^wW5|-weEIg4)gAUm1x=@IL z=&GoYh>D2~PE6pBIomJy(qIpDXTAm1extC>Lr6Jbk1poQePFMrQDUHFz9pd8u;rF8 z!cXR51g`7Jj^WhD^`GC{@rWb4n2$Cl{O0EkdlQ97=;`Uli;eLhY-ne9mx+mqjfbZrMZyC#I7)84KoD!7q`VtQk)Vb^ zWIlX&yj8p3KP6A5o=aYCJBt9n;|>Xl@kEI!C`L7|+wGu6KJhwp;(Yt-cErmsia*f$ zTudGIMRxNq?hp~pFLp(0SK1lQAgE;JPLCg(zGA)?*k-h{x!G1aAPEOQYcyT$3|;`M zW4uDZoaGn*LAHpD{u`7^aec@SDYN1WAi zbauzMBx!w)_Gf+Q-7;yhC+mpgxu#6#amm-(Fm%;%s~z{4 z=Xt!Dfs%ts$(#l&L-MqxVE_t$Bf)-| zm{W`_vf~m;Fclb{8(~XQv*xF^r&1Ir+vk$q-QDfeD#IfqgJad-_w)8(`ud^m?d?-T z%?-wa*SD z9`@z}q*r-y^fy8|dly7vdS!LBDPO1biMV(O2&k50ucv~7Mj*zM<~R#QU!W3kd}TFNNeb#?m8ZHJq~rNh+P=f+sHk_Ve=-5W5q4gK z+BklKt59WBUb}lD=CF7h^qS}12Wj9GaB*<~cG2G|j{R#>LnJLN?RIfEHVFD#eZ6G9 zehnqS&%)jq;jQX*Zma2P3Q(G`Z4BI?-@kuT|CT1BKrQ7%``WO{?TzIqg4sjiZS-CvF#kSU#(%@o7 z>Yen0S}z0S*?B^M{cJjC{ozjuw`1GOTm21tUK^sn{bjdqCaJLQ6nHSUCHZ&k9z-Vo z)}v}Ej;#;KI3!sRVz6jyXY|JVOCm78<*&5ZaaVD9^8dv!-NR%f&IWc|J|Nnr=qy36 z#vZ)9e8(3(#><)Q3xlmPw7YhdL#B)3Y!LlP6XF48jpvG%o%<5v({QsBq1UWpFcs<{ zb;9u;G6A=}dQT_0%dxJeE`-~#lQQt`L(jNZ)34);TU*p??Woz0w5&0|=KgePur-)+ zt+kiFJfVwdS+KbpSK{xpd3l0T9H-#npz?%qz0~EBI7Ezz|f)%HtUi z$K!VpNf+EkdkAQhni7__bqW!rCz^Mcm1 zRENt+ct|YpX)5v>a$1m{<}>SKkUgA~(w3GSZwmB+&dxq=avSX2^eR|iURdAWmNz$N zjp5Y!41(X-&5as78|1k7`jD_6o!N*m_^`n7_;J%h8@%{k({-q(W`uDb5~-@C6%a}% zWCZdjP%dK}V1Y`vPsK!0@BEtWAlUgpcntKyES* z)$BY$^U~DRtm3(@2QWQIzMgiWaYxEsBqg+ck$xzz(44c1f)(aQG3#?CJ}QMlOx5hw zZ{tod6Q{g1o@X)^OS7im93S<iES2@0L#K=^Qx=7V zh$&4cmmI|LG)#3BSIZQkxUf|#ul9Tcg-{^0ZBdg2iYDBY;eg-ov9sl1zHIv zdhmawzK zd3kxEZoSdcLffS0@(ApEF=nfz%2``;y(u&Z)iQAR|K&3vaXdGo1(Vg#&?t~NxnAFh zIAOgd`s7Kt2i2&vzLT?a8Yqy_(b1rMcUj-Xc_u4+6I+h~dfF8G+a!i^urd;Ra=Aae zhq^x{hQ#(CBoceFgOig9u^wAO<4d6kFf;YW@!|qZ0e~2KAXT1|vZd~L20mus5t^)_ z_L-H%B(+Iw2U(?QNIVHzD|Qr+g;S>G<_6KzEqa36R_V6;aK>|A3HvlbG7q)H(rrap z7t8|C?$itna+a2sHcU+Sg1+bG;&W&f^m>dLPzDE1QJu7*?4Le;`tEdZ37eLKtt?0Snk%h zm$-rQWN{KqUo-T*vysImD+HaXH1uS%X8N`#b|Y$87-)DZ=9E2=O<^vS0PA*d?|~4IHeX zipa5&0^&rgjvGE{?&147ISBl$Cx>as$QP)E11I|~F9@rN4|^~2l&_8H*wI8_)UTF*K%02ZSqR7JWRlz(U=YuSD39T2xdt%DJ)6 z{5J!<4Rn@o9@S@smurQ4^{~04zqTFbQs)!mdeNan;cMcEv;(f3!)uKJWO+>ovV=PY zBtEyfD2gFje#+$1Eg3ipyq*qphy@qVWi2#{b=LdVwWqTUdw7h4GW1*S+X2OMjqsDf zFrj%3#wwB^HXkYGfrvQy4*R|OUY>hF_h~~de3W=-L(>6FsH>~X$D6R zgeDP>;oDKz-KF~iISTWR)WV|kszRi zBq`yB0PBxe*fL`Ij2cxcZoOw9QLr!ri<%pKad*6=vKu^(Z6K1K)SzBy*L%9pm~XXp z*(Vjd20i9I)f3k|SXc+i2*?PpDf4H-iQv0HwFIOZc(5Z*f}N-R38?@L0xBTk>@l{F zV2di?#t^9Q>FJ*@LX?^B`L0*HOX1!Qxe$F8M=g>p^UzmpyOxaKthZC5Dy_s3z>g{J z2|zf2Xb#k`aWO=-hrY}na^Jlnf!_+V)os@+={}ssM8_S?b9Rv%UmbZ)O<-J&r`Gh55hdJBzOM*9LAbH=wAB z&**!04#>hDELFYNb&*oGzT!2Q@xB%Bc5};99(^9PiP!FM>n)gGDXMJys#evgn0dp2Wf?!tkK6dpH+RmMw z58lu_CFN^c%%-XpAk+JNe?#|o-M$i}Pj2_m07-Lbd-38? zfEsP4P%^aYz)Q+?KopAyDiacD6;mbYK@Y80k)k1;TIV#VrN#zR1e3ffcpFPSu~^sqmUHLcTe+Wtg9!k|Wi?w*5AY}$JqIobXxqrpU=-}8SqIhpobT&1P;AEs zekUq~-v`7J=!JmVs@bZxoFdApb(}w!1d!zG)|Smlec0EpUu(nes*0s8_~^(F-~2Q) zGo#m=J_{yKP+%8rkfu@~({|nTYK&PIROcg%!(kfZO0Fm{&7bb09m6I9T`VmuRQ2`y zw&b$ZbEi5;q1t}JnsJ(9t4M7b`q^V_tHr)a0C-SmikmkIy=DhCD=9vk^Ep9LidK~D zU?h$_(qJ}3SBASPH1A3Eis`aTJx>fuep1g8e8o~9f%_HOEv6Er4`%)h*9( zLgybZPL7*g{GOm;VCb*2?_2FGRx38(xfBC%m9WB;AAjLo64VJ&cw30ix@594Q(_+g zLV$==Tv1Z6BV&UL+e29Fap&Y>U!d+#!s%Y|#otLEd_UNr!?^eZiM03}u4EnGON8@} zJpadnj;RD!WswxbYr>G5?kRhy3Jpz=y?SF@XZ5I$K}SqDV+xIIa1VZ6OAdMAvZm-lwv`SWF5rO3klI?QDD0d;O`J1DA+qzJ8C-K5Z?{DJ*1a z1(W(x-$R+pyY@f!nswBNTE8cEp+onQN@z=N?h0Bbvizlc8oC5kBsSxNP>OjYIj=we z8(NRwSoT*5hhNQWK4g6Pd@bxwU`G~AvSosO(fB60_ZA8#>dI)*Y*A{=n}4r?I$i#jk%q^#4sfeUHW#5-!bZ zvt0CD6=sh`Kr&Vl;f&OL)eEn7y=O{K<`o@S12ObIlRi}Dq9`PYwQyBfg2nbcsd_R& z6v>OUBKPZX66$M(rCln`bP>1iiys^vrI(dOV^+zg?X~g6BsY{zi%$sWg#*gMtG-zW z#19mqa(P9)RX3a5G`AF&n{K=wKa6VW>?#xW_1FLVdFVES4NF%i-o$>`49V5L z3>d>A2<(;0i6QL|+D2b_iafox}79R|=alPEqe_AMu1mZmuIt zuZ+Z&U`HGsJa9-PbpSz_Mbo!U4fn_}=dxBqk~}5`M^sf(A|xQXi^2ADY97&uusxCL zF3ewJx%ib$+s7EoaN5F>S0hEMo_6j-;Oo&P6mkJ?eViOK5~z?cO^z%t7rMoV87yyVn<8y7N|bcd zmEV=x@AD8Zq*CX+SFwrZwUcDacOYhyAmE_Lu5Ik{BIkXqubjHyv?SA?VWURo$n$r& zk1kf;hRm0i)i~T)vp#1sYp;D?eO_Z?sohbux=qPk>Mo*3FZrf%rR4Nfm$#-Rz7Q2s zfUQ@QDU8r+9h2ygLYt9bjL?|+_^|%XZfc_KNbSm*le64U*Cxw?Fglo3gU!#oVa{mw z9-sd%_oVKye|73g6HuVPre0zO&ToGTLe(~X6{AZk$PIl`AKXNi#mHub?)m|1e=@k6 z=jlHfdzI%D+;pF+1etQ3KDv|f+V6>oi`AVRWj@367D(RCilAfVI2&)DO4?~;huv-t zg7tbT`(=?E%e`3{RN6++W!2@g?6@-$$KHwIk&1$Pr(NC4AYZQf=}`PMz%6_Gk`*E|91E@nV_{T?&9I2gV@#Id zzGB(W?kOy&$EDZ5P&F3zvhn(6TnZvMyFC!#;{UFt-I%LWl!(v22H-e*tuaELJYJ@R zpX`N(OV!O+2M>%FSc2CgVUBQ0f7$lTHLbQ6ZOVq~6!$gnLzL~45Ic}t1)MGH@Fh^(V@jr&K7aD|8ZPwh%?zQ+fTZ{6isw3Yl zYC~R^sXAV^LE_t)(OOiAK|VBu{(d!fgS&Fh3+T1v=8n@?FT3=G;wj}3CV}m&aiuYF zY+UFoVk0_A8-zFZn!ST@y>;uBXFN4an-WEkA|FAVUQ`r}e!@hTyx92$@1q~@!-mic z>Orr1A<8xoD*jlGWFk$@J?dyFol5b5!=DK%-LAj6y>EQ~@xvs^D>-hIHX3il)1gY8 zt32IDqb91}Eg!BE(DlOw?yh9W#o}XVZ&#}}QXN##?V2W^){JHedFkTGX52rXZPDsw|OAcukM`qJEXo z_ZLoaN51}*QNjT)c(&vcO;3}-t>s$)p)!{aNql>-$P3}EYEx)sI#0)_+h2G%TK>-q z5F`p!%5(ToeYf+{^qic#;A@p^Z18i+$ZFNqb>;Mj1_cEzC)usc=&3G|USU$9rPv<- zF8skC+)(SOS33T=;g!(!@4Xb7{YsXt%yZb2RVQ(md9^R zV@1m`XltFzu-KqEAH`eT?D3Q|IF-52PjbB#ZBy}aI?ec2#CC7ppL2YuHe5FIx%&fL zC-LF4;Ld9NZ)7i(0;jmk)e3VVD^{J6DoWMtV$Rx{la%_w+OfSuej4+zX6&46_O>TVWtz4%6y2_RBC88c4PvN3 zy#2q-_%A3j9?Vg>J#9Se z>Nhjl^)#oTR?wuZ&8Wai5iuxf{F%Ump9NgP%R6?gI3r!JB;(bLmrg0r{%=>D;h%`f z{8b=KJmgRedky=YsaN`=*%%G)MfWHkh;R~=yUkd`3K>bgl#0rt4y#SE^PIB?TGKeq zc3?p*FU(_l&h%0tJg(^rcJ{2Q^irli!$DBV<+WL-3rfca#^wK-HMU_hhV_8EJiF&( zu_x93`0)4`1@J9atN|ko5VO|S*6hwVDHR84A1YylN>=2Auz%zB2N^(u=Pj7=>L)#2s2d})&^W09H4_lD6-fC)ez8; zMov!TjF>q*(y)%MIsJiv#JyYqfKI|=oBa3>@r&U@&XloW(8v4S`N z5Fe0T&mTrKCcDlAC5ySH1C4=*hzKjyVQII$J%@aQI$HDoBwwIU)OiSD)kGjBV7&_? zNX?T~6`x?Bpn%hxM~H1<1-o*a>0lt70MkItc0C;!ae#~g<{7Nc0kps0zwgr0(eVPd z6zFkS?Hi}aW%DgmODmG_TC}!Jy3;26AlIT^gk5V!;E(3+)9fAldeg)O;b<=en?nOT zL;P=YN~FFJ3+JmU!4bDeAoRmnt4{?ert#&=+~Swj&0l-|?5T+p8%j#-kHp_9a%30{ zuu*otbiQ;tB^okM@6cZf^fDX;1!K}D&FFLhMaVycEgJ!95NxSbDFfL1>)~eO)$MHZ zAekb-3P;7pw(N^zr%<5b%P`-2fV(5XIAL|GAki0XI$!faCY{)<*MNXW?D_!xx??60 z&Y&&xy(R#Ou_TTO9}Un}z(}cUTSwtK>m_sx50BS!lyl1Kcp6YZy-LAoclR!wPk`aZ zdK`MDhqnQ70hFCaKN88ncz*Nc129!yUYzs#TzZNh{FaUrbL9q36!85KFPV$HFFras zIn52{YFOP<@=v%uM5k+0+h0Eg>&5@f6d#n_SP}AEzyOg~AZ*{L!0lHm8E;=JK zyO%mfdd_*(_b(Rn{-IIbOEi2*N~$3IY@jAF77sWN-Zg!`ne+2!o5b;y-}|Qov&W7; z3&I1(b7uTId>`CwC{xf6fUu|5A%8=1%8J&2B{Y8>K}XjK!ot99{-)JTEscbPguBoY zpii;dQ>MDxX4#m-b}xq?Tn2DifGLxclT(Gkq?9}M#lg{nz*{OKxpQakWEVC5>jPPT zvRDA%0t8hI;cx4UGut)%JGkybC95EgZi>OOsdhQgL3<-!4XoSuPw+P9`ne16a$JDuSX*s%`H?kwXzPgN|aXD zg-t)Jbl|buC}Rsd%&HV41aHGWG9B1UrTTZ8c|r6F%{x*LZ?T9SdNBgZ4-nrnK%>NE z!QH#yn7tORgu4@Q_^@(VC=gzU`!Y(asprR>*-)q1v^Wgs_v9qOn6sLOhTn&wtoff6 zGcWY@>Hj0%V?10h0aGY!H;04$!sKM|;GkNo5ii#F07zP4_dRAnAY&Ct&>?`m3TU=W zz{&t_9pE{Wlap7rw&cVam zMn$IfjHJ0fJJ>)Y6+-zXDACF+bh6?EWCCB=#f$Y3uy&ccEE!JK!C0G!tWL$`C@5jT z`^4a|lBT|@$EQ`NY9N$ts>Z8~b)c+vYB@KPXqiyxjc!XKOz4@fb}$<2VE$H8%2?rlmEaonpP z`1IB!Cmp>LM_HU(AH+kP9h3~}5zHY`AzPbwH!ZPnZv21KKgFX*k8s+_5=)JnNiFVZ z&axaSt@-P|Q{3siaxRW7-Hh*hWb(w=;||k-8`tz zZUaW;~v6AA!HKT}{f1o82PerI@G`^c}kz>6@scBa^=+L?hQ< zFKKZT6GsM%vx~8K=YHmYkY`h$gK^Yev}aGMhU9dj&n3C_tG@tU39x8vj@H#H38Udw zOm`9ak&m-j329Put*6s}G&dhoefBTSD9scr&fR;{OY6)f)4@SjAAfS2`OcL{{pwDf zf!@ka;AYGfYBzqe93#~7zabV2`C%b-FEC*q*T0YBrv~ExnO;Ndr2I z&#rM+@KkScd@vYZYV}VU@yVgMiVC$FNV;kqKRrl0pE7w@s`|x_`6#PbyuC*vGunkA;dgIxD+kD$cuz zI|qC}ND9{{tSEn3>A&Vbnh1WM_T?5hE7;@{33(c;Iv)0SBYdmB%Qeht5s@uEPEjoW4PCNI=A;?;+|{@t39_V z;{rGHAuQ$@tbl}oq|Dc_`u@sZlVR3c0Gw4(Ik!rvtfj4Yf)p(y#AvvwYAm7~r9U*4 zc;r7a(pTJ78@HA)`n|s(h@K|EqJQyFw<9ko$8<|Oo2op<8PIxd6KU-Z<=Cl|>*|9p zcA`%DH?69vM3;V+ysny4kWbYfkfRbx_E)%u-G|+Zy`g&7=)qSS+cl;TYt0z~dcawA z`*)oft^4n*t+?W7yL%|`VzgEjU0`v$ZIiqa>k>1;(JufcH8mD0{{Mg2?H1%eQHB4- z18-JFMq&_wHVaoKZa$X4dG<<&B7OIUm_fO;;gbpH`F4#Oy(zbT@9|w05onuKDRFTs3-In=nQ=wZ$~vFZ zMnRu0ZUEH-0DyF$O^|0fiG~8$4HOidWx`J%#6{Db;QE||O{Ak^eVyOo zn?7tbG|JZIR*KStAKImFjJsDI2^VDg^jvkdY2<9uS$ngRbwCqhEqzgM&%g=miTh91 z4=%g%*(+wcS5bm*z3Q6tk$DpigIi~b`oFZ;xdW-(nR@CuEB$ogKCS&+<4w$+IrF(p zya@WbqzVl_Vc|gO0OBRXU2&2CV*2JDo`w*t?+1W8)Xvf2p&>B-*y+cH_y-3Kkw&r~ z1^JXDKhr|T(iPIOZmZfGH@E*39bL8i2w~tQR)Eb+sIPWby}^&>*PLk`6P5fjPnbz& z*2E#Bh>o7D^$liHln4~vJ8QZSijRGgG(4f!_WfIz z_^N|t5}RSzV{rO0S4ip{VNNXHnp$psDg`7IKo5edQ(2tU+KNv_-zij9LOenRyiiSv zw)Ow)(4d`HdYu|fu1Z>Frs-5@JW9CJl6bW=I8wY7De zS!u!K&)Xg-3=uK$!henjtOd(+R$er@eQhL9O-;>LoAYa0+5@afBjV+a&CSi6yu21* zR0PO(FOZd0H`;0X%gW3=+5ldiL^9;A22y@~S<3)YIT_(xNft2GzG_#`)*Ge#JBum6 zLfOeNyCwUt*VsJTNy)#&`Wyd9aTjE5^08Hxh(PXh;yeojCvVMi=cIJ2_+dnM1HLj@ z%9mZ(OCoinZhQr3QhHH9t}7OPVK4pEf4q^;yb(B^F~2L);NN>&r1Bqa#@K{ z`|UI<1>&rBnFR%qu(ib|@(G0!ePjE+BWua`sW|17Oz}VRBz-}Dv@4~l1d~9RI4u3A zaR&mp+Qb5+XhR>~>+K+IBN^Q(uP#>h zNL^~h-?T~p?-2eSgeNvOgvhRp6`XEp4~kT@T*o;)Jk&0FcWuTEMbw)tMg^RLebXTt zExzgU_1x?AJHh~Q%sZ)zIG+Em4hm>UhHN2A{4cHdCl^mn7O+JTx?jw79 z4QlAe>dGo!Lx()tj@=a6fu+|0`k4c#>Z>`J_(lJ`N71(WkZNj~S@vG2b&fEMO|Age zZt-uTDGZaQ@>|jMpTGijD#n0m@Nt%$X^h9XZUXe_&vT!D*nDb}eKw=tNrRBVLSrDE z&XxbQkp`Zc_@YKcqVv2d|IXAM&so33R}YdQpU`G=)y68fDkpj?=`0jLTE%ebemz_t z%ScbZesOUzUhgH=-P5C{sVSfgtEb5lq%rXlVbx1T>K{p;qKi63huv(F^oAjC>=CAk z5XlkCiGp$NvB>@yYTST$(Kmf0Lh?!UG!@+2dzM3PrdN8_>V!q&a{Y;r3~|Jtv<=nD zoVJ%jJkX6OMtasoV-1_cl|bqo_lUnx*0?A2mAuu0?&6xbqCQ4art;Aq#Y*}3(TELr zNnR<_x@xhyi_)6F-TyaAuGU+8H2ZY^Lq(^IWT6^jH%jbDzgsEZ!dlDl7~F6GEwae{ zMf+~N6{QUe(JWp`{GI;P?OQmN@rKYhBaJ;jBKpkc+)v3~04=q($qz50%j7OFu;}W- zL7@i=5ynnVQHn|U&lfR)_*qunr}zHmD&Z1GhJ=;yoTs})Kp&o`8)=3P8Kya~qd)C& zU1lE$-+^8#qP|&bQf1`iAzu?Wj2HY_viO={2{<{(n#EU?2$hh3Vu|!=`bMWUd3Fxj zjfy7@>#^*t!?kKgq7_j@7DUTyTF%XjC$jiuqxOYWWXz@k@L6U91R7a3XktCLrjF3+ z@S&*ybwY~bpUNZNzUQ-W!efk`Eh;cVi&Dq@pIAOQT~nVEP8RYxK)<)hk!Pm$Bjb>F z*~mCGZn!ZQ+T8cU&iy_0PYwpz=>vBWv4Zu7kzK$&zG%>avIi7b^RXA;W55h{KUvxM z{rlTE;V+rNKkQxzV5;~;$ju5=M&sGU^wR9S#xz*(YU<~lnd(-bsRtEEdd+HG-uaHe zEs3*x9#Ew{nB1$mDe4g!B%N)nE|e9gILehwL?*?45ww#rBrtDH4Qq2yZvRor8}Erv z)+3WIfX#cdO?fcb55SkM`r59Fj)90Z@1=7|WoFC1BSq=d`Eb@rw10&Dw&oL~)W^kM zv+|nz*PT+OZp=FB{9QWSd+( z>P^Ix40u^73GgUv$I0r6EvaGEQwfU^B|ni=?jgc>&?(Vgy;`V&h%Sp|5rJPniGXq@ z(^1~?`x2f%%_+Y%r?C8LHW-D5>N&66@5Ee*zez4E+W!DDz3^KF-Bt4Cr8i9Q{%6Xt z+;qxAXwY}3RzaaehV$DvZY8oA_A;nU<~Kto@dy4R5xnG)15XIUtaPnnixbv53v*9I z?yxsZB?Sp8sXSqU2P=pVFs0%=(RtSDrq~*_lkSB)aw5brmliSrn#w+%OPavy&`8|Y zV$(!Q;CSRBVK~QQ1bG`n3S@-CXQ5yFzO_3)eq^d583sC!%k~Fcj90%_6Xc*jn{p7*AzdlE< z$oz5;*>oFjS-D2l52LJ&PG_@boe`1F#iZ{wFMsQsteo(GiTi(71MdkBx@RvHfu*~p z&{~(oI23lu@-E^uMkPf#*HaYl7{Q7~+ZI$;{rglNT=*{<^6fuAv{%82JGpj1SoU}{ zSG{oT1;NiY%OJHSenl==PZHHS$Hs|~HKkvMsyNxBe?EYQdfW7(ue+wFw%p+J9+{o1 zk27%XOO=p5BRlQOL=^tn!v$_XjOa_`6!&GZv>DMu;=2TneNk%hcG z!>t#+t@3G(oM&o>LE}*OQA7T=>>4(L9^P&P>dU;**F8Rm+Qof)KDFAHVOVPG>U(lY z&+0nRda#4rECT4^_nzsfMMH{}GJ77qApXQemRVSm*__`jduU(TvaEp43)i!+ZxxIb zff@>SML*tpVSFc&W9anQ>u>(9!wl@|;;t0G$_iVf46oTu*2U zV0#>^2GM(OgZlic6wL~P>#hkNN{~A65BvQ*=Z)`n59}1;zBh<ju*)Y#nbFK< z#Bhax>Z%_$l}qD~BQ}wH5C3X$eT`DFxTa}c9oW32P|>K7c!xbHE0Mvd!GaqulC~BNvHMss=BBzkxl5FQJRym1ckRIr=GRFC^RI?rLx%Y z>^iKvHm;rLoXAPBcy;u>jsESHo0>McV^eLnS+g)htDs7QpYHMbXcbrA7z=zYl33s| zEl}{U@sj!be@jfbYAVFB6Y}4)oNjI`Q}gY5p7Y6}ZS!36ma@(BRz}&U1}_jdafA~6 z6K}39|D;31;S!3l`(RN6yS4(B{&eU{B-m|innt)7@V`RAK@aLjMW?A6+N+xm>lq=Zq#)&a8MncLYque#b@p356$ zXRm&mvDa#tVU)e0PR$mg$EkPW@M7Ze@|UKIRL=PgDuHsvuQ5d^G;CFH_@Bykf2*(UEJVn1DZ*q5VEvaYJC_Kj&NJ zKeSx{+;%x{JkW4Mhn3XB?^nTYvD;9p3WBbl3}$%ne&&I%oEp4UFb}klNQD6IIzm`) zK>BH-KdQ3(U1^HY)~)@yCO=`Xv!|1jlSOX3MjKOAWI#Q6|KURuSH;w4jcn!l&Il$T zzYS%pbO0}|Dxkozj$NR-0r?kffy4<~)5dV?Cs3&fCbj|PWN>yiOvG{d-PTl9H=Q24 zmII;{O@zWnX=z+auD4%aGG7MoA>0L*;rJ#Mr6%AHN8~gC}6tNG;_8y}WHZ@14bD^KtY`k-;Gd%5TGm8?3@hI}T z7P9H&=NBkZFO+XV3Zb49`|M#uZEE?d-kRx1>%pw?g5cK$bOi;A5ainMuS-+L;bKU} z<16Qn4mF&B6E-gU2PYT-g~^z5wP1;@6IC-Q6;whygU>7rzRb^Q+E4kC*j)7jD(k@?+D!Rqe|e@-F)KwHy2d{@JZ1x|1X zlMKq;P(wML88UBB)5{IH^b1kt_50kfCJTF2E1DeCJz=5{7w1eR&Q51onMO*W)u&v2@iMxYS_4c{S^e(VBQOPcT#n@(~bR3ZUx}f5HhAkE@QjgUA&mzEe>n zcUo9b&<@0+V6espRv$z6c@U2JBn7cww{wJWN^Crnwr>(r0`ogPPXmSzyLsg6du__+ z>H;i|m;Q+Xs%{()tUjrxio|Mcbku03)*U3<+Zh{bs)jAOx4jP@RVU88tF@9(lGl;P z@Sx^4x-OT-tCW~VzWNh1B#BuhRx6RHjmbbo(94M}-zPD=BFoF4^GGOS zo=`82H;<2=Lajs8E}NHCjvk?w)?S%MHa`Y`XJYKjl_3Ucp;7ih>m?#ba4k+3PZOhM zs4?-~q3ICV2*T`(buNc?J5dCK*ceF-#*oz9!YUyR)2EF5@i#=&pnN&+pe|4{2qqOM z&LHA}@O_SJFF^vvRoL;3Pjo&1md7{7i*dnC#4c7_SiAt6mGU z1Osab9rj>Gy9*EX@_GT*v6Pd9BhC$QW{-jX7_P_y{(uC*23P|IOTN#+Hsxr(P9&ZD z(kFIN5!Woyy`=c@h%lwjfmOT9C2b`G$FfYO$Sr2MP>m4*Sw7^ErnfUIwZfwKic#j1 zwMk9ms%rI-fX58_y}sneHNR;EX)HhMTWO3qP$w595t5N<+3I1CWHt{@zqcMFEuN#K z%H>w$M!&7Phr-7ItzF2@fXxxjd|$+pRH)im0o)e30}~p>avOWF#+ljK?H+o)`%%}X zm8hd}-199UOG3iLP6(T;$CxH2ccC$?GuA4df^hq!u`*7^W6zSJ9uQpM&o6Ll7d;cJ zijv?KViAcT)In=SONlTdPagm2@@|t{)21qYrI*AL?72rhd%W*`>o;?%gEv$ZNp>&5 z{^6GrQ={3ZHqU%Yh?oqQtL{pPp8Ll2dZpDvJqi8BpdG(r2zRsJ@+h@E9WWHu3G}fr zVEGJ>xmpHh5d`>e@V2<$o!X{@wSY>n7O*2JD*=`RJQF9wx|mT>nnM2Uct%FJ5~or( zqZ02bn4e+(+8GU)>M0W!2`^*{#FgzRk20cRq#LBWMr~tk@8jqD{{G?E z@oenab3fO8)qS4l^-Y}ba|Ohx&rRYyTPnhGn=jvY+N4%Uuk-muM0kh2<~}-HBd-m z=X3fGKtFT&SQe4p<@8@)Yt+>hIP5fFjl1oV*EJx!o7QiIT%#c40%gRu?tCL1C)ap> zM*UZ7mt35^XFjdC892~7eu$^T&`j`~Myrx_rLxcj)~HKK1~?^n-S8)heb`oD{+<5%M$`;=gPuX<$@=}vXFDqQL zDEUG$txlD;xJr`idegHtS%W)V!_B_q@vHBd;Uy+fiK=N*Wa%?|8v}FvRXqD?uFoGs zA|njy+R3@rUq+k!`XYS!eBTelsKu4;x*u6s%on$MfSvhyVN3b<^?snKR9um8`QM&rrlH>h6j5%IM_8oVPqg{pARpim5??#W*eFQ5E zt2`bKqBP)kJqXCL2E`CmFl!)XptZ@rWniQm`VneS2OutHzh8bnX>2 z+s*8T=S{2%QCS^K64pB^$l*D+?%g*Eov_Lvs`(u|K-f~sqbk9+PGAanIaMKTS;^$s z2;AHK*MD*wrJd~Ekem=PaW3rOr3hwG{uyOlbiDWg`JM``%4XL5L0+$xXuhka4?xKY z2ptGh4ofHIB3}IR-PtmxMrJp9Na0utvx__Hqk1+F-K9RCaZQ9dgW#z5hPXq6#Mph? z2TQ9OE2%*pZay3x=V(+h$HlF*)7b8(F_!Oj@Jln7sLq3%_gHO_CE zz8Kf)M(Hq?_NXdY3>N(kTl`TfcO*+Cuh3lq<|xk4qS9l>BP(A-zD2z0p}L<>R2KfN zQ=>w~96@rwNFq)w(9~4tg0^10Z`N^kD@XLydOq~znu-@n8_0TyL_z}@ zO7mZP=^2}0;{qUee`x<~{J^^>{a9 zZ2CeSX4FMs3%=&Z??cDtoPxWTLEtHNi2(_s_}2fEFOc0n?8K#&zu>*UxS=VmX`;3B zaX>7Iw=iG%RoKea&0-AH+M1QAbM(G;sB+uZ%UzF>dj>YZnV$2Du&^^&HQ(hf<^zA3 z1&8j;e-IDl=3$;saCJ8xkHJ6XNi8;yunb})6i&YabXL};&gx9K1LU6+;Y`SQR?F3 z2@ZKD75LapA};rQiYmWw)3&@!?#1BdkU}p{kJGU)NdH<|iS`6fL^PW|;YMQK(S_c=jHEg$vZ`~cud8`l?rOs z*aillZzLwIlVQ>R)-&+(M{1sW;n8IV4EZ59J8c=m3#}2Xg8&vPtnr-nF)c4&`rG54 zD8;5cXX@`ZlgwNGibR*WP+M}T#F_w0yYmcq_<1rqI!QmbunL@p&(FY%ZW(3fWD(NW z5B)LECCg-Sc&&H|VcD+KofSd6QUWqXnFn{IIl*8Wk~>{czL551v*?1mPt?iv>IjRu zn1gN`4&pQMPfiNvFp-2%EhTNhpPNmg`%Q_p*E>x@zL22iyR&dzyCuCE8>s9~>rvb~ zfMDwy7#Rlaqu?2%dZb;4W+;zF?JiVTxBYgG@E^zi{@yh=eD(uQ^^+Xm64knSYvHKEvSDk4q2KKi{2c%3| z>{f$wpN9-Dr#|^WD}p!3Rb)O8`P7y%z$7q`L?dYP%m=~!Mn!TOio64Gr$M2DbjhME znII%7c4!5DSC-7@+#CB4da`OAe&<9U|EFD7+zAYKE_fi8`g^Xz(Ks51?ZW|ty}Fo) zuC4*Kxb+XvOHU8>;7x|>Y~-E`==10GUsu($HK&{s*cfQf&~?iPX65}K>&&>DDCDBQ z{)y)Xk>!;JJY*C%0M8K~g%B*CaWnMbGX#aucf)`G^fIiq;4Woa8*doL zJAF%nwwPMCDT8h?Aa~eb)+mSe$sAW5BF8>}dIUf|_lx)-hY>y7f0?td@!tPPm_?(Z zYg49u@%O$KrvqGIEDJVnH0bVx%9+zu_HscZk4xA>%RkK4~QAYHlbWxlXXe{L)?3L1P(VTMB7U+FnA$nJy(o`@V-=fe~J*_;`!6l6|`Q!-`s2dmRyN!Tu9%^;jvUqHf96l zc2Is2C42g)+^>)C?^xW;D|#bQ$)Y$%kdWjRnZ)%v!{6jgOVo+V{y%}3^_y&rVC#nt zfX}3an;q<`_}{m=c8pC|0~8zAwGkHSRIh zM+sXb5vv!Ee8Nj~Ozh&^i#UFU?;fxXU8~3j-9pk^us%)m@8ioW&6S*Ci0IWc625c# zdCps!^6ldZCGLWkk*2hdb_JdT&Xp8C0OVO)H=gYzD;)Av+t)ex2B2uN!4d z6N#q$$`TSc;(QD2M{i73)n?fNpjx*nbgF-Y*&WG8RWdyzO<6=#0Jf_jVBG z5N0tEY=*f`1x58%Q;BZ}I3qU4R}D_Lp{NEQYXbu_e_Xs1avQ!BGDB?kYX!3m%dPi# zQF#Z3#RJW`iMRlwfNxexWPC7H4L>)3abi~B*P<_+Ic@g3`U>-nPjA?>-;9PQ)eZ9p zTpeSH+(u>O!_8}tUu5~O9lMI^d;y^kukv`eez^sh1nmoArWv5r*Kt{+{`f)X!$bk= ze8d(DN27oFpg0{{W!YN=r;7$Sa_CK$Fu%KJ96o@2{W~k=L1+W}`@wB((`Bszj*MAc zyob~YToRf0q>xI9YdfRAaJ9b<+TCKnQ(uq39rOJ}{dv-U6B?I~86>-t+Tyk9g4-KC zJs6F%SRDUK-TRv|Th?mq9~F;J{Bscwt8o&i;nb^%-kZ3sUP=tYos!Mg9Y45_`+IeY z6%+`?0D$TA%pqN5;|H$Ip>wwBEL`7^t|TtXP!zDhZKp^8aV8AHeSq99)+X=J!uuq| z@AjkP8(SK;#L{iXwM3`8Jaz;pzR@q2^O}kPW-)(t}{rwt>l5Sm(UA zWTbzJT3CAfN8rxIMGpN%PSFBB7Zq{uF6X^W)bc&dQ$<5kvzETBYEcFmk6PEy zhnv>v1H3vU6;13IjwB-)0@m?Gj%~&oP}Hpf8xzR>YOzgU=C8fJL#J48kjExlJNcPG zz2!lc2RR7cyYe^L)CLbvkb5}>hxp5*NSxI*8gwE;bW!kg`x~^g;W+34?hxyBSL1IS zsgH5fqYUPD@;}`#H(Q- zKMI@sCRP^KhBtr1eqvK70L!$-?8kXCCXc)uI!bjtz}zvMFpG6WkY=ILptWDg={V72 z3~PYv#cM0H`r0moR8*ykl1KX`dC=vF46>U};E7V^ud~sEPR02U$lRAJ=n2WNOC{dl zRZRSwa_1I=dSE>FPs5YOGTqG0yT1dhzw|cJynZ zY?NGUO+LBwGguIg;biznzNHNFhtqE>XgvGXwaICNlLH6w=Z9fA{#QE4EpJHQ6FlfV z4|0lF;$v^52vHlBC2J{wbRcozWTeQfqh%)GS)poB5fe^rTI&c5@DPVl!3drH?|hMx zI0*a<6gKluHqz6{MFHE#5mHL`WGe58klPPwPVIgtE{p|Gg$sL9_djMDbH`_juusBU z4+4pq>4)YLT(34=JtvKctFb1v$pOv#KMSm)P%VqBnJxZw8_$Ywz3>=|M|g~WpszNB zD}SL!z8E7GruRF)+y=Z;8beGJGVnVkg03kB+-(J&v?xIcf1?p4<17Vp+>NqtSKBN2 zIwR)Kc4&^EVYA8L^(LK}Bg!wESXEzUb90kwyfF1_XJqYOyk*_Ed5M2ArjXiss?7oS zpn~`X5STn(Pc~&g-CbC?`ytl$$%%vsYF0c$_TCTg;oi36c7_T;twtlt-^p>oZkQsn zwT=szgfDqietRI1voVfn*rDXpv2W-5yX;!S{@YJCDb-(a4QFPjw|wFLAPfZyO3bvq@|Nn|+5a@RO<9m^DSBK{nLHuIVEy<-Y#6^*PqOqv1@#Ih+3F}tJ_f24lVMvzW#~? z(2MhmLh7~a!SqBrGjM7%M=vc#ab(`uZ6KHB!HGg$fR};zc)}6p6!#{SIBNgs)q6;B zd@A_Dm&>)9>#^}NgJfR4ZavrgT%y&HtKk;oJUzEM{=4=ozXL5#{Mb9^p4i9frOR=| zyktR|^H+Vm;rxO%%S&CbT| zMHZBfeAs;z;W_E{QIVEz!Y22=@gIV}IGf|vu63?TIBu@JY`Nn7K!WwqQi{_eo@M&7 z_$q$xm#nXMwLd<=Cl%XJQ~ZdR8~RKY_G9+`!tCE=|5U3Bvxeh9+*kef=I_S()eo&l z&vwR^#BF|~vIMrpKiGKHJ-Yk0v+FZ`ppB5Fya=kC)K=`*5VS2(PX+!?QC>oTw>4ry zp7rXqf+mFL8-IR+x#(Xf%T)pB`vpWvG+l=580U<84?pUo*Uk5l_d+i)#4dqNEep2c z=%s5vp{iWXW8}2}yP%`-8zbr4!;fjCg3ad!OhtyhzG#T2bi_8y?Vh>jSl}lUI=fp8 zGs&c>QUGs!KMg(BX|KE8aE+&TVb;smN7ZZP#U|jPXfZl^Zb|nkk!ru0^Qp@ znY9hxPKh*EPF7IwSLII~kPA276E}20$nQff6@DefJbjc8NcIP9hFu99gl`EN`>wSw zpb%%@Hms~&5ptmQ+1w?F05yFJ?3N1+L35w;@L!fl^|lo5*rR7HS+g?q?LOO2+YM^0DD|57lg%sg;8 zcovldkFK^SW{ptK%{*oXVBl_GheYinxP!OH4Q{mpH;BAu9=m|Mz&UVJo7cZ_X3*O? z7f;wgoAGzP(&+DnM=E%L3(j56HKliDJg9P$IX-H>{5Z1|*^sZKhyQD7Y@D4vI94o$ z7xVd0FH?kU{9E9lRyov;wQtc?>L~%J;6uOc_@2QjYWmSZM30FpmKIMa0L?{MX7SA( ztue4`IMQ-9L;6!RVwAeewq3PoE!W+nt|YtS}XST zvYzZST9<;aa-YR)yGD=%$kX4IwMfD#FF*VC^1`FmUh}g8cTm2?#w`WH5Dp5S;X70O z7N||salsOJX2DPA2c3|2o_ke-yNQ(6 zCWu$82d0QmQ?s)_`uG>Jd9j&!iVGj132>%0SzEDq$qV}0O@va{2Le)(N8qf$4Y4)V zHKg$+&w4CqacHlNusJJw*v5YCtk!cs?WfWD&;F|`A$GSV8dDhPBk0NPyZCrZ7H+*? z-_*wLmV`0#cOsT2f{ zljXS*FE4s2q>;ft!AxS06@XPNORLy? zjCA5I*`aRP_qmLBh>*$iS`WiuV&NZhDwhm1R!xkC4Vyu3Ir_c1(qA=y?tf<9Is556 zVDnZ|={Agyu@QH(36I}yQe=p{cxihoKNLHUhF!j+GsRsGHZ)<&4w>`z;cgKK$l_Jl zAkGYTUo$GhonN~=&#IX9ZEf%jm+YANXYC|0`x}|(C%$cWTj@t+Q2}OhD~yE>lsaVM z-)NkvLX8q$ek(OvA&~v}=bG4gjx$Ye@brdIMw1ymF`V^}mp5`~879HcV z-9@?b&ilrdF?fO(p0S$i)QZw)wZR^!>bIgu>YOr7z32vpMQ@ngQvzgr!#f_U*jf*? z@;nBuYRmW5ot?H?Px=*oJ+8LfGU9>weKtsc7lVzJHE?jOb1j=oTKGf8^R`Uw9DEgB z8*$FW+P?hBjvP|pwrj3cQ}M%cGJBbp+^+mi48L|;*Hahh%iRkBF*q@K2*3aR0}eBG zLi$m)E6MKj!@|4sSEtB8jhcpv5NSn=n{8Ol**F3mQMoUGBVlKfG)3p{s=KBjYCb%I4_|B{R!q`a7nftFfc~g8+2{*@- z8lL05J<{h2a8_j_BPt6`YJ3o@ihf7AlB%NW{_1@*_RylEY8w$nu=V!|rbXUHS?Dyj z60}bB8etn02$d4>rY)%PBEtop>s{7)K1ukSu3@%~nNXpkAl6p^Zs!_L$LlCJ|KIKS z1t%BkA#XpwHc1`mdk@mrD33CT?|u!(;UU>XrbJ4!c@KSQgO&G4FQSD@yj?-@=!cRPEGw_EUp; z`v_8Glxb6Pj0E|>_sXtXK!Hr(&STW2^MdR>S!V>%&fj-D8!tD)l;tZog=C$;?Zh*6 zinTAFMacM8SVIW%i{bGi=K%`O6j;2X=l5J_Iw?UlxXFBKJ-`qY1*PXUwq~I zZpML(TS-wHzYJvbE0%&Xu}IY#oq=0#!bx;DJ~w4}Nc`oyf4g9NsK95t|HA_CISVqF zdGVQc502w8_i4P}8?N!)*zFSuMC3Tr@YMQGHcq|S&DuM{*=6@9<;R%=P-xXmvE(Y5 znx79rp)0~OZbnTk-lLGZ>%m#$u^Z66x6d&_Akwd|y@YfUS{@&PYm$WFdw!HlD_VUm zd~ih>@4sCNBP@I)V?$vq_fC)jOEb^)N1(}cn^Sn*jqcPLyRW;UHztv+tnkkdOH4B_ zU6$1CKCpMG{NQ&2UyW{%bl**&l5%{hFCZR zI3eaHKFsH0%E0$x)4*rF>}eo2@uR3z`dpX5t&=9na?`3u3P<5Gr)uf)Z|q5_=enrK zZBVyP;Vz(j>?As9!OhlOxOtglAv$(Wx>C-FViRDkN&{PvTb=Pv~uF zlw@05&;Hr1YLjo}o- z8+>g3R$gezp+V=nzM_Q%TcW}}qc(f-;MWZPt-R_~8#%gse9Q6_(CS3t5-cSo^B8QDVf61n@T2f=O&?Mr0!Sdvq zHjO0@)ZE{lE+0SB-8j#UbalMck{KhMz!0xiN9DgyUp*$^%tmJW0xTK$xPsvoUE)JA zA_RIOu39hhxnSjfnJFujeG`8np5>te=E1lnt8_Qi?I58c_?}DKFJphP0aY(g-^b{Z zlG1%`*Qbf;99Z)7fej`Bc9Q*OuTQT}r$N|$1Z7Km+voyVC0%1L;!RDZ_9Lq7osBaz z(LAy9TE_}xRKShsS4Tlj<<>SOeN0z;-!A2EtHU#uT}K|vWr&N-#n3~=Tf}fR@3=TrkB;L6IyVtEIUQbrIp-72K=HCY%fwo?pya- zNd0*eZl8th8X1l{L?_AGSQaupe&|S@@nJ--9Dc}OU*}&u_wy^<#c<~KGl_v>jF#W?Zvi>{+BygnQz4kIC4Vo(WR!5BcuHXD!r%2h3dyyMMM)s-FbD_k*IAgly^1g_x!^cYSoM1YUMSvRDy>-%3B$Iy~&WDUOZp5 z`%5_UUlK?Om84QunAly!$tvu7H$qqh$=lhlxWVsa6TghjPY0Qb8#$J@{Y2fl&GV|{P;f&gvTz6e1X-`BWt&u$9(puauoe` z%Klc(*L;Ly8T}WXCWR+8<19{9`qwA9`OIz0pW%9hLMmbo?41hg>QkoYmz~%Q9`%{H z5w0grHrkm_%fbIn5E55awSJra9#T7fUi}9@3eh~IN<_I5Ko1;H4(Zn4FNTS@aG&5?>^j8X<&aSGirg6i}1M(gUxMg_m#=Mxn z;2We7w-ae3MhOckCQNQaBq>y-q84xozgioxT?#{2?_Pa-xp4THP9hD_=6}j@zK)1p z|LqU`9dac#l=7Y88TaKxPXF%j$Y<{yVL>b2Scj2?_}LWLY5Xuhct0-w0+b*s)r^I< z>_b^@k`Ko&AQ1LJ90NVB!mr42kjVbd3phol$j%(eZj_KGxW3LYJb_V()XRoeB*D(n z7B6wWC>yY-DF~~ zc_!owvZjl0v|rV%FC&rN|JYf~aaP&$l*CIC0*-Plz^4uyf~WAciN!CxPGFYQDwC=6 zwPUPLzQVVM!?7{v0tm*U$r1-Jx1`0 z&e!HJ@NKrA$Pwtt>36dhC}Wo8Z_GoRjF-A;#!b*N+K ziS`jR-P8ul1E1~KPZzmebmnI32-O(8C4^0Um_o+UK^bi-38JUbbFXJoNKe8(-hFQx zKy9PSp!Qbvm}Ea@>@zoKdeyp$E#j?~_wQe_7G5N*tY*KI%=9fr?~4WY8!9W$2dj>g zWrR8QZn;mvu)}kdPTMQcz+i3I!4OG8WFy*!5@3ouNY-y=|026Wp^hE0FXoGj;y@uZ zLGHA3C8oIGU&vXb{&aVGT+k|qRMwSCii?Zx279JJWnyPZ)L&~BlfybqmgBFT z9SNWjx!HurQe7ebEm*mn3Et}>6*dCqAEx~voIql7c6*1vO2c#9oemOqlO7EXZY}C; znWnH~G8{9dFRshn*r|eimp1l-y&3DU5><)2N#(%hV;DGaYJdoRf_|T(Fvd?T{x${O z?VYEv3@YUXK={7k$B)Z%g8O$Slbwok?Hl&kCLQY&q&A`O1SW69j-m9 zSPm8)-{*@P*}+({P-r=ypGR*g9tL;qG;%MT`?!g0QRh=lA$X1*YMqnoa?cqCn5cFQ zX)a)2cEfrARnw(wfg^t?WkOP~bpxn>gi?J+^c@K*5`p`=v=x$W)Y_gYpq?E&wOBae z^^Q{*hn1>7aF9;WMve&Zxeauyn&QAHoy31DfUAPx5Mr-Mqd0{9{Nz87oBq2db+W=` z@QAygkTWK7o@tCE`1SY?YvZ!G@%o9~?){53SCNOFnXzPtD+X2;FME< zsfvgXP)hhby4|(vdcK#hPva*PGo77a3$Cl!oKRdUT@uL4w-HYWxCp~B1@dIaZ0^fpMVZ-23 zEZ0YLoU=DBm={*6ViDiEy0aU@5uib6J~n?J=bea)w|KoaY71pPlxG3F69cZ|$(&sT z30+-c4|bO5O43A3zwBv4%l=TXqtJr+b9LQz)6?sl#-*dIJ9teynO{N|l8btj>DroK z`gP7gjN>zME-8z$0#bhxpC`4#o$hp$dyU#k)h-8;>=ti!^wXA1K`MB(1LAxASoQ;R z>JXNHK?#%BuYcv-Ffik|yVWT`iCxYp%-%uMPr z>18lNxEZT}a?w5R>xPz@kT5M24<$aQL`nKWeA5x_-}$usSwgw0cio##u5SSCjxshj zt`*a&IY*JqYB=T7$>`!K-*`f$rZbspzv93P5rux46P^hfXsq+6lRL=JcxjzL2Qp(t-WSvlic zwv6DtV!~P6;N@z!4~yk~oH_@2UT$vi;^LxIHj`#L`6R^vGb>o+oPvp&U_;vNG5LP{ zSBBfME|v#OzKvoTB1Dwa%$zGWv|3mw&P^7DyP<2r3C42ZdeYmDyJkx+Zt7kCUF{oV zD1R?%C(C#~FDo`!kDcfLWSL_av(tY}-I2E~UH&W~k+hLV-2PDo1voYpA@_GD>b9*lUE zrAQQgZjo>eqGgJd+0dwvivGJhYBiS~VLVj-48+t^xIG%)Zq~-VuyGYV`6a$fh-VRe zK_B6Qa;WHfDd=1_r&Xq>RW9$yeS8&W493hL3au5&;--Co@c~$cFDj#ue+esK*sX_Q z!_c~_XapSQ#FMTpu7$<9qFnS;%zQp3hrAFIOxSnW4L{!uI%i|8%bTdFn9@jKDfNaG z*x?2%XV?TPlb+9JoJxvOl*OE5+!{&o?RpC-%9b4@^PW|eMGKH>Q)j-YCF1V%N`h@# zayL_;W=iEGE&3Otw+t(OPo5C!o+EQZO^t@~{&POe&05$p%l|z*=l_4x8MwCgJJO>$iqTIL3dlerLXoFUaSh=k0id>5J;anW zG>+H%)=!^2z8?`4wco_>DAd-;iItO6DO`>iR$N?rP^@+^sH8utUeGQp2cwVy_6{(5 zBqM`%6-xRwYI&nzhMjbmFEuuamKU;;+!!6Z(!i-ut=~@E-X0?|*?XfnWu1hJUx+~9 z`me5e(Lg-uU*ClVtRO*uB)f5M+oLitLV&`3g<0t;Q5Y~xqLZBa)WnM9MRiV6ct71;Qlb9S%zbMM$c35uAZz;l~bO>_c0 zmIY>?cJ5J&rrVWL=uDmNC|2wXr{ke(Ym!&V!^}(z{xetx4Vh(~6??hDrZVaFqnDA0IH8lZJXMm`E1d9?23(LQ$2~+m0!osPV z9I^nMF9^;M*7YVRNUG!ASAZf7%&}8aQkp&VT3cHSkBG?4&%g6AEscsr2@uLiSX?wY zxU9sn2mJkYD?p0D&d!d7o&BnF->aphyu1LI1s2zLNBSjI0YE&D>ywd}zYlyBFd5^| z`1o5@)yKdOX(lUPzESi%-&56CXtnD zVZ#oejcK7tQJQ{4yQC9)B;#XMYKvB8zWhx$Ae6@I!C23;)QPc{vc z#lRnmztfF5j5XTwaQKOmp~fRkleV!Z5bpP^2DMwBO|h>=yNJxLGfko-=?VwM$P8CkN)~@i;i{d^fi~#rS-#k9Rv??lCMMb}DY*Mwpl$o2GplD(M;C8u*WdhH|>v(zT?02BHwzh_e zPBuXDdd`BZQX^|RI)&AJ<8bx2tzaAOi|isG%Hv3*{&P8m$U{oFzr&1hvs zGJeKG+P28uR5)!gnyR(D>!w?_e7^OdVn*Ig-a>p3S~UuU?(2W~4bYasPy$X9SoMl_ zdo2DZ0n!B!IhFu-S6Vk?b)>r3HmQh{>EmEGX9S~iaevV(DlH~QAsWC@02RiXhgj&q z4oYoiWi{+JR?2IG^ub;9c`8c;66y0wKww~am_Q3&z7SL@{y|dv1#_BpWupuf`TWMlrtZ` zGWO*QJ-3Z%(wRLq!2J8&*{ej&-!1fB^+rC1A15JtLS%!aX9Q?!w58f<=+Y_pkONo=jgCb=m(#l z$+vcICG*wW$I5!ueTv@Dl_9WER(>=$H`gYFa~D^}+=6EVjDj1o2j`tGLg~~(j#Pk! z++1IMIQjeLQ^z|73FVSXKx}$2x!j~FVQtMKL!JG7&9|vCgBoB)0&qOj)6;XX&=6N! z`#P5}eWdsELo&k_FCM@KySLBczkQ1s+Wa?GG;u%{@V>xEwD*Veb%3XS*RVh>XipBf zmV*^|Ho%X|0ug@QhKRl&Y#k7u9~3IgTKs}haLGs(%=fZo>8q%Hj-#t*9)D`CwXBoA zvoR|hD2ERu^n-Uu1!?TX@=T~jb0TyVxDCLTrO{d=Szr@;F?%!udEs8zo!hG4oAb1c zK8OeEN7k%gxiQ0Z6z;gwQyC`b@J5HmCElelHi6x~Q7$d%kjd;>T~PqtzYh4n$OSv6 z{`b;7`@b-TK$!yi@J&rdud4YIR)kBL8%k)YNHjO^YYfHifcKxs@bq5(;JSqQ#B_i5 zG4Jdg|1�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

  • v<$_wsBw?%+CA?(EQz8HV)$ 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 Date: Sat, 18 Feb 2023 13:59:54 +0000 Subject: [PATCH 06/13] Auto-update README --- README.md | 1 - README_fr.md | 1 - 2 files changed, 2 deletions(-) diff --git a/README.md b/README.md index 985257b..9c8001b 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,6 @@ Some of the optional features are: file sorting, different view modes, localizat ## Screenshots ![Screenshot of h5ai](./doc/screenshots/screenshot.jpg) -![Screenshot of h5ai](./doc/screenshots/h5ai-1024x540.png) ## Documentation and resources diff --git a/README_fr.md b/README_fr.md index 6894de7..6ec3545 100644 --- a/README_fr.md +++ b/README_fr.md @@ -32,7 +32,6 @@ Parmi les fonctionnalités optionnelles, citons : le tri des fichiers, différen ## Captures d’écran ![Capture d’écran de h5ai](./doc/screenshots/screenshot.jpg) -![Capture d’écran de h5ai](./doc/screenshots/h5ai-1024x540.png) ## Documentations et ressources From f41c6f6bf94880558823e37ca0d2476ca1cb0b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 18 Feb 2023 18:31:54 +0100 Subject: [PATCH 07/13] fix perm --- scripts/install | 2 ++ scripts/restore | 2 ++ scripts/upgrade | 2 ++ 3 files changed, 6 insertions(+) diff --git a/scripts/install b/scripts/install index 0d839e4..5086fce 100644 --- a/scripts/install +++ b/scripts/install @@ -33,6 +33,8 @@ ynh_script_progression --message="Setting up source files..." --weight=4 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= diff --git a/scripts/restore b/scripts/restore index b3cc02b..87ef668 100644 --- a/scripts/restore +++ b/scripts/restore @@ -17,6 +17,8 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$install_dir" --not_mandatory +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index d1b4968..b2e2079 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -65,6 +65,8 @@ then ynh_setup_source --dest_dir="$install_dir" fi +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= From 3844ec21b00e2c227ec5eff06bfbc10886bba8cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sat, 18 Feb 2023 18:32:53 +0100 Subject: [PATCH 08/13] Update manifest.toml --- manifest.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.toml b/manifest.toml index 57ea7d1..f2984c2 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ name = "h5ai" description.en = "Modern HTTP web server index for NGINX" description.fr = "Serveur moderne d'index pour NGINX" -version = "0.30.0~ynh4" +version = "0.30.0~ynh5" maintainers = ["alexAubin"] From 365c3375e81dad38c74ac32669f76f0aa87b9dea Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Sat, 18 Feb 2023 17:32:58 +0000 Subject: [PATCH 09/13] Auto-update README --- README.md | 2 +- README_fr.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c8001b..bb324ca 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ There are lots of optional extensions and configuration options to customize the Some of the optional features are: file sorting, different view modes, localization, a breadcrumb, a tree view, custom headers and footers, file filter and search, folder sizes, auto refresh, packaged download, QR codes, thumbnails, file previews -**Shipped version:** 0.30.0~ynh4 +**Shipped version:** 0.30.0~ynh5 **Demo:** https://larsjung.de/h5ai/demo/ diff --git a/README_fr.md b/README_fr.md index 6ec3545..1e33866 100644 --- a/README_fr.md +++ b/README_fr.md @@ -25,7 +25,7 @@ Il y a beaucoup d'extensions optionnelles et d'options de configuration pour per Parmi les fonctionnalités optionnelles, citons : le tri des fichiers, différents modes d'affichage, la localisation, le fil d'Ariane, l'arborescence, les en-têtes et pieds de page personnalisés, le filtrage et la recherche de fichiers, la taille des dossiers, le rafraîchissement automatique, l'emballage... -**Version incluse :** 0.30.0~ynh4 +**Version incluse :** 0.30.0~ynh5 **Démo :** https://larsjung.de/h5ai/demo/ From f7b9d5f3640d4a7732bb718846224b46e0b9ac17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 20 Feb 2023 16:12:54 +0100 Subject: [PATCH 10/13] Update manifest.toml --- manifest.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.toml b/manifest.toml index f2984c2..c87fa82 100644 --- a/manifest.toml +++ b/manifest.toml @@ -17,7 +17,7 @@ admindoc = "https://larsjung.de/h5ai/" code = "https://github.com/lrsjng/h5ai" [integration] -yunohost = ">= 11.1.7" +yunohost = ">= 11.1.8" architectures = "all" multi_instance = true ldap = false From df0e93f0683335e1b997becb8ea7ec1eabdff252 Mon Sep 17 00:00:00 2001 From: tituspijean Date: Thu, 23 Feb 2023 23:39:34 +0100 Subject: [PATCH 11/13] [autopatch] Upgrade auto-updater --- .github/workflows/updater.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index fb72ba0..a56d7cb 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Fetch the source code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Run the updater script @@ -33,7 +33,7 @@ jobs: - name: Create Pull Request id: cpr if: ${{ env.PROCEED == 'true' }} - uses: peter-evans/create-pull-request@v3 + uses: peter-evans/create-pull-request@v4 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: Update to version ${{ env.VERSION }} From 3c222a80517af43337c6f1d1916ff52b2d614759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Sun, 26 Feb 2023 09:51:43 +0100 Subject: [PATCH 12/13] cleaning --- check_process | 23 -------------- doc/ADMIN_fr.md | 2 -- manifest.toml | 2 +- scripts/change_url | 77 +--------------------------------------------- scripts/restore | 2 ++ 5 files changed, 4 insertions(+), 102 deletions(-) delete mode 100644 check_process diff --git a/check_process b/check_process deleted file mode 100644 index 81e54d1..0000000 --- a/check_process +++ /dev/null @@ -1,23 +0,0 @@ -;; Test complet - ; Manifest - domain="domain.tld" - path="/path" - is_public=1 - ; Checks - pkg_linter=1 - setup_sub_dir=1 - setup_root=1 - setup_nourl=0 - setup_private=1 - setup_public=1 - upgrade=1 - upgrade=1 from_commit=73f74039fb63adc555222d73ded6b43a64d41456 - # 0.30.0~ynh3 - upgrade=1 from_commit=af190a49ec43b470a38b21d81887a1b457b333fa - backup_restore=1 - multi_instance=1 - change_url=1 -;;; Upgrade options - ; commit=af190a49ec43b470a38b21d81887a1b457b333fa - name=Merge pull request #11 - manifest_arg=domain=DOMAIN&path=PATH&admin=USER&language=fr&is_public=1&password=pass&port=666& diff --git a/doc/ADMIN_fr.md b/doc/ADMIN_fr.md index fd9128d..097bde8 100644 --- a/doc/ADMIN_fr.md +++ b/doc/ADMIN_fr.md @@ -1,5 +1,3 @@ -## Configuration - Après avoir installé l'application, vous pouvez ajouter des documents dans `/var/www/documents` (ou le chemin correspondant que vous avez choisi). h5ai ne permet pas de modifier ou de télécharger de nouveaux documents directement à partir du navigateur Web. Vous pouvez imaginer coupler le dossier `/var/www/documents` à Nextcloud ou un FTP pour permettre à certains utilisateurs de télécharger du contenu et d'utiliser h5ai comme interface publique en lecture seule. Le fichier de configuration principal est `_h5ai / private / conf / options.json`. Vous souhaiterez peut-être modifier certains des paramètres documentés. Mais il y a d'autres fichiers dans `_h5ai / private / conf` que vous pourriez consulter. diff --git a/manifest.toml b/manifest.toml index c87fa82..0c697fd 100644 --- a/manifest.toml +++ b/manifest.toml @@ -17,7 +17,7 @@ admindoc = "https://larsjung.de/h5ai/" code = "https://github.com/lrsjng/h5ai" [integration] -yunohost = ">= 11.1.8" +yunohost = ">= 11.1.11" architectures = "all" multi_instance = true ldap = false diff --git a/scripts/change_url b/scripts/change_url index 022afd2..63210fa 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -6,89 +6,14 @@ # IMPORT GENERIC HELPERS #================================================= -source _common.sh source /usr/share/yunohost/helpers -#================================================= -# RETRIEVE ARGUMENTS -#================================================= - -old_domain=$YNH_APP_OLD_DOMAIN -old_path=$YNH_APP_OLD_PATH - -new_domain=$YNH_APP_NEW_DOMAIN -new_path=$YNH_APP_NEW_PATH - -#================================================= -# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP -#================================================= -ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=1 - -# Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { - # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. - ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" - - # Restore it if the upgrade fails - ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# CHECK WHICH PARTS SHOULD BE CHANGED -#================================================= - -change_domain=0 -if [ "$old_domain" != "$new_domain" ] -then - change_domain=1 -fi - -change_path=0 -if [ "$old_path" != "$new_path" ] -then - change_path=1 -fi - #================================================= # MODIFY URL IN NGINX CONF #================================================= ynh_script_progression --message="Updating NGINX web server configuration..." --weight=3 -nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf - -# Change the path in the NGINX config file -if [ $change_path -eq 1 ] -then - # Make a backup of the original NGINX config file if modified - ynh_backup_if_checksum_is_different --file="$nginx_conf_path" - # Set global variables for NGINX helper - domain="$old_domain" - path_url="$new_path" - # Create a dedicated NGINX config - ynh_add_nginx_config -fi - -# Change the domain for NGINX -if [ $change_domain -eq 1 ] -then - # Delete file checksum for the old conf file location - ynh_delete_file_checksum --file="$nginx_conf_path" - mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf - # Store file checksum for the new config file location - ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" -fi - -#================================================= -# GENERIC FINALISATION -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload +ynh_change_url_nginx_config #================================================= # END OF SCRIPT diff --git a/scripts/restore b/scripts/restore index 87ef668..ac30d05 100644 --- a/scripts/restore +++ b/scripts/restore @@ -27,7 +27,9 @@ chown -R $app:www-data "$install_dir" ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" + ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$phpversion + ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= From bbdb755140424f1c65f38086685cf27225208ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 2 Mar 2023 10:22:29 +0100 Subject: [PATCH 13/13] cleaning --- manifest.toml | 2 +- scripts/install | 1 - scripts/upgrade | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/manifest.toml b/manifest.toml index 0c697fd..e4c4b50 100644 --- a/manifest.toml +++ b/manifest.toml @@ -17,7 +17,7 @@ admindoc = "https://larsjung.de/h5ai/" code = "https://github.com/lrsjng/h5ai" [integration] -yunohost = ">= 11.1.11" +yunohost = ">= 11.1.12" architectures = "all" multi_instance = true ldap = false diff --git a/scripts/install b/scripts/install index 5086fce..08022c1 100644 --- a/scripts/install +++ b/scripts/install @@ -33,7 +33,6 @@ ynh_script_progression --message="Setting up source files..." --weight=4 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" diff --git a/scripts/upgrade b/scripts/upgrade index b2e2079..64f61d4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -65,7 +65,6 @@ then ynh_setup_source --dest_dir="$install_dir" fi -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir"