#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= ynh_print_info "Loading installation settings..." app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get $app domain) port=$(ynh_app_setting_get $app port) db_name=$(ynh_app_setting_get $app db_name) db_user=$db_name final_path=$(ynh_app_setting_get $app final_path) redis_db=$(ynh_app_setting_get $app redis_db) #================================================= # STANDARD REMOVE #================================================= # REMOVE SERVICE FROM ADMIN PANEL #================================================= # Remove a service from the admin panel, added by `yunohost service add` if yunohost service status "$app-server" >/dev/null 2>&1 then echo "Remove $app-server service" yunohost service remove "$app-server" fi if yunohost service status "$app-worker" >/dev/null 2>&1 then echo "Remove $app-worker service" yunohost service remove "$app-worker" fi if yunohost service status "$app-beat" >/dev/null 2>&1 then echo "Remove $app-beat service" yunohost service remove "$app-beat" fi #================================================= # STOP AND REMOVE SERVICE #================================================= ynh_print_info "Stopping and removing the systemd service" ynh_systemd_action --action=stop --service_name=${app}-beat --log_path=systemd --line_match="Stopped Funkwhale" ynh_systemd_action --action=stop --service_name=${app}-server --log_path=systemd --line_match="Stopped Funkwhale" ynh_systemd_action --action=stop --service_name=${app}-worker --log_path=systemd --line_match="Stopped Funkwhale" # Remove the dedicated systemd config ynh_remove_systemd_config "$app-server" ynh_remove_systemd_config "$app-worker" ynh_remove_systemd_config "$app-beat" ynh_secure_remove "/etc/systemd/system/$app.target" #================================================= # REMOVE THE POSTGRESQL DATABASE #================================================= ynh_print_info "Removing the PostgreSQL database" ynh_psql_execute_as_root "\connect $db_name SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db_name';" # Remove a database if it exists, along with the associated user ynh_psql_remove_db --db_name="$db_name" --db_user="$app" #================================================= # REMOVE THE REDIS DATABASE #================================================= ynh_print_info "Removing the Redis database" # Remove a database if it exists, along with the associated user ynh_redis_remove_db "$redis_db" #================================================= # REMOVE DEPENDENCIES #================================================= ynh_print_info "Removing dependencies" # Remove metapackage and its dependencies ynh_remove_app_dependencies #================================================= # REMOVE APP MAIN DIR #================================================= ynh_print_info "Removing app main directory" # Remove the app directory securely ynh_secure_remove "$final_path" ynh_secure_remove "/var/log/$app" #================================================= # REMOVE NGINX CONFIGURATION #================================================= ynh_print_info "Removing nginx web server configuration" # remove domain specific configuration funkwhale_nginx_domain_cleaning # Remove the dedicated nginx config ynh_remove_nginx_config #================================================= # CLOSE A PORT #================================================= if yunohost firewall list | grep -q "\- $port$" then ynh_print_info "Closing port $port" ynh_exec_warn_less yunohost firewall disallow TCP $port fi #================================================= # GENERIC FINALIZATION #================================================= # REMOVE FAIL2BAN CONFIGURATION #================================================= ynh_remove_fail2ban_config #================================================= # REMOVE DEDICATED USER #================================================= ynh_print_info "Removing the dedicated system user" # Delete a system user ynh_system_user_delete "$app" #================================================= # END OF SCRIPT #================================================= ynh_print_info "Removal of $app completed"