#!/bin/bash # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers #================================================= # RESTORE THE APP MAIN DIR #================================================= ynh_script_progression "Restoring the app main directory..." ynh_restore "$install_dir" #REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod -R o-rwx "$install_dir" #REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R $app:www-data "$install_dir" #================================================= # RESTORE THE DATA DIRECTORY #================================================= ynh_script_progression "Restoring the data directory..." ynh_restore "$data_dir/" || true mkdir -p $data_dir/data mkdir -p $data_dir/data/{static,media,music} #REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 750 "$data_dir/" chmod -R o-rwx "$data_dir/" chown -R $app:www-data "$data_dir/" #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= ynh_script_progression "Restoring the NGINX web server configuration..." ynh_restore "/etc/nginx/conf.d/$domain.d" #================================================= # RESTORE THE POSTGRESQL DATABASE #================================================= ynh_script_progression "Restoring the PostgreSQL database..." ynh_psql_db_shell < "./db.sql"" #================================================= # LOGROTATE #================================================= ynh_script_progression "Configuring logrotate to manage application logfiles" # Use logrotate to manage application logfile(s) ynh_config_add_logrotate touch /var/log/$app/${app}-server.log touch /var/log/$app/${app}-worker.log touch /var/log/$app/${app}-beat.log #REMOVEME? Assuming ynh_config_add_logrotate is called, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R $app:$app /var/log/$app/ #================================================= # RESTORE SYSTEMD #================================================= ynh_script_progression "Restoring $app's systemd service..." ynh_restore "/etc/systemd/system/${app}-beat.service" ynh_restore "/etc/systemd/system/${app}-server.service" ynh_restore "/etc/systemd/system/${app}-worker.service" ynh_restore "/etc/systemd/system/$app.target" systemctl enable "${app}-beat.service" --quiet systemctl enable "${app}-server.service" --quiet systemctl enable "${app}-worker.service" --quiet #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= ynh_script_progression "Integrating service in YunoHost..." ynh_config_add_systemd --service="${app}-server" --template="funkwhale-server.service" ynh_config_add_systemd --service="${app}-worker" --template="funkwhale-worker.service" ynh_config_add_systemd --service="${app}-beat" --template="funkwhale-beat.service" yunohost service add "${app}-beat" --description="${app} celery beat process" --log="/var/log/$app/${app}-beat.log" yunohost service add "${app}-server" --description="${app} application server" --log="/var/log/$app/${app}-server.log" yunohost service add "${app}-worker" --description="${app} celery worker" --log="/var/log/$app/${app}-worker.log" #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression "Starting $app's systemd service..." ynh_systemctl --service="${app}-beat" --action="start" --log_path="systemd" ynh_systemctl --service="${app}-server" --action="start" --log_path="systemd" --wait_until="Application startup complete" ynh_systemctl --service="${app}-worker" --action="start" --log_path="systemd" --wait_until="ready" #================================================= # RELOAD NGINX #================================================= ynh_script_progression "Reloading NGINX web server..." ynh_systemctl --service=nginx --action=reload #================================================= # END OF SCRIPT #================================================= ynh_script_progression "Restoration completed for $app"