mirror of
https://github.com/YunoHost-Apps/calibreweb_ynh.git
synced 2024-09-03 18:16:20 +02:00
Update Restore & Backup
This commit is contained in:
parent
13744daa6f
commit
029fc89e0e
4 changed files with 44 additions and 14 deletions
|
@ -8,7 +8,7 @@
|
|||
language="en"
|
||||
is_public=0 (PUBLIC|public=1|private=0)
|
||||
upload=1
|
||||
password="password"
|
||||
password="] jG?>j-@X}?A1u}DEA dZMKfQS]^r"
|
||||
# port="8083" (PORT)
|
||||
; Checks
|
||||
pkg_linter=1
|
||||
|
|
|
@ -25,14 +25,19 @@ app=$YNH_APP_INSTANCE_NAME
|
|||
final_path=$(ynh_app_setting_get $app final_path)
|
||||
path_url=$(ynh_app_setting_get $app path)
|
||||
domain=$(ynh_app_setting_get $app domain)
|
||||
calibre_dir=$(ynh_app_setting_get $app calibre_dir)
|
||||
|
||||
#Get settings from database in case it has been changed in the app
|
||||
calibre_dir=$(sqlite3 $final_path/app.db "SELECT config_calibre_dir FROM settings WHERE ID=1")
|
||||
#Save it in settings so that it can be used back afterward
|
||||
calibre_dir=${calibre_dir%/}
|
||||
ynh_app_setting_set $app calibre_dir $calibre_dir
|
||||
|
||||
#=================================================
|
||||
# STANDARD BACKUP STEPS
|
||||
#=================================================
|
||||
# BACKUP THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
#This will backup the app.db file at the same time
|
||||
ynh_backup "$final_path"
|
||||
|
||||
#=================================================
|
||||
|
@ -69,5 +74,3 @@ then
|
|||
else
|
||||
echo "Data dir will not be saved, because backup_core_only is set." >&2
|
||||
fi
|
||||
|
||||
|
||||
|
|
|
@ -37,8 +37,6 @@ upload=$7
|
|||
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||
#=================================================
|
||||
|
||||
### If the app uses nginx as web server (written in HTML/PHP in most cases), the final path should be "/var/www/$app".
|
||||
### If the app provides an internal web server (or uses another application server such as uwsgi), the final path should be "/opt/yunohost/$app"
|
||||
final_path=/var/www/$app
|
||||
test ! -e "$final_path" || ynh_die "This path already contains a folder"
|
||||
|
||||
|
@ -97,7 +95,7 @@ pip install --target $final_path/vendor -r $final_path/requirements.txt
|
|||
#=================================================
|
||||
# NGINX CONFIGURATION
|
||||
#=================================================
|
||||
#Cannot use empty string for X-script-name
|
||||
#Cannot use empty string for X-script-name, causes an issue in the python prg
|
||||
if [ $path_url = "/" ] ; then
|
||||
ynh_replace_string "X-Script-Name __PATH__;" "X-Script-Name /$app;" ../conf/nginx.conf
|
||||
fi
|
||||
|
@ -112,7 +110,6 @@ ynh_add_nginx_config
|
|||
# Create a system user
|
||||
ynh_system_user_create $app
|
||||
|
||||
|
||||
chown -R $app: $final_path
|
||||
|
||||
#=================================================
|
||||
|
@ -173,7 +170,7 @@ eval sqlite3 $final_path/app.db "$conf"
|
|||
|
||||
#mise à jour du mot de passe (je ne sais pas pourquoi, je n'arrive pas à l'intégrer dans le fichier de conf, pb de " et ')
|
||||
ynh_print_OFF
|
||||
#had to set it on two lines or package_linter cries...
|
||||
#had to set it on two lines or package_linter cries like a baby...
|
||||
pass=$(python ../conf/generate_password_hash.py "$pass" $final_path/vendor)
|
||||
sqlite3 $final_path/app.db "UPDATE user SET password='$pass' WHERE ID=1"
|
||||
ynh_print_ON
|
||||
|
|
|
@ -26,6 +26,8 @@ domain=$(ynh_app_setting_get $app domain)
|
|||
path_url=$(ynh_app_setting_get $app path)
|
||||
final_path=$(ynh_app_setting_get $app final_path)
|
||||
calibre_dir=$(ynh_app_setting_get $app calibre_dir)
|
||||
is_public=$(ynh_app_setting_get $app is_public)
|
||||
port=$(ynh_app_setting_get $app port)
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE RESTORED
|
||||
|
@ -41,22 +43,31 @@ test ! -d $final_path \
|
|||
#=================================================
|
||||
# RESTORE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_print_info "Restore nginx settings"
|
||||
ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
# REOPEN PORT
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file "$final_path"
|
||||
ynh_print_info "Reopening port $port"
|
||||
yunohost firewall allow --no-upnp TCP $port 2>&1
|
||||
ynh_app_setting_set $app port $port
|
||||
|
||||
#=================================================
|
||||
# RECREATE THE DEDICATED USER
|
||||
#=================================================
|
||||
|
||||
ynh_print_info "Restore user $app"
|
||||
# Create the dedicated user (if not existing)
|
||||
ynh_system_user_create $app
|
||||
|
||||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_print_info "Restore app directory $final_path"
|
||||
ynh_restore_file "$final_path"
|
||||
|
||||
#=================================================
|
||||
# RESTORE USER RIGHTS
|
||||
#=================================================
|
||||
|
@ -71,7 +82,9 @@ chown -R $app: $final_path
|
|||
#=================================================
|
||||
|
||||
# Define and install dependencies
|
||||
ynh_print_info "Installing dependencies and pip packages"
|
||||
ynh_install_app_dependencies $pkg_dependencies
|
||||
pip install --target $final_path/vendor -r $final_path/requirements.txt
|
||||
|
||||
#=================================================
|
||||
# ADVERTISE SERVICE IN ADMIN PANEL
|
||||
|
@ -118,11 +131,28 @@ fi
|
|||
# Remove the option backup_core_only if it's in the settings.yml file
|
||||
ynh_app_setting_delete $app backup_core_only
|
||||
|
||||
#=================================================
|
||||
# SETUP SSOWAT
|
||||
#=================================================
|
||||
|
||||
# Make app public if necessary
|
||||
if [ $is_public -eq 1 ]
|
||||
then
|
||||
# unprotected_uris allows SSO credentials to be passed anyway.
|
||||
ynh_app_setting_set $app unprotected_uris "/"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
|
||||
ynh_print_info "Reload nginx and start $app"
|
||||
systemctl reload nginx
|
||||
ynh_systemd_action -l "INFO in server: Starting Gevent server"
|
||||
|
||||
#=================================================
|
||||
# WARNING FOR READ ACCESS
|
||||
#=================================================
|
||||
ynh_print_warn "Please, give required access to $app user to the $calibre_dir folder."
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue