From 899bd6b83be9272dc5b260cae078023cb1c3fb53 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 6 Jul 2021 17:45:33 +0200 Subject: [PATCH] fix --- conf/app-amd64.src | 7 -- conf/app-arm.src | 7 -- conf/app-arm64.src | 7 -- conf/htpasswd-amd64 | Bin 18424 -> 0 bytes conf/htpasswd-arm64 | Bin 18352 -> 0 bytes conf/htpasswd-armhf | Bin 13732 -> 0 bytes conf/nginx.conf | 13 ++- conf/systemd.service | 24 +++--- conf/x86-64.src | 6 ++ manifest.json | 39 ++------- scripts/_common.sh | 145 +++++++++----------------------- scripts/install | 194 ++++++++++++++++++------------------------- scripts/remove | 76 ++++++----------- 13 files changed, 185 insertions(+), 333 deletions(-) delete mode 100644 conf/app-amd64.src delete mode 100644 conf/app-arm.src delete mode 100644 conf/app-arm64.src delete mode 100644 conf/htpasswd-amd64 delete mode 100644 conf/htpasswd-arm64 delete mode 100644 conf/htpasswd-armhf create mode 100644 conf/x86-64.src diff --git a/conf/app-amd64.src b/conf/app-amd64.src deleted file mode 100644 index 1765737..0000000 --- a/conf/app-amd64.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.104.1/AdGuardHome_linux_amd64.tar.gz -SOURCE_SUM=1af720ff10f68a1f78858500b182b63bfecef7c95fe53f4a26e460f2d59e3fd0c52db04654078eb3d98cc422001f40b14cba663d730d4ca99bdd874c4f500963 -SOURCE_SUM_PRG=sha512sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_EXTRACT=true -SOURCE_FILENAME=adguard.tar.gz diff --git a/conf/app-arm.src b/conf/app-arm.src deleted file mode 100644 index 5923c34..0000000 --- a/conf/app-arm.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.104.1/AdGuardHome_linux_armv7.tar.gz -SOURCE_SUM=0fc56bbd1c4cf97ad17ebec4ffc8257619673567403c2972e77a75af762f566f7f088bf769e23d1dc615836e48ca6e51cc51cb52e3a2790ecc2618cb7e94b13f -SOURCE_SUM_PRG=sha512sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_EXTRACT=true -SOURCE_FILENAME=adguard.tar.gz diff --git a/conf/app-arm64.src b/conf/app-arm64.src deleted file mode 100644 index 3afcc98..0000000 --- a/conf/app-arm64.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.104.1/AdGuardHome_linux_arm64.tar.gz -SOURCE_SUM=44fe711b28a4ecb023eee662f8fb7d66ab5dd195584e264d8af0e51549c332b8225ddd3c8418894b0b8ecdbca229ced26f3340893f88b04153a672f3272cc974 -SOURCE_SUM_PRG=sha512sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_EXTRACT=true -SOURCE_FILENAME=adguard.tar.gz diff --git a/conf/htpasswd-amd64 b/conf/htpasswd-amd64 deleted file mode 100644 index 3b31b47117e5487b144846ad765b5d21982ff90e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18424 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 N1pXl5=rLRVzX8FhTx$RT diff --git a/conf/htpasswd-armhf b/conf/htpasswd-armhf deleted file mode 100644 index 86998d2fdfadb1c37e2c6cf1a49527fada886967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13732 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 2.7.2" + "yunohost": ">= 4.2.4" }, "multi_instance": false, "services": [ "nginx", - "php5-fpm", "mysql" ], "arguments": { "install": [{ "name": "domain", "type": "domain", - "ask": { - "en": "Choose a domain name for AdGuard Home", - "fr": "Choisissez un nom de domaine pour AdGuard Home" - }, "example": "example.com" }, { "name": "path", "type": "path", - "ask": { - "en": "Choose a path for AdGuard Home / is accepted", - "fr": "Choisissez un chemin pour AdGuard Home / est accepté" - }, "example": "/", "default": "/" }, { "name": "is_public", "type": "boolean", - "ask": { - "en": "Is it a public site ?", - "fr": "Est-ce un site public ?" - }, - "default": "true" + "default": true }, { - "name": "ad_user", - "type": "ad_user", - "ask": { - "en": "Enter your admin username ?", - "fr": "Entrez votre nom d'utilisateur ?" - }, - "example": "liberodark" + "name": "admin", + "type": "user", + "example": "johndoe" }, { - "name": "ad_password", - "type": "ad_password", - "ask": { - "en": "Enter your password !", - "fr": "Entrez votre mot de passe !" - }, - "example": "mypassword" + "name": "password", + "type": "password", + "example": "Choose a password" } ] } diff --git a/scripts/_common.sh b/scripts/_common.sh index 0f53f77..dc893aa 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -1,112 +1,47 @@ #!/bin/bash -# ============================================================================= -# YUNOHOST 2.7 FORTHCOMING HELPERS -# ============================================================================= +#================================================= +# COMMON VARIABLES +#================================================= -# Create a dedicated nginx config +# dependencies used by the app +pkg_dependencies="" + +#================================================= +# PERSONAL HELPERS +#================================================= + +#================================================= +# EXPERIMENTAL HELPERS +#================================================= + +#================================================= +# FUTURE OFFICIAL HELPERS +#================================================= + +# Check the architecture # -# usage: ynh_add_nginx_config -ynh_add_nginx_config () { - finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf" - ynh_backup_if_checksum_is_different "$finalnginxconf" - sudo cp ../conf/nginx.conf "$finalnginxconf" - - # To avoid a break by set -u, use a void substitution ${var:-}. If the variable is not set, it's simply set with an empty variable. - # Substitute in a nginx config file only if the variable is not empty - if test -n "${path_url:-}"; then - ynh_replace_string "__PATH__" "$path_url" "$finalnginxconf" - fi - if test -n "${domain:-}"; then - ynh_replace_string "__DOMAIN__" "$domain" "$finalnginxconf" - fi - if test -n "${port:-}"; then - ynh_replace_string "__PORT__" "$port" "$finalnginxconf" - fi - if test -n "${app:-}"; then - ynh_replace_string "__NAME__" "$app" "$finalnginxconf" - fi - if test -n "${final_path:-}"; then - ynh_replace_string "__FINALPATH__" "$final_path" "$finalnginxconf" - fi - ynh_store_file_checksum "$finalnginxconf" - - sudo systemctl reload nginx -} - -# Remove the dedicated nginx config +# example: architecture=$(ynh_detect_arch) # -# usage: ynh_remove_nginx_config -ynh_remove_nginx_config () { - ynh_secure_remove "/etc/nginx/conf.d/$domain.d/$app.conf" - sudo systemctl reload nginx -} - -# Create a dedicated php-fpm config +# usage: ynh_detect_arch # -# usage: ynh_add_fpm_config -ynh_add_fpm_config () { - finalphpconf="/etc/php5/fpm/pool.d/$app.conf" - ynh_backup_if_checksum_is_different "$finalphpconf" - sudo cp ../conf/php-fpm.conf "$finalphpconf" - ynh_replace_string "__NAMETOCHANGE__" "$app" "$finalphpconf" - ynh_replace_string "__FINALPATH__" "$final_path" "$finalphpconf" - ynh_replace_string "__USER__" "$app" "$finalphpconf" - sudo chown root: "$finalphpconf" - ynh_store_file_checksum "$finalphpconf" - - if [ -e "../conf/php-fpm.ini" ] - then - finalphpini="/etc/php5/fpm/conf.d/20-$app.ini" - ynh_backup_if_checksum_is_different "$finalphpini" - sudo cp ../conf/php-fpm.ini "$finalphpini" - sudo chown root: "$finalphpini" - ynh_store_file_checksum "$finalphpini" - fi - - sudo systemctl reload php5-fpm -} - -# Remove the dedicated php-fpm config -# -# usage: ynh_remove_fpm_config -ynh_remove_fpm_config () { - ynh_secure_remove "/etc/php5/fpm/pool.d/$app.conf" - ynh_secure_remove "/etc/php5/fpm/conf.d/20-$app.ini" 2>&1 - sudo systemctl reload php5-fpm -} - -# Create a dedicated systemd config -# -# usage: ynh_add_systemd_config -ynh_add_systemd_config () { - finalsystemdconf="/etc/systemd/system/$app.service" - ynh_backup_if_checksum_is_different "$finalsystemdconf" - sudo cp ../conf/systemd.service "$finalsystemdconf" - - # To avoid a break by set -u, use a void substitution ${var:-}. If the variable is not set, it's simply set with an empty variable. - # Substitute in a nginx config file only if the variable is not empty - if test -n "${final_path:-}"; then - ynh_replace_string "__FINALPATH__" "$final_path" "$finalsystemdconf" - fi - if test -n "${app:-}"; then - ynh_replace_string "__APP__" "$app" "$finalsystemdconf" - fi - ynh_store_file_checksum "$finalsystemdconf" - - sudo chown root: "$finalsystemdconf" - sudo systemctl enable $app - sudo systemctl daemon-reload -} - -# Remove the dedicated systemd config -# -# usage: ynh_remove_systemd_config -ynh_remove_systemd_config () { - finalsystemdconf="/etc/systemd/system/$app.service" - if [ -e "$finalsystemdconf" ]; then - sudo systemctl stop $app - sudo systemctl disable $app - ynh_secure_remove "$finalsystemdconf" - fi +# Requires YunoHost version 2.2.4 or higher. +ynh_detect_arch(){ + local architecture + if [ -n "$(uname -m | grep arm64)" ] || [ -n "$(uname -m | grep aarch64)" ]; then + architecture="arm64" + elif [ -n "$(uname -m | grep 86)" ]; then + architecture="i386" + elif [ -n "$(uname -m | grep 64)" ]; then + architecture="x86-64" + elif [ -n "$(uname -m | grep armv7)" ]; then + architecture="armv7" + elif [ -n "$(uname -m | grep armv6)" ]; then + architecture="armv6" + elif [ -n "$(uname -m | grep armv5)" ]; then + architecture="armv5" + else + architecture="unknown" + fi + echo $architecture } diff --git a/scripts/install b/scripts/install index 57cf270..bffc9be 100644 --- a/scripts/install +++ b/scripts/install @@ -28,45 +28,31 @@ ynh_abort_if_errors domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC -ad_user=$YNH_APP_ARG_AD_USER -ad_password=$YNH_APP_ARG_AD_PASSWORD +admin=$YNH_APP_ARG_ADMIN +password=$YNH_APP_ARG_PASSWORD +architecture=$(ynh_detect_arch) -### If it's a multi-instance app, meaning it can be installed several times independently -### The id of the app as stated in the manifest is available as $YNH_APP_ID -### The instance number is available as $YNH_APP_INSTANCE_NUMBER (equals "1", "2", ...) -### The app instance name is available as $YNH_APP_INSTANCE_NAME -### - the first time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample -### - the second time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample__2 -### - ynhexample__{N} for the subsequent installations, with N=3,4, ... -### The app instance name is probably what interests you most, since this is -### guaranteed to be unique. This is a good unique identifier to define installation path, -### db names, ... app=$YNH_APP_INSTANCE_NAME #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= +ynh_script_progression --message="Validating installation parameters..." --weight=1 -### If the app uses nginx as web server (written in HTML/PHP in most cases), the final path should be "/var/www/$app". -### If the app provides an internal web server (or uses another application server such as uwsgi), the final path should be "/opt/yunohost/$app" final_path=/opt/yunohost/$app -test ! -e "$final_path" || ynh_die "This path already contains a folder" +test ! -e "$final_path" || ynh_die --message="This path already contains a folder" -# Normalize the url path syntax -path_url=$(ynh_normalize_url_path "$path_url") - -# Check web path availability -ynh_webpath_available "$domain" "$path_url" # Register (book) web path -ynh_webpath_register "$app" "$domain" "$path_url" +ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url #================================================= # STORE SETTINGS FROM MANIFEST #================================================= +ynh_script_progression --message="Storing installation settings..." --weight=2 -ynh_app_setting_set "$app" domain "$domain" -ynh_app_setting_set "$app" path "$path_url" -ynh_app_setting_set "$app" is_public "$is_public" +ynh_app_setting_set --app=$app --key=domain --value=$domain +ynh_app_setting_set --app=$app --key=path --value=$path_url +ynh_app_setting_set --app=$app --key=is_public --value=$is_public #============================================== # INSTALL DEPS @@ -77,120 +63,106 @@ ynh_install_app_dependencies libcap2-bin libaprutil1 #================================================= # FIND AND OPEN A PORT #================================================= +ynh_script_progression --message="Finding an available port..." --time --weight=1 -### Use these lines if you have to open a port for the application -### `ynh_find_port` will find the first available port starting from the given port. -### If you're not using these lines: -### - Remove the section "CLOSE A PORT" in the remove script - -# Find a free port -port=$(ynh_find_port 53) - -#================================================= -# DOWNLOAD, CHECK AND UNPACK SOURCE -#================================================= - -ynh_app_setting_set "$app" final_path "$final_path" - -# Download, check integrity, uncompress and patch the source from app-[arch].src -case $(uname -m) in - x86_64) ynh_setup_source "$final_path" "app-amd64" ;; - aarch64) ynh_setup_source "$final_path" "app-arm64" ;; - armv7l) ynh_setup_source "$final_path" "app-arm" ;; - *) ynh_die "Unknown arch" ;; -esac - -#================================================= -# GENERATE PASSWORD -#================================================= - -case $(uname -m) in - x86_64) htpasswd_arch=htpasswd-amd64 ;; - aarch64) htpasswd_arch=htpasswd-arm64 ;; - armv7l) htpasswd_arch=htpasswd-armhf ;; - *) ynh_die "Unknown arch" ;; -esac - -chmod +x ../conf/$htpasswd_arch -password_gen=$(../conf/$htpasswd_arch -B -n -b "$ad_user" "$ad_password" | sed "s/""$ad_user""://") - -#================================================= -# MODIFY A CONFIG FILE -#================================================= - -ynh_replace_string "__FINALPATH__" "$final_path" "../conf/systemd.service" -ynh_replace_string "__USER__" "$ad_user" "../conf/AdGuardHome.yaml" -ynh_replace_string "__PWD__" "$password_gen" "../conf/AdGuardHome.yaml" - -#================================================= -# SETUP SYSTEMD -#================================================= - -ynh_add_systemd_config -systemctl enable "$app".service - -#============================================== -# INSTALL ADGUARD -#============================================== - -#setcap CAP_NET_BIND_SERVICE=+eip .$final_path/AdGuardHome - -#================================================= -# NGINX CONFIGURATION -#================================================= - -# Create a dedicated nginx config -ynh_add_nginx_config +# Find an available port +port=$(ynh_find_port --port=8095) +ynh_app_setting_set --app=$app --key=port --value=$port #================================================= # CREATE DEDICATED USER #================================================= +ynh_script_progression --message="Configuring system user..." --weight=1 # Create a system user -#ynh_system_user_create $app +ynh_system_user_create --username=$app --home_dir=$final_path + +#================================================= +# DOWNLOAD, CHECK AND UNPACK SOURCE +#================================================= +ynh_script_progression --message="Setting up source files..." --weight=4 + +ynh_app_setting_set --app=$app --key=final_path --value=$final_path +# Download, check integrity, uncompress and patch the source from app.src +ynh_setup_source --dest_dir=$final_path --source_id="$architecture" + +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + +#================================================= +# NGINX CONFIGURATION +#================================================= +ynh_script_progression --message="Configuring NGINX web server..." --weight=3 + +# Create a dedicated NGINX config +ynh_add_nginx_config #================================================= # MODIFY A CONFIG FILE #================================================= +ynh_script_progression --message="Modifying a config file..." --weight=1 -cp -a ../conf/AdGuardHome.yaml "$final_path"/AdGuardHome.yaml +config_path="/var/lib/$app" +mkdir -p "$config_path" + +# Main config File +ynh_add_config --template="../conf/AdGuardHome.yaml" --destination="$final_path/AdGuardHome.yaml" + +chmod 600 "$config_path/navidrome.toml" +chown -R $app "$config_path" #================================================= -# STORE THE CONFIG FILE CHECKSUM +# SETUP SYSTEMD #================================================= +ynh_script_progression --message="Configuring a systemd service..." --weight=1 -### `ynh_store_file_checksum` is used to store the checksum of a file. -### That way, during the upgrade script, by using `ynh_backup_if_checksum_is_different`, -### you can make a backup of this file before modifying it again if the admin had modified it. - -# Calculate and store the config file checksum into the app settings -#ynh_store_file_checksum "$final_path/AdGuardHome.yaml" +# Create a dedicated systemd config +ynh_add_systemd_config #================================================= # GENERIC FINALIZATION #================================================= -# SECURE FILES AND DIRECTORIES +# INTEGRATE SERVICE IN YUNOHOST #================================================= +ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 -### For security reason, any app should set the permissions to root: before anything else. -### Then, if write authorization is needed, any access should be given only to directories -### that really need such authorization. +yunohost service add $app --description="Web-based music collection server and streamer" -# Set permissions to app files -chown -R root: "$final_path" +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Starting a systemd service..." --weight=2 + +# Start a systemd service +ynh_systemd_action --service_name=$app --action="start" --log_path=systemd --line_match="Version:" #================================================= # SETUP SSOWAT #================================================= +ynh_script_progression --message="Configuring permissions..." --weight=1 -# If app is public, add url to SSOWat conf as skipped_uris -if [ "$is_public" -eq 1 ]; then - # unprotected_uris allows SSO credentials to be passed anyway. - ynh_app_setting_set "$app" unprotected_uris "/" +# Make app public if necessary +if [ $is_public -eq 1 ] +then + # Everyone can access the app. + # The "main" permission is automatically created before the install script. + ynh_permission_update --permission="main" --add="visitors" fi -# Reload services -systemctl reload nginx -systemctl stop dnsmasq.service -systemctl disable dnsmasq.service -systemctl start "$app".service +#================================================= +# RELOAD NGINX +#================================================= +ynh_script_progression --message="Reloading NGINX web server..." --weight=2 + +ynh_systemd_action --service_name=nginx --action=reload + +#================================================= +# END OF SCRIPT +#================================================= + +ynh_script_progression --message="Installation of $app completed" --last + + +#systemctl stop dnsmasq.service +#systemctl disable dnsmasq.service diff --git a/scripts/remove b/scripts/remove index c6445ec..31f67d5 100644 --- a/scripts/remove +++ b/scripts/remove @@ -12,31 +12,31 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_print_info "Loading installation settings..." +ynh_script_progression --message="Loading installation settings..." --time --weight=1 app=$YNH_APP_INSTANCE_NAME -domain=$(ynh_app_setting_get "$app" domain) -port=$(ynh_app_setting_get "$app" port) -final_path=$(ynh_app_setting_get "$app" final_path) +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) #================================================= # STANDARD REMOVE #================================================= -# REMOVE SERVICE FROM ADMIN PANEL +# REMOVE SERVICE INTEGRATION IN YUNOHOST #================================================= -# Remove a service from the admin panel, added by `yunohost service add` -if yunohost service status "$app" >/dev/null 2>&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 then - ynh_print_info "Removing $app service" - yunohost service remove "$app" + ynh_script_progression --message="Removing $app service integration..." --time --weight=1 + yunohost service remove $app fi #================================================= # STOP AND REMOVE SERVICE #================================================= -ynh_print_info "Stopping and removing the systemd service" +ynh_script_progression --message="Stopping and removing the systemd service..." --time --weight=1 # Remove the dedicated systemd config ynh_remove_systemd_config @@ -44,83 +44,57 @@ ynh_remove_systemd_config #================================================= # REMOVE DEPENDENCIES #================================================= -ynh_print_info "Removing dependencies" +#ynh_script_progression --message="Removing dependencies..." --time --weight=1 # Remove metapackage and its dependencies -ynh_remove_app_dependencies +#ynh_remove_app_dependencies #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_print_info "Removing app main directory" +ynh_script_progression --message="Removing app main directory..." --time --weight=1 # Remove the app directory securely -ynh_secure_remove "$final_path" +ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= -ynh_print_info "Removing nginx web server configuration" +ynh_script_progression --message="Removing NGINX web server configuration..." --time --weight=1 -# Remove the dedicated nginx config +# Remove the dedicated NGINX config ynh_remove_nginx_config -#================================================= -# REMOVE PHP-FPM CONFIGURATION -#================================================= -#ynh_print_info "Removing php-fpm configuration" - -# Remove the dedicated php-fpm config -#ynh_remove_fpm_config - -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -ynh_print_info "Removing logrotate configuration" - -# Remove the app-specific logrotate config -ynh_remove_logrotate - #================================================= # CLOSE A PORT #================================================= if yunohost firewall list | grep -q "\- $port$" then - ynh_print_info "Closing port $port" - ynh_exec_warn_less yunohost firewall disallow TCP "$port" + ynh_script_progression --message="Closing port $port..." --time --weight=1 + ynh_exec_warn_less yunohost firewall disallow TCP $port fi #================================================= -# SPECIFIC REMOVE -#================================================= -# REMOVE THE CRON FILE +# REMOVE FAIL2BAN CONFIGURATION #================================================= +ynh_script_progression --message="Removing Fail2ban configuration..." --time --weight=1 -# Remove a cron file -ynh_secure_remove "/etc/cron.d/$app" - -# Remove a directory securely -ynh_secure_remove "/etc/$app/" - -# Remove the log files -ynh_secure_remove "/var/log/$app/" +# Remove the dedicated Fail2Ban config +ynh_remove_fail2ban_config #================================================= # GENERIC FINALIZATION #================================================= # REMOVE DEDICATED USER #================================================= -ynh_print_info "Removing the dedicated system user" +ynh_script_progression --message="Removing the dedicated system user..." --time --weight=1 # Delete a system user -ynh_system_user_delete "$app" +ynh_system_user_delete --username=$app #================================================= # END OF SCRIPT #================================================= -systemctl start dnsmasq.service -systemctl enable dnsmasq.service - -ynh_print_info "Removal of $app completed" +ynh_script_progression --message="Removal of $app completed" --time --last