mirror of
https://github.com/YunoHost-Apps/seafile_ynh.git
synced 2024-09-03 20:26:01 +02:00
101 lines
3.5 KiB
Bash
101 lines
3.5 KiB
Bash
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC START
|
|
#=================================================
|
|
|
|
# Source YunoHost helpers
|
|
source /usr/share/yunohost/helpers
|
|
|
|
# Stop script if errors
|
|
ynh_abort_if_errors
|
|
|
|
# Import common cmd
|
|
source ../settings/scripts/experimental_helper.sh
|
|
source ../settings/scripts/_common.sh
|
|
|
|
ynh_script_progression --message="Loading settings..."
|
|
|
|
# Retrieve arguments
|
|
domain=$(ynh_app_setting_get --app $app --key domain)
|
|
path_url=$(ynh_normalize_url_path --path_url $(ynh_app_setting_get --app $app --key path))
|
|
seafile_data=/home/yunohost.app/seafile-data
|
|
db_pwd=$(ynh_app_setting_get --app $app --key mysqlpwd)
|
|
final_path=$(ynh_app_setting_get --app $app --key final_path)
|
|
seafile_user=$app
|
|
|
|
# Check domain/path availability
|
|
ynh_webpath_available --domain $domain --path_url $path_url || ynh_die --message "$domain/$path_url is not available, please use an other domain or path."
|
|
|
|
#=================================================
|
|
# STANDARD RESTORATION STEPS
|
|
#=================================================
|
|
|
|
# Restore all config and data
|
|
ynh_script_progression --message="Restoring files..." --weight=10
|
|
ynh_restore
|
|
|
|
# Create user
|
|
ynh_script_progression --message="Configuring system user..."
|
|
ynh_system_user_create --username $seafile_user $final_path
|
|
|
|
# Restore dependencies
|
|
ynh_script_progression --message="Reinstalling dependencies..." --weight=5
|
|
install_dependance
|
|
|
|
# Restore mysql dump
|
|
ynh_script_progression --message="Restoring database..." --weight=3
|
|
db_user=seafile
|
|
ynh_mysql_setup_db --db_user $db_user --db_name ccnetdb --db_pwd "$db_pwd"
|
|
ynh_mysql_setup_db --db_user $db_user --db_name seafiledb --db_pwd "$db_pwd"
|
|
ynh_mysql_setup_db --db_user $db_user --db_name seahubdb --db_pwd "$db_pwd"
|
|
su -c "mysql -u ${app} -p$db_pwd ccnetdb < ${YNH_CWD}/ccnetdb.dmp"
|
|
su -c "mysql -u ${app} -p$db_pwd seafiledb < ${YNH_CWD}/seafiledb.dmp"
|
|
su -c "mysql -u ${app} -p$db_pwd seahubdb < ${YNH_CWD}/seahubdb.dmp"
|
|
|
|
#=================================================
|
|
# GENERIC FINALIZATION
|
|
#=================================================
|
|
|
|
# Restore sso persistent config
|
|
ynh_script_progression --message="Configuring permissions..."
|
|
python3 ../settings/conf/add_sso_conf.py || ynh_die --message="Your file /etc/ssowat/conf.json.persistent doesn't respect the json syntax. Please fix the syntax to install this app."
|
|
|
|
# Add logrotate
|
|
ynh_script_progression --message="Configuring log rotation..."
|
|
ynh_use_logrotate --logfile $final_path/logs
|
|
ln -s $final_path/logs /var/log/seafile
|
|
|
|
# Set all permissions
|
|
ynh_script_progression --message="Protecting directory..."
|
|
set_permission
|
|
|
|
# Enable service and start seafile
|
|
ynh_script_progression --message="Reconfiguring application..."
|
|
systemctl daemon-reload
|
|
systemctl enable seafile
|
|
systemctl enable seahub
|
|
|
|
# Add Seafile to YunoHost's monitored services
|
|
ynh_script_progression --message="Register seafile service..."
|
|
yunohost service add seafile
|
|
yunohost service add seahub
|
|
|
|
ynh_script_progression --message="Reloading services..."
|
|
|
|
# Reload nginx
|
|
systemctl reload nginx.service
|
|
|
|
# Reload fail2ban
|
|
ynh_systemd_action --service_name=fail2ban --action=reload
|
|
|
|
# Avoid the current effect
|
|
sleep 5
|
|
|
|
# Restart service
|
|
ynh_script_progression --message="Starting seafile services..." --weight=3
|
|
ynh_systemd_action --service_name seafile -l "spawned seaf-server, pid " -p /var/log/seafile/controller.log
|
|
ynh_systemd_action --service_name seahub -l "Started Seafile hub." -p "systemd"
|
|
sleep 2
|
|
|
|
ynh_script_progression --message="Restoration completed for $app" --last
|