From 922e0c024847aecf72b2581121f7b3cdb6b99e4e Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 06:37:16 +0200 Subject: [PATCH 01/31] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index cc4e945..3a474b1 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Self-hosted financial manager", "fr": "Gestionnaire de finances personnelles" }, - "version": "5.6.8~ynh1", + "version": "5.7.1~ynh1", "url": "https://firefly-iii.org/", "upstream": { "license": "GPL-3.0-or-later", From 36e08f07ce2fbce3b92fbfca48ce12787eb82665 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 06:39:00 +0200 Subject: [PATCH 02/31] Update app.src --- conf/app.src | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/app.src b/conf/app.src index 24b6d2a..6ea4ee5 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/firefly-iii/firefly-iii/archive/refs/tags/5.6.8.tar.gz -SOURCE_SUM=a1f7e30b7fa0ded2c10271e2f9f4b61fb26e3b0d4183250e444bfea92a016609 +SOURCE_URL=https://github.com/firefly-iii/firefly-iii/archive/refs/tags/5.7.1.tar.gz +SOURCE_SUM=232E52E8C7459398DB9CA449A4CE7BBF13A64A8D8B89E9FF5086B5DB81739D22 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true From f4a0679c46a682bdf9128c2917fbf58e87253235 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:41:23 +0200 Subject: [PATCH 03/31] Update _common.sh --- scripts/_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 0dff24f..51284de 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -7,7 +7,7 @@ # dependencies used by the app latest_tag=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep 'tag_name' | cut -d\" -f4) -tag="5.5.11" +tag=$(ynh_app_upstream_version) YNH_PHP_VERSION="8.0" From f707d14d2d1e98d6ab2950b248fbf4ce73254664 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:42:54 +0200 Subject: [PATCH 04/31] Update install --- scripts/install | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/install b/scripts/install index fbeb2e3..025c488 100755 --- a/scripts/install +++ b/scripts/install @@ -27,6 +27,7 @@ is_public=$YNH_APP_ARG_IS_PUBLIC random_key=$(ynh_string_random --length=32) email=$(ynh_user_get_info --username=$admin --key=mail) phpversion=$YNH_PHP_VERSION +tag=$(ynh_app_upstream_version) update=1 app=$YNH_APP_INSTANCE_NAME From 9a46875a6185fec41935ed5cb8c900bdabd9bf46 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:44:14 +0200 Subject: [PATCH 05/31] Update upgrade --- scripts/upgrade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 78df5c3..13769d7 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,7 +24,7 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) random_key=$(ynh_app_setting_get --app=$app --key=random_key) email=$(ynh_user_get_info --username=$admin --key=mail) -update=$(ynh_app_setting_get --app=$app --key=update) +tag=$(ynh_app_upstream_version) phpversion=$YNH_PHP_VERSION #================================================= From a13486a0857b5b0313aff7b51955620d592000f9 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:48:27 +0200 Subject: [PATCH 06/31] Update _common.sh --- scripts/_common.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 51284de..6cc1719 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -7,7 +7,6 @@ # dependencies used by the app latest_tag=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep 'tag_name' | cut -d\" -f4) -tag=$(ynh_app_upstream_version) YNH_PHP_VERSION="8.0" From a22795009de32d55a599a0cda024c105d8f8a4c2 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:49:51 +0200 Subject: [PATCH 07/31] Update install --- scripts/install | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/install b/scripts/install index 025c488..9443d67 100755 --- a/scripts/install +++ b/scripts/install @@ -28,7 +28,6 @@ random_key=$(ynh_string_random --length=32) email=$(ynh_user_get_info --username=$admin --key=mail) phpversion=$YNH_PHP_VERSION tag=$(ynh_app_upstream_version) -update=1 app=$YNH_APP_INSTANCE_NAME @@ -52,7 +51,6 @@ ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=random_key --value=$random_key -ynh_app_setting_set --app=$app --key=update --value=$update ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion #================================================= From 0eedd3d5ef21760792dcefcc715594dc5e846696 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:50:38 +0200 Subject: [PATCH 08/31] Update _common.sh --- scripts/_common.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 6cc1719..9ebd8d2 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -6,8 +6,6 @@ # dependencies used by the app -latest_tag=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep 'tag_name' | cut -d\" -f4) - YNH_PHP_VERSION="8.0" # Composer version From 9942c72676c5b6ef7a0e01e89522c7e6f69bc8df Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:55:49 +0200 Subject: [PATCH 09/31] Update upgrade --- scripts/upgrade | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 13769d7..fc9a5a6 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -90,17 +90,6 @@ then if [ `cd $final_path && git rev-parse --is-inside-work-tree` ]; then pushd "$final_path" - if [ $update -eq 1 ] - then - git fetch --quiet origin tag $latest_tag --no-tags - git checkout --quiet $latest_tag - else - git fetch --quiet origin tag $tag --no-tags - git checkout --quiet $tag --quiet - fi - ynh_secure_remove --file="$final_path/bootstrap/cache/*" - ynh_secure_remove --file="$final_path/vendor/" - popd else ynh_script_progression --message="Upgrading source files..." # Create a temporary directory @@ -116,18 +105,10 @@ then cp -aT "$final_path/storage/export" "$tmpdir/storage/export/" ynh_secure_remove --file="$final_path" - # Download, check integrity, uncompress and patch the source from app.src - if [ $update -eq 1 ] - then - - git clone --quiet -b $latest_tag --depth 1 https://github.com/firefly-iii/firefly-iii.git $final_path - - else - git clone --quiet -b $tag --depth 1 https://github.com/firefly-iii/firefly-iii.git $final_path - - fi - - ynh_secure_remove bootstrap/cache/* + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir=$final_path + ynh_secure_remove bootstrap/cache/* + # Restore the config file and data mkdir -p "$final_path/storage/upload/" mkdir -p "$final_path/storage/export/" From 33721189f1e3d6e08cc38a8d12a50f7e753ba49c Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 21:00:11 +0200 Subject: [PATCH 10/31] Update upgrade --- scripts/upgrade | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/upgrade b/scripts/upgrade index fc9a5a6..f05829c 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -90,6 +90,11 @@ then if [ `cd $final_path && git rev-parse --is-inside-work-tree` ]; then pushd "$final_path" + ynh_setup_source --dest_dir=$final_path + ynh_secure_remove --file="$final_path/bootstrap/cache/*" + ynh_secure_remove --file="$final_path/vendor/" + popd + else ynh_script_progression --message="Upgrading source files..." # Create a temporary directory From f66f0519eba1c9d40c1c6fec59315fbcedbce3d9 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 21:01:34 +0200 Subject: [PATCH 11/31] Update install --- scripts/install | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/install b/scripts/install index 9443d67..310451b 100755 --- a/scripts/install +++ b/scripts/install @@ -27,7 +27,6 @@ is_public=$YNH_APP_ARG_IS_PUBLIC random_key=$(ynh_string_random --length=32) email=$(ynh_user_get_info --username=$admin --key=mail) phpversion=$YNH_PHP_VERSION -tag=$(ynh_app_upstream_version) app=$YNH_APP_INSTANCE_NAME @@ -93,7 +92,7 @@ ynh_script_progression --message="Cloning Firefly-iii..." ynh_app_setting_set --app=$app --key=final_path --value=$final_path -git clone --quiet -b $tag --depth 1 https://github.com/firefly-iii/firefly-iii.git $final_path +ynh_setup_source --dest_dir=$final_path chmod 750 "$final_path" chmod -R o-rwx "$final_path" From f023ce2f2d8a5e4b7c16975d18a98caeb0d0307f Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Tue, 5 Apr 2022 21:02:10 +0200 Subject: [PATCH 12/31] Update upgrade --- scripts/upgrade | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index f05829c..3c6d4f5 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,7 +24,6 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) random_key=$(ynh_app_setting_get --app=$app --key=random_key) email=$(ynh_user_get_info --username=$admin --key=mail) -tag=$(ynh_app_upstream_version) phpversion=$YNH_PHP_VERSION #================================================= From bd39e329436d69e54ed306f600b171f4548cd06e Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Wed, 6 Apr 2022 08:45:31 +0200 Subject: [PATCH 13/31] Update manifest.json --- manifest.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/manifest.json b/manifest.json index 3a474b1..175bf02 100644 --- a/manifest.json +++ b/manifest.json @@ -49,6 +49,10 @@ { "name": "is_public", "type": "boolean", + "help": { + "en": "If enabled, Misskey will be accessible by people who doesn’t have an account. This can be changed later via the webadmin.", + "fr": "Si cette case est cochée, Misskey sera accessible aux personnes n’ayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin." + }, "default": true } ] From dee4e40a6fa2f2c4118694e29e6e3f209f0e04a4 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Wed, 6 Apr 2022 08:52:42 +0200 Subject: [PATCH 14/31] Update upgrade --- scripts/upgrade | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/upgrade b/scripts/upgrade index 3c6d4f5..7be39ad 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -195,6 +195,12 @@ ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" chown root: "/etc/cron.d/$app" chmod 644 "/etc/cron.d/$app" +#================================================= +# SECURE FILES AND DIRECTORIES +#================================================= + +set_permissions + #================================================= # RELOAD NGINX #================================================= From adee7780c6fd2d23f32a01f0a49ce9ad73cb95ef Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Wed, 6 Apr 2022 09:05:20 +0200 Subject: [PATCH 15/31] Update upgrade --- scripts/upgrade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 7be39ad..6b42cdd 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -150,7 +150,7 @@ ynh_install_app_dependencies "$pkg_dependencies" ynh_script_progression --message="Upgrading PHP-FPM configuration..." # Create a dedicated php-fpm config -ynh_add_fpm_config --usage=low --footprint=low +ynh_add_fpm_config --phpversion=$phpversion #================================================= # SPECIFIC UPGRADE From 7788c3774d2c5d5c9075029b36e42b6ed29860f3 Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Wed, 6 Apr 2022 09:20:27 +0200 Subject: [PATCH 16/31] Update upgrade --- scripts/upgrade | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 6b42cdd..34d0cb5 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -70,6 +70,13 @@ if ynh_legacy_permissions_exists; then ynh_app_setting_delete --app=$app --key=is_public fi +#================================================= +# UPGRADE DEPENDENCIES +#================================================= +ynh_script_progression --message="Upgrading dependencies..." + +ynh_install_app_dependencies "$pkg_dependencies" + #================================================= # CREATE DEDICATED USER #================================================= @@ -137,13 +144,6 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_script_progression --message="Upgrading dependencies..." - -ynh_install_app_dependencies "$pkg_dependencies" - #================================================= # PHP-FPM CONFIGURATION #================================================= From 357bdbdae05824abf18b6efb6935920b5960204c Mon Sep 17 00:00:00 2001 From: Memo <58190287+memo-567@users.noreply.github.com> Date: Wed, 6 Apr 2022 09:45:37 +0200 Subject: [PATCH 17/31] Update manifest.json MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Éric Gaspar <46165813+ericgaspar@users.noreply.github.com> --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 175bf02..3f205d2 100644 --- a/manifest.json +++ b/manifest.json @@ -50,8 +50,8 @@ "name": "is_public", "type": "boolean", "help": { - "en": "If enabled, Misskey will be accessible by people who doesn’t have an account. This can be changed later via the webadmin.", - "fr": "Si cette case est cochée, Misskey sera accessible aux personnes n’ayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin." + "en": "If enabled, firefly-III will be accessible by people who doesn’t have an account. This can be changed later via the webadmin.", + "fr": "Si cette case est cochée, firefly-III sera accessible aux personnes n’ayant pas de compte. Vous pourrez changer ceci plus tard via la webadmin." }, "default": true } From d92ec585b2aad99a207352b2a0e1652bb0a91324 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Wed, 6 Apr 2022 11:22:10 +0000 Subject: [PATCH 18/31] 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 4989793..b7c4756 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in Self-hosted financial manager -**Shipped version:** 5.6.8~ynh1 +**Shipped version:** 5.7.1~ynh1 **Demo:** https://demo.firefly-iii.org/login diff --git a/README_fr.md b/README_fr.md index d674c9a..3565812 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour Gestionnaire de finances personnelles -**Version incluse :** 5.6.8~ynh1 +**Version incluse :** 5.7.1~ynh1 **Démo :** https://demo.firefly-iii.org/login From 5faee4258fa87adacc634e69d0629a3a32c3279d Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 13:22:11 +0200 Subject: [PATCH 19/31] Cleaning up --- conf/.env | 4 ++-- doc/DESCRIPTION.md | 0 scripts/_common.sh | 2 +- scripts/upgrade | 42 ++++-------------------------------------- 4 files changed, 7 insertions(+), 41 deletions(-) create mode 100644 doc/DESCRIPTION.md diff --git a/conf/.env b/conf/.env index 5cd1104..5161efb 100644 --- a/conf/.env +++ b/conf/.env @@ -27,7 +27,7 @@ DEFAULT_LOCALE=equal # Change this value to your preferred time zone. # Example: Europe/Amsterdam # For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones -TZ=Europe/Amsterdam +TZ=__TIMEZONE__ # TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy. # Set it to ** and reverse proxies work just fine. @@ -62,7 +62,7 @@ DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=__DB_NAME__ -DB_USERNAME=__DB_NAME__ +DB_USERNAME=__DB_USER__ DB_PASSWORD=__DB_PWD__ # MySQL supports SSL. You can configure it here. diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md new file mode 100644 index 0000000..e69de29 diff --git a/scripts/_common.sh b/scripts/_common.sh index 9ebd8d2..6275b5f 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -9,7 +9,7 @@ YNH_PHP_VERSION="8.0" # Composer version -YNH_COMPOSER_VERSION="2.0.13" +YNH_COMPOSER_VERSION="2.3.3" pkg_dependencies="php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-bcmath php${YNH_PHP_VERSION}-opcache php${YNH_PHP_VERSION}-ldap" diff --git a/scripts/upgrade b/scripts/upgrade index 34d0cb5..ad98869 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -25,6 +25,7 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) random_key=$(ynh_app_setting_get --app=$app --key=random_key) email=$(ynh_user_get_info --username=$admin --key=mail) phpversion=$YNH_PHP_VERSION +timezone="$(cat /etc/timezone)" #================================================= # CHECK VERSION @@ -85,50 +86,16 @@ ynh_script_progression --message="Making sure dedicated system user exists..." # Create a dedicated user (if not existing) ynh_system_user_create --username=$app --home_dir="$final_path" -#================================================= -# STANDARD UPGRADE STEPS #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= if [ "$upgrade_type" == "UPGRADE_APP" ] then - if [ `cd $final_path && git rev-parse --is-inside-work-tree` ]; - then - pushd "$final_path" - ynh_setup_source --dest_dir=$final_path - ynh_secure_remove --file="$final_path/bootstrap/cache/*" - ynh_secure_remove --file="$final_path/vendor/" - popd + ynh_script_progression --message="Upgrading source files..." - else - ynh_script_progression --message="Upgrading source files..." - # Create a temporary directory - tmpdir="$(mktemp -d)" - - # Backup the config file in the temp dir - mkdir -p "$tmpdir/storage/upload" - mkdir -p "$tmpdir/storage/export" - mkdir -p "$final_path/storage/upload/" - mkdir -p "$final_path/storage/export/" - cp -aT "$final_path/storage/upload" "$tmpdir/storage/upload/$" - cp -a "$final_path/.env" "$tmpdir/.env" - cp -aT "$final_path/storage/export" "$tmpdir/storage/export/" - ynh_secure_remove --file="$final_path" - - # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir=$final_path - ynh_secure_remove bootstrap/cache/* - - # Restore the config file and data - mkdir -p "$final_path/storage/upload/" - mkdir -p "$final_path/storage/export/" - cp -aT "$tmpdir/storage/upload" "$final_path/storage/upload" - cp -aT "$tmpdir/storage/export" "$final_path/storage/export" - cp -a "$tmpdir/.env" "$final_path/.env" - # Remove temporary directory - ynh_secure_remove --file="$tmpdir" - fi + # Download, check integrity, uncompress and patch the source from app.src + ynh_setup_source --dest_dir="$final_path" --keep="$final_path/.env $final_path/storage/upload $final_path/storage/export" fi chmod 750 "$final_path" @@ -159,7 +126,6 @@ ynh_add_fpm_config --phpversion=$phpversion #================================================= ynh_script_progression --message="Updating PHP dependencies..." -chown -R $app $final_path ynh_exec_warn_less ynh_install_composer --phpversion="$phpversion" --workdir="$final_path" #================================================= From 3007b3dd3e2297104f7250b124c565b15a49b3f0 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 13:31:17 +0200 Subject: [PATCH 20/31] Update upgrade --- scripts/upgrade | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index ad98869..972f6f9 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -131,12 +131,12 @@ ynh_exec_warn_less ynh_install_composer --phpversion="$phpversion" --workdir="$f #================================================= # MODIFY A CONFIG FILE #================================================= -ynh_script_progression --message="Modifying a config file..." +# ynh_script_progression --message="Modifying a config file..." -ynh_add_config --template="../conf/.env" --destination="$final_path/.env" +# ynh_add_config --template="../conf/.env" --destination="$final_path/.env" -chmod 400 "$final_path/.env" -chown $app "$final_path/.env" +# chmod 400 "$final_path/.env" +# chown $app "$final_path/.env" #================================================= # DEPLOYMENT From 2bdcf0f801ab0c7db550eaa29b0f01e8697bfc7f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 13:35:35 +0200 Subject: [PATCH 21/31] Add language --- check_process | 1 + conf/.env | 2 +- manifest.json | 12 +++++++++++- scripts/install | 4 +++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/check_process b/check_process index fec9a17..96d0daf 100644 --- a/check_process +++ b/check_process @@ -4,6 +4,7 @@ path="/path" admin="john" is_public=1 + language="fr" ; Checks pkg_linter=1 setup_sub_dir=1 diff --git a/conf/.env b/conf/.env index 5161efb..c360ae8 100644 --- a/conf/.env +++ b/conf/.env @@ -18,7 +18,7 @@ APP_KEY=__RANDOM_KEY__ # For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang # # If text is still in English, remember that not everything may have been translated. -DEFAULT_LANGUAGE=en_US +DEFAULT_LANGUAGE=__LANGUAGE__ # The locale defines how numbers are formatted. # by default this value is the same as whatever the language is. diff --git a/manifest.json b/manifest.json index 3f205d2..50a1bae 100644 --- a/manifest.json +++ b/manifest.json @@ -27,7 +27,7 @@ "multi_instance": true, "services": [ "nginx", - "php7.4-fpm", + "php8.0-fpm", "mysql" ], "arguments": { @@ -46,6 +46,16 @@ "name": "admin", "type": "user" }, + { + "name": "language", + "type": "string", + "ask": { + "en": "Choose the application language", + "fr": "Choisissez la langue de l'application" + }, + "choices": ["de", "fr", "en_US"], + "default": "fr" + }, { "name": "is_public", "type": "boolean", diff --git a/scripts/install b/scripts/install index 310451b..6211351 100755 --- a/scripts/install +++ b/scripts/install @@ -24,8 +24,10 @@ domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH admin=$YNH_APP_ARG_ADMIN is_public=$YNH_APP_ARG_IS_PUBLIC +language=$YNH_APP_ARG_LANGUAGE random_key=$(ynh_string_random --length=32) email=$(ynh_user_get_info --username=$admin --key=mail) +timezone="$(cat /etc/timezone)" phpversion=$YNH_PHP_VERSION app=$YNH_APP_INSTANCE_NAME @@ -50,7 +52,7 @@ ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=random_key --value=$random_key -ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion +ynh_app_setting_set --app=$app --key=language --value=$language #================================================= # INSTALL DEPENDENCIES From 508a602ab2a012aa5cea4cad5e148a9729a485db Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 13:36:58 +0200 Subject: [PATCH 22/31] Update check_process --- check_process | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check_process b/check_process index 96d0daf..0b965ff 100644 --- a/check_process +++ b/check_process @@ -21,6 +21,6 @@ Email=anmol@datamol.org Notification=change ;;; Upgrade options - ; commit=CommitHash + ; commit=5ee628f58c4f9ea6b6fd48d843453c47ed3d34e4 name=Name and date of the commit. manifest_arg=domain=DOMAIN&path=PATH&admin=USER&is_public=1&password=pass& From 40a637f9ee1acb5d1c23a919463546259692e49f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 13:42:43 +0200 Subject: [PATCH 23/31] Update upgrade --- scripts/upgrade | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 972f6f9..424024e 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -71,13 +71,6 @@ if ynh_legacy_permissions_exists; then ynh_app_setting_delete --app=$app --key=is_public fi -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_script_progression --message="Upgrading dependencies..." - -ynh_install_app_dependencies "$pkg_dependencies" - #================================================= # CREATE DEDICATED USER #================================================= @@ -111,6 +104,13 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." # Create a dedicated NGINX config ynh_add_nginx_config +#================================================= +# UPGRADE DEPENDENCIES +#================================================= +ynh_script_progression --message="Upgrading dependencies..." + +ynh_install_app_dependencies "$pkg_dependencies" + #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -165,7 +165,7 @@ chmod 644 "/etc/cron.d/$app" # SECURE FILES AND DIRECTORIES #================================================= -set_permissions +#set_permissions #================================================= # RELOAD NGINX From 4be738419532770ea8a4f65603f48a22982efb33 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 6 Apr 2022 17:01:42 +0200 Subject: [PATCH 24/31] Update upgrade --- scripts/upgrade | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 424024e..cf4c99c 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,7 +24,7 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) random_key=$(ynh_app_setting_get --app=$app --key=random_key) email=$(ynh_user_get_info --username=$admin --key=mail) -phpversion=$YNH_PHP_VERSION +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) timezone="$(cat /etc/timezone)" #================================================= @@ -117,7 +117,8 @@ ynh_install_app_dependencies "$pkg_dependencies" ynh_script_progression --message="Upgrading PHP-FPM configuration..." # Create a dedicated php-fpm config -ynh_add_fpm_config --phpversion=$phpversion +ynh_add_fpm_config +phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) #================================================= # SPECIFIC UPGRADE @@ -126,7 +127,7 @@ ynh_add_fpm_config --phpversion=$phpversion #================================================= ynh_script_progression --message="Updating PHP dependencies..." -ynh_exec_warn_less ynh_install_composer --phpversion="$phpversion" --workdir="$final_path" +ynh_exec_warn_less ynh_install_composer #================================================= # MODIFY A CONFIG FILE From 06ce34b3a22fb35dcbd4d8072b737c4936dde663 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 00:01:03 +0200 Subject: [PATCH 25/31] Fix --- scripts/restore | 2 ++ scripts/upgrade | 6 ------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/scripts/restore b/scripts/restore index 685b14c..810406b 100755 --- a/scripts/restore +++ b/scripts/restore @@ -101,6 +101,8 @@ ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./ ynh_script_progression --message="Restoring the cron file..." ynh_restore_file --origin_path="/etc/cron.d/$app" +chown root: "/etc/cron.d/$app" +chmod 644 "/etc/cron.d/$app" #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index cf4c99c..2ac9d99 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -162,12 +162,6 @@ ynh_add_config --template="../conf/cron" --destination="/etc/cron.d/$app" chown root: "/etc/cron.d/$app" chmod 644 "/etc/cron.d/$app" -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -#set_permissions - #================================================= # RELOAD NGINX #================================================= From 6998f3f61edead8a78ff5d947df6226c167e86f5 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 07:49:37 +0200 Subject: [PATCH 26/31] Create php-fpm.conf --- conf/php-fpm.conf | 430 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 conf/php-fpm.conf diff --git a/conf/php-fpm.conf b/conf/php-fpm.conf new file mode 100644 index 0000000..ab1a471 --- /dev/null +++ b/conf/php-fpm.conf @@ -0,0 +1,430 @@ +; Start a new pool named 'www'. +; the variable $pool can be used in any directive and will be replaced by the +; pool name ('www' here) +[__NAMETOCHANGE__] + +; Per pool prefix +; It only applies on the following directives: +; - 'access.log' +; - 'slowlog' +; - 'listen' (unixsocket) +; - 'chroot' +; - 'chdir' +; - 'php_values' +; - 'php_admin_values' +; When not set, the global prefix (or /usr) applies instead. +; Note: This directive can also be relative to the global prefix. +; Default Value: none +;prefix = /path/to/pools/$pool + +; Unix user/group of processes +; Note: The user is mandatory. If the group is not set, the default user's group +; will be used. +user = __USER__ +group = __USER__ + +; The address on which to accept FastCGI requests. +; Valid syntaxes are: +; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on +; a specific port; +; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on +; a specific port; +; 'port' - to listen on a TCP socket to all addresses +; (IPv6 and IPv4-mapped) on a specific port; +; '/path/to/unix/socket' - to listen on a unix socket. +; Note: This value is mandatory. +listen = /var/run/php/php__PHPVERSION__-fpm-__NAMETOCHANGE__.sock + +; Set listen(2) backlog. +; Default Value: 511 (-1 on FreeBSD and OpenBSD) +;listen.backlog = 511 + +; Set permissions for unix socket, if one is used. In Linux, read/write +; permissions must be set in order to allow connections from a web server. Many +; BSD-derived systems allow connections regardless of permissions. +; Default Values: user and group are set as the running user +; mode is set to 0660 +listen.owner = www-data +listen.group = www-data +;listen.mode = 0660 +; When POSIX Access Control Lists are supported you can set them using +; these options, value is a comma separated list of user/group names. +; When set, listen.owner and listen.group are ignored +;listen.acl_users = +;listen.acl_groups = + +; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. +; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original +; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address +; must be separated by a comma. If this value is left blank, connections will be +; accepted from any ip address. +; Default Value: any +;listen.allowed_clients = 127.0.0.1 + +; Specify the nice(2) priority to apply to the pool processes (only if set) +; The value can vary from -19 (highest priority) to 20 (lower priority) +; Note: - It will only work if the FPM master process is launched as root +; - The pool processes will inherit the master process priority +; unless it specified otherwise +; Default Value: no set +; process.priority = -19 + +; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user +; or group is differrent than the master process user. It allows to create process +; core dump and ptrace the process for the pool user. +; Default Value: no +; process.dumpable = yes + +; Choose how the process manager will control the number of child processes. +; Possible Values: +; static - a fixed number (pm.max_children) of child processes; +; dynamic - the number of child processes are set dynamically based on the +; following directives. With this process management, there will be +; always at least 1 children. +; pm.max_children - the maximum number of children that can +; be alive at the same time. +; pm.start_servers - the number of children created on startup. +; pm.min_spare_servers - the minimum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is less than this +; number then some children will be created. +; pm.max_spare_servers - the maximum number of children in 'idle' +; state (waiting to process). If the number +; of 'idle' processes is greater than this +; number then some children will be killed. +; ondemand - no children are created at startup. Children will be forked when +; new requests will connect. The following parameter are used: +; pm.max_children - the maximum number of children that +; can be alive at the same time. +; pm.process_idle_timeout - The number of seconds after which +; an idle process will be killed. +; Note: This value is mandatory. +pm = dynamic + +; The number of child processes to be created when pm is set to 'static' and the +; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. +; This value sets the limit on the number of simultaneous requests that will be +; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. +; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP +; CGI. The below defaults are based on a server without much resources. Don't +; forget to tweak pm.* to fit your needs. +; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' +; Note: This value is mandatory. +pm.max_children = 5 + +; The number of child processes created on startup. +; Note: Used only when pm is set to 'dynamic' +; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 +pm.start_servers = 2 + +; The desired minimum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.min_spare_servers = 1 + +; The desired maximum number of idle server processes. +; Note: Used only when pm is set to 'dynamic' +; Note: Mandatory when pm is set to 'dynamic' +pm.max_spare_servers = 3 + +; The number of seconds after which an idle process will be killed. +; Note: Used only when pm is set to 'ondemand' +; Default Value: 10s +;pm.process_idle_timeout = 10s; + +; The number of requests each child process should execute before respawning. +; This can be useful to work around memory leaks in 3rd party libraries. For +; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. +; Default Value: 0 +;pm.max_requests = 500 + +; The URI to view the FPM status page. If this value is not set, no URI will be +; recognized as a status page. It shows the following informations: +; pool - the name of the pool; +; process manager - static, dynamic or ondemand; +; start time - the date and time FPM has started; +; start since - number of seconds since FPM has started; +; accepted conn - the number of request accepted by the pool; +; listen queue - the number of request in the queue of pending +; connections (see backlog in listen(2)); +; max listen queue - the maximum number of requests in the queue +; of pending connections since FPM has started; +; listen queue len - the size of the socket queue of pending connections; +; idle processes - the number of idle processes; +; active processes - the number of active processes; +; total processes - the number of idle + active processes; +; max active processes - the maximum number of active processes since FPM +; has started; +; max children reached - number of times, the process limit has been reached, +; when pm tries to start more children (works only for +; pm 'dynamic' and 'ondemand'); +; Value are updated in real time. +; Example output: +; pool: www +; process manager: static +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 62636 +; accepted conn: 190460 +; listen queue: 0 +; max listen queue: 1 +; listen queue len: 42 +; idle processes: 4 +; active processes: 11 +; total processes: 15 +; max active processes: 12 +; max children reached: 0 +; +; By default the status page output is formatted as text/plain. Passing either +; 'html', 'xml' or 'json' in the query string will return the corresponding +; output syntax. Example: +; http://www.foo.bar/status +; http://www.foo.bar/status?json +; http://www.foo.bar/status?html +; http://www.foo.bar/status?xml +; +; By default the status page only outputs short status. Passing 'full' in the +; query string will also return status for each pool process. +; Example: +; http://www.foo.bar/status?full +; http://www.foo.bar/status?json&full +; http://www.foo.bar/status?html&full +; http://www.foo.bar/status?xml&full +; The Full status returns for each process: +; pid - the PID of the process; +; state - the state of the process (Idle, Running, ...); +; start time - the date and time the process has started; +; start since - the number of seconds since the process has started; +; requests - the number of requests the process has served; +; request duration - the duration in µs of the requests; +; request method - the request method (GET, POST, ...); +; request URI - the request URI with the query string; +; content length - the content length of the request (only with POST); +; user - the user (PHP_AUTH_USER) (or '-' if not set); +; script - the main script called (or '-' if not set); +; last request cpu - the %cpu the last request consumed +; it's always 0 if the process is not in Idle state +; because CPU calculation is done when the request +; processing has terminated; +; last request memory - the max amount of memory the last request consumed +; it's always 0 if the process is not in Idle state +; because memory calculation is done when the request +; processing has terminated; +; If the process is in Idle state, then informations are related to the +; last request the process has served. Otherwise informations are related to +; the current request being served. +; Example output: +; ************************ +; pid: 31330 +; state: Running +; start time: 01/Jul/2011:17:53:49 +0200 +; start since: 63087 +; requests: 12808 +; request duration: 1250261 +; request method: GET +; request URI: /test_mem.php?N=10000 +; content length: 0 +; user: - +; script: /home/fat/web/docs/php/test_mem.php +; last request cpu: 0.00 +; last request memory: 0 +; +; Note: There is a real-time FPM status monitoring sample web page available +; It's available in: /usr/share/php/7.0/fpm/status.html +; +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;pm.status_path = /status + +; The ping URI to call the monitoring page of FPM. If this value is not set, no +; URI will be recognized as a ping page. This could be used to test from outside +; that FPM is alive and responding, or to +; - create a graph of FPM availability (rrd or such); +; - remove a server from a group if it is not responding (load balancing); +; - trigger alerts for the operating team (24/7). +; Note: The value must start with a leading slash (/). The value can be +; anything, but it may not be a good idea to use the .php extension or it +; may conflict with a real PHP file. +; Default Value: not set +;ping.path = /ping + +; This directive may be used to customize the response of a ping request. The +; response is formatted as text/plain with a 200 response code. +; Default Value: pong +;ping.response = pong + +; The access log file +; Default: not set +;access.log = log/$pool.access.log + +; The access log format. +; The following syntax is allowed +; %%: the '%' character +; %C: %CPU used by the request +; it can accept the following format: +; - %{user}C for user CPU only +; - %{system}C for system CPU only +; - %{total}C for user + system CPU (default) +; %d: time taken to serve the request +; it can accept the following format: +; - %{seconds}d (default) +; - %{miliseconds}d +; - %{mili}d +; - %{microseconds}d +; - %{micro}d +; %e: an environment variable (same as $_ENV or $_SERVER) +; it must be associated with embraces to specify the name of the env +; variable. Some exemples: +; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e +; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e +; %f: script filename +; %l: content-length of the request (for POST request only) +; %m: request method +; %M: peak of memory allocated by PHP +; it can accept the following format: +; - %{bytes}M (default) +; - %{kilobytes}M +; - %{kilo}M +; - %{megabytes}M +; - %{mega}M +; %n: pool name +; %o: output header +; it must be associated with embraces to specify the name of the header: +; - %{Content-Type}o +; - %{X-Powered-By}o +; - %{Transfert-Encoding}o +; - .... +; %p: PID of the child that serviced the request +; %P: PID of the parent of the child that serviced the request +; %q: the query string +; %Q: the '?' character if query string exists +; %r: the request URI (without the query string, see %q and %Q) +; %R: remote IP address +; %s: status (response code) +; %t: server time the request was received +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %T: time the log has been written (the request has finished) +; it can accept a strftime(3) format: +; %d/%b/%Y:%H:%M:%S %z (default) +; The strftime(3) format must be encapsuled in a %{}t tag +; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t +; %u: remote user +; +; Default: "%R - %u %t \"%m %r\" %s" +;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" + +; The log file for slow requests +; Default Value: not set +; Note: slowlog is mandatory if request_slowlog_timeout is set +;slowlog = log/$pool.log.slow + +; The timeout for serving a single request after which a PHP backtrace will be +; dumped to the 'slowlog' file. A value of '0s' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +;request_slowlog_timeout = 0 + +; The timeout for serving a single request after which the worker process will +; be killed. This option should be used when the 'max_execution_time' ini option +; does not stop script execution for some reason. A value of '0' means 'off'. +; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) +; Default Value: 0 +request_terminate_timeout = 1d + +; Set open file descriptor rlimit. +; Default Value: system defined value +;rlimit_files = 1024 + +; Set max core size rlimit. +; Possible Values: 'unlimited' or an integer greater or equal to 0 +; Default Value: system defined value +;rlimit_core = 0 + +; Chroot to this directory at the start. This value must be defined as an +; absolute path. When this value is not set, chroot is not used. +; Note: you can prefix with '$prefix' to chroot to the pool prefix or one +; of its subdirectories. If the pool prefix is not set, the global prefix +; will be used instead. +; Note: chrooting is a great security feature and should be used whenever +; possible. However, all PHP paths will be relative to the chroot +; (error_log, sessions.save_path, ...). +; Default Value: not set +;chroot = + +; Chdir to this directory at the start. +; Note: relative path can be used. +; Default Value: current directory or / when chroot +chdir = __FINALPATH__ + +; Redirect worker stdout and stderr into main error log. If not set, stdout and +; stderr will be redirected to /dev/null according to FastCGI specs. +; Note: on highloaded environement, this can cause some delay in the page +; process time (several ms). +; Default Value: no +;catch_workers_output = yes + +; Clear environment in FPM workers +; Prevents arbitrary environment variables from reaching FPM worker processes +; by clearing the environment in workers before env vars specified in this +; pool configuration are added. +; Setting to "no" will make all environment variables available to PHP code +; via getenv(), $_ENV and $_SERVER. +; Default Value: yes +;clear_env = no + +; Limits the extensions of the main script FPM will allow to parse. This can +; prevent configuration mistakes on the web server side. You should only limit +; FPM to .php extensions to prevent malicious users to use other extensions to +; execute php code. +; Note: set an empty value to allow all extensions. +; Default Value: .php +;security.limit_extensions = .php .php3 .php4 .php5 .php7 + +; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from +; the current environment. +; Default Value: clean env +;env[HOSTNAME] = $HOSTNAME +;env[PATH] = /usr/local/bin:/usr/bin:/bin +;env[TMP] = /tmp +;env[TMPDIR] = /tmp +;env[TEMP] = /tmp + +; Additional php.ini defines, specific to this pool of workers. These settings +; overwrite the values previously defined in the php.ini. The directives are the +; same as the PHP SAPI: +; php_value/php_flag - you can set classic ini defines which can +; be overwritten from PHP call 'ini_set'. +; php_admin_value/php_admin_flag - these directives won't be overwritten by +; PHP call 'ini_set' +; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. + +; Defining 'extension' will load the corresponding shared extension from +; extension_dir. Defining 'disable_functions' or 'disable_classes' will not +; overwrite previously defined php.ini values, but will append the new value +; instead. + +; Note: path INI options can be relative and will be expanded with the prefix +; (pool, global or /usr) + +; Default Value: nothing is defined by default except the values in php.ini and +; specified at startup with the -d argument +;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com +;php_flag[display_errors] = off +;php_admin_value[error_log] = /var/log/fpm-php.www.log +;php_admin_flag[log_errors] = on +;php_admin_value[memory_limit] = 32M + +; Common values to change to increase file upload limit +; php_admin_value[upload_max_filesize] = 50M +; php_admin_value[post_max_size] = 50M +; php_admin_flag[mail.add_x_header] = Off + +; Other common parameters +; php_admin_value[max_execution_time] = 600 +; php_admin_value[max_input_time] = 300 +; php_admin_value[memory_limit] = 256M +; php_admin_flag[short_open_tag] = On From 64db70be8c6986e225d854cbf21e2b18f0ea9011 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 07:51:21 +0200 Subject: [PATCH 27/31] Update _common.sh --- scripts/_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 6275b5f..1db2af6 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -9,7 +9,7 @@ YNH_PHP_VERSION="8.0" # Composer version -YNH_COMPOSER_VERSION="2.3.3" +YNH_COMPOSER_VERSION="2.3.5" pkg_dependencies="php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-bcmath php${YNH_PHP_VERSION}-opcache php${YNH_PHP_VERSION}-ldap" From a58f495c40e95b79e88c8bfe17b0dcf3e08f8dcc Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 19:38:27 +0200 Subject: [PATCH 28/31] Create updater.sh --- .github/workflows/updater.sh | 137 +++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100755 .github/workflows/updater.sh diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh new file mode 100755 index 0000000..34ae3ca --- /dev/null +++ b/.github/workflows/updater.sh @@ -0,0 +1,137 @@ +#!/bin/bash + +#================================================= +# PACKAGE UPDATING HELPER +#================================================= + +# This script is meant to be run by GitHub Actions +# The YunoHost-Apps organisation offers a template Action to run this script periodically +# Since each app is different, maintainers can adapt its contents so as to perform +# automatic actions when a new upstream release is detected. + +# Remove this exit command when you are ready to run this Action +#exit 1 + +#================================================= +# FETCHING LATEST RELEASE AND ITS ASSETS +#================================================= + +# Fetching information +current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') +repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') +# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) +version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) +assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'")) + +# Later down the script, we assume the version has only digits and dots +# Sometimes the release name starts with a "v", so let's filter it out. +# You may need more tweaks here if the upstream repository has different naming conventions. +if [[ ${version:0:1} == "v" || ${version:0:1} == "V" ]]; then + version=${version:1} +fi + +# Setting up the environment variables +echo "Current version: $current_version" +echo "Latest release from upstream: $version" +echo "VERSION=$version" >> $GITHUB_ENV +echo "REPO=$repo" >> $GITHUB_ENV +# For the time being, let's assume the script will fail +echo "PROCEED=false" >> $GITHUB_ENV + +# Proceed only if the retrieved version is greater than the current one +if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then + echo "::warning ::No new version available" + exit 0 +# Proceed only if a PR for this new version does not already exist +elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then + echo "::warning ::A branch already exists for this update" + exit 0 +fi + +# Each release can hold multiple assets (e.g. binaries for different architectures, source code, etc.) +echo "${#assets[@]} available asset(s)" + +#================================================= +# UPDATE SOURCE FILES +#================================================= + +# Here we use the $assets variable to get the resources published in the upstream release. +# Here is an example for Grav, it has to be adapted in accordance with how the upstream releases look like. + +# Let's loop over the array of assets URLs +for asset_url in ${assets[@]}; do + +echo "Handling asset at $asset_url" + +# Assign the asset to a source file in conf/ directory +# Here we base the source file name upon a unique keyword in the assets url (admin vs. update) +# Leave $src empty to ignore the asset +case $asset_url in + *".tar.gz") + src="app" + ;; + *"update"*) + src="app-upgrade" + ;; + *) + src="" + ;; +esac + +# If $src is not empty, let's process the asset +if [ ! -z "$src" ]; then + +# Create the temporary directory +tempdir="$(mktemp -d)" + +# Download sources and calculate checksum +filename=${asset_url##*/} +curl --silent -4 -L $asset_url -o "$tempdir/$filename" +checksum=$(sha256sum "$tempdir/$filename" | head -c 64) + +# Delete temporary directory +rm -rf $tempdir + +# Get extension +if [[ $filename == *.tar.gz ]]; then + extension=tar.gz +else + extension=${filename##*.} +fi + +# Rewrite source file +cat < conf/$src.src +SOURCE_URL=$asset_url +SOURCE_SUM=$checksum +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=$extension +SOURCE_IN_SUBDIR=true +SOURCE_FILENAME= +EOT +echo "... conf/$src.src updated" + +else +echo "... asset ignored" +fi + +done + +#================================================= +# SPECIFIC UPDATE STEPS +#================================================= + +# Any action on the app's source code can be done. +# The GitHub Action workflow takes care of committing all changes after this script ends. + +#================================================= +# GENERIC FINALIZATION +#================================================= + +# Replace new version in manifest +echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json + +# No need to update the README, yunohost-bot takes care of it + +# The Action will proceed only if the PROCEED environment variable is set to true +echo "PROCEED=true" >> $GITHUB_ENV +exit 0 From ea6697390db54a11844894a637defd2abd4b77b5 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 19:40:40 +0200 Subject: [PATCH 29/31] 5.7.3 --- conf/app.src | 4 ++-- manifest.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/app.src b/conf/app.src index 64a5ab2..3e466c2 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/firefly-iii/firefly-iii/archive/refs/tags/5.7.2.tar.gz -SOURCE_SUM=8F11D15BB1973C74FA76A7C33290DA7300D44279E265617DB487B2676A57E16F +SOURCE_URL=https://github.com/firefly-iii/firefly-iii/archive/refs/tags/5.7.3.tar.gz +SOURCE_SUM=D41AE80E4EDD0939E8FD0D60DF2C96F3C3EEECDB0EB2C7FFF77E7D15DEFA0B95 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 73d5ecd..b6981cc 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Self-hosted financial manager", "fr": "Gestionnaire de finances personnelles" }, - "version": "5.7.2~ynh1", + "version": "5.7.3~ynh1", "url": "https://firefly-iii.org/", "upstream": { "license": "GPL-3.0-or-later", From 71d00467f9660992d75e9b0e305749b45a66ffe8 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Mon, 2 May 2022 17:40:46 +0000 Subject: [PATCH 30/31] 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 89968d8..ec5be7e 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Firefly III should give you insight into and control over your finances. Money s But you get the idea: this is your money. These are your expenses. Stop them from controlling you. I built this tool because I started to dislike money. Having money, not having money, paying bills with money, you get the idea. But no more. I want to feel "safe", whatever my balance is. And I hope this tool can help you. I know it helps me. -**Shipped version:** 5.7.2~ynh1 +**Shipped version:** 5.7.3~ynh1 **Demo:** https://demo.firefly-iii.org/login diff --git a/README_fr.md b/README_fr.md index efb8bf3..dae0bc9 100644 --- a/README_fr.md +++ b/README_fr.md @@ -18,7 +18,7 @@ Firefly III should give you insight into and control over your finances. Money s But you get the idea: this is your money. These are your expenses. Stop them from controlling you. I built this tool because I started to dislike money. Having money, not having money, paying bills with money, you get the idea. But no more. I want to feel "safe", whatever my balance is. And I hope this tool can help you. I know it helps me. -**Version incluse :** 5.7.2~ynh1 +**Version incluse :** 5.7.3~ynh1 **Démo :** https://demo.firefly-iii.org/login From b8a19329895923d36eae451647d19e0a9d16c57e Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 2 May 2022 19:43:54 +0200 Subject: [PATCH 31/31] Add language --- check_process | 2 +- manifest.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/check_process b/check_process index e493e8c..6634cf1 100644 --- a/check_process +++ b/check_process @@ -4,7 +4,7 @@ path="/path" admin="john" is_public=1 - language="fr" + language="fr_FR" ; Checks pkg_linter=1 setup_sub_dir=1 diff --git a/manifest.json b/manifest.json index b6981cc..de7a68c 100644 --- a/manifest.json +++ b/manifest.json @@ -53,8 +53,8 @@ "en": "Choose the application language", "fr": "Choisissez la langue de l'application" }, - "choices": ["de", "fr", "en_US"], - "default": "fr" + "choices": ["de", "en_US", "es_ES", "fr_FR", "it_IT", "nl_NL", "pt_PT"], + "default": "fr_FR" }, { "name": "is_public",