#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers #================================================= # MANAGE SCRIPT FAILURE #================================================= 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 ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get $app domain) path_url=$(ynh_app_setting_get $app path) final_path=$(ynh_app_setting_get $app final_path) #db_name=$(ynh_app_setting_get $app db_name) # Custom values out of the manifest service_config=$(ynh_app_setting_get $app service_config) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= ynh_webpath_available $domain $path_url \ || ynh_die "Path not available: ${domain}${path_url}" test ! -d $final_path \ || ynh_die "There is already a directory: $final_path " #FIXME No need for this step in restore ?? # See https://github.com/YunoHost-Apps/webmin_ynh/commit/589f730a32f33fd9244bb32804dba7651b03abe4#diff-ad962c6fd65b725b71aa46c8a715127f #================================================= # STANDARD MODIFICATIONS #================================================= # FIND AND OPEN A PORT #================================================= # Find a free port port=$(ynh_find_port 8095) # Open this port # FIXME Do NOT allow access from internet direcly. Users will have to go through # Nginx that acts as a reverse proxy for Airsonic #yunohost firewall allow --no-upnp TCP $port 2>&1 ynh_app_setting_set $app port $port #================================================= # STANDARD RESTORATION STEPS #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # RESTORE THE APP MAIN DIR #================================================= ynh_restore_file "$final_path" #================================================= # RESTORE THE MYSQL DATABASE #================================================= #db_pwd=$(ynh_app_setting_get $app mysqlpwd) #ynh_mysql_setup_db $db_name $db_name $db_pwd #ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql #================================================= # RECREATE THE DEDICATED USER #================================================= # Create the dedicated user (if not existing) ynh_system_user_create $app #================================================= # RESTORE USER RIGHTS #================================================= # Restore permissions on app files chown -R app: $final_path #================================================= # SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= # Define and install dependencies ynh_install_app_dependencies openjdk-8-jre ffmpeg #================================================= # ADVERTISE SERVICE IN ADMIN PANEL #================================================= yunohost service add $app --description "Airsonic daemon" --log "$final_path/airsonic.log" #================================================= # RESTORE SYSTEMD #================================================= ynh_restore_file "/etc/systemd/system/$app.service" systemctl enable $app.service # Restore the systemd service configuration ynh_restore_file "$service_config" #================================================= # RESTORE THE CRON FILE #================================================= #ynh_restore_file "/etc/cron.d/$app" #================================================= # RESTORE THE LOGROTATE CONFIGURATION #================================================= ynh_restore_file "/etc/logrotate.d/$app" #================================================= # GENERIC FINALIZATION #================================================= # RELOAD SERVICES #================================================= systemctl reload nginx # Run the app systemctl start $app.service