mirror of
https://github.com/YunoHost-Apps/borg_ynh.git
synced 2024-09-03 18:16:05 +02:00
Merge pull request #66 from YunoHost-Apps/Upgrade-to-1.1.14
Upgrade to 1.1.15
This commit is contained in:
commit
8ce93b3f24
10 changed files with 130 additions and 66 deletions
67
README.md
67
README.md
|
@ -1,31 +1,30 @@
|
|||
# Borg Backup App for YunoHost
|
||||
# Borg Backup for YunoHost
|
||||
|
||||
[](https://github.com/YunoHost-Apps/borg_ynh/releases)
|
||||
[](https://github.com/YunoHost-Apps/borg_ynh/releases)
|
||||
[](https://github.com/YunoHost-Apps/borg_ynh/milestones)
|
||||
[](https://dash.yunohost.org/appci/app/borg)
|
||||
[](https://raw.githubusercontent.com/YunoHost-Apps/borg_ynh/master/LICENSE)
|
||||
[](https://github.com/YunoHost-Apps/borg_ynh/issues)
|
||||
|
||||
[](https://github.com/YunoHost-Apps/borg_ynh/issues)
|
||||
[](https://install-app.yunohost.org/?app=borg)
|
||||
|
||||
A [Borg](https://borgbackup.readthedocs.io/en/stable/index.html#what-is-borgbackup) implementation to backup a YunoHost server. This is the Borg Backup App to be installed on a server to backup. It works together with a [Borg Server App](https://github.com/YunoHost-Apps/borgserver_ynh) installed on a host server.
|
||||
|
||||
## How to backup your server with this app ?
|
||||
## How to backup your server with this app?
|
||||
|
||||
You want to backup a critical "guest" Server A onto a remote "host" Server B, you need:
|
||||
* Domain name of server B: ``host.serverb``
|
||||
* Name of the server B SSH user (to be created by ``borgserver``) for connection from Server A: ``borgservera``
|
||||
* Domain name of server B: `host.serverb`
|
||||
* Name of the server B SSH user (to be created by `borgserver`) for connection from Server A: `borgservera`
|
||||
* **Strong passphrase** to encrypt your backups on host Server B. And to **restore your backups**!!
|
||||
* IDs of YunoHost apps you want to backup
|
||||
* Regular time schedule for your backups, see below
|
||||
* Install Borg Backup App (``borg``) on guest Server A
|
||||
* Install Borg Server App (``borgserver``) on host Server B
|
||||
* Install Borg Backup App (`borg`) on guest Server A
|
||||
* Install Borg Server App (`borgserver`) on host Server B
|
||||
* Save the passphrase in another place than your server. Without the passphrase, you won't be able to restore data.
|
||||
|
||||
You should received an email after the first backup succeeded.
|
||||
|
||||
### Set up Borg Backup App on guest Server A
|
||||
Firstly, set up the Borg Backup App (``borg``) on the guest Server A you want to backup:
|
||||
Firstly, set up the Borg Backup App (`borg`) on the guest Server A you want to backup:
|
||||
```
|
||||
$ yunohost app install borg
|
||||
Indicate the domain name of server B where to upload backups: host.serverb
|
||||
|
@ -38,7 +37,7 @@ Indicate the backup frequency (see systemd OnCalendar format) (default: Daily):
|
|||
```
|
||||
|
||||
#### Syntax to define a backup time schedule
|
||||
You can schedule regular backups at specific time. Only one regular time schedule is possible for one ``borg`` instance, see below for workaround. Some examples:
|
||||
You can schedule regular backups at specific time. Only one regular time schedule is possible for one `borg` instance, see below for workaround. Some examples:
|
||||
* Monthly :
|
||||
* Weekly :
|
||||
* Daily : Daily at midnight
|
||||
|
@ -56,7 +55,7 @@ User: servera
|
|||
Public key: ssh-ed25519 AAAA[...] root@guest.servera
|
||||
```
|
||||
This information is also sent by email to the admin of guest Server A.
|
||||
If you don't find the mail and you don't see the message in the log bar you can find the SSH public key with this command:
|
||||
If you don't find the email and you don't see the message in the log bar you can find the SSH public key with this command:
|
||||
```
|
||||
$ cat /root/.ssh/id_borg_ed25519.pub
|
||||
ssh-ed25519 AAAA[...] root@guest.servera
|
||||
|
@ -90,7 +89,7 @@ If you want to be sure to be able to restore your server, you should try to rest
|
|||
|
||||
You should at least:
|
||||
* Keep your apps up to date (if apps are too old, they could be difficult to restore on a more recent recent version)
|
||||
* Check regularly the presence of info.json and db.sql or dump.sql in your apps archives
|
||||
* Check regularly the presence of `info.json` and `db.sql` or `dump.sql` in your apps archives
|
||||
```
|
||||
borg list ./::ARCHIVE_NAME | grep info.json
|
||||
borg list ./::ARCHIVE_NAME | grep db.sql
|
||||
|
@ -100,13 +99,13 @@ borg list ./::ARCHIVE_NAME | grep dump.sql
|
|||
|
||||
## How to restore a complete system
|
||||
|
||||
*For infos on restoring process, check [this yunohost forum thread](https://forum.yunohost.org/t/restoring-whole-yunohost-from-borg-backups/12705/3) and [that one](https://forum.yunohost.org/t/how-to-properly-backup-and-restore/12583/3), also [using borg with sshkeys](https://thisiscasperslife.wordpress.com/2017/11/28/using-borg-backup-across-ssh-with-sshkeys/), the [`borg extract` documentation](https://borgbackup.readthedocs.io/en/stable/usage/extract.html), and this [general tutorial on borg backup](https://practical-admin.com/blog/backups-using-borg/).*
|
||||
*For infos on restoring process, check [this yunohost forum thread](https://forum.yunohost.org/t/restoring-whole-yunohost-from-borg-backups/12705/3) and [that one](https://forum.yunohost.org/t/how-to-properly-backup-and-restore/12583/3), also [using Borg with sshkeys](https://thisiscasperslife.wordpress.com/2017/11/28/using-borg-backup-across-ssh-with-sshkeys/), the [`borg extract` documentation](https://borgbackup.readthedocs.io/en/stable/usage/extract.html), and this [general tutorial on Borg Backup](https://practical-admin.com/blog/backups-using-borg/).*
|
||||
|
||||
In the following explanations:
|
||||
- the server to backup/restore will be called: `yuno`
|
||||
- the remote server that receives and store the back will be called: `rem`
|
||||
- `rem` is accessible at the domain `rem.tld`
|
||||
- the remote user on `rem` which owns the borg backups will be called `yurem`
|
||||
- the remote user on `rem` which owns the Borg backups will be called `yurem`
|
||||
- backup files will be stored in `rem` in the directory: `/home/yurem/backup`
|
||||
|
||||
|
||||
|
@ -114,24 +113,24 @@ In the following explanations:
|
|||
|
||||
The idea here, if you need to restore a whole yunohost system is:
|
||||
|
||||
1. Install a new debian VM
|
||||
2. Install yunohost in it the usual way
|
||||
3. Go through yunohost postinstall (parameters you will supply are not crucial, as they will be replaced by the restore)
|
||||
4. Install borg
|
||||
1. Install a new Debian VM
|
||||
2. Install YunoHost in it the usual way
|
||||
3. Go through YunoHost postinstall (parameters you will supply are not crucial, as they will be replaced by the restore)
|
||||
4. Install Borg
|
||||
5. Setup `rem` to accept ssh connections from `yuno`
|
||||
6. Use borg to import backups from `rem` to `yuno`
|
||||
7. Restore borg backups with the `yunohost backup restore` command, first config, then data, then each app one at a time
|
||||
8. Remove the borg app and restore it
|
||||
6. Use Borg to import backups from `rem` to `yuno`
|
||||
7. Restore Borg backups with the `yunohost backup restore` command, first config, then data, then each app one at a time
|
||||
8. Remove the Borg app and restore it
|
||||
|
||||
### Make it possible for `yuno` to connect to `rem` with borg
|
||||
### Make it possible for `yuno` to connect to `rem` with Borg
|
||||
|
||||
At this stage, we will assume that `yuno` is a freshly installed yunohost (based on buster in my case). You should also have performed the yunohost postinstall.
|
||||
At this stage, we will assume that `yuno` is a freshly installed YunoHost (based on Buster in my case). You should also have performed the YunoHost postinstall.
|
||||
|
||||
If you don't want to restore the whole system, just some apps, you can skip some of the steps below.
|
||||
|
||||
#### Install the borg yunohost app in `yuno`
|
||||
#### Install the Borg YunoHost app in `yuno`
|
||||
|
||||
The idea here is just to install borg, not in order to create backups, but only to use borg commands to import remote backups.
|
||||
The idea here is just to install Borg, not in order to create backups, but only to use Borg commands to import remote backups.
|
||||
|
||||
So for example, you can install it doing the following:
|
||||
```bash
|
||||
|
@ -142,9 +141,9 @@ sudo yunohost app install borg -a "server=rem.tld&ssh_user=yurem&conf=0&data=0&a
|
|||
|
||||
In `yuno` you will need to get the ssh key that borg just created while installing: `sudo cat /root/.ssh/id_borg_ed25519.pub`, copy it to clipboard.
|
||||
|
||||
Connect via ssh to `rem`, go to `/home/yurem/.ssh/authorized_keys`, and past the borg public key you got at previous step.
|
||||
Connect via ssh to `rem`, go to `/home/yurem/.ssh/authorized_keys`, and past the Borg public key you got at previous step.
|
||||
|
||||
Now to make sure this worked, you can try to ssh from `yuno` to `rem`.
|
||||
Now to make sure this worked, you can try to SSH from `yuno` to `rem`.
|
||||
In `yuno` : `ssh -i /root/.ssh/id_borg_ed25519 yurem@rem.tld` . If you can get into `rem` , without it prompting for a password, then you're good to continue :)
|
||||
|
||||
### Restore backups to `yuno`
|
||||
|
@ -173,9 +172,9 @@ yunohost backup restore auto_BACKUP_NAME --system # for config and data backups
|
|||
yunohost backup restore auto_BACKUP_NAME --apps # for other backups (=apps)
|
||||
```
|
||||
|
||||
### And nextcloud? It's super heavy!!
|
||||
### And Nextcloud? It's super heavy!!
|
||||
|
||||
For nextcloud, the best is probably to reimport the backup without the data. And to import the data manually.
|
||||
For Nextcloud, the best is probably to reimport the backup without the data. And to import the data manually.
|
||||
|
||||
For that, you can do the following (as root):
|
||||
|
||||
|
@ -195,11 +194,11 @@ rm -r apps
|
|||
yunohost backup restore auto_nextcloud_XX_XX_XX_XX:XX --apps
|
||||
```
|
||||
|
||||
### Restore borg
|
||||
### Restore Borg
|
||||
|
||||
Once you've restored the whole system, you will probably want to restore the borg app as well.
|
||||
Once you've restored the whole system, you will probably want to restore the Borg app as well.
|
||||
|
||||
For that, remove the "dummy" borg you installed to do the restoration, and restore borg the same ways as for other apps:
|
||||
For that, remove the "dummy" Borg you installed to do the restoration, and restore Borg the same ways as for other apps:
|
||||
|
||||
```bash
|
||||
sudo yunohost app remove borg
|
||||
|
@ -215,7 +214,7 @@ sudo yunohost backup restore auto_borg_XX_XX_XX_XX:XX --apps
|
|||
[Get the storage space used by the backup repository on the host server](https://borgbackup.readthedocs.io/en/stable/usage/info.html)
|
||||
``borg info /home/servera/backup``
|
||||
|
||||
### Backup Yunohost apps with different criticallity levels
|
||||
### Backup YunoHost apps with different criticallity levels
|
||||
|
||||
If you want to backup your guest server:
|
||||
* with different YunoHost apps
|
||||
|
|
|
@ -17,20 +17,8 @@
|
|||
upgrade=1
|
||||
backup_restore=1
|
||||
multi_instance=1
|
||||
incorrect_path=0
|
||||
port_already_use=0
|
||||
change_url=0
|
||||
;;; Levels
|
||||
Level 1=auto
|
||||
Level 2=auto
|
||||
Level 3=auto
|
||||
Level 4=na
|
||||
Level 5=auto
|
||||
Level 6=auto
|
||||
Level 7=auto
|
||||
Level 8=0
|
||||
Level 9=0
|
||||
Level 10=0
|
||||
;;; Options
|
||||
Email=ljf+borg_ynh@reflexlibre.net
|
||||
Notification=down
|
||||
|
|
|
@ -8,5 +8,5 @@ ExecStart=/usr/local/bin/backup-with-__APP__
|
|||
User=root
|
||||
Group=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
#[Install]
|
||||
#WantedBy=multi-user.target
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "Borg Backup App",
|
||||
"name": "Borg Backup",
|
||||
"id": "borg",
|
||||
"packaging_format": 1,
|
||||
"description": {
|
||||
"en": "Backup your server on a host server using Borg.",
|
||||
"fr": "Sauvegardez votre serveur sur un serveur distant avec Borg."
|
||||
},
|
||||
"version": "1.1.13~ynh2",
|
||||
"version": "1.1.15~ynh1",
|
||||
"url": "https://borgbackup.readthedocs.io",
|
||||
"license": "BSD-3-Clause",
|
||||
"maintainer": {
|
||||
|
@ -15,7 +15,7 @@
|
|||
"url": "https://reflexlibre.net"
|
||||
},
|
||||
"requirements": {
|
||||
"yunohost": ">= 3.5.0"
|
||||
"yunohost": ">= 3.8.1"
|
||||
},
|
||||
"multi_instance": true,
|
||||
"services": [],
|
||||
|
@ -23,6 +23,7 @@
|
|||
"install" : [
|
||||
{
|
||||
"name": "server",
|
||||
"type": "string",
|
||||
"ask": {
|
||||
"en": "What is the domain name of the host server where backups will be sent?",
|
||||
"fr": "Quel est le nom de domaine du serveur distant sur lequel seront envoyés les sauvegardes ?"
|
||||
|
@ -35,6 +36,7 @@
|
|||
},
|
||||
{
|
||||
"name": "ssh_user",
|
||||
"type": "string",
|
||||
"ask": {
|
||||
"en": "Which SSH username should be used to connect to the host server?",
|
||||
"fr": "Quel utilisateur faut-il utiliser pour se connecter au serveur distant ?"
|
||||
|
@ -53,7 +55,7 @@
|
|||
"fr": "Indiquez une phrase de passe forte pour chiffrer vos sauvegardes. Sans espaces"
|
||||
},
|
||||
"help":{
|
||||
"en": "Keep it safe! ...if you want to be able to restore. Do not communicate it to host Server holder or anyone else. ",
|
||||
"en": "Keep it safe! ...if you want to be able to restore. Do not communicate it to host Server holder or anyone else.",
|
||||
"fr": "Gardez-la précieusement! ...si vous voulez pouvoir restaurer. Ne donnez pas la clé au possesseur du Serveur distant, ni personne."
|
||||
}
|
||||
},
|
||||
|
@ -61,7 +63,7 @@
|
|||
"name": "conf",
|
||||
"type": "boolean",
|
||||
"ask": {
|
||||
"en": "Should Borg backup your YunoHost configuration ?",
|
||||
"en": "Should Borg backup your YunoHost configuration?",
|
||||
"fr": "Borg doit-il sauvegarder la configuration système YunoHost ?"
|
||||
},
|
||||
"default": true
|
||||
|
@ -70,23 +72,25 @@
|
|||
"name": "data",
|
||||
"type": "boolean",
|
||||
"ask": {
|
||||
"en": "Should Borg backup emails and user home directory ?",
|
||||
"en": "Should Borg backup emails and user home directory?",
|
||||
"fr": "Borg doit-elle sauvegarder les mails et les répertoires des utilisateurs ?"
|
||||
},
|
||||
"default": true
|
||||
},
|
||||
{
|
||||
"name": "apps",
|
||||
"type": "string",
|
||||
"ask": {
|
||||
"en": "Which apps should Borg backup (list separated by comma or 'all') ?",
|
||||
"en": "Which apps should Borg backup (list separated by comma or 'all')?",
|
||||
"fr": "Quelles applications doivent être sauvegardées par Borg (liste séparée par virgule ou 'all' ?"
|
||||
},
|
||||
"default": "all"
|
||||
},
|
||||
{
|
||||
"name": "on_calendar",
|
||||
"type": "string",
|
||||
"ask": {
|
||||
"en": "With which regular time schedule should the backups be performed ? (see systemd OnCalendar format)",
|
||||
"en": "With which regular time schedule should the backups be performed? (see systemd OnCalendar format)",
|
||||
"fr": "À quelle fréquence les sauvegardes doivent-elles être effectuées ? (voir le format OnCalendar de systemd)"
|
||||
},
|
||||
"example": "Monthly or Weekly or Daily or Hourly or 4:00 or 5,17:00 or Sat --1..7 18:00:00",
|
||||
|
|
|
@ -12,7 +12,7 @@ pkg_dependencies="python3-pip python3-dev libacl1-dev libssl-dev liblz4-dev pyth
|
|||
install_borg_with_pip () {
|
||||
if [ ! -d /opt/borg-env ]; then
|
||||
virtualenv --python=python3 /opt/borg-env
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/pip install borgbackup==1.1.13
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/pip install borgbackup==1.1.15
|
||||
echo "#!/bin/bash
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/borg \"\$@\"" > /usr/local/bin/borg
|
||||
chmod u+x /usr/local/bin/borg
|
||||
|
|
|
@ -18,9 +18,14 @@ ynh_abort_if_errors
|
|||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_print_info --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||
#=================================================
|
||||
ynh_print_info --message="Declaring files to be backed up..."
|
||||
|
||||
ynh_backup "/usr/local/bin/backup-with-$app"
|
||||
ynh_backup "/etc/systemd/system/$app.service"
|
||||
|
@ -28,3 +33,9 @@ ynh_backup "/etc/systemd/system/$app.timer"
|
|||
ynh_backup "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
||||
ynh_backup "/root/.ssh/id_${app}_ed25519"
|
||||
ynh_backup "/root/.ssh/id_${app}_ed25519.pub"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
|
|
|
@ -19,6 +19,7 @@ ynh_abort_if_errors
|
|||
#=================================================
|
||||
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
||||
#=================================================
|
||||
|
||||
export app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
# Retrieve arguments
|
||||
|
@ -27,17 +28,21 @@ ynh_export server ssh_user passphrase on_calendar conf data apps
|
|||
#=================================================
|
||||
# STORE SETTINGS FROM MANIFEST
|
||||
#=================================================
|
||||
|
||||
ynh_save_args server ssh_user passphrase on_calendar conf data apps
|
||||
|
||||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Installing dependencies..."
|
||||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
install_borg_with_pip
|
||||
|
||||
#=================================================
|
||||
# ACTIVATE BACKUP METHODS
|
||||
#=================================================
|
||||
|
||||
mkdir -p /etc/yunohost/hooks.d/backup_method
|
||||
mkdir -p /usr/share/yunohost/backup_method
|
||||
|
||||
|
@ -49,19 +54,28 @@ ynh_configure backup_method "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
|||
#=================================================
|
||||
# CONFIGURE CRON
|
||||
#=================================================
|
||||
|
||||
ynh_configure backup-with-borg "/usr/local/bin/backup-with-$app"
|
||||
chmod u+x "/usr/local/bin/backup-with-$app"
|
||||
ynh_add_systemd_config
|
||||
ynh_configure systemd.timer "/etc/systemd/system/$app.timer"
|
||||
systemctl enable $app.timer
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
#yunohost service add $app.timer
|
||||
#yunohost service enable $app.timer
|
||||
#yunohost service start $app.timer
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..."
|
||||
|
||||
yunohost service add $app --description="Deduplicating backup program"
|
||||
|
||||
#=================================================
|
||||
# GENERATE SSH KEY
|
||||
#=================================================
|
||||
|
||||
private_key="/root/.ssh/id_${app}_ed25519"
|
||||
test -f $private_key || ssh-keygen -q -t ed25519 -N "" -f $private_key
|
||||
|
||||
|
@ -73,10 +87,10 @@ echo "You should now install the \"Borg Server\" app on $server and fill questio
|
|||
User: ${ssh_user}
|
||||
Public key: $(cat ${private_key}.pub)"
|
||||
|
||||
|
||||
#=================================================
|
||||
# SEND A README FOR THE ADMIN
|
||||
#=================================================
|
||||
|
||||
ynh_print_OFF
|
||||
message="You should now install the \"Borg Server\" app on $server and fill questions like this:
|
||||
User: ${ssh_user}
|
||||
|
@ -91,3 +105,8 @@ If you facing an issue or want to improve this app, please open a new issue in t
|
|||
ynh_send_readme_to_admin "$message" "root"
|
||||
ynh_print_ON
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Installation of $app completed" --last
|
||||
|
|
|
@ -15,17 +15,36 @@ source /usr/share/yunohost/helpers
|
|||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# REMOVE SERVICE INTEGRATION IN YUNOHOST
|
||||
#=================================================
|
||||
|
||||
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`)
|
||||
if ynh_exec_warn_less yunohost service status $app >/dev/null
|
||||
then
|
||||
ynh_script_progression --message="Removing $app service integration..."
|
||||
yunohost service remove $app
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# REMOVE DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing dependencies..."
|
||||
|
||||
ynh_remove_app_dependencies
|
||||
|
||||
#=================================================
|
||||
# REMOVE FILES
|
||||
#=================================================
|
||||
systemctl stop $app.timer
|
||||
systemctl disable $app.timer
|
||||
systemctl disable $app.timer --quiet
|
||||
ynh_remove_systemd_config
|
||||
ynh_secure_remove "/etc/systemd/system/$app.timer"
|
||||
ynh_secure_remove "/usr/local/bin/backup-with-$app"
|
||||
ynh_secure_remove "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed" --last
|
||||
|
|
|
@ -19,6 +19,7 @@ ynh_abort_if_errors
|
|||
#=================================================
|
||||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Loading installation settings..."
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
|
@ -28,25 +29,29 @@ ssh_user=$(ynh_app_setting_get $app ssh_user)
|
|||
#=================================================
|
||||
# INSTALL DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Reinstalling dependencies..."
|
||||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
install_borg_with_pip
|
||||
|
||||
#=================================================
|
||||
# ACTIVATE BACKUP METHODS
|
||||
#=================================================
|
||||
|
||||
mkdir -p /etc/yunohost/hooks.d/backup_method
|
||||
mkdir -p /usr/share/yunohost/backup_method
|
||||
|
||||
#=================================================
|
||||
# RESTORE FILES
|
||||
#=================================================
|
||||
|
||||
ynh_restore
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
yunohost service add $app
|
||||
systemctl enable $app.timer
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
#yunohost service add $app.timer
|
||||
#yunohost service enable $app.timer
|
||||
|
@ -55,5 +60,11 @@ systemctl start $app.timer
|
|||
#=================================================
|
||||
# RESTORE SYSTEMD
|
||||
#=================================================
|
||||
systemctl enable $app.service
|
||||
|
||||
systemctl enable $app.service --quiet
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Restoration completed for $app" --last
|
||||
|
|
|
@ -39,6 +39,7 @@ ynh_check_app_version_changed
|
|||
#=================================================
|
||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
ynh_script_progression --message="Backing up the app before upgrading (may take a while)..."
|
||||
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
|
@ -46,13 +47,14 @@ ynh_clean_setup () {
|
|||
# restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
|
||||
if grep "borg.timer" /etc/yunohost/services.yml > /dev/null ; then
|
||||
yunohost service remove $app.timer
|
||||
systemctl enable $app.timer
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
fi
|
||||
|
||||
|
@ -63,8 +65,7 @@ if is_buster; then
|
|||
ynh_secure_remove /opt/borg-env
|
||||
install_borg_with_pip
|
||||
touch /opt/borg-env/buster
|
||||
fi
|
||||
|
||||
fi
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
|
@ -79,5 +80,17 @@ ynh_configure backup-with-borg "/usr/local/bin/backup-with-$app"
|
|||
chmod u+x "/usr/local/bin/backup-with-$app"
|
||||
ynh_add_systemd_config
|
||||
ynh_configure systemd.timer "/etc/systemd/system/$app.timer"
|
||||
systemctl enable $app.timer
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
#=================================================
|
||||
|
||||
yunohost service add $app --description="Deduplicating backup program"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||
|
|
Loading…
Add table
Reference in a new issue