94 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| #=================================================
 | |
| # IMPORT GENERIC HELPERS
 | |
| #=================================================
 | |
| 
 | |
| # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
 | |
| source ../settings/scripts/_common.sh
 | |
| source /usr/share/yunohost/helpers
 | |
| 
 | |
| #=================================================
 | |
| # RESTORE THE APP MAIN DIR
 | |
| #=================================================
 | |
| ynh_script_progression "Restoring the app main directory..."
 | |
| 
 | |
| ynh_restore "$install_dir"
 | |
| 
 | |
| ### $install_dir will automatically be initialized with some decent
 | |
| ### permissions by default... however, you may need to recursively reapply
 | |
| ### ownership to all files such as after the ynh_setup_source step
 | |
| chown -R "$app:www-data" "$install_dir"
 | |
| 
 | |
| #=================================================
 | |
| # RESTORE THE DATA DIRECTORY
 | |
| #=================================================
 | |
| ynh_script_progression "Restoring the data directory..."
 | |
| 
 | |
| ynh_restore "$data_dir"
 | |
| 
 | |
| ### (Same as for install dir)
 | |
| chown -R "$app:www-data" "$data_dir"
 | |
| 
 | |
| #=================================================
 | |
| # RESTORE THE MYSQL DATABASE
 | |
| #=================================================
 | |
| ynh_script_progression "Restoring the MySQL database..."
 | |
| 
 | |
| ynh_mysql_db_shell < ./db.sql
 | |
| 
 | |
| #=================================================
 | |
| # RESTORE SYSTEM CONFIGURATIONS
 | |
| #=================================================
 | |
| ynh_script_progression "Restoring system configurations related to $app..."
 | |
| 
 | |
| ### This should be a symetric version of what happens in the install script
 | |
| 
 | |
| ynh_restore "/etc/php/$php_version/fpm/pool.d/$app.conf"
 | |
| 
 | |
| ynh_restore "/etc/nginx/conf.d/$domain.d/$app.conf"
 | |
| 
 | |
| ynh_restore "/etc/systemd/system/$app.service"
 | |
| systemctl enable "$app.service" --quiet
 | |
| 
 | |
| yunohost service add "$app" --description="A short description of the app" --log="/var/log/$app/$app.log"
 | |
| 
 | |
| ynh_restore "/etc/logrotate.d/$app"
 | |
| 
 | |
| ynh_restore "/etc/fail2ban/jail.d/$app.conf"
 | |
| ynh_restore "/etc/fail2ban/filter.d/$app.conf"
 | |
| ynh_systemctl --action=restart --service=fail2ban
 | |
| 
 | |
| #=================================================
 | |
| # RESTORE VARIOUS FILES
 | |
| #=================================================
 | |
| 
 | |
| ynh_restore "/etc/cron.d/$app"
 | |
| ynh_restore "/etc/$app/"
 | |
| 
 | |
| ### For apps with huge logs, you might want to not backup logs every time:
 | |
| ### The mkdir call is just here in case the log directory was not backed up.
 | |
| ### mkdir -p "/var/log/$app"
 | |
| ### chown $app:www-data "/var/log/$app"
 | |
| ### ynh_restore "/var/log/$app/" || true
 | |
| ###
 | |
| ### For other apps, the simple way is better:
 | |
| ynh_restore "/var/log/$app/"
 | |
| 
 | |
| #=================================================
 | |
| # RELOAD NGINX AND PHP-FPM OR THE APP SERVICE
 | |
| #=================================================
 | |
| ynh_script_progression "Reloading NGINX web server and $app's service..."
 | |
| 
 | |
| ### Typically you only have either $app or PHP-FPM but not both at the same time...
 | |
| ynh_systemctl --service="$app" --action="start"
 | |
| 
 | |
| ynh_systemctl --service="php$php_version-fpm" --action=reload
 | |
| 
 | |
| ynh_systemctl --service=nginx --action=reload
 | |
| 
 | |
| #=================================================
 | |
| # END OF SCRIPT
 | |
| #=================================================
 | |
| 
 | |
| ynh_script_progression "Restoration completed for $app"
 |