1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/ttrss_ynh.git synced 2024-10-01 13:34:46 +02:00

[enh] Add backup/restore scripts

This commit is contained in:
zamentur 2016-01-10 20:10:16 +01:00
parent 8053e29bc0
commit 8c79627285
2 changed files with 92 additions and 0 deletions

24
scripts/backup Normal file
View file

@ -0,0 +1,24 @@
#!/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
domain=$(sudo yunohost app setting $app domain)
path=$(sudo yunohost app setting $app path)
# Copy the app files
final_path=/var/www/$app
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"
sudo cp -a /etc/cron.d/$app "${backup_dir}/conf/cron"
# 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"

68
scripts/restore Normal file
View file

@ -0,0 +1,68 @@
#!/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
# Get old parameter of the app
domain=$(sudo yunohost app setting $app domain)
path=$(sudo yunohost app setting $app path)
# Check domain/path availability
sudo yunohost app checkurl $domain$path -a $app
if [[ ! $? -eq 0 ]]; then
echo "There is already an app on this URL : $domain$path" | sudo tee /dev/stderr
exit 1
fi
# Restore sources & data
final_path=/var/www/$app
if [ -d $final_path ]; then
echo "There is already a directory: $final_path " | sudo tee /dev/stderr
exit 1
fi
sudo cp -a "${backup_dir}/var/www/$app" $final_path
# Dependences
sudo apt-get install php5-cli -y
db_pwd=$(sudo yunohost app setting $app mysqlpwd)
db_user=$app
sudo yunohost app initdb $db_user -p $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/config.php
sudo sed -i -e "s/'DB_NAME', *\"[^\"]*\"/'DB_NAME', \"$app\"/g" $final_path/config.php
# Set permissions
sudo chown -R www-data:www-data $final_path
for i in export images upload js
do
sudo chmod -R 777 $final_path/cache/$i
done
for i in feed-icons lock
do
sudo chmod -R 777 $final_path/$i
done
# Restore conf files
conf=/etc/nginx/conf.d/$domain.d/$app.conf
if [ -f $conf ]; then
echo "There is already a nginx conf file at this path: $conf " | sudo tee /dev/stderr
exit 1
fi
sudo cp -a "${backup_dir}/conf/nginx.conf" $conf
sudo mv "${backup_dir}/conf/cron" /etc/cron.d/$app
sudo chown root /etc/cron.d/$app
# Reload Nginx
sudo service nginx reload
# Set ssowat config
sudo yunohost app setting ttrss skipped_uris -v "/public.php,/api"
sudo yunohost app ssowatconf