diff --git a/conf/config.xml b/conf/config.xml
index 1dc6255..6cd89f1 100644
--- a/conf/config.xml
+++ b/conf/config.xml
@@ -9,4 +9,4 @@
None
BuiltIn
main
-
+
\ No newline at end of file
diff --git a/conf/nginx.conf b/conf/nginx.conf
index b374ab5..7e4fce5 100644
--- a/conf/nginx.conf
+++ b/conf/nginx.conf
@@ -9,7 +9,7 @@ location __PATH__ {
proxy_no_cache $cookie_session;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
- # Allow the Radarr API
+ # Allow the Lidarr API
location __PATH__/api {
auth_request off;
proxy_pass http://127.0.0.1:__PORT____PATH__/api;
diff --git a/conf/systemd.service b/conf/systemd.service
index f12cc8b..28eaa8d 100644
--- a/conf/systemd.service
+++ b/conf/systemd.service
@@ -7,7 +7,7 @@ Type=simple
User=__APP__
Group=__APP__
WorkingDirectory=__FINALPATH__/
-ExecStart=__FINALPATH__/Lidarr -nobrowser -data=__FINALPATH__/.data
+ExecStart=__FINALPATH__/Lidarr -nobrowser -data=__DATA_PATH__
TimeoutStopSec=20
KillMode=process
diff --git a/scripts/backup b/scripts/backup
index bfc28b4..fab5f78 100755
--- a/scripts/backup
+++ b/scripts/backup
@@ -29,6 +29,7 @@ ynh_print_info --message="Loading installation settings..."
app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
+data_path=$(ynh_app_setting_get --app=$app --key=data_path)
domain=$(ynh_app_setting_get --app=$app --key=domain)
#=================================================
@@ -42,6 +43,12 @@ ynh_print_info --message="Declaring files to be backed up..."
ynh_backup --src_path="$final_path"
+#=================================================
+# BACKUP THE APP DATA DIR
+#=================================================
+
+ynh_backup --src_path="$data_path"
+
#=================================================
# BACKUP THE NGINX CONFIGURATION
#=================================================
diff --git a/scripts/change_url b/scripts/change_url
index 01e8c06..135d152 100755
--- a/scripts/change_url
+++ b/scripts/change_url
@@ -28,6 +28,7 @@ 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)
+data_path=$(ynh_app_setting_get --app=$app --key=data_path)
port=$(ynh_app_setting_get --app=$app --key=port)
api_key=$(ynh_app_setting_get --app=$app --key=api_key)
@@ -113,11 +114,11 @@ fi
# UPDATE CONFIGURATION FILE
#=================================================
-ynh_add_config --template="../conf/config.xml" --destination="$final_path/.data/config.xml"
+ynh_add_config --template="../conf/config.xml" --destination="$data_path/config.xml"
-chmod 750 "$final_path/.data/config.xml"
-chmod o-rwx "$final_path/.data/config.xml"
-chown $app "$final_path/.data/config.xml"
+chmod 750 "$data_path/config.xml"
+chmod o-rwx "$data_path/config.xml"
+chown $app "$data_path/config.xml"
#=================================================
# GENERIC FINALISATION
@@ -126,7 +127,7 @@ chown $app "$final_path/.data/config.xml"
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=1
-ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Starting Web Server"
+ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Application started"
#=================================================
# RELOAD NGINX
diff --git a/scripts/install b/scripts/install
index 3bf2939..03a9592 100755
--- a/scripts/install
+++ b/scripts/install
@@ -39,6 +39,9 @@ ynh_script_progression --message="Validating installation parameters..." --weigh
final_path=/opt/yunohost/$app
test ! -e "$final_path" || ynh_die --message="This path already contains a folder"
+data_path=/home/yunohost.app/$app
+test ! -e "$data_path" || ynh_die --message="Data directory ($data_path) already exists"
+
# Register (book) web path
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
@@ -86,7 +89,8 @@ 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"
-mkdir -p "$final_path/.data/logs"
+ynh_app_setting_set --app=$app --key=data_path --value=$data_path
+mkdir -p "$data_path/logs"
#=================================================
# NGINX CONFIGURATION
@@ -114,7 +118,7 @@ ynh_script_progression --message="Configuring Lidarr..." --weight=2
api_key=$(ynh_string_random --length=32)
ynh_app_setting_set --app=$app --key=api_key --value=$api_key
-ynh_add_config --template="../conf/config.xml" --destination="$final_path/.data/config.xml"
+ynh_add_config --template="../conf/config.xml" --destination="$data_path/config.xml"
#=================================================
# SETUP FILE PERMISSIONS
@@ -125,6 +129,13 @@ chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app: "$final_path"
+chmod 750 "$data_path"
+chmod -R o-rwx "$data_path"
+chown -R $app: "$data_path"
+
+chmod 400 "$data_path/config.xml"
+chown $app:$app "$data_path/config.xml"
+
#=================================================
# YUNOHOST MULTIMEDIA INTEGRATION
#=================================================
@@ -144,14 +155,14 @@ ynh_script_progression --message="Configuring log rotation..." --weight=1
# Use logrotate to manage application logfile(s)
ynh_use_logrotate
-ynh_use_logrotate --logfile="$final_path/.data/logs"
+ynh_use_logrotate --logfile="$data_path/logs"
#=================================================
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
-yunohost service add $app --description="Lidarr daemon" --log="$final_path/.data/logs/lidarr.txt"
+yunohost service add $app --description="Lidarr daemon" --log="$data_path/logs/lidarr.txt"
#=================================================
# START SYSTEMD SERVICE
@@ -159,7 +170,7 @@ yunohost service add $app --description="Lidarr daemon" --log="$final_path/.data
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="Starting Web Server"
+ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Application started"
#=================================================
# SETUP SSOWAT
diff --git a/scripts/remove b/scripts/remove
index ee51944..b62765d 100755
--- a/scripts/remove
+++ b/scripts/remove
@@ -19,6 +19,7 @@ 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)
+data_path=$(ynh_app_setting_get --app=$app --key=data_path)
#=================================================
# STANDARD REMOVE
@@ -57,6 +58,14 @@ ynh_script_progression --message="Removing app main directory..." --weight=1
# Remove the app directory securely
ynh_secure_remove --file="$final_path"
+#=================================================
+# REMOVE APP DATA DIR
+#=================================================
+ynh_script_progression --message="Removing app data directory..." --weight=1
+
+# Remove the app directory securely
+ynh_secure_remove --file="$data_path"
+
#=================================================
# REMOVE NGINX CONFIGURATION
#=================================================
diff --git a/scripts/restore b/scripts/restore
index 2dc6ad6..90d02bc 100755
--- a/scripts/restore
+++ b/scripts/restore
@@ -31,6 +31,7 @@ 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)
+data_path=$(ynh_app_setting_get --app=$app --key=data_path)
#=================================================
# CHECK IF THE APP CAN BE RESTORED
@@ -39,6 +40,9 @@ ynh_script_progression --message="Validating restoration parameters..." --weight
test ! -d $final_path || ynh_die --message="There is already a directory: $final_path "
+
+test ! -d $data_path || ynh_die --message="There is already a directory: $data_path "
+
#=================================================
# STANDARD RESTORATION STEPS
#=================================================
@@ -67,6 +71,20 @@ chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app: "$final_path"
+#=================================================
+# RESTORE THE APP DATA DIR
+#=================================================
+ynh_script_progression --message="Restoring the app data directory..." --weight=2
+
+ynh_restore_file --origin_path="$data_path"
+
+chmod 750 "$data_path"
+chmod -R o-rwx "$data_path"
+chown -R $app: "$data_path"
+
+chmod 400 "$data_path/config.xml"
+chown $app:$app "$data_path/config.xml"
+
#=================================================
# YUNOHOST MULTIMEDIA INTEGRATION
#=================================================
@@ -100,14 +118,14 @@ systemctl enable $app.service --quiet
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
-yunohost service add $app --description="Lidarr daemon" --log="$final_path/.data/logs/lidarr.txt"
+yunohost service add $app --description="Lidarr daemon" --log="$data_path/logs/lidarr.txt"
#=================================================
# START SYSTEMD SERVICE
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=2
-ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Starting Web Server"
+ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Application started"
#=================================================
# RESTORE THE LOGROTATE CONFIGURATION
diff --git a/scripts/upgrade b/scripts/upgrade
index e80186c..f31fab0 100755
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -21,6 +21,8 @@ path_url=$(ynh_app_setting_get --app=$app --key=path)
admin=$(ynh_app_setting_get --app=$app --key=admin)
port=$(ynh_app_setting_get --app=$app --key=port)
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
+data_path=$(ynh_app_setting_get --app=$app --key=data_path)
+api_key=$(ynh_app_setting_get --app=$app --key=api_key)
architecture=$YNH_ARCH
#=================================================
@@ -62,6 +64,13 @@ if ! ynh_permission_exists --permission="api"; then
ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true"
fi
+# Move data directory if needed
+if [ -z "$data_path" ]; then
+ data_path=/home/yunohost.app/$app
+ ynh_app_setting_set --app=$app --key=data_path --value=$data_path
+ mv "$final_path/.data" "/home/yunohost.app/$app"
+fi
+
#=================================================
# CREATE DEDICATED USER
#=================================================
@@ -82,11 +91,15 @@ then
ynh_setup_source --dest_dir="$final_path" --source_id="$architecture"
fi
-mkdir -p "$final_path/.data/logs"
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app: "$final_path"
+mkdir -p "$data_path/logs"
+chmod 750 "$data_path"
+chmod -R o-rwx "$data_path"
+chown -R $app: "$data_path"
+
#=================================================
# NGINX CONFIGURATION
#=================================================
@@ -112,6 +125,16 @@ ynh_script_progression --message="Upgrading systemd configuration..." --weight=1
# Create a dedicated systemd config
ynh_add_systemd_config
+#=================================================
+# UPDATE A CONFIG FILE
+#=================================================
+ynh_script_progression --message="Updating the configuration file.." --weight=1
+
+ynh_add_config --template="../conf/config.xml" --destination="$data_path/config.xml"
+
+chmod 400 "$data_path/config.xml"
+chown $app:$app "$data_path/config.xml"
+
#=================================================
# GENERIC FINALIZATION
#=================================================
@@ -121,21 +144,21 @@ ynh_script_progression --message="Upgrading logrotate configuration..." --weight
# Use logrotate to manage app-specific logfile(s)
ynh_use_logrotate --non-append
-ynh_use_logrotate --non-append --logfile="$final_path/.data/logs"
+ynh_use_logrotate --non-append --logfile="$data_path/logs"
#=================================================
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
-yunohost service add $app --description="Lidarr daemon" --log="$final_path/.data/logs/lidarr.txt"
+yunohost service add $app --description="Lidarr daemon" --log="$data_path/logs/lidarr.txt"
#=================================================
# START SYSTEMD SERVICE
#=================================================
ynh_script_progression --message="Starting a systemd service..." --weight=2
-ynh_systemd_action --service_name=$app --action="start" --log_path="systemd"
+ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Application started"
#=================================================
# RELOAD NGINX