From ca85a560ce962505ad417bde5bd73cdc5a1d8187 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Thu, 30 May 2019 17:52:53 +0200 Subject: [PATCH] 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 #=================================================