mirror of
https://github.com/YunoHost-Apps/borg_ynh.git
synced 2024-09-03 18:16:05 +02:00
[fix] Upgrade borgbackup correctly
This commit is contained in:
parent
ff0be0b044
commit
5f3085aae3
4 changed files with 101 additions and 51 deletions
|
@ -6,7 +6,7 @@
|
|||
"en": "Backup your server on a host server using Borg.",
|
||||
"fr": "Sauvegardez votre serveur sur un serveur distant avec Borg."
|
||||
},
|
||||
"version": "1.1.15~ynh1",
|
||||
"version": "1.1.15~ynh2",
|
||||
"url": "https://borgbackup.readthedocs.io",
|
||||
"license": "BSD-3-Clause",
|
||||
"maintainer": {
|
||||
|
|
|
@ -5,19 +5,26 @@
|
|||
#=================================================
|
||||
# App package root directory should be the parent folder
|
||||
PKG_DIR=$(cd ../; pwd)
|
||||
BORG_VERSION=1.1.15
|
||||
|
||||
pkg_dependencies="python3-pip python3-dev libacl1-dev libssl-dev liblz4-dev python3-jinja2 python3-setuptools python-virtualenv virtualenv"
|
||||
pkg_dependencies="python3-pip python3-dev libacl1-dev libssl-dev liblz4-dev python3-jinja2 python3-setuptools python-virtualenv virtualenv libfuse-dev pkg-config"
|
||||
|
||||
# Install borg with pip if borg is not here
|
||||
install_borg_with_pip () {
|
||||
if [ -d /opt/borg-env ]; then
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/pip list | grep "Version: $BORG_VERSION" || ynh_secure_remove /opt/borg-env
|
||||
fi
|
||||
if [ ! -d /opt/borg-env ]; then
|
||||
python3 -m venv /opt/borg-env
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/pip install borgbackup[fuse]==1.1.15
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/pip install borgbackup[fuse]==$BORG_VERSION
|
||||
echo "#!/bin/bash
|
||||
/opt/borg-env/bin/python /opt/borg-env/bin/borg \"\$@\"" > /usr/local/bin/borg
|
||||
# We need this to be executable by
|
||||
chmod a+x /usr/local/bin/borg
|
||||
if is_buster; then
|
||||
touch /opt/borg-env/buster
|
||||
fi
|
||||
fi
|
||||
# We need this to be executable by other borg apps
|
||||
chmod a+x /usr/local/bin/borg
|
||||
}
|
||||
|
||||
#=================================================
|
||||
|
|
|
@ -44,7 +44,8 @@ ynh_script_progression --message="Installing dependencies..."
|
|||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
install_borg_with_pip
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC SETUP
|
||||
#=================================================
|
||||
# ACTIVATE BACKUP METHODS
|
||||
#=================================================
|
||||
|
@ -56,49 +57,34 @@ mkdir -p /usr/share/yunohost/backup_method
|
|||
# SETUP THE BACKUP METHOD
|
||||
#=================================================
|
||||
ynh_configure backup_method "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
||||
chmod go=--- "/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 --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..."
|
||||
if [ ! -z "$server" ]; then
|
||||
#=================================================
|
||||
# GENERATE SSH KEY
|
||||
#=================================================
|
||||
|
||||
yunohost service add $app --description="Deduplicating backup program"
|
||||
private_key="/root/.ssh/id_${app}_ed25519"
|
||||
test -f $private_key || ssh-keygen -q -t ed25519 -N "" -f $private_key
|
||||
|
||||
#=================================================
|
||||
# GENERATE SSH KEY
|
||||
#=================================================
|
||||
#=================================================
|
||||
# Display key
|
||||
#=================================================
|
||||
|
||||
private_key="/root/.ssh/id_${app}_ed25519"
|
||||
test -f $private_key || ssh-keygen -q -t ed25519 -N "" -f $private_key
|
||||
echo "You should now install the \"Borg Server\" app on $server and fill questions like this:
|
||||
User: ${ssh_user}
|
||||
Public key: $(cat ${private_key}.pub)"
|
||||
|
||||
#=================================================
|
||||
# Display key
|
||||
#=================================================
|
||||
#=================================================
|
||||
# SEND A README FOR THE ADMIN
|
||||
#=================================================
|
||||
|
||||
echo "You should now install the \"Borg Server\" app on $server and fill questions like this:
|
||||
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:
|
||||
ynh_print_OFF
|
||||
message="You should now install the \"Borg Server\" app on $server and fill questions like this:
|
||||
User: ${ssh_user}
|
||||
Public key: $(cat ${private_key}.pub)
|
||||
|
||||
|
@ -108,8 +94,32 @@ yunohost app install https://github.com/YunoHost-Apps/borgserver_ynh -a \"ssh_us
|
|||
|
||||
If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/borg_ynh"
|
||||
|
||||
ynh_send_readme_to_admin "$message" "root"
|
||||
ynh_print_ON
|
||||
ynh_send_readme_to_admin "$message" "root"
|
||||
ynh_print_ON
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring a systemd service..." --time --weight=1
|
||||
|
||||
# Create a dedicated systemd config
|
||||
ynh_add_systemd_config
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE SYSTEMD TIMER
|
||||
#=================================================
|
||||
ynh_configure systemd.timer "/etc/systemd/system/$app.timer"
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
|
||||
|
||||
yunohost service add $app --description="Deduplicating backup program"
|
||||
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
|
|
|
@ -67,36 +67,69 @@ if grep "borg.timer" /etc/yunohost/services.yml > /dev/null ; then
|
|||
fi
|
||||
|
||||
# Replace backports with pip
|
||||
rm -f /etc/apt/sources.list.d/$app-stretch-backports.list
|
||||
|
||||
# Reinstall borg if stretch -> buster migration
|
||||
if is_buster; then
|
||||
if [ ! -f /opt/borg-env/buster ] ; then
|
||||
rm -f /etc/apt/sources.list.d/$app-stretch-backports.list
|
||||
ynh_secure_remove /opt/borg-env
|
||||
install_borg_with_pip
|
||||
touch /opt/borg-env/buster
|
||||
ynh_secure_remove /opt/borg-env
|
||||
fi
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# UPGRADE DEPENDENCIES
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading dependencies..." --weight=1
|
||||
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC UPGRADE
|
||||
#=================================================
|
||||
# Upgrade borgbackup
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading borgbackup..." --weight=1
|
||||
|
||||
install_borg_with_pip
|
||||
|
||||
#=================================================
|
||||
# SETUP THE BACKUP METHOD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Setting up backup method..." --weight=1
|
||||
ynh_configure backup_method "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
||||
chmod go=--- "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE CRON
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring systemd timer..." --weight=1
|
||||
ynh_configure backup-with-borg "/usr/local/bin/backup-with-$app"
|
||||
chmod u+x "/usr/local/bin/backup-with-$app"
|
||||
|
||||
#=================================================
|
||||
# SETUP SYSTEMD
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading systemd configuration..." --weight=1
|
||||
|
||||
# Create a dedicated systemd config
|
||||
ynh_add_systemd_config
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE SYSTEMD TIMER
|
||||
#=================================================
|
||||
ynh_configure systemd.timer "/etc/systemd/system/$app.timer"
|
||||
systemctl enable $app.timer --quiet
|
||||
systemctl start $app.timer
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Exposing borg service in webadmin..." --weight=1
|
||||
# SECURE FILES AND DIRECTORIES
|
||||
#=================================================
|
||||
|
||||
# Set permissions on app files
|
||||
chown -R root: $final_path
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Integrating service in YunoHost..." --weight=1
|
||||
|
||||
yunohost service add $app --description="Deduplicating backup program"
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue