From a12b7a6f34778d87832aaeb1cd8cccd4f6975c21 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 21 Mar 2023 06:20:52 +0000 Subject: [PATCH 01/22] Upgrade to v1.21.0 --- conf/app.src | 6 +++--- conf/dist.src | 4 ++-- manifest.json | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/app.src b/conf/app.src index 53e1542..cde78dd 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,7 +1,7 @@ -SOURCE_URL=https://github.com/louislam/uptime-kuma/archive/refs/tags/1.20.2.tar.gz -SOURCE_SUM=9febdad8bb24caee012a0c79cada6aace88ad3859cf94218512df987ecda009f +SOURCE_URL=https://github.com/louislam/uptime-kuma/archive/refs/tags/1.21.0.tar.gz +SOURCE_SUM=f913a9ed65c77031944127689a7db7a19556ce5f4a0e7f8d4d3271fcc84aa6b1 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=1.20.2.tar.gz +SOURCE_FILENAME=1.21.0.tar.gz SOURCE_EXTRACT=true diff --git a/conf/dist.src b/conf/dist.src index 2671ffc..ffee89b 100644 --- a/conf/dist.src +++ b/conf/dist.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/louislam/uptime-kuma/releases/download/1.20.2/dist.tar.gz -SOURCE_SUM=41f0fe9f1d9ec432c98e8bce2f25b59dd61c11f774bd2ad53d5cec1d795fd782 +SOURCE_URL=https://github.com/louislam/uptime-kuma/releases/download/1.21.0/dist.tar.gz +SOURCE_SUM=7c9e7ee40615bfb8ae6f633ac766b94bbccf86c1a5c284a82d00b4a1da303e07 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index c724279..e2ef613 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Self-hosted monitoring tool like Uptime-Robot", "fr": "Outil de surveillance auto-hébergé similaire à Uptime-Robot" }, - "version": "1.20.2~ynh1", + "version": "1.21.0~ynh1", "url": "https://github.com/louislam/uptime-kuma/", "upstream": { "license": "MIT", From ec2338463d55981a149f35e5fe106f97bd41589b Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 21 Mar 2023 06:20:57 +0000 Subject: [PATCH 02/22] 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 32d73a0..69f4ed1 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ It is a self-hosted monitoring tool like "Uptime Robot". - Certificate Info -**Shipped version:** 1.20.2~ynh1 +**Shipped version:** 1.21.0~ynh1 **Demo:** https://demo.uptime.kuma.pet diff --git a/README_fr.md b/README_fr.md index bca46e7..f4aaf12 100644 --- a/README_fr.md +++ b/README_fr.md @@ -30,7 +30,7 @@ It is a self-hosted monitoring tool like "Uptime Robot". - Certificate Info -**Version incluse :** 1.20.2~ynh1 +**Version incluse :** 1.21.0~ynh1 **Démo :** https://demo.uptime.kuma.pet From be56a8a8f4ee484784c6fd805bcd2b0c8863cd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 09:28:18 +0100 Subject: [PATCH 03/22] v2 --- conf/app.src | 7 ----- conf/dist.src | 7 ----- conf/nginx.conf | 2 +- conf/systemd.service | 2 +- manifest.toml | 62 ++++++++++++++++++++++++++++++++++++++++++ scripts/backup | 14 +++++----- scripts/change_url | 60 +++++++++++++++++++++-------------------- scripts/install | 64 ++++++++++++++++++++++---------------------- scripts/remove | 18 ++++++------- scripts/restore | 36 ++++++++++++------------- scripts/upgrade | 44 +++++++++++++++--------------- 11 files changed, 183 insertions(+), 133 deletions(-) delete mode 100644 conf/app.src delete mode 100644 conf/dist.src create mode 100644 manifest.toml diff --git a/conf/app.src b/conf/app.src deleted file mode 100644 index 53e1542..0000000 --- a/conf/app.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=https://github.com/louislam/uptime-kuma/archive/refs/tags/1.20.2.tar.gz -SOURCE_SUM=9febdad8bb24caee012a0c79cada6aace88ad3859cf94218512df987ecda009f -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=1.20.2.tar.gz -SOURCE_EXTRACT=true diff --git a/conf/dist.src b/conf/dist.src deleted file mode 100644 index 2671ffc..0000000 --- a/conf/dist.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=https://github.com/louislam/uptime-kuma/releases/download/1.20.2/dist.tar.gz -SOURCE_SUM=41f0fe9f1d9ec432c98e8bce2f25b59dd61c11f774bd2ad53d5cec1d795fd782 -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=dist.tar.gz -SOURCE_EXTRACT=true diff --git a/conf/nginx.conf b/conf/nginx.conf index 927796c..01d14c4 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,7 +1,7 @@ location __PATH__/ { # Path to source - # alias __FINALPATH__/ ; + # alias __INSTALL_DIR__/ ; # Force usage of https if ($scheme = http) { diff --git a/conf/systemd.service b/conf/systemd.service index a246538..0941462 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -7,7 +7,7 @@ Type=simple Restart=always User=__APP__ Group=__APP__ -WorkingDirectory=__FINALPATH__/ +WorkingDirectory=__INSTALL_DIR__/ ExecStart=__YNH_NODE__ server/server.js --port=__PORT__ StandardOutput=append:/var/log/__APP__/__APP__.log StandardError=inherit diff --git a/manifest.toml b/manifest.toml new file mode 100644 index 0000000..dbaa76d --- /dev/null +++ b/manifest.toml @@ -0,0 +1,62 @@ +packaging_format = 2 + +id = "uptime-kuma" +name = "Uptime Kuma" +description.en = "Self-hosted monitoring tool like Uptime-Robot" +description.fr = "Outil de surveillance auto-hébergé similaire à Uptime-Robot" + +version = "1.20.2~ynh1" + +maintainers = ["Hadrien"] + +[upstream] +license = "MIT" +website = "https://uptime.kuma.pet/" +demo = "https://demo.uptime.kuma.pet" +admindoc = "https://github.com/louislam/uptime-kuma/wiki" +userdoc = "https://github.com/louislam/uptime-kuma/wiki" +code = "https://github.com/louislam/uptime-kuma" +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 = ">= 4.2.3" +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 + help.en = "This app requires a whole subdomain" + help.fr = "Cette app a besoin de tout un sous-domaine à elle toute seule." + type = "domain" + full_domain = true + + [install.init_main_permission] + help.en = "This app has a status page meant to be public and a login-protected admin interface. It should be safe to expose publicly." + help.fr = "Cette app a une page destinée à être publique et une interface d'admin protégée par mot de passe. Elle peut être exposée publiquement sans problème." + type = "group" + default = "visitors" + +[resources] + [resources.sources] + [resources.sources.dist] + url = "https://github.com/louislam/uptime-kuma/releases/download/1.20.2/dist.tar.gz" + sha256 = "41f0fe9f1d9ec432c98e8bce2f25b59dd61c11f774bd2ad53d5cec1d795fd782" + + [resources.sources.main] + url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.20.2.tar.gz" + sha256 = "9febdad8bb24caee012a0c79cada6aace88ad3859cf94218512df987ecda009f" + + + [resources.system_user] + + [resources.install_dir] + + [resources.permissions] + main.url = "/" diff --git a/scripts/backup b/scripts/backup index 13aaf8a..31d9214 100755 --- 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 () { ### Remove this function if there's nothing to clean before calling the remove script. 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 installation settings..." +#REMOVEME? ynh_print_info --message="Loading installation 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) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) #================================================= # 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/change_url b/scripts/change_url index d2c5ac9..7f579e7 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -13,53 +13,53 @@ source /usr/share/yunohost/helpers # RETRIEVE ARGUMENTS #================================================= -old_domain=$YNH_APP_OLD_DOMAIN -old_path=$YNH_APP_OLD_PATH +#REMOVEME? old_domain=$YNH_APP_OLD_DOMAIN +#REMOVEME? old_path=$YNH_APP_OLD_PATH -new_domain=$YNH_APP_NEW_DOMAIN -new_path=$YNH_APP_NEW_PATH +#REMOVEME? new_domain=$YNH_APP_NEW_DOMAIN +#REMOVEME? new_path=$YNH_APP_NEW_PATH -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 +#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1 -# Needed for helper "ynh_add_nginx_config" -final_path=$(ynh_app_setting_get --app=$app --key=final_path) +#REMOVEME? # Needed for helper "ynh_add_nginx_config" +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) #================================================= # 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 +#REMOVEME? 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 () { +#REMOVEME? ynh_backup_before_upgrade +#REMOVEME? 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" +#REMOVEME? ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" # 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 #================================================= # CHECK WHICH PARTS SHOULD BE CHANGED #================================================= -change_domain=0 -if [ "$old_domain" != "$new_domain" ] +#REMOVEME? change_domain=0 +#REMOVEME? if [ "$old_domain" != "$new_domain" ] then - change_domain=1 + #REMOVEME? change_domain=1 fi -change_path=0 -if [ "$old_path" != "$new_path" ] +#REMOVEME? change_path=0 +#REMOVEME? if [ "$old_path" != "$new_path" ] then - change_path=1 + #REMOVEME? change_path=1 fi #================================================= @@ -76,28 +76,30 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app #================================================= ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 -nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf +ynh_change_url_nginx_config + +#REMOVEME? 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" +#REMOVEME? # ynh_backup_if_checksum_is_different --file="$nginx_conf_path" # # Set global variables for NGINX helper # domain="$old_domain" -# path_url="$new_path" +# path="$new_path" # # Create a dedicated NGINX config -# ynh_add_nginx_config +#REMOVEME? # 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 +#REMOVEME? ynh_delete_file_checksum --file="$nginx_conf_path" +#REMOVEME? 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" +#REMOVEME? ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" fi #================================================= @@ -112,9 +114,9 @@ ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$ap #================================================= # 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? #REMOVEME? ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index 7ec6dd2..aeca8ae 100755 --- a/scripts/install +++ b/scripts/install @@ -13,53 +13,53 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { +#REMOVEME? ynh_clean_setup () { ### Remove this function if there's nothing to clean before calling the remove script. 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 #================================================= -path_url=/ -domain=$YNH_APP_ARG_DOMAIN -is_public=$YNH_APP_ARG_IS_PUBLIC +path=/ +#REMOVEME? domain=$YNH_APP_ARG_DOMAIN +#REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME #================================================= # 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 -final_path=/var/www/$app -test ! -e "$final_path" || ynh_die --message="This path already contains a folder" +#REMOVEME? install_dir=/var/www/$app +#REMOVEME? test ! -e "$install_dir" || ynh_die --message="This path already contains a folder" # 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 # Subpath not supported -ynh_app_setting_set --app=$app --key=path --value=$path_url -ynh_app_setting_set --app=$app --key=domain --value=$domain +#REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path +#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain #================================================= # STANDARD MODIFICATIONS #================================================= # FIND AND OPEN A PORT #================================================= -ynh_script_progression --message="Finding an available port..." --weight=1 +#REMOVEME? ynh_script_progression --message="Finding an available port..." --weight=1 # Find an available port -port=$(ynh_find_port --port=3001) -ynh_app_setting_set --app=$app --key=port --value=$port +#REMOVEME? port=$(ynh_find_port --port=3001) +#REMOVEME? ynh_app_setting_set --app=$app --key=port --value=$port #================================================= # INSTALL NODEJS @@ -73,25 +73,25 @@ ynh_use_nodejs #================================================= # 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=1 -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" # Download, check integrity, uncompress and patch the source from dist.src -ynh_setup_source --source_id="dist" --dest_dir="$final_path/dist" +ynh_setup_source --source_id="dist" --dest_dir="$install_dir/dist" -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" #================================================= # NGINX CONFIGURATION @@ -104,9 +104,9 @@ ynh_add_nginx_config #================================================= # SPECIFIC SETUP #================================================= -ynh_script_progression --message="Installing Uptime Kuma dependencies..." --weight=7 +#REMOVEME? ynh_script_progression --message="Installing Uptime Kuma dependencies..." --weight=7 -pushd "$final_path" +pushd "$install_dir" ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install popd @@ -146,22 +146,22 @@ ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$ap #================================================= # 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 - ynh_permission_update --permission="main" --add="visitors" +#REMOVEME? ynh_permission_update --permission="main" --add="visitors" fi -ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" +#REMOVEME? ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" #================================================= # 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 469a08a..57d6b22 100755 --- a/scripts/remove +++ b/scripts/remove @@ -12,13 +12,13 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 +#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1 -app=$YNH_APP_INSTANCE_NAME +#REMOVEME? app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get --app=$app --key=domain) -port=$(ynh_app_setting_get --app=$app --key=port) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) +#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) +#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port) +#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) #================================================= # STANDARD REMOVE @@ -59,10 +59,10 @@ ynh_remove_nodejs #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing app main directory and dependencies..." --weight=2 +#REMOVEME? #REMOVEME? ynh_script_progression --message="Removing app main directory and dependencies..." --weight=2 # Remove the app directory securely -ynh_secure_remove --file="$final_path" +#REMOVEME? ynh_secure_remove --file="$install_dir" #================================================= # REMOVE NGINX CONFIGURATION @@ -87,10 +87,10 @@ ynh_secure_remove --file="/var/log/$app" #================================================= # 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 428d3fc..607d5dc 100755 --- a/scripts/restore +++ b/scripts/restore @@ -14,31 +14,31 @@ source /usr/share/yunohost/helpers # MANAGE SCRIPT FAILURE #================================================= -ynh_clean_setup () { +#REMOVEME? ynh_clean_setup () { #### Remove this function if there's nothing to clean before calling the remove script. 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 installation settings..." --weight=1 +#REMOVEME? ynh_script_progression --message="Loading installation 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) +#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) #================================================= # 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 -test ! -d $final_path \ - || ynh_die --message="There is already a directory: $final_path " +#REMOVEME? test ! -d $install_dir \ + || ynh_die --message="There is already a directory: $install_dir " #================================================= # STANDARD RESTORATION STEPS @@ -52,21 +52,21 @@ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # 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=1 -ynh_restore_file --origin_path="$final_path" +ynh_restore_file --origin_path="$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" #================================================= # INSTALL NODEJS @@ -80,9 +80,9 @@ ynh_use_nodejs #================================================= # REINSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Reinstalling dependencies..." --weight=7 +#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=7 -cd $final_path && ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install +cd $install_dir && ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install #================================================= # RESTORE VARIOUS FILES diff --git a/scripts/upgrade b/scripts/upgrade index 9121fcc..87bec73 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -12,14 +12,14 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 +#REMOVEME? ynh_script_progression --message="Loading installation 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) -port=$(ynh_app_setting_get --app=$app --key=port) +#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? port=$(ynh_app_setting_get --app=$app --key=port) #================================================= # CHECK VERSION @@ -30,16 +30,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 @@ -53,10 +53,10 @@ ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app #================================================= # 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 @@ -66,15 +66,15 @@ if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --source_id="app" --dest_dir="$final_path" + ynh_setup_source --source_id="app" --dest_dir="$install_dir" # Download, check integrity, uncompress and patch the source from dist.src - ynh_setup_source --source_id="dist" --dest_dir="$final_path/dist" + ynh_setup_source --source_id="dist" --dest_dir="$install_dir/dist" 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" #================================================= # INSTALL NODEJS @@ -96,9 +96,9 @@ ynh_add_nginx_config #================================================= # SPECIFIC UPGRADE #================================================= -ynh_script_progression --message="Upgrading Uptime Kuma dependencies..." --weight=7 +#REMOVEME? ynh_script_progression --message="Upgrading Uptime Kuma dependencies..." --weight=7 -pushd "$final_path" +pushd "$install_dir" ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install popd @@ -137,9 +137,9 @@ ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$ap #================================================= # 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 03e27b50507f9e977e2ba4a39c7635691b1e7b18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 09:41:07 +0100 Subject: [PATCH 04/22] v2 --- check_process | 29 -------- conf/nginx.conf | 11 +-- conf/systemd.service | 2 +- doc/{DISCLAIMER.md => ADMIN.md} | 0 manifest.json | 52 -------------- manifest.toml | 29 ++++---- scripts/backup | 21 ------ scripts/change_url | 84 ----------------------- scripts/install | 118 +++----------------------------- scripts/remove | 56 --------------- scripts/restore | 86 +---------------------- scripts/upgrade | 88 +++--------------------- tests.toml | 3 + 13 files changed, 42 insertions(+), 537 deletions(-) delete mode 100644 check_process rename doc/{DISCLAIMER.md => ADMIN.md} (100%) delete mode 100644 manifest.json create mode 100644 tests.toml diff --git a/check_process b/check_process deleted file mode 100644 index 9ba6865..0000000 --- a/check_process +++ /dev/null @@ -1,29 +0,0 @@ -# See here for more information -# https://github.com/YunoHost/package_check#syntax-check_process-file - -# Move this file from check_process.default to check_process when you have filled it. - -;; Test complet - ; Manifest - domain="domain.tld" - path="/" - is_public=1 - ; Checks - pkg_linter=1 - setup_sub_dir=0 - setup_root=1 - setup_nourl=0 - setup_private=1 - setup_public=1 - upgrade=1 - upgrade=1 from_commit=2e870313227801603a41fd3bfcaafa912dce6d0a - backup_restore=1 - multi_instance=1 - change_url=1 -;;; Options -Email= -Notification=none -;;; Upgrade options - ; commit=2e870313227801603a41fd3bfcaafa912dce6d0a - name="fix restore.." - manifest_arg=domain=domain.td&path=/&is_public=1&port=666& diff --git a/conf/nginx.conf b/conf/nginx.conf index 01d14c4..2d90571 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,14 +1,7 @@ +#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; location __PATH__/ { - # Path to source - # alias __INSTALL_DIR__/ ; - - # Force usage of https - if ($scheme = http) { - rewrite ^ https://$server_name$request_uri? permanent; - } - - proxy_pass http://localhost:__PORT__; + proxy_pass http://127.0.0.1:__PORT__; # https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy#nginx # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/conf/systemd.service b/conf/systemd.service index 0941462..64bc054 100644 --- a/conf/systemd.service +++ b/conf/systemd.service @@ -1,5 +1,5 @@ [Unit] -Description=Uptime Kuma, a fancy monitoring tool +Description=Uptime Kuma: monitoring tool After=network.target [Service] 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/manifest.json b/manifest.json deleted file mode 100644 index c724279..0000000 --- a/manifest.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "Uptime Kuma", - "id": "uptime-kuma", - "packaging_format": 1, - "description": { - "en": "Self-hosted monitoring tool like Uptime-Robot", - "fr": "Outil de surveillance auto-hébergé similaire à Uptime-Robot" - }, - "version": "1.20.2~ynh1", - "url": "https://github.com/louislam/uptime-kuma/", - "upstream": { - "license": "MIT", - "website": "https://uptime.kuma.pet/", - "demo": "https://demo.uptime.kuma.pet", - "admindoc": "https://github.com/louislam/uptime-kuma/wiki", - "userdoc": "https://github.com/louislam/uptime-kuma/wiki", - "code": "https://github.com/louislam/uptime-kuma" - }, - "license": "MIT", - "maintainer": { - "name": "Hadrien", - "email": "ketsapiwiq@protonmail.com" - }, - "requirements": { - "yunohost": ">= 4.2.3" - }, - "multi_instance": true, - "services": [ - "nginx" - ], - "arguments": { - "install": [ - { - "name": "domain", - "type": "domain", - "help": { - "en": "This app requires a whole subdomain", - "fr": "Cette app a besoin de tout un sous-domaine à elle toute seule." - } - }, - { - "name": "is_public", - "type": "boolean", - "default": true, - "help": { - "en": "This app has a status page meant to be public and a login-protected admin interface. It should be safe to expose publicly.", - "fr": "Cette app a une page destinée à être publique et une interface d'admin protégée par mot de passe. Elle peut être exposée publiquement sans problème." - } - } - ] - } -} diff --git a/manifest.toml b/manifest.toml index dbaa76d..f476065 100644 --- a/manifest.toml +++ b/manifest.toml @@ -2,8 +2,8 @@ packaging_format = 2 id = "uptime-kuma" name = "Uptime Kuma" -description.en = "Self-hosted monitoring tool like Uptime-Robot" -description.fr = "Outil de surveillance auto-hébergé similaire à Uptime-Robot" +description.en = "Monitoring tool like Uptime-Robot" +description.fr = "Outil de surveillance similaire à Uptime-Robot" version = "1.20.2~ynh1" @@ -13,27 +13,21 @@ maintainers = ["Hadrien"] license = "MIT" website = "https://uptime.kuma.pet/" demo = "https://demo.uptime.kuma.pet" -admindoc = "https://github.com/louislam/uptime-kuma/wiki" userdoc = "https://github.com/louislam/uptime-kuma/wiki" code = "https://github.com/louislam/uptime-kuma" -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 = ">= 4.2.3" -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.15" +architectures = [ "amd64" ] 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 - help.en = "This app requires a whole subdomain" - help.fr = "Cette app a besoin de tout un sous-domaine à elle toute seule." type = "domain" full_domain = true @@ -53,6 +47,7 @@ ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requiremen url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.20.2.tar.gz" sha256 = "9febdad8bb24caee012a0c79cada6aace88ad3859cf94218512df987ecda009f" + [resources.ports] [resources.system_user] @@ -60,3 +55,7 @@ ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requiremen [resources.permissions] main.url = "/" + api.url = "/api" + api.allowed = "visitors" + api.show_tile = false + api.protected = true diff --git a/scripts/backup b/scripts/backup index 31d9214..8bc9490 100755 --- 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 () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -#REMOVEME? ynh_print_info --message="Loading installation 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) - #================================================= # DECLARE DATA AND CONF FILES TO BACKUP #================================================= diff --git a/scripts/change_url b/scripts/change_url index 7f579e7..ae914ad 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -9,59 +9,6 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# RETRIEVE ARGUMENTS -#================================================= - -#REMOVEME? old_domain=$YNH_APP_OLD_DOMAIN -#REMOVEME? old_path=$YNH_APP_OLD_PATH - -#REMOVEME? new_domain=$YNH_APP_NEW_DOMAIN -#REMOVEME? new_path=$YNH_APP_NEW_PATH - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#================================================= -# LOAD SETTINGS -#================================================= -#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1 - -#REMOVEME? # Needed for helper "ynh_add_nginx_config" -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) - -#================================================= -# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP -#================================================= -#REMOVEME? 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 -#REMOVEME? ynh_backup_before_upgrade -#REMOVEME? ynh_clean_setup () { - # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. -#REMOVEME? ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" - - # 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 - -#================================================= -# CHECK WHICH PARTS SHOULD BE CHANGED -#================================================= - -#REMOVEME? change_domain=0 -#REMOVEME? if [ "$old_domain" != "$new_domain" ] -then - #REMOVEME? change_domain=1 -fi - -#REMOVEME? change_path=0 -#REMOVEME? if [ "$old_path" != "$new_path" ] -then - #REMOVEME? change_path=1 -fi - #================================================= # STANDARD MODIFICATIONS #================================================= @@ -78,30 +25,6 @@ ynh_script_progression --message="Updating NGINX web server configuration..." -- ynh_change_url_nginx_config -#REMOVEME? 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 -#REMOVEME? # ynh_backup_if_checksum_is_different --file="$nginx_conf_path" -# # Set global variables for NGINX helper -# domain="$old_domain" -# path="$new_path" -# # Create a dedicated NGINX config -#REMOVEME? # 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 -#REMOVEME? ynh_delete_file_checksum --file="$nginx_conf_path" -#REMOVEME? mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf - # Store file checksum for the new config file location -#REMOVEME? ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" -fi - #================================================= # GENERIC FINALISATION #================================================= @@ -111,13 +34,6 @@ ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# RELOAD NGINX -#================================================= -#REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -#REMOVEME? #REMOVEME? ynh_systemd_action --service_name=nginx --action=reload - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/install b/scripts/install index aeca8ae..1c406d6 100755 --- a/scripts/install +++ b/scripts/install @@ -9,87 +9,24 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -#REMOVEME? ynh_clean_setup () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - -#================================================= -# RETRIEVE ARGUMENTS FROM THE MANIFEST -#================================================= - -path=/ -#REMOVEME? domain=$YNH_APP_ARG_DOMAIN -#REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#================================================= -# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS -#================================================= -#REMOVEME? ynh_script_progression --message="Validating installation parameters..." --weight=1 - -#REMOVEME? install_dir=/var/www/$app -#REMOVEME? test ! -e "$install_dir" || ynh_die --message="This path already contains a folder" - -# 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 - -# Subpath not supported -#REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path -#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain - -#================================================= -# STANDARD MODIFICATIONS -#================================================= -# FIND AND OPEN A PORT -#================================================= -#REMOVEME? ynh_script_progression --message="Finding an available port..." --weight=1 - -# Find an available port -#REMOVEME? port=$(ynh_find_port --port=3001) -#REMOVEME? ynh_app_setting_set --app=$app --key=port --value=$port - #================================================= # INSTALL NODEJS #================================================= ynh_script_progression --message="Installing nodejs..." --weight=2 ynh_install_nodejs --nodejs_version=$nodejs_version - ynh_use_nodejs -#================================================= -# 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=1 -#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" # Download, check integrity, uncompress and patch the source from dist.src -ynh_setup_source --source_id="dist" --dest_dir="$install_dir/dist" +ynh_setup_source --dest_dir="$install_dir/dist" --source_id="dist" -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" @@ -101,6 +38,14 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config +# Create a dedicated systemd config +ynh_add_systemd_config + +# Use logrotate to manage application logfile(s) +ynh_use_logrotate + +yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" + #================================================= # SPECIFIC SETUP #================================================= @@ -110,59 +55,14 @@ pushd "$install_dir" ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install popd -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Configuring a systemd service..." --weight=1 - -# Create a dedicated systemd config -ynh_add_systemd_config - -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Configuring log rotation..." --weight=1 - -# Use logrotate to manage application logfile(s) -ynh_use_logrotate - #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 -yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" - -#================================================= -# START SYSTEMD SERVICE -#================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 - # Start a systemd service ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# SETUP SSOWAT -#================================================= -#REMOVEME? ynh_script_progression --message="Configuring permissions..." --weight=1 - -# Make app public if necessary -#REMOVEME? if [ $is_public -eq 1 ] -then -#REMOVEME? ynh_permission_update --permission="main" --add="visitors" -fi - -#REMOVEME? ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" - -#================================================= -# 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 57d6b22..d544131 100755 --- a/scripts/remove +++ b/scripts/remove @@ -9,17 +9,6 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# LOAD SETTINGS -#================================================= -#REMOVEME? ynh_script_progression --message="Loading installation settings..." --weight=1 - -#REMOVEME? app=$YNH_APP_INSTANCE_NAME - -#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain) -#REMOVEME? port=$(ynh_app_setting_get --app=$app --key=port) -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) - #================================================= # STANDARD REMOVE #================================================= @@ -33,65 +22,20 @@ then yunohost service remove $app fi -#================================================= -# STOP AND REMOVE SERVICE -#================================================= -ynh_script_progression --message="Stopping and removing the systemd service..." --weight=1 - # Remove the dedicated systemd config ynh_remove_systemd_config -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Removing logrotate configuration..." --weight=1 - # Remove the app-specific logrotate config ynh_remove_logrotate -#================================================= -# REMOVE NODEJS -#================================================= -ynh_script_progression --message="Removing nodejs version..." --weight=1 - ynh_remove_nodejs -#================================================= -# REMOVE APP MAIN DIR -#================================================= -#REMOVEME? #REMOVEME? ynh_script_progression --message="Removing app main directory and dependencies..." --weight=2 - -# Remove the app directory securely -#REMOVEME? ynh_secure_remove --file="$install_dir" - -#================================================= -# REMOVE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 - # Remove the dedicated NGINX config ynh_remove_nginx_config -#================================================= -# SPECIFIC REMOVE -#================================================= -# REMOVE VARIOUS FILES -#================================================= -ynh_script_progression --message="Removing various files..." --weight=1 - # Remove the log files ynh_secure_remove --file="/var/log/$app" -#================================================= -# 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 607d5dc..d1a28e6 100755 --- a/scripts/restore +++ b/scripts/restore @@ -10,53 +10,6 @@ source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -#REMOVEME? ynh_clean_setup () { - #### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -#REMOVEME? ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -#REMOVEME? ynh_script_progression --message="Loading installation 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) - -#================================================= -# CHECK IF THE APP CAN BE RESTORED -#================================================= -#REMOVEME? ynh_script_progression --message="Validating restoration parameters..." --weight=1 - -#REMOVEME? test ! -d $install_dir \ - || ynh_die --message="There is already a directory: $install_dir " - -#================================================= -# STANDARD RESTORATION STEPS -#================================================= -# RESTORE THE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the NGINX configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" - -#================================================= -# 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 #================================================= @@ -64,7 +17,6 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$install_dir" -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" @@ -73,44 +25,17 @@ chown -R $app:www-data "$install_dir" #================================================= ynh_script_progression --message="Reinstalling nodejs version..." --weight=2 +ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" + ynh_install_nodejs --nodejs_version=$nodejs_version -ynh_use_nodejs - -#================================================= -# REINSTALL DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=7 - -cd $install_dir && ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install - -#================================================= -# RESTORE VARIOUS FILES -#================================================= -ynh_script_progression --message="Restoring various files..." --weight=1 - ynh_restore_file --origin_path="/var/log/$app/" -#================================================= -# RESTORE SYSTEMD -#================================================= -ynh_script_progression --message="Restoring the systemd configuration..." --weight=1 - ynh_restore_file --origin_path="/etc/systemd/system/$app.service" systemctl enable $app.service --quiet -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the logrotate configuration..." --weight=1 - ynh_restore_file --origin_path="/etc/logrotate.d/$app" -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" #================================================= @@ -120,13 +45,6 @@ ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# GENERIC FINALIZATION -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - ynh_systemd_action --service_name=nginx --action=reload #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 87bec73..d7693b3 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -9,38 +9,12 @@ source _common.sh source /usr/share/yunohost/helpers -#================================================= -# LOAD SETTINGS -#================================================= -#REMOVEME? ynh_script_progression --message="Loading installation 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? port=$(ynh_app_setting_get --app=$app --key=port) - #================================================= # 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 #================================================= @@ -50,14 +24,6 @@ ynh_script_progression --message="Stopping a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" -#================================================= -# 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 #================================================= @@ -66,13 +32,11 @@ if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --source_id="app" --dest_dir="$install_dir" + ynh_setup_source --dest_dir="$install_dir" # Download, check integrity, uncompress and patch the source from dist.src - ynh_setup_source --source_id="dist" --dest_dir="$install_dir/dist" - + ynh_setup_source --dest_dir="$install_dir/dist" --source_id="dist" fi -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" @@ -82,51 +46,28 @@ chown -R $app:www-data "$install_dir" ynh_script_progression --message="Upgrading nodejs..." --weight=2 ynh_install_nodejs --nodejs_version=$nodejs_version - ynh_use_nodejs -#================================================= -# NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 - # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# SPECIFIC UPGRADE -#================================================= -#REMOVEME? ynh_script_progression --message="Upgrading Uptime Kuma dependencies..." --weight=7 - -pushd "$install_dir" - ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install -popd - -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 - # Create a dedicated systemd config ynh_add_systemd_config -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Upgrading logrotate configuration..." --weight=1 - # Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --non-append -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" +#================================================= +# SPECIFIC UPGRADE +#================================================= +ynh_script_progression --message="Upgrading Uptime Kuma dependencies..." --weight=7 + +pushd "$install_dir" + ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install +popd + #================================================= # START SYSTEMD SERVICE #================================================= @@ -134,13 +75,6 @@ ynh_script_progression --message="Starting a systemd service..." --weight=1 ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# 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..eb73b8d --- /dev/null +++ b/tests.toml @@ -0,0 +1,3 @@ +test_format = 1.0 + +[default] \ No newline at end of file From e269adce77206a9de0e637f75cde69c7022a77a4 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 21 Mar 2023 08:41:12 +0000 Subject: [PATCH 05/22] Auto-update README --- README.md | 10 ---------- README_fr.md | 10 ---------- 2 files changed, 20 deletions(-) diff --git a/README.md b/README.md index 32d73a0..3af9407 100644 --- a/README.md +++ b/README.md @@ -38,20 +38,10 @@ It is a self-hosted monitoring tool like "Uptime Robot". ![Screenshot of Uptime Kuma](./doc/screenshots/example.jpg) -## Disclaimers / important information - -- Requires a full dedicated domain -- node_modules folder is backed up and shouldn't be (600Mo...) -- ARM architecture not supported -- This app needs a manual post-install -- Uses N to install specific nodejs version -- We could pre-configure mail notifications with YunoHost mail server as an improvement. See comments in file to try to do it with Curl and WebSockets or Sqlite. - ## Documentation and resources * Official app website: * Official user documentation: -* Official admin documentation: * Upstream app code repository: * YunoHost documentation for this app: * Report a bug: diff --git a/README_fr.md b/README_fr.md index bca46e7..d9b3141 100644 --- a/README_fr.md +++ b/README_fr.md @@ -38,20 +38,10 @@ It is a self-hosted monitoring tool like "Uptime Robot". ![Capture d’écran de Uptime Kuma](./doc/screenshots/example.jpg) -## Avertissements / informations importantes - -- Requires a full dedicated domain -- node_modules folder is backed up and shouldn't be (600Mo...) -- ARM architecture not supported -- This app needs a manual post-install -- Uses N to install specific nodejs version -- We could pre-configure mail notifications with YunoHost mail server as an improvement. See comments in file to try to do it with Curl and WebSockets or Sqlite. - ## Documentations et ressources * Site officiel de l’app : * Documentation officielle utilisateur : -* Documentation officielle de l’admin : * Dépôt de code officiel de l’app : * Documentation YunoHost pour cette app : * Signaler un bug : From 3c4f241cc09699668a4334a347849a144d285fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 09:44:04 +0100 Subject: [PATCH 06/22] fix --- conf/nginx.conf | 1 - doc/DESCRIPTION.md | 5 ++--- manifest.toml | 10 +++++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 2d90571..dd3ebf4 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -12,7 +12,6 @@ location __PATH__/ { # Common parameter to increase upload size limit #client_max_body_size 50M; - # Include SSOWAT user panel. include conf.d/yunohost_panel.conf.inc; } diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 9af13b8..322e270 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -3,9 +3,8 @@ It is a self-hosted monitoring tool like "Uptime Robot". ### Features - Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record / Push. -- Fancy, Reactive, Fast UI/UX. -- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 70+ notification services, click here for the full list. -- 20 second intervals. +- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP)... +- 20 second intervals - Multi Languages - Simple Status Page - Ping Chart diff --git a/manifest.toml b/manifest.toml index f476065..a250ab7 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ name = "Uptime Kuma" description.en = "Monitoring tool like Uptime-Robot" description.fr = "Outil de surveillance similaire à Uptime-Robot" -version = "1.20.2~ynh1" +version = "1.21.0~ynh1" maintainers = ["Hadrien"] @@ -40,12 +40,12 @@ ram.runtime = "50M" [resources] [resources.sources] [resources.sources.dist] - url = "https://github.com/louislam/uptime-kuma/releases/download/1.20.2/dist.tar.gz" - sha256 = "41f0fe9f1d9ec432c98e8bce2f25b59dd61c11f774bd2ad53d5cec1d795fd782" + url = "https://github.com/louislam/uptime-kuma/releases/download/1.21.0/dist.tar.gz" + sha256 = "7c9e7ee40615bfb8ae6f633ac766b94bbccf86c1a5c284a82d00b4a1da303e07" [resources.sources.main] - url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.20.2.tar.gz" - sha256 = "9febdad8bb24caee012a0c79cada6aace88ad3859cf94218512df987ecda009f" + url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.21.0.tar.gz" + sha256 = "f913a9ed65c77031944127689a7db7a19556ce5f4a0e7f8d4d3271fcc84aa6b1" [resources.ports] From e52c06e339e750d52e4434ff74eca3776112291a Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Tue, 21 Mar 2023 08:44:15 +0000 Subject: [PATCH 07/22] Auto-update README --- README.md | 7 +++---- README_fr.md | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 3af9407..c77cbae 100644 --- a/README.md +++ b/README.md @@ -21,16 +21,15 @@ It is a self-hosted monitoring tool like "Uptime Robot". ### Features - Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record / Push. -- Fancy, Reactive, Fast UI/UX. -- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 70+ notification services, click here for the full list. -- 20 second intervals. +- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP)... +- 20 second intervals - Multi Languages - Simple Status Page - Ping Chart - Certificate Info -**Shipped version:** 1.20.2~ynh1 +**Shipped version:** 1.21.0~ynh1 **Demo:** https://demo.uptime.kuma.pet diff --git a/README_fr.md b/README_fr.md index d9b3141..c9e1e3c 100644 --- a/README_fr.md +++ b/README_fr.md @@ -21,16 +21,15 @@ It is a self-hosted monitoring tool like "Uptime Robot". ### Features - Monitoring uptime for HTTP(s) / TCP / Ping / DNS Record / Push. -- Fancy, Reactive, Fast UI/UX. -- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 70+ notification services, click here for the full list. -- 20 second intervals. +- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP)... +- 20 second intervals - Multi Languages - Simple Status Page - Ping Chart - Certificate Info -**Version incluse :** 1.20.2~ynh1 +**Version incluse :** 1.21.0~ynh1 **Démo :** https://demo.uptime.kuma.pet From 2d9cf3aba41f9c86327b84295d9ecd01d0073de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:21:29 +0100 Subject: [PATCH 08/22] 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 7912aa4..b818f0f 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -4,7 +4,7 @@ # COMMON VARIABLES #================================================= -nodejs_version=14 +nodejs_version=16 #================================================= # PERSONAL HELPERS From 37e3a701c5b2d0f7dae8474da1661a09685d7295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:22:33 +0100 Subject: [PATCH 09/22] fix --- scripts/install | 3 ++- scripts/restore | 2 +- scripts/upgrade | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/install b/scripts/install index 1c406d6..908e07c 100755 --- a/scripts/install +++ b/scripts/install @@ -24,6 +24,7 @@ ynh_script_progression --message="Setting up source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" + # Download, check integrity, uncompress and patch the source from dist.src ynh_setup_source --dest_dir="$install_dir/dist" --source_id="dist" @@ -44,7 +45,7 @@ ynh_add_systemd_config # Use logrotate to manage application logfile(s) ynh_use_logrotate -yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" +yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$app.log" #================================================= # SPECIFIC SETUP diff --git a/scripts/restore b/scripts/restore index d1a28e6..c733a79 100755 --- a/scripts/restore +++ b/scripts/restore @@ -36,7 +36,7 @@ systemctl enable $app.service --quiet ynh_restore_file --origin_path="/etc/logrotate.d/$app" -yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" +yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$app.log" #================================================= # START SYSTEMD SERVICE diff --git a/scripts/upgrade b/scripts/upgrade index d7693b3..5d8dfca 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -57,7 +57,7 @@ ynh_add_systemd_config # Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --non-append -yunohost service add $app --description="Uptime Kuma, a fancy monitoring tool" --log="/var/log/$app/$app.log" +yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$app.log" #================================================= # SPECIFIC UPGRADE From 27a580f669472e1e63a8001c02374d42f7977d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:24:15 +0100 Subject: [PATCH 10/22] Update restore --- scripts/restore | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/scripts/restore b/scripts/restore index c733a79..95429e0 100755 --- a/scripts/restore +++ b/scripts/restore @@ -21,14 +21,22 @@ chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= -# INSTALL NODEJS +# REINSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Reinstalling nodejs version..." --weight=2 +ynh_script_progression --message="Reinstalling dependencies..." --weight=1 + +# Define and install dependencies +ynh_install_nodejs --nodejs_version=$nodejs_version + +#================================================= +# RESTORE SYSTEM CONFIGURATIONS +#================================================= +# RESTORE THE PHP-FPM CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" -ynh_install_nodejs --nodejs_version=$nodejs_version - ynh_restore_file --origin_path="/var/log/$app/" ynh_restore_file --origin_path="/etc/systemd/system/$app.service" @@ -39,9 +47,11 @@ ynh_restore_file --origin_path="/etc/logrotate.d/$app" yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$app.log" #================================================= -# START SYSTEMD SERVICE +# GENERIC FINALIZATION #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE +#================================================= +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" From d43dbcf60979ad8c3e7f23ff462e5756e7072ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:25:34 +0100 Subject: [PATCH 11/22] Update install --- scripts/install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install b/scripts/install index 908e07c..5ca8556 100755 --- a/scripts/install +++ b/scripts/install @@ -32,9 +32,9 @@ chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= -# NGINX CONFIGURATION +# SYSTEM CONFIGURATION #================================================= -ynh_script_progression --message="Configuring NGINX web server..." --weight=1 +ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config From 43fb9c5e0810f8e4a1447f46fc1ef27af700c66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:25:48 +0100 Subject: [PATCH 12/22] Update install --- scripts/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index 5ca8556..a60fe73 100755 --- a/scripts/install +++ b/scripts/install @@ -15,7 +15,6 @@ source /usr/share/yunohost/helpers ynh_script_progression --message="Installing nodejs..." --weight=2 ynh_install_nodejs --nodejs_version=$nodejs_version -ynh_use_nodejs #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -53,6 +52,7 @@ yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$ #REMOVEME? ynh_script_progression --message="Installing Uptime Kuma dependencies..." --weight=7 pushd "$install_dir" + ynh_use_nodejs ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install popd From 7e31ca98abacf04a51669bb191af503d99dd8c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:26:18 +0100 Subject: [PATCH 13/22] Update remove --- scripts/remove | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/remove b/scripts/remove index d544131..9b5e2aa 100755 --- a/scripts/remove +++ b/scripts/remove @@ -10,10 +10,11 @@ source _common.sh source /usr/share/yunohost/helpers #================================================= -# STANDARD REMOVE +# REMOVE SYSTEM CONFIGURATIONS #================================================= -# REMOVE SERVICE INTEGRATION IN YUNOHOST +# REMOVE SYSTEMD SERVICE #================================================= +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 # Remove the service from the list of services known by YunoHost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status $app >/dev/null From c7fee31588a86d3361849a15d624e0f789588eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 21 Mar 2023 12:42:24 +0100 Subject: [PATCH 14/22] Update upgrade --- scripts/upgrade | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 5d8dfca..13e842b 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -33,6 +33,7 @@ then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" + # Download, check integrity, uncompress and patch the source from dist.src ynh_setup_source --dest_dir="$install_dir/dist" --source_id="dist" fi @@ -46,7 +47,6 @@ chown -R $app:www-data "$install_dir" ynh_script_progression --message="Upgrading nodejs..." --weight=2 ynh_install_nodejs --nodejs_version=$nodejs_version -ynh_use_nodejs # Create a dedicated NGINX config ynh_add_nginx_config @@ -65,6 +65,7 @@ yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$ ynh_script_progression --message="Upgrading Uptime Kuma dependencies..." --weight=7 pushd "$install_dir" + ynh_use_nodejs ynh_exec_warn_less ynh_exec_as $app $ynh_node_load_PATH $ynh_npm install popd From c78275ea4ecc5124812233048084c778c5b6b3cb Mon Sep 17 00:00:00 2001 From: Tagada <36127788+Tagadda@users.noreply.github.com> Date: Sun, 21 May 2023 22:56:21 +0200 Subject: [PATCH 15/22] Add autoupdater to manifest.toml --- manifest.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/manifest.toml b/manifest.toml index a250ab7..b04f00f 100644 --- a/manifest.toml +++ b/manifest.toml @@ -42,10 +42,14 @@ ram.runtime = "50M" [resources.sources.dist] url = "https://github.com/louislam/uptime-kuma/releases/download/1.21.0/dist.tar.gz" sha256 = "7c9e7ee40615bfb8ae6f633ac766b94bbccf86c1a5c284a82d00b4a1da303e07" + autoupdate.strategy = "latest_github_release" + autoupdate.asset = "dist.tar.gz" [resources.sources.main] url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.21.0.tar.gz" sha256 = "f913a9ed65c77031944127689a7db7a19556ce5f4a0e7f8d4d3271fcc84aa6b1" + autoupdate.strategy = "latest_github_release" + autoupdate.asset = "tarball" [resources.ports] From 3d4c817f1c0d03c4b4c025d225bce9588806d4cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 08:54:49 +0200 Subject: [PATCH 16/22] cleaning --- .github/workflows/updater.sh | 106 ---------------------------------- .github/workflows/updater.yml | 49 ---------------- manifest.toml | 2 +- scripts/install | 2 +- 4 files changed, 2 insertions(+), 157 deletions(-) delete mode 100644 .github/workflows/updater.sh delete mode 100644 .github/workflows/updater.yml diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh deleted file mode 100644 index fcaebd5..0000000 --- a/.github/workflows/updater.sh +++ /dev/null @@ -1,106 +0,0 @@ -#!/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. - -#================================================= -# 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) -declare -A assets=([app]="https://github.com/$repo/archive/refs/tags/$version.tar.gz" [dist]="https://github.com/$repo/releases/download/$version/dist.tar.gz") - -# 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 -# 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 - -#================================================= -# UPDATE SOURCE FILES -#================================================= - -for src in app dist; do - # Let's download source tarball - asset_url="${assets[$src]}" - echo "Handling asset at $asset_url" - - # 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=$filename -SOURCE_EXTRACT=true -EOT - echo "... conf/$src.src updated" -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 diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml deleted file mode 100644 index a56d7cb..0000000 --- a/.github/workflows/updater.yml +++ /dev/null @@ -1,49 +0,0 @@ -# This workflow allows GitHub Actions to automagically update your app whenever a new upstream release is detected. -# You need to enable Actions in your repository settings, and fetch this Action from the YunoHost-Apps organization. -# This file should be enough by itself, but feel free to tune it to your needs. -# It calls updater.sh, which is where you should put the app-specific update steps. -name: Check for new upstream releases -on: - # Allow to manually trigger the workflow - workflow_dispatch: - # Run it every day at 6:00 UTC - schedule: - - cron: '0 6 * * *' -jobs: - updater: - runs-on: ubuntu-latest - steps: - - name: Fetch the source code - uses: actions/checkout@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - name: Run the updater script - id: run_updater - run: | - # Setting up Git user - git config --global user.name 'yunohost-bot' - git config --global user.email 'yunohost-bot@users.noreply.github.com' - # Run the updater script - /bin/bash .github/workflows/updater.sh - - name: Commit changes - id: commit - if: ${{ env.PROCEED == 'true' }} - run: | - git commit -am "Upgrade to v$VERSION" - - name: Create Pull Request - id: cpr - if: ${{ env.PROCEED == 'true' }} - uses: peter-evans/create-pull-request@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - commit-message: Update to version ${{ env.VERSION }} - committer: 'yunohost-bot ' - author: 'yunohost-bot ' - signoff: false - base: testing - branch: ci-auto-update-v${{ env.VERSION }} - delete-branch: true - title: 'Upgrade to version ${{ env.VERSION }}' - body: | - Upgrade to v${{ env.VERSION }} - draft: false diff --git a/manifest.toml b/manifest.toml index a250ab7..122c511 100644 --- a/manifest.toml +++ b/manifest.toml @@ -17,7 +17,7 @@ userdoc = "https://github.com/louislam/uptime-kuma/wiki" code = "https://github.com/louislam/uptime-kuma" [integration] -yunohost = ">= 11.1.15" +yunohost = ">= 11.1.19" architectures = [ "amd64" ] multi_instance = true ldap = false diff --git a/scripts/install b/scripts/install index a60fe73..e820352 100755 --- a/scripts/install +++ b/scripts/install @@ -49,7 +49,7 @@ yunohost service add $app --description="Monitoring tool" --log="/var/log/$app/$ #================================================= # SPECIFIC SETUP #================================================= -#REMOVEME? ynh_script_progression --message="Installing Uptime Kuma dependencies..." --weight=7 +ynh_script_progression --message="Installing Uptime Kuma dependencies..." --weight=7 pushd "$install_dir" ynh_use_nodejs From 89a72aa7549b8a29a3cde415325f0ee6eb7830d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 11:13:50 +0200 Subject: [PATCH 17/22] Update manifest.toml --- manifest.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/manifest.toml b/manifest.toml index 2c78d72..b6408f3 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ name = "Uptime Kuma" description.en = "Monitoring tool like Uptime-Robot" description.fr = "Outil de surveillance similaire à Uptime-Robot" -version = "1.21.0~ynh1" +version = "1.21.3~ynh1" maintainers = ["Hadrien"] @@ -40,14 +40,14 @@ ram.runtime = "50M" [resources] [resources.sources] [resources.sources.dist] - url = "https://github.com/louislam/uptime-kuma/releases/download/1.21.0/dist.tar.gz" - sha256 = "7c9e7ee40615bfb8ae6f633ac766b94bbccf86c1a5c284a82d00b4a1da303e07" + url = "https://github.com/louislam/uptime-kuma/releases/download/1.21.3/dist.tar.gz" + sha256 = "726342402962a257a596ecff84024dc29796a3a6d08da282c69777a0baa4779f" autoupdate.strategy = "latest_github_release" autoupdate.asset = "dist.tar.gz" [resources.sources.main] - url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.21.0.tar.gz" - sha256 = "f913a9ed65c77031944127689a7db7a19556ce5f4a0e7f8d4d3271fcc84aa6b1" + url = "https://github.com/louislam/uptime-kuma/archive/refs/tags/1.21.3.tar.gz" + sha256 = "e56e95d98fdb72be44dd1904631e29cd02b690f4f89cd2220c7a3a9fee601b97" autoupdate.strategy = "latest_github_release" autoupdate.asset = "tarball" From 1227f176d10cc7a7bd9ce563a01baa214f31c15e Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Mon, 22 May 2023 09:13:55 +0000 Subject: [PATCH 18/22] 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 c77cbae..e1992a7 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ It is a self-hosted monitoring tool like "Uptime Robot". - Certificate Info -**Shipped version:** 1.21.0~ynh1 +**Shipped version:** 1.21.3~ynh1 **Demo:** https://demo.uptime.kuma.pet diff --git a/README_fr.md b/README_fr.md index c9e1e3c..c7c999a 100644 --- a/README_fr.md +++ b/README_fr.md @@ -29,7 +29,7 @@ It is a self-hosted monitoring tool like "Uptime Robot". - Certificate Info -**Version incluse :** 1.21.0~ynh1 +**Version incluse :** 1.21.3~ynh1 **Démo :** https://demo.uptime.kuma.pet From c91e0d14b6bcd00ef7412682af3a6ede8e9aa603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 11:14:36 +0200 Subject: [PATCH 19/22] 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 b818f0f..9195d57 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -4,7 +4,7 @@ # COMMON VARIABLES #================================================= -nodejs_version=16 +nodejs_version=18 #================================================= # PERSONAL HELPERS From 0a8a9cdd3d44a152ee27223467533a3538500d9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 11:18:29 +0200 Subject: [PATCH 20/22] Update ADMIN.md --- doc/ADMIN.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/ADMIN.md b/doc/ADMIN.md index 859c139..4aaa1ae 100644 --- a/doc/ADMIN.md +++ b/doc/ADMIN.md @@ -1,6 +1,3 @@ -- Requires a full dedicated domain - node_modules folder is backed up and shouldn't be (600Mo...) -- ARM architecture not supported - This app needs a manual post-install -- Uses N to install specific nodejs version - We could pre-configure mail notifications with YunoHost mail server as an improvement. See comments in file to try to do it with Curl and WebSockets or Sqlite. From 0b48ec7cd090e5a70a2b19a365e35887d4839a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 11:19:33 +0200 Subject: [PATCH 21/22] Update tests.toml --- tests.toml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests.toml b/tests.toml index eb73b8d..6aa3b78 100644 --- a/tests.toml +++ b/tests.toml @@ -1,3 +1,9 @@ test_format = 1.0 -[default] \ No newline at end of file +[default] + + # ------------------------------- + # Commits to test upgrade from + # ------------------------------- + + test_upgrade_from.484a6b12681415f6cc031ed3279795ce1a8b29cc.name = "Upgrade from 1.20.2" \ No newline at end of file From e2d9fd8be0d7d5080c7e347775457a3ed8bc35b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?E=CC=81ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Mon, 22 May 2023 11:21:08 +0200 Subject: [PATCH 22/22] Update nginx.conf --- conf/nginx.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index dd3ebf4..5461087 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -9,9 +9,9 @@ location __PATH__/ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; - # Common parameter to increase upload size limit - #client_max_body_size 50M; + # Common parameter to increase upload size limit + #client_max_body_size 50M; - # Include SSOWAT user panel. - include conf.d/yunohost_panel.conf.inc; + # Include SSOWAT user panel. + include conf.d/yunohost_panel.conf.inc; }