1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pagure_ynh.git synced 2024-09-03 19:56:19 +02:00

fix install

This commit is contained in:
Salamandar 2024-03-15 23:36:28 +01:00
parent 82a5ae0227
commit cf3cda851a
5 changed files with 57 additions and 227 deletions

View file

@ -4,6 +4,19 @@
# COMMON VARIABLES # COMMON VARIABLES
#================================================= #=================================================
services=(
"authorized_keys_worker"
"ci"
# "ev_server"
"gitolite_worker"
"loadjson"
"logcom"
# "milters"
"mirror"
"webhook"
"worker"
)
#================================================= #=================================================
# PERSONAL HELPERS # PERSONAL HELPERS
#================================================= #=================================================

View file

@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#================================================= #=================================================
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
@ -10,28 +8,6 @@
source ../settings/scripts/_common.sh source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
#REMOVEME? ynh_clean_setup () {
true
}
# Exit if an error occurs during the execution of the script
#REMOVEME? ynh_abort_if_errors
#=================================================
# LOAD SETTINGS
#=================================================
#REMOVEME? ynh_print_info --message="Loading installation settings..."
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#REMOVEME? data_dir=$(ynh_app_setting_get --app=$app --key=data_dir)
#================================================= #=================================================
# DECLARE DATA AND CONF FILES TO BACKUP # DECLARE DATA AND CONF FILES TO BACKUP
#================================================= #=================================================
@ -50,27 +26,16 @@ ynh_backup --src_path="$install_dir"
ynh_backup --src_path="$data_dir" --is_big ynh_backup --src_path="$data_dir" --is_big
#================================================= #=================================================
# BACKUP THE NGINX CONFIGURATION # BACKUP THE SYSTEM CONFIGURATION
#================================================= #=================================================
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= for service in "${services[@]}"; do
# SPECIFIC BACKUP ynh_backup --src_path="/etc/systemd/system/${app}_${service}.service"
#================================================= done
# BACKUP SYSTEMD
#=================================================
ynh_backup --src_path="/etc/systemd/system/${app}_authorized_keys_worker.service" # ynh_add_config --template="pagure.wsgi" --destination="$install_dir/pagure.wsgi"
ynh_backup --src_path="/etc/systemd/system/${app}_ci.service"
#ynh_backup --src_path="/etc/systemd/system/${app}_ev_server.service"
ynh_backup --src_path="/etc/systemd/system/${app}_gitolite_worker.service"
ynh_backup --src_path="/etc/systemd/system/${app}_loadjson.service"
ynh_backup --src_path="/etc/systemd/system/${app}_logcom.service"
#ynh_backup --src_path="/etc/systemd/system/${app}_milters.service"
ynh_backup --src_path="/etc/systemd/system/${app}_mirror.service"
ynh_backup --src_path="/etc/systemd/system/${app}_webhook.service"
ynh_backup --src_path="/etc/systemd/system/${app}_worker.service"
#================================================= #=================================================
# BACKUP THE POSTGRESQL DATABASE # BACKUP THE POSTGRESQL DATABASE

View file

@ -45,33 +45,13 @@ ynh_add_config --template="pagure.cfg.sample" --destination="$install_dir/pagure
chmod 400 "$install_dir/pagure.cfg" chmod 400 "$install_dir/pagure.cfg"
chown "$app:$app" "$install_dir/pagure.cfg" chown "$app:$app" "$install_dir/pagure.cfg"
#=================================================
# SETUP SYSTEMD
#=================================================
ynh_script_progression --message="Configuring a systemd service..."
# Create a dedicated systemd config
ynh_add_systemd_config --service="${app}_authorized_keys_worker" --template="pagure_authorized_keys_worker.service"
ynh_add_systemd_config --service="${app}_ci" --template="pagure_ci.service"
# ynh_add_systemd_config --service="${app}_ev_server" --template="pagure_ev_server.service"
ynh_add_systemd_config --service="${app}_gitolite_worker" --template="pagure_gitolite_worker.service"
ynh_add_systemd_config --service="${app}_loadjson" --template="pagure_loadjson.service"
ynh_add_systemd_config --service="${app}_logcom" --template="pagure_logcom.service"
# ynh_add_systemd_config --service="${app}_milters" --template="pagure_milters.service"
ynh_add_systemd_config --service="${app}_mirror" --template="pagure_mirror.service"
ynh_add_systemd_config --service="${app}_webhook" --template="pagure_webhook.service"
ynh_add_systemd_config --service="${app}_worker" --template="pagure_worker.service"
ynh_add_config --template="pagure.wsgi" --destination="$install_dir/pagure.wsgi"
ynh_add_uwsgi_service --service="$app" --template="uwsgi.ini"
#================================================= #=================================================
# BUILD APP # BUILD APP
#================================================= #=================================================
ynh_script_progression --message="Building app..." ynh_script_progression --message="Building app..."
pushd "$install_dir" pushd "$install_dir"
python3 -m venv venv ynh_exec_as "$app" python3 -m venv venv
ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install --upgrade pip ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install --upgrade pip
ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install wheel ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install wheel
ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install cffi ynh_exec_as "$app" "$install_dir/venv/bin/python3" -m pip install cffi
@ -98,16 +78,15 @@ ynh_script_progression --message="Adding system configurations related to $app..
# Create a dedicated NGINX config # Create a dedicated NGINX config
ynh_add_nginx_config ynh_add_nginx_config
yunohost service add "${app}_authorized_keys_worker" # Create a dedicated systemd config
yunohost service add "${app}_ci" for service in "${services[@]}"; do
#yunohost service add "${app}_ev_server" ynh_add_systemd_config --service="${app}_${service}" --template="pagure_${service}.service"
yunohost service add "${app}_gitolite_worker" yunohost service add "${app}_${service}"
yunohost service add "${app}_loadjson" done
yunohost service add "${app}_logcom"
#yunohost service add "${app}_milters" ynh_add_config --template="pagure.wsgi" --destination="$install_dir/pagure.wsgi"
yunohost service add "${app}_mirror" ynh_add_uwsgi_service --service="$app" --template="uwsgi.ini"
yunohost service add "${app}_webhook" yunohost service add "uwsgi-app@$app"
yunohost service add "${app}_worker"
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
@ -115,16 +94,9 @@ yunohost service add "${app}_worker"
ynh_script_progression --message="Starting a systemd service..." ynh_script_progression --message="Starting a systemd service..."
# Start a systemd service # Start a systemd service
ynh_systemd_action --service_name="${app}_authorized_keys_worker" --action="start" --log_path="systemd" --line_match="ready" for service in "${services[@]}"; do
ynh_systemd_action --service_name="${app}_ci" --action="start" --log_path="systemd" --line_match="ready" ynh_systemd_action --service_name="${app}_${service}" --action="start" --log_path="systemd" --line_match="ready"
#ynh_systemd_action --service_name="${app}_ev_server" --action="start" --log_path="systemd" --line_match="ready" done
ynh_systemd_action --service_name="${app}_gitolite_worker" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="${app}_loadjson" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="${app}_logcom" --action="start" --log_path="systemd" --line_match="ready"
#ynh_systemd_action --service_name="${app}_milters" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="${app}_mirror" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="${app}_webhook" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="${app}_worker" --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="start" --log_path="systemd" --line_match="Started" ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="start" --log_path="systemd" --line_match="Started"

View file

@ -14,23 +14,11 @@ source /usr/share/yunohost/helpers
#================================================= #=================================================
ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 ynh_script_progression --message="Removing system configurations related to $app..." --weight=1
services=(
"${app}_authorized_keys_worker"
"${app}_ci"
"${app}_ev_server"
"${app}_gitolite_worker"
"${app}_loadjson"
"${app}_logcom"
"${app}_milters"
"${app}_mirror"
"${app}_webhook"
"${app}_worker"
)
for service in "${services[@]}"; do for service in "${services[@]}"; do
if ynh_exec_warn_less yunohost service status "$service" >/dev/null; then if ynh_exec_warn_less yunohost service status "${app}_${service}" >/dev/null; then
yunohost service remove "$service" yunohost service remove "${app}_${service}"
fi fi
ynh_remove_systemd_config --service="$service" ynh_remove_systemd_config --service="${app}_${service}"
done done
ynh_remove_uwsgi_service --service="$app" ynh_remove_uwsgi_service --service="$app"

View file

@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
#=================================================
# GENERIC START
#================================================= #=================================================
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
@ -12,168 +10,62 @@ source ../settings/scripts/ynh_redis
source ../settings/scripts/ynh_uwsgi_service__2 source ../settings/scripts/ynh_uwsgi_service__2
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
#REMOVEME? ynh_clean_setup () {
ynh_clean_check_starting
}
# Exit if an error occurs during the execution of the script
#REMOVEME? ynh_abort_if_errors
#=================================================
# LOAD SETTINGS
#=================================================
#REMOVEME? ynh_script_progression --message="Loading installation settings..."
#REMOVEME? app=$YNH_APP_INSTANCE_NAME
#REMOVEME? domain=$(ynh_app_setting_get --app=$app --key=domain)
#REMOVEME? path=$(ynh_app_setting_get --app=$app --key=path)
#REMOVEME? #REMOVEME? install_dir=$(ynh_app_setting_get --app=$app --key=install_dir)
#REMOVEME? db_name=$(ynh_app_setting_get --app=$app --key=db_name)
#REMOVEME? db_user=$db_name
#REMOVEME? data_dir=$(ynh_app_setting_get --app=$app --key=data_dir)
#=================================================
# CHECK IF THE APP CAN BE RESTORED
#=================================================
#REMOVEME? ynh_script_progression --message="Validating restoration parameters..."
#REMOVEME? test ! -d $install_dir \
|| ynh_die --message="There is already a directory: $install_dir "
#=================================================
# STANDARD RESTORATION STEPS
#=================================================
# RESTORE THE NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Restoring the NGINX web server configuration..."
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# RECREATE THE DEDICATED USER
#=================================================
#REMOVEME? ynh_script_progression --message="Recreating the dedicated system user..."
# Create the dedicated user (if not existing)
#REMOVEME? ynh_system_user_create --username=$app --home_dir="$install_dir"
#================================================= #=================================================
# RESTORE THE APP MAIN DIR # RESTORE THE APP MAIN DIR
#================================================= #=================================================
ynh_script_progression --message="Restoring the app main directory..." ynh_script_progression --message="Restoring the app main directory..." --weight=1
ynh_restore_file --origin_path="$install_dir" ynh_restore_file --origin_path="$install_dir"
chmod 750 "$install_dir" chown -R "$app:www-data" "$install_dir"
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#================================================= #=================================================
# RESTORE THE DATA DIRECTORY # RESTORE THE DATA DIRECTORY
#================================================= #=================================================
ynh_script_progression --message="Restoring the data directory..." ynh_script_progression --message="Restoring the data directory..." --weight=1
ynh_restore_file --origin_path="$data_dir" --not_mandatory ynh_restore_file --origin_path="$data_dir" --not_mandatory
mkdir -p $data_dir chown -R "$app:www-data" "$data_dir"
mkdir -p "${data_dir}"/{repos,remotes,attachments,releases}
chmod 750 "$data_dir"
chmod -R o-rwx "$data_dir"
chown -R $app:www-data "$data_dir"
#=================================================
# SPECIFIC RESTORATION
#=================================================
# REINSTALL DEPENDENCIES
#=================================================
#REMOVEME? ynh_script_progression --message="Reinstalling dependencies..."
# Define and install dependencies
#REMOVEME? ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# RESTORE THE POSTGRESQL DATABASE # RESTORE THE POSTGRESQL DATABASE
#================================================= #=================================================
#REMOVEME? ynh_script_progression --message="Restoring the PostgreSQL database..." ynh_script_progression --message="Restoring the PostgreSQL database..." --weight=1
#REMOVEME? db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) ynh_psql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name" < ./db.sql
#REMOVEME? ynh_psql_test_if_first_run
#REMOVEME? ynh_psql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd #=================================================
ynh_psql_execute_file_as_root --file="./db.sql" --database=$db_name # RESTORE SYSTEM CONFIGURATIONS
#=================================================
ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# RESTORE SYSTEMD # RESTORE SYSTEMD
#================================================= #=================================================
ynh_script_progression --message="Restoring the systemd configuration..." ynh_script_progression --message="Restoring the systemd configuration..."
ynh_restore_file --origin_path="/etc/systemd/system/${app}_authorized_keys_worker.service" for service in "${services[@]}"; do
systemctl enable ${app}_authorized_keys_worker.service --quiet ynh_restore_file --origin_path="/etc/systemd/system/${app}_${service}.service"
ynh_restore_file --origin_path="/etc/systemd/system/${app}_ci.service" systemctl enable "${app}_${service}.service" --quiet
systemctl enable ${app}_ci.service --quiet yunohost service add "${app}_${service}"
#ynh_restore_file --origin_path="/etc/systemd/system/${app}_ev_server.service" done
#systemctl enable ${app}_ev_server.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_gitolite_worker.service"
systemctl enable ${app}_gitolite_worker.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_loadjson.service"
systemctl enable ${app}_loadjson.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_logcom.service"
systemctl enable ${app}_logcom.service --quiet
#ynh_restore_file --origin_path="/etc/systemd/system/${app}_milters.service"
#systemctl enable ${app}_milters.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_mirror.service"
systemctl enable ${app}_mirror.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_webhook.service"
systemctl enable ${app}_webhook.service --quiet
ynh_restore_file --origin_path="/etc/systemd/system/${app}_worker.service"
systemctl enable ${app}_worker.service --quiet
ynh_add_uwsgi_service --service="$app" --template="uwsgi.ini" ynh_add_uwsgi_service --service="$app" --template="uwsgi.ini"
#=================================================
# INTEGRATE SERVICE IN YUNOHOST
#=================================================
ynh_script_progression --message="Integrating service in YunoHost..."
yunohost service add ${app}_authorized_keys_worker
yunohost service add ${app}_ci
#yunohost service add ${app}_ev_server
yunohost service add ${app}_gitolite_worker
yunohost service add ${app}_loadjson
yunohost service add ${app}_logcom
#yunohost service add ${app}_milters
yunohost service add ${app}_mirror
yunohost service add ${app}_webhook
yunohost service add ${app}_worker
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
#================================================= #=================================================
ynh_script_progression --message="Starting a systemd service..." ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1
# Start a systemd service # Start a systemd service
ynh_systemd_action --service_name=${app}_authorized_keys_worker --action="start" --log_path="systemd" --line_match="ready" for service in "${services[@]}"; do
ynh_systemd_action --service_name=${app}_ci --action="start" --log_path="systemd" --line_match="ready" ynh_systemd_action --service_name="${app}_${service}" --action="start" --log_path="systemd" --line_match="ready"
#ynh_systemd_action --service_name=${app}_ev_server --action="start" --log_path="systemd" --line_match="ready" done
ynh_systemd_action --service_name=${app}_gitolite_worker --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name=${app}_loadjson --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name=${app}_logcom --action="start" --log_path="systemd" --line_match="ready"
#ynh_systemd_action --service_name=${app}_milters --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name=${app}_mirror --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name=${app}_webhook --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name=${app}_worker --action="start" --log_path="systemd" --line_match="ready"
ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="start" --log_path="systemd" --line_match="Started"
#================================================= ynh_systemd_action --service_name="uwsgi-app@$app.service" --action="start" --log_path="systemd" --line_match="Started"
# GENERIC FINALIZATION
#=================================================
# RELOAD NGINX
#=================================================
ynh_script_progression --message="Reloading NGINX web server..."
ynh_systemd_action --service_name=nginx --action=reload ynh_systemd_action --service_name=nginx --action=reload