From f888d307a224a16589a3acfba2e80e2282e79d0a Mon Sep 17 00:00:00 2001 From: Krakinou Date: Sun, 11 Apr 2021 10:12:09 +0200 Subject: [PATCH] Init Upgrade Script --- check_process | 4 +-- scripts/upgrade | 85 ++++++++++++++----------------------------------- 2 files changed, 26 insertions(+), 63 deletions(-) diff --git a/check_process b/check_process index 6b665a1..09d74b4 100644 --- a/check_process +++ b/check_process @@ -11,8 +11,8 @@ setup_nourl=0 setup_private=0 setup_public=0 - upgrade=0 - upgrade=0 from_commit=CommitHash + upgrade=1 +# upgrade=0 from_commit=CommitHash backup_restore=1 multi_instance=0 port_already_use=0 diff --git a/scripts/upgrade b/scripts/upgrade index a749b70..93c485d 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -18,10 +18,12 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) -admin=$(ynh_app_setting_get --app=$app --key=admin) final_path=$(ynh_app_setting_get --app=$app --key=final_path) -language=$(ynh_app_setting_get --app=$app --key=language) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) +vlc_required=$(ynh_app_setting_get --app=$app --key=vlc) + +if [ "$vlc_required" -eq 1 ] ; then + pkg_dependencies="$pkg_dependencies vlc" +fi #================================================= # CHECK VERSION @@ -40,43 +42,6 @@ upgrade_type=$(ynh_check_app_version_changed) #================================================= ynh_script_progression --message="Ensuring downward compatibility..." --time --weight=1 -# -# N.B. : the followings setting migrations snippets are provided as *EXAMPLES* -# of what you may want to do in some cases (e.g. a setting was not defined on -# some legacy installs and you therefore want to initiaze stuff during upgrade) -# - -# If db_name doesn't exist, create it -#if [ -z "$db_name" ]; then -# db_name=$(ynh_sanitize_dbid --db_name=$app) -# ynh_app_setting_set --app=$app --key=db_name --value=$db_name -#fi - -# If final_path doesn't exist, create it -#if [ -z "$final_path" ]; then -# final_path=/var/www/$app -# ynh_app_setting_set --app=$app --key=final_path --value=$final_path -#fi - -### If nobody installed your app before 4.1, -### then you may safely remove these lines - -# Cleaning legacy permissions -if ynh_legacy_permissions_exists; then - ynh_legacy_permissions_delete_all - - ynh_app_setting_delete --app=$app --key=is_public -fi - -if ! ynh_permission_exists --permission="admin"; then - # Create the required permissions - ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin -fi - -# Create a permission if needed -if ! ynh_permission_exists --permission="api"; then - ynh_permission_create --permission="api" --url "/api" --allowed="visitors" --show_tile="false" --protected="true" -fi #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP @@ -110,7 +75,12 @@ then ynh_script_progression --message="Upgrading source files..." --time --weight=1 # Download, check integrity, uncompress and patch the source from app.src + cp ../conf/app.src.default ../conf/app.src + ynh_replace_string --match_string="__MACH__" --replace_string="$MACH" --target_file="../conf/app.src" + ynh_replace_string --match_string="__SHA256_SUM__" --replace_string="$SHA256" --target_file="../conf/app.src" ynh_setup_source --dest_dir="$final_path" + tar xfvz $final_path/app.tgz --strip-component=1 --directory=$final_path/ + rm $final_path/app.tgz fi #================================================= @@ -134,15 +104,7 @@ ynh_install_app_dependencies $pkg_dependencies ynh_script_progression --message="Making sure dedicated system user exists..." --time --weight=1 # Create a dedicated user (if not existing) -ynh_system_user_create --username=$app - -#================================================= -# PHP-FPM CONFIGURATION -#================================================= -ynh_script_progression --message="Upgrading PHP-FPM configuration..." --time --weight=1 - -# Create a dedicated PHP-FPM config -ynh_add_fpm_config +ynh_system_user_create --username=$app --home_dir=/home/$app #================================================= # SPECIFIC UPGRADE @@ -167,14 +129,12 @@ ynh_add_systemd_config ### The file will automatically be backed-up if it's found to be manually modified (because ### ynh_add_config keeps track of the file's checksum) -ynh_add_config --template="some_config_file" --destination="$final_path/some_config_file" - -### For more complex cases where you want to replace stuff using regexes, -### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) -### When doing so, you also need to manually call ynh_store_file_checksum -### -### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/some_config_file" -### ynh_store_file_checksum --file="$final_path/some_config_file" +mkdir -p "/home/$app/.config/UMS" +ynh_add_config --template="UMS.conf.default" --destination="/home/$app/.config/UMS/UMS.conf" +ynh_add_config --template="WEB.conf.default" --destination="/home/$app/.config/UMS/WEB.conf" +ynh_add_config --template="VirtualFolders.conf.default" --destination="/home/$app/.config/UMS/VirtualFolders.conf" +chown -R $app:$app "/home/$app/.config" +chmod -R 700 "/home/$app/.config" #================================================= # GENERIC FINALIZATION @@ -183,7 +143,10 @@ ynh_add_config --template="some_config_file" --destination="$final_path/some_con #================================================= # Set permissions on app files -chown -R root: $final_path +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R root:$app "$final_path" +chown root:$app "$final_path/UMS.sh" #================================================= # SETUP LOGROTATE @@ -198,7 +161,7 @@ ynh_use_logrotate --non-append #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --time --weight=1 -yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" +yunohost service add $app --description="A DLNA, UPnP and HTTP(S) Media Server." --log="/var/log/$app/$app.log" #================================================= # START SYSTEMD SERVICE @@ -210,10 +173,10 @@ ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$ap #================================================= # UPGRADE FAIL2BAN #================================================= -ynh_script_progression --message="Reconfiguring Fail2Ban..." --time --weight=1 +#ynh_script_progression --message="Reconfiguring Fail2Ban..." --time --weight=1 # Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" +#ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" #================================================= # RELOAD NGINX