mirror of
https://github.com/YunoHost-Apps/restic_ynh.git
synced 2024-09-03 20:16:22 +02:00
f02c26a190
display some messages during installation set variables types in manifest give correct license in manifest install dependencies in upgrade script wrong function call in upgrade script
117 lines
4.2 KiB
Bash
Executable file
117 lines
4.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC START
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
#=================================================
|
|
# MANAGE SCRIPT FAILURE
|
|
#=================================================
|
|
|
|
# Exit if an error occurs during the execution of the script
|
|
ynh_abort_if_errors
|
|
|
|
#=================================================
|
|
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
|
#=================================================
|
|
export app=$YNH_APP_INSTANCE_NAME
|
|
|
|
# Retrieve arguments
|
|
ynh_export server port ssh_user backup_path passphrase on_calendar conf data apps allow_extra_space_use
|
|
|
|
#=================================================
|
|
# STORE SETTINGS FROM MANIFEST
|
|
#=================================================
|
|
ynh_save_args server port ssh_user backup_path passphrase on_calendar conf data apps allow_extra_space_use
|
|
|
|
#=================================================
|
|
# INSTALL DEPENDENCIES
|
|
#=================================================
|
|
ynh_print_info --message="Installing dependencies"
|
|
ynh_install_app_dependencies $pkg_dependencies
|
|
ynh_print_info --message="Installing restic binary"
|
|
install_restic
|
|
|
|
#=================================================
|
|
# ACTIVATE BACKUP METHODS
|
|
#=================================================
|
|
ynh_print_info --message="Activating backup methods"
|
|
mkdir -p /etc/yunohost/hooks.d/backup_method
|
|
mkdir -p /usr/share/yunohost/backup_method
|
|
|
|
#=================================================
|
|
# SETUP THE BACKUP METHOD
|
|
#=================================================
|
|
ynh_print_info --message="Setting up backup methods"
|
|
ynh_configure backup_method "/etc/yunohost/hooks.d/backup_method/05-${app}_app"
|
|
|
|
#=================================================
|
|
# CONFIGURE CRON
|
|
#=================================================
|
|
ynh_print_info --message="Configuring cron"
|
|
ynh_configure backup-with-restic "/usr/local/bin/backup-with-$app"
|
|
ynh_configure backup-with-restic-answerbot "/usr/local/bin/backup-with-$app-answerbot"
|
|
chmod u+x "/usr/local/bin/backup-with-$app"
|
|
chmod u+x "/usr/local/bin/backup-with-$app-answerbot"
|
|
ynh_add_systemd_config
|
|
ynh_configure systemd.timer "/etc/systemd/system/$app.timer"
|
|
systemctl enable $app.timer
|
|
systemctl start $app.timer
|
|
|
|
#=================================================
|
|
# GENERATE SSH KEY
|
|
#=================================================
|
|
ynh_print_info --message="Generating private key"
|
|
private_key="/root/.ssh/id_${app}_ed25519"
|
|
test -f $private_key || ssh-keygen -q -t ed25519 -N "" -f $private_key
|
|
|
|
#=================================================
|
|
# GENERATE SSH CONFIG
|
|
#=================================================
|
|
ynh_print_info --message="Generating ssh config for ${server}"
|
|
grep -q "${server}" /root/.ssh/config 2>/dev/null || cat << EOCONF >> ~/.ssh/config
|
|
Host ${server}
|
|
Hostname ${server}
|
|
Port ${port}
|
|
User ${ssh_user}
|
|
IdentityFile ${private_key}
|
|
StrictHostKeyChecking no
|
|
UserKnownHostsFile /dev/null
|
|
EOCONF
|
|
|
|
#=================================================
|
|
# Display key
|
|
#=================================================
|
|
|
|
ynh_print_info --message="You should now allow the following public key for user ${ssh_user} on server ${server}:
|
|
$(cat ${private_key}.pub)"
|
|
|
|
|
|
#=================================================
|
|
# SEND A README FOR THE ADMIN
|
|
#=================================================
|
|
ynh_print_info --message="Sending post-installation instructions to admin"
|
|
ynh_print_OFF
|
|
message="You should now allow the following public key for user ${ssh_user} on server ${server}:
|
|
$(cat ${private_key}.pub)
|
|
|
|
Do so by running this command on ${server} with user ${ssh_user}:
|
|
|
|
mkdir ~/.ssh 2>/dev/null
|
|
touch ~/.ssh/authorized_keys
|
|
chmod u=rw,go= ~/.ssh/authorized_keys
|
|
cat << EOPKEY >> ~/.ssh/authorized_keys
|
|
$(cat ${private_key}.pub)
|
|
EOPKEY
|
|
|
|
$(if [ "$backup_path" != "./" ];then echo "Also make sure ${backup_path} exists and is writable by ${ssh_user}";fi)
|
|
|
|
If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/restic_ynh"
|
|
|
|
ynh_send_readme_to_admin "$message" "root"
|
|
ynh_print_ON
|