diff --git a/scripts/backup b/scripts/backup new file mode 100644 index 0000000..c2b8361 --- /dev/null +++ b/scripts/backup @@ -0,0 +1,29 @@ +#!/bin/bash + +# The parameter $1 is the backup directory location dedicated to the app +backup_dir=$1 + +# The parameter $2 is theid of the app instance +app=$2 + +# Source app helpers +source /usr/share/yunohost/helpers + +domain=$(ynh_app_setting_get $app domain) +final_path=$(ynh_app_setting_get $app final_path) + +# Copy the app files +sudo mkdir -p ${backup_dir}/var/www +sudo cp -a $final_path "${backup_dir}/var/www/$app" + +# Copy the conf files +sudo mkdir -p "${backup_dir}/conf" +sudo cp -a /etc/nginx/conf.d/$domain.d/$app.conf "${backup_dir}/conf/nginx.conf" + +# Copy dedicated php-fpm process to backup folder +sudo cp -a /etc/php5/fpm/pool.d/$app.conf "${backup_dir}/conf/php-fpm.conf" +sudo cp -a /etc/php5/fpm/conf.d/20-$app.ini "${backup_dir}/conf/php-fpm.ini" + +# Backup db +root_pwd=$(sudo cat /etc/yunohost/mysql) +sudo su -c "mysqldump -u root -p$root_pwd --no-create-db $app > ${backup_dir}/db.sql" diff --git a/scripts/restore b/scripts/restore new file mode 100644 index 0000000..c08116e --- /dev/null +++ b/scripts/restore @@ -0,0 +1,60 @@ +#!/bin/bash +# This restore script is adapted to Yunohost >=2.4 + +# The parameter $1 is the backup directory location dedicated to the app +backup_dir=$1 + +# The parameter $2 is the id of the app instance ex: ynhexample__2 +app=$2 + +# Source app helpers +source /usr/share/yunohost/helpers + +# Get old parameter of the app +domain=$(ynh_app_setting_get $app domain) +path=$(ynh_app_setting_get $app path) +is_public=$(ynh_app_setting_get $app is_public) +final_path=$(ynh_app_setting_get $app final_path) + +if [ -d $final_path ]; then + ynh_die "There is already a directory: $final_path" +fi + +conf=/etc/nginx/conf.d/$domain.d/$app.conf +if [ -f $conf ]; then + ynh_die "There is already a nginx conf file at this path: $conf" +fi +# Restore conf files +sudo cp -a "${backup_dir}/conf/nginx.conf" $conf + +# Reload Nginx +sudo service nginx reload + +sudo cp -a "${backup_dir}/var/www/$app" $final_path + +db_pwd=$(ynh_app_setting_get $app mysqlpwd) +db_user=$app +ynh_mysql_create_db $db_user $db_user $db_pwd +sudo su -c "mysql -u $db_user -p$db_pwd $app < ${backup_dir}/db.sql" +sudo rm -f "${backup_dir}/db.sql" +sudo sed -i -e "s/'DB_USER', *'[^']*'/'DB_USER', '$app'/g" $final_path/wp-config.php +sudo sed -i -e "s/'DB_NAME', *'[^']*'/'DB_NAME', '$app'/g" $final_path/wp-config.php + +# Set permissions +# Les fichiers appartiennent à www-data, pour permettre les mises à jour. +sudo chown -R www-data: $final_path +# Sauf le fichier de config wp-config.php qui appartient à root +sudo chown root: $final_path/wp-config.php + +# Copy dedicated php-fpm process from backup folder to the right location +sudo cp -a $backup_dir/conf/php-fpm.conf /etc/php5/fpm/pool.d/$app.conf +sudo cp -a $backup_dir/conf/php-fpm.ini /etc/php5/fpm/conf.d/20-$app.ini +# And restart service +sudo service php5-fpm reload + +# Set ssowat config +if [ "$is_public" = "No" ]; +then + ynh_app_setting_delete $app skipped_uris +fi +sudo yunohost app ssowatconf