From a2ea6472cef840da3db46b399f813e95be14cee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Tue, 14 Mar 2023 08:02:58 +0100 Subject: [PATCH] v2 --- conf/UMS.conf.default | 2 +- conf/nginx.conf | 2 +- doc/{DISCLAIMER.md => ADMIN.md} | 0 doc/{DISCLAIMER_fr.md => ADMIN_fr.md} | 0 doc/DESCRIPTION.md | 1 - manifest.toml | 23 ++++-- scripts/_common.sh | 8 -- scripts/backup | 31 ------- scripts/change_url | 85 ------------------- scripts/install | 115 ++------------------------ scripts/remove | 55 ------------ scripts/restore | 77 +---------------- scripts/upgrade | 81 +----------------- tests.toml | 4 + 14 files changed, 33 insertions(+), 451 deletions(-) rename doc/{DISCLAIMER.md => ADMIN.md} (100%) rename doc/{DISCLAIMER_fr.md => ADMIN_fr.md} (100%) create mode 100644 tests.toml diff --git a/conf/UMS.conf.default b/conf/UMS.conf.default index 55c526e..4043bdd 100644 --- a/conf/UMS.conf.default +++ b/conf/UMS.conf.default @@ -1341,7 +1341,7 @@ upnp_enable = # is assigned dynamically. # Example: 7000, which means the web interface is at localhost:7000 # Default: 9001 -web_port =__PORT_WEB__ +web_port =__PORT__ # Web enable # ---------- diff --git a/conf/nginx.conf b/conf/nginx.conf index c0399a3..554dc8d 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -10,7 +10,7 @@ location __PATH__/ { proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; more_set_headers "X-Frame-Options: SAMEORIGIN"; - proxy_pass http://localhost:__PORT_WEB__/; + proxy_pass http://localhost:__PORT__/; proxy_set_header Host $host; diff --git a/doc/DISCLAIMER.md b/doc/ADMIN.md similarity index 100% rename from doc/DISCLAIMER.md rename to doc/ADMIN.md diff --git a/doc/DISCLAIMER_fr.md b/doc/ADMIN_fr.md similarity index 100% rename from doc/DISCLAIMER_fr.md rename to doc/ADMIN_fr.md diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index b33367a..c7d8e81 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1,3 +1,2 @@ Universal Media Server is a DLNA-compliant UPnP Media Server. It is capable of sharing video, audio and images between most modern devices. - The program streams or transcodes many different media formats with little or no configuration. It is powered by FFmpeg, MediaInfo, OpenSubtitles, Crowdin, MEncoder, tsMuxeR, AviSynth, VLC and more, which combine to offer support for a wide range of media formats. \ No newline at end of file diff --git a/manifest.toml b/manifest.toml index 1d3e257..6a06329 100644 --- a/manifest.toml +++ b/manifest.toml @@ -15,18 +15,16 @@ license = "GPL-2.0-or-later" website = "www.universalmediaserver.com" admindoc = "https://github.com/UniversalMediaServer/UniversalMediaServer/wiki" code = "https://github.com/UniversalMediaServer/UniversalMediaServer" -cpe = "???" # FIXME: optional but recommended if relevant, this is meant to contain the Common Platform Enumeration, which is sort of a standard id for applications defined by the NIST. In particular, Yunohost may use this is in the future to easily track CVE (=security reports) related to apps. The CPE may be obtained by searching here: https://nvd.nist.gov/products/cpe/search. For example, for Nextcloud, the CPE is 'cpe:2.3:a:nextcloud:nextcloud' (no need to include the version number) -fund = "???" # FIXME: optional but recommended (or remove if irrelevant / not applicable). This is meant to be an URL where people can financially support this app, especially when its development is based on volunteers and/or financed by its community. YunoHost may later advertise it in the webadmin. [integration] -yunohost = ">= 11.0.9" -architectures = "all" # FIXME: can be replaced by a list of supported archs using the dpkg --print-architecture nomenclature (amd64/i386/armhf/arm64), for example: ["amd64", "i386"] +yunohost = ">= 11.1.15" +architectures = "all" multi_instance = false -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] @@ -70,6 +68,10 @@ ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requiremen i386.url = "https://github.com/UniversalMediaServer/UniversalMediaServer/releases/download/13.2.0/UMS-13.2.0-x86.tgz" i386.sha256 = "91a5c534664441064c772dcace5bcef02edac82d8d3c67155ddd803deabeb52c" + [resources.ports] + main.default = 9001 + end.default = 5001 + rend.exposed = "TCP" [resources.system_user] @@ -77,3 +79,6 @@ ram.runtime = "50M" # FIXME: replace with an **estimate** minimum ram requiremen [resources.permissions] main.url = "/" + + [resources.apt] + packages = "mediainfo dcraw p7zip" diff --git a/scripts/_common.sh b/scripts/_common.sh index 50268d3..027c9d7 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -3,11 +3,3 @@ #================================================= # COMMON VARIABLES #================================================= - -# dependencies used by the app -#REMOVEME? pkg_dependencies="mediainfo dcraw p7zip" - -if [[ "$YNH_ARCH" == "armhf" ]] || [[ "$YNH_ARCH" == "arm64" ]] -then - pkg_dependencies+="openjdk-17-jre" -fi diff --git a/scripts/backup b/scripts/backup index 437363c..e51adb6 100755 --- a/scripts/backup +++ b/scripts/backup @@ -10,30 +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 - -ynh_print_warn --message="This script will only backup the app, no media will be saved" -ynh_print_warn --message="To save your media, please use a backup tool such as borg" - -#================================================= -# 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 #================================================= @@ -51,13 +27,6 @@ ynh_backup --src_path="$install_dir" ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" -#================================================= -# BACKUP FAIL2BAN CONFIGURATION -#================================================= - -#ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf" -#ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" - #================================================= # SPECIFIC BACKUP #================================================= diff --git a/scripts/change_url b/scripts/change_url index e3207a3..55d1a1a 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -10,60 +10,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) -#REMOVEME? port_web=$(ynh_app_setting_get --app=$app --key=port_web) - -#================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP -#================================================= -#REMOVEME? ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=7 - -# 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 #================================================= @@ -80,30 +26,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 -#REMOVEME? domain="$old_domain" -#REMOVEME? path="$new_path" - # Create a dedicated NGINX config -#REMOVEME? ynh_add_nginx_config "port_web" -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 #================================================= @@ -113,13 +35,6 @@ ynh_script_progression --message="Starting a systemd service..." --weight=2 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=2 - -#REMOVEME? #REMOVEME? ynh_systemd_action --service_name=nginx --action=reload - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/install b/scripts/install index ea652f6..145dddc 100755 --- a/scripts/install +++ b/scripts/install @@ -9,84 +9,22 @@ 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 #================================================= -#REMOVEME? domain=$YNH_APP_ARG_DOMAIN -path=/ -#REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC -#REMOVEME? server_name=$YNH_APP_ARG_SERVER_NAME -#REMOVEME? interface=$YNH_APP_ARG_INTERFACE #upstream_version=$YNH_APP_MANIFEST_VERSION upstream_version=$(ynh_app_upstream_version) -#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=/opt/yunohost/$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 - -#REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain -#REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path -#will be used when restoring - -#================================================= -# STANDARD MODIFICATIONS -#================================================= -# FIND AND OPEN A PORT -#================================================= -#REMOVEME? ynh_script_progression --message="Finding an available port..." --weight=1 - -# Find an available port -#port_web is used for the web interface while port_rend is used by video renderer -#REMOVEME? port_web=$(ynh_find_port --port=9001) -#REMOVEME? ynh_app_setting_set --app=$app --key=port_web --value=$port_web -#REMOVEME? port_rend=$(ynh_find_port --port=5001) -#REMOVEME? ynh_app_setting_set --app=$app --key=port_rend --value=$port_rend - -# Open the port -- TO BE CHECKED IF REQUIRED -ynh_script_progression --message="Configuring firewall..." --weight=3 -ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port_rend - #================================================= # INSTALL DEPENDENCIES #================================================= -#REMOVEME? ynh_script_progression --message="Installing dependencies..." --weight=30 +ynh_script_progression --message="Installing dependencies..." --weight=30 -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# CREATE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Configuring system user..." --weight=1 - -# Create a system user -#UMS require a home path for the user as config files are stored in there -#REMOVEME? ynh_system_user_create --username=$app --home_dir=/home/yunohost.app/$app +if [[ "$YNH_ARCH" == "armhf" ]] || [[ "$YNH_ARCH" == "arm64" ]] +then + pkg_dependencies+="openjdk-17-jre" +fi #================================================= #SETTING MULTIMEDIA DIRECTORY @@ -101,11 +39,9 @@ ynh_multimedia_addaccess $app #================================================= ynh_script_progression --message="Setting up source files..." --weight=12 -#REMOVEME? ynh_app_setting_set --app=$app --key=install_dir --value=$install_dir # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" -chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R root:$app "$install_dir" chown root:$app "$install_dir/UMS.sh" @@ -115,8 +51,6 @@ chown root:$app "$install_dir/UMS.sh" #================================================= ynh_script_progression --message="Configuring NGINX web server..." --weight=4 -### `ynh_add_nginx_config` will use the file conf/nginx.conf - # Create a dedicated NGINX config ynh_add_nginx_config "port_web" @@ -170,45 +104,6 @@ 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 FAIL2BAN -#================================================= -#ynh_script_progression --message="Configuring 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" - -#================================================= -# SETUP SSOWAT -#================================================= -#REMOVEME? ynh_script_progression --message="Configuring permissions..." --weight=1 - -# Make app public if necessary -#REMOVEME? if [ $is_public -eq 1 ] -then - # Everyone can access the app. - # The "main" permission is automatically created before the install script. -#REMOVEME? ynh_permission_update --permission="main" --add="visitors" -fi - -### N.B. : the following extra permissions only make sense if your app -### does have for example an admin interface or an api. - -# Only the admin can access the admin panel of the app (if the app has an admin panel) -#REMOVEME? #ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin - -# Everyone can access to the api part -# We don't want to display the tile in the sso so we put --show_tile="false" -# And we don't want that the YunoHost Admin can remove visitors group to this permission, so we put --protected="true" -#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 acb9ebd..78bd1db 100755 --- a/scripts/remove +++ b/scripts/remove @@ -9,18 +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_web=$(ynh_app_setting_get --app=$app --key=port_web) -#REMOVEME? port_rend=$(ynh_app_setting_get --app=$app --key=port_rend) -#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir) - #================================================= # STANDARD REMOVE #================================================= @@ -42,22 +30,6 @@ ynh_script_progression --message="Stopping and removing the systemd service..." # Remove the dedicated systemd config ynh_remove_systemd_config -#================================================= -# REMOVE DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Removing dependencies..." --weight=5 - -# Remove metapackage and its dependencies -#REMOVEME? ynh_remove_app_dependencies - -#================================================= -# REMOVE APP MAIN DIR -#================================================= -#REMOVEME? ynh_script_progression --message="Removing app main directory..." --weight=2 - -# Remove the app directory securely -#REMOVEME? ynh_secure_remove --file="$install_dir" - #================================================= # REMOVE NGINX CONFIGURATION #================================================= @@ -74,22 +46,6 @@ ynh_script_progression --message="Removing logrotate configuration..." --weight= # Remove the app-specific logrotate config ynh_remove_logrotate -#================================================= -# CLOSE PORTS -#================================================= - -if yunohost firewall list | grep -q "\- $port_web$" -then - ynh_script_progression --message="Closing port $port_web..." --weight=2 - ynh_exec_warn_less yunohost firewall disallow TCP $port_web -fi - -if yunohost firewall list | grep -q "\- $port_rend$" -then - ynh_script_progression --message="Closing port $port_rend..." --weight=2 - ynh_exec_warn_less yunohost firewall disallow TCP $port_rend -fi - #================================================= # SPECIFIC REMOVE #================================================= @@ -99,17 +55,6 @@ fi # 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 -ynh_secure_remove --file="/home/yunohost.app/$app" - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/restore b/scripts/restore index 1668613..514bac1 100755 --- a/scripts/restore +++ b/scripts/restore @@ -10,38 +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) -#REMOVEME? port_web=$(ynh_app_setting_get --app=$app --key=port_web) -#REMOVEME? port_rend=$(ynh_app_setting_get --app=$app --key=port_rend) - -#================================================= -# 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 #================================================= @@ -57,18 +25,9 @@ ynh_script_progression --message="Restoring the app main directory..." --weight= ynh_restore_file --origin_path="$install_dir" -# Open the port -- TO BE CHECKED IF REQUIRED -ynh_script_progression --message="Configuring firewall..." --weight=3 -ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port_rend - -#================================================= -# RECREATE THE DEDICATED USER -#================================================= -#REMOVEME? ynh_script_progression --message="Recreating the dedicated system user..." --weight=3 - -# Create the dedicated user (if not existing) -#UMS require a home path for the user as config files are stored in there -#REMOVEME? ynh_system_user_create --username=$app --home_dir=/home/yunohost.app/$app +chmod -R o-rwx "$install_dir" +chown -R root:$app "$install_dir" +chown root:$app "$install_dir/UMS.sh" #================================================= #SETTING MULTIMEDIA DIRECTORY @@ -77,35 +36,6 @@ ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port_rend ynh_multimedia_build_main_dir ynh_multimedia_addaccess $app -#================================================= -# RESTORE USER RIGHTS -#================================================= - -# Restore permissions on app files -chmod 750 "$install_dir" -chmod -R o-rwx "$install_dir" -chown -R root:$app "$install_dir" -chown root:$app "$install_dir/UMS.sh" - -#================================================= -# RESTORE FAIL2BAN CONFIGURATION -#================================================= -#ynh_script_progression --message="Restoring the Fail2Ban configuration..." --time --weight=1 - -#ynh_restore_file "/etc/fail2ban/jail.d/$app.conf" -#ynh_restore_file "/etc/fail2ban/filter.d/$app.conf" -#ynh_systemd_action --action=restart --service_name=fail2ban - -#================================================= -# SPECIFIC RESTORATION -#================================================= -# REINSTALL DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..." --weight=15 - -# Define and install dependencies -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - #================================================= # RESTORE SYSTEMD #================================================= @@ -124,6 +54,7 @@ yunohost service add $app --description="A DLNA, UPnP and HTTP(S) Media Server." #================================================= # RESTORE VARIOUS FILES #================================================= + mkdir -p /var/log/$app ynh_restore_file --origin_path="/home/yunohost.app/$app/" chown -R $app:$app "/home/yunohost.app/$app/.config" diff --git a/scripts/upgrade b/scripts/upgrade index e3068d6..c320df4 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -12,15 +12,7 @@ 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_web=$(ynh_app_setting_get --app=$app --key=port_web) -#REMOVEME? port_rend=$(ynh_app_setting_get --app=$app --key=port_rend) upstream_version=$(ynh_app_upstream_version) #================================================= @@ -29,20 +21,6 @@ upstream_version=$(ynh_app_upstream_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=10 - -# 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 - #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= @@ -90,6 +68,10 @@ then ynh_setup_source --dest_dir="$install_dir" fi +chmod -R o-rwx "$install_dir" +chown -R root:$app "$install_dir" +chown root:$app "$install_dir/UMS.sh" + #================================================= # NGINX CONFIGURATION #================================================= @@ -98,34 +80,6 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." - # Create a dedicated NGINX config ynh_add_nginx_config "port_web" -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -#REMOVEME? ynh_script_progression --message="Upgrading dependencies..." --weight=4 - -#REMOVEME? ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# 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=/home/yunohost.app/$app - -#================================================= -# SPECIFIC UPGRADE -#================================================= -# ... -#================================================= - -#Close unwanted open port in firewall -if yunohost firewall list | grep -q "\- $port_web$" -then - ynh_script_progression --message="Closing port $port_web as it shouldn't be open..." - yunohost firewall disallow TCP $port_web 2>&1 -fi - #================================================= # SETUP SYSTEMD #================================================= @@ -134,18 +88,6 @@ ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 # Create a dedicated systemd config ynh_add_systemd_config -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions on app files -chmod 750 "$install_dir" -chmod -R o-rwx "$install_dir" -chown -R root:$app "$install_dir" -chown root:$app "$install_dir/UMS.sh" - #================================================= # SETUP LOGROTATE #================================================= @@ -168,21 +110,6 @@ ynh_script_progression --message="Starting a systemd service..." --weight=2 ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" -#================================================= -# UPGRADE FAIL2BAN -#================================================= -#ynh_script_progression --message="Reconfiguring Fail2Ban..." --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" - -#================================================= -# 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..dba2938 --- /dev/null +++ b/tests.toml @@ -0,0 +1,4 @@ +test_format = 1.0 + +[default] +