From ca85a560ce962505ad417bde5bd73cdc5a1d8187 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 30 May 2019 17:52:53 +0200 Subject: [PATCH 1/5] add horizon-service --- conf/horizon.service | 14 ++++++++++++++ manifest.json | 2 +- scripts/backup | 23 +++++++++++++++++++++++ scripts/install | 22 ++++++++++++++++++++++ scripts/remove | 19 +++++++++++++++++++ scripts/restore | 21 +++++++++++++++++++++ scripts/upgrade | 29 +++++++++++++++++++++++++++++ 7 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 conf/horizon.service diff --git a/conf/horizon.service b/conf/horizon.service new file mode 100644 index 00000000..bd630724 --- /dev/null +++ b/conf/horizon.service @@ -0,0 +1,14 @@ +[Unit] +Description=__APP__ Horizon Service +After=network.target + +[Service] +Type=simple +User=__APP__ +Group=__APP__ +WorkingDirectory=__FINALPATH__/ +ExecStart=/usr/bin/php7.2 __FINALPATH__/artisan horizon >> /var/log/__APP__/__APP__-horizon.log 2>&1 +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/manifest.json b/manifest.json index 866af077..96c2c074 100644 --- a/manifest.json +++ b/manifest.json @@ -5,7 +5,7 @@ "description": { "en": "ActivityPub Federated Image Sharing" }, - "version": "0.9.0~ynh2", + "version": "0.9.0~ynh3", "url": "https://pixelfed.org/", "license": "AGPL-3.0-or-later", "maintainer": [ diff --git a/scripts/backup b/scripts/backup index 3d76e413..86588a8e 100644 --- a/scripts/backup +++ b/scripts/backup @@ -30,6 +30,13 @@ db_name=$(ynh_app_setting_get --app="$app" --key=db_name) #================================================= # STANDARD BACKUP STEPS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_script_progression --message="Stopping a systemd service..." --time --weight=1 + +ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # BACKUP THE APP MAIN DIR #================================================= @@ -58,6 +65,22 @@ ynh_print_info --message="Backing up the PostgreSQL database..." ynh_psql_dump_db --database="$db_name" > db.sql +#================================================= +# SPECIFIC BACKUP +#================================================= +# BACKUP SYSTEMD +#================================================= +ynh_print_info --message="Backing up systemd configuration..." + +ynh_backup --src_path="/etc/systemd/system/${app}-horizon.service" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/install b/scripts/install index 1bd26616..0bf73e95 100644 --- a/scripts/install +++ b/scripts/install @@ -122,6 +122,14 @@ ynh_install_composer --phpversion="7.2" --workdir="$final_path" #================================================= # SPECIFIC SETUP +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_print_info --message="Configuring a systemd service..." + +# Create a dedicated systemd config +ynh_add_systemd_config --service="${app}-horizon" --template=horizon + #================================================= # MODIFY A CONFIG FILE #================================================= @@ -169,6 +177,20 @@ popd chown -R root: "$final_path" chown -R "$app": "$final_path/storage/" +#================================================= +# ADVERTISE SERVICE IN ADMIN PANEL +#================================================= + +yunohost service add "${app}-horizon" --description "${app}-horizon daemon for $app" --log "/var/log/$app/${app}-horizon.log" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +# Start a systemd service +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # SETUP SSOWAT #================================================= diff --git a/scripts/remove b/scripts/remove index 59a20ab1..c2d055b8 100644 --- a/scripts/remove +++ b/scripts/remove @@ -23,6 +23,25 @@ final_path=$(ynh_app_setting_get --app="$app" --key=final_path) #================================================= # STANDARD REMOVE +#================================================= +# REMOVE SERVICE FROM ADMIN PANEL +#================================================= + +# Remove a service from the admin panel, added by `yunohost service add` +if ynh_exec_warn_less yunohost service status ${app}-horizon >/dev/null +then + ynh_print_info --message="Removing ${app}-horizon service..." + yunohost service remove "${app}-horizon" +fi + +#================================================= +# STOP AND REMOVE SERVICE +#================================================= +ynh_print_info --message="Stopping and removing the systemd service..." + +# Remove the dedicated systemd config +ynh_remove_systemd_config --service="${app}-horizon" + #================================================= # REMOVE THE POSTGRESQL DATABASE #================================================= diff --git a/scripts/restore b/scripts/restore index d6d993c2..c0d739aa 100644 --- a/scripts/restore +++ b/scripts/restore @@ -103,6 +103,27 @@ ynh_psql_test_if_first_run ynh_psql_setup_db --db_user="$db_user" --db_name="$db_name" --db_pwd="$db_pwd" ynh_psql_execute_file_as_root --file="./db.sql" --database="$db_name" +#================================================= +# RESTORE SYSTEMD +#================================================= +ynh_print_info --message="Restoring the systemd configuration..." + +ynh_restore_file --origin_path="/etc/systemd/system/${app}-horizon.service" +systemctl enable ${app}-horizon.service + +#================================================= +# ADVERTISE SERVICE IN ADMIN PANEL +#================================================= + +yunohost service add "${app}-horizon" --log "/var/log/$app/${app}-horizon.log" + +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index c8c33017..34899eca 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -81,6 +81,13 @@ ynh_abort_if_errors #================================================= # STANDARD UPGRADE STEPS +#================================================= +# STOP SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Stopping a systemd service..." + +ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -180,6 +187,20 @@ ynh_backup_if_checksum_is_different --file="$config" # Recalculate and store the checksum of the file for the next upgrade. ynh_store_file_checksum --file="$config" +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_print_info --message="Upgrading systemd configuration..." + +# Create a dedicated systemd config +ynh_add_systemd_config --service="${app}-horizon" --template=horizon + +#================================================= +# ADVERTISE SERVICE IN ADMIN PANEL +#================================================= + +yunohost service add "${app}-horizon" --description "${app}-horizon daemon for $app" --log "/var/log/$app/${app}-horizon.log" + #================================================= # GENERIC FINALIZATION #================================================= @@ -201,6 +222,14 @@ then ynh_app_setting_set --app="$app" --key=unprotected_uris --value="/" fi +#================================================= +# START SYSTEMD SERVICE +#================================================= +ynh_print_info --message="Starting a systemd service..." + +# Start a systemd service +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" + #================================================= # RELOAD NGINX #================================================= From ce6d5f0f7b9a9b132697d372bd74341ddfcfaa20 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 30 May 2019 18:06:38 +0200 Subject: [PATCH 2/5] fix ynh_script_progression --- scripts/backup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/backup b/scripts/backup index 86588a8e..e01ad177 100644 --- a/scripts/backup +++ b/scripts/backup @@ -33,7 +33,7 @@ db_name=$(ynh_app_setting_get --app="$app" --key=db_name) #================================================= # STOP SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Stopping a systemd service..." --time --weight=1 +ynh_print_info --message="Stopping a systemd service..." ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path="/var/log/$app/${app}-horizon.log" From f275c56c44e4264b06c6e20be8596cd305aa54b9 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 30 May 2019 18:07:50 +0200 Subject: [PATCH 3/5] Update upgrade --- scripts/upgrade | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/upgrade b/scripts/upgrade index 34899eca..ab3a29b7 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -227,7 +227,6 @@ fi #================================================= ynh_print_info --message="Starting a systemd service..." -# Start a systemd service ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" #================================================= From 9678133a6eaa14ceb4191647f50fab11009b149b Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 31 May 2019 17:03:53 +0200 Subject: [PATCH 4/5] fix services --- scripts/install | 2 +- scripts/upgrade | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/install b/scripts/install index 0bf73e95..0e6d31d5 100644 --- a/scripts/install +++ b/scripts/install @@ -128,7 +128,7 @@ ynh_install_composer --phpversion="7.2" --workdir="$final_path" ynh_print_info --message="Configuring a systemd service..." # Create a dedicated systemd config -ynh_add_systemd_config --service="${app}-horizon" --template=horizon +ynh_add_systemd_config --service="${app}-horizon" --template=horizon.service #================================================= # MODIFY A CONFIG FILE diff --git a/scripts/upgrade b/scripts/upgrade index ab3a29b7..9ca2a713 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -193,7 +193,7 @@ ynh_store_file_checksum --file="$config" ynh_print_info --message="Upgrading systemd configuration..." # Create a dedicated systemd config -ynh_add_systemd_config --service="${app}-horizon" --template=horizon +ynh_add_systemd_config --service="${app}-horizon" --template=horizon.service #================================================= # ADVERTISE SERVICE IN ADMIN PANEL From 18cb5fe0ea4f971f21e4cdedd1db0b0ed573aae2 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Fri, 31 May 2019 18:37:48 +0200 Subject: [PATCH 5/5] fix service --- conf/horizon.service | 2 +- scripts/backup | 4 ++-- scripts/install | 2 +- scripts/restore | 2 +- scripts/upgrade | 9 +++++++-- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/conf/horizon.service b/conf/horizon.service index bd630724..61da93a4 100644 --- a/conf/horizon.service +++ b/conf/horizon.service @@ -7,7 +7,7 @@ Type=simple User=__APP__ Group=__APP__ WorkingDirectory=__FINALPATH__/ -ExecStart=/usr/bin/php7.2 __FINALPATH__/artisan horizon >> /var/log/__APP__/__APP__-horizon.log 2>&1 +ExecStart=/usr/bin/php7.2 __FINALPATH__/artisan horizon Restart=on-failure [Install] diff --git a/scripts/backup b/scripts/backup index e01ad177..e2e62033 100644 --- a/scripts/backup +++ b/scripts/backup @@ -35,7 +35,7 @@ db_name=$(ynh_app_setting_get --app="$app" --key=db_name) #================================================= ynh_print_info --message="Stopping a systemd service..." -ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path=systemd #================================================= # BACKUP THE APP MAIN DIR @@ -79,7 +79,7 @@ ynh_backup --src_path="/etc/systemd/system/${app}-horizon.service" #================================================= ynh_print_info --message="Starting a systemd service..." -ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path=systemd #================================================= # END OF SCRIPT diff --git a/scripts/install b/scripts/install index 0e6d31d5..8a234fa2 100644 --- a/scripts/install +++ b/scripts/install @@ -189,7 +189,7 @@ yunohost service add "${app}-horizon" --description "${app}-horizon daemon for $ ynh_print_info --message="Starting a systemd service..." # Start a systemd service -ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path=systemd #================================================= # SETUP SSOWAT diff --git a/scripts/restore b/scripts/restore index c0d739aa..87f941ae 100644 --- a/scripts/restore +++ b/scripts/restore @@ -122,7 +122,7 @@ yunohost service add "${app}-horizon" --log "/var/log/$app/${app}-horizon.log" #================================================= ynh_print_info --message="Starting a systemd service..." -ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path=systemd #================================================= # GENERIC FINALIZATION diff --git a/scripts/upgrade b/scripts/upgrade index 9ca2a713..2cd21207 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -65,6 +65,10 @@ if [ -z "$app_key" ]; then ynh_app_setting_set --app="$app" --key=app_key --value="$app_key" fi +if dpkg --compare-versions "0.9.0~ynh3" gt "$(ynh_read_manifest --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json" --manifest_key="version" || echo 1.0)" ; then + ynh_add_systemd_config --service="${app}-horizon" --template=horizon.service +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -73,6 +77,7 @@ ynh_print_info --message="Backing up the app before upgrading (may take a while) # Backup the current version of the app ynh_backup_before_upgrade ynh_clean_setup () { + read -p "key" # restore it if the upgrade fails ynh_restore_upgradebackup } @@ -86,7 +91,7 @@ ynh_abort_if_errors #================================================= ynh_print_info --message="Stopping a systemd service..." -ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="stop" --log_path=systemd #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE @@ -227,7 +232,7 @@ fi #================================================= ynh_print_info --message="Starting a systemd service..." -ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path="/var/log/$app/${app}-horizon.log" +ynh_systemd_action --service_name="${app}-horizon" --action="start" --log_path=systemd #================================================= # RELOAD NGINX