1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/nextcloud_ynh.git synced 2024-09-03 19:55:57 +02:00
nextcloud_ynh/scripts/backup
Kayou d7d24034cf
Add notify push option (#417)
* add notify_push option

* self-test notify_push

* fix notify_app

* new permission hpb, some fixes

* fix the restore script

* fix restore²

* fix upgrade

* fix socket path

* Update doc/DISCLAIMER_fr.md

* split nginx conf

* use official helpers with modified args

* Auto-update READMEs

* update nginx conf, add new services

* add tests

* add arch var

* tests: enable_notify_push is false by default

* fix upgrade

* final_path -> install_dir

* fix socket nginx path

* add notify_push nginx conf before, so the reload in ynh_add_nginx_config load it

* fully functional version

* readd a removed fix

* run cron task after notify push setup

* Auto-update READMEs

* remove systemd files

* add notify push in config panel

* add cron again because to make notify push happy

* fix indent

* enable/disable the notify push path

* fix path unit

* exec only for nextcloud user

* move sock file to /var/run

* start notify-push after the watcher

* ²

* remove warning

* cron can sometimes fail when the database is not fully initialized, retries the cron job several times and catch catch the error on failure

* oupsie

* Apply suggestions from code review

Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com>

---------

Co-authored-by: Éric Gaspar <46165813+ericgaspar@users.noreply.github.com>
Co-authored-by: yunohost-bot <yunohost@yunohost.org>
2024-08-27 14:52:11 +02:00

84 lines
2.8 KiB
Bash
Executable file

#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
source ../settings/scripts/_ynh_mysql_dump_db.sh
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
#=================================================
ynh_print_info --message="Declaring files to be backed up..."
#=================================================
# BACKUP THE APP MAIN DIR
#=================================================
ynh_backup --src_path="$install_dir"
#=================================================
# BACKUP THE DATA DIRECTORY
#=================================================
ynh_backup --src_path="$data_dir" --is_big
#=================================================
# BACKUP THE NGINX CONFIGURATION
#=================================================
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.d"
#=================================================
# BACKUP THE PHP-FPM CONFIGURATION
#=================================================
# Backup the PHP-FPM configuration
ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
# Backup the nginx configuration
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
# Backup the logrotate configuration
ynh_backup --src_path="/etc/logrotate.d/$app"
# Backup the Fail2Ban config
ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf"
ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf"
#=================================================
# BACKUP VARIOUS FILES
#=================================================
ynh_backup --src_path="/etc/cron.d/$app"
ynh_backup --src_path="/var/log/$app"
#=================================================
# BACKUP THE MYSQL DATABASE
#=================================================
ynh_print_info --message="Backing up the MySQL database..."
ynh_mysql_dump_db --database="$db_name" --default_character_set="utf8mb4" > db.sql
#=================================================
# BACKUP THE NOTIFY_PUSH APP
#=================================================
if [ $enable_notify_push -eq 1 ]
then
ynh_backup --src_path="/etc/systemd/system/${app}-notify-push.service"
ynh_backup --src_path="/etc/systemd/system/${app}-notify-push-watcher.service"
ynh_backup --src_path="/etc/systemd/system/${app}-notify-push-watcher.path"
fi
#=================================================
# END OF SCRIPT
#=================================================
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."