#!/bin/bash #================================================= # GENERIC STARTING #================================================= # IMPORT GENERIC HELPERS #================================================= source /usr/share/yunohost/helpers source _common.sh #================================================= # MANAGE FAILURE OF THE SCRIPT #================================================= # 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 domain path_url admin is_public language export prefix=lime_ export db_name=$(ynh_sanitize_dbid $app) export db_user=$db_name #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS #================================================= export final_path=/var/www/$app test ! -e "$final_path" || ynh_die "This path already contains a folder" # Normalize the url path syntax path_url=$(ynh_normalize_url_path $path_url) # Check web path availability ynh_webpath_available $domain $path_url # Register (book) web path ynh_webpath_register $app $domain $path_url #================================================= # STANDARD MODIFICATIONS #================================================= # INSTALL DEPENDENCIES #================================================= ynh_install_app_dependencies $pkg_dependencies #================================================= # STORE SETTINGS FROM MANIFEST #================================================= ynh_save_args domain admin is_public language final_path prefix path_url db_name db_user #================================================= # CREATE A SQL BDD #================================================= ynh_mysql_setup_db $db_user $db_name export db_pwd=$(ynh_app_setting_get $app mysqlpwd) #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source "$final_path" #================================================= # NGINX CONFIGURATION #================================================= # Create a dedicated nginx config ynh_add_nginx_config #================================================= # CREATE DEDICATED USER #================================================= # Create a system user ynh_system_user_create $app #================================================= # PHP-FPM CONFIGURATION #================================================= # Create a dedicated php-fpm config ynh_add_fpm_config #================================================= # SPECIFIC SETUP #================================================= # CONFIGURE #================================================= ynh_configure config.php "$final_path/application/config/config.php" #================================================= # LOAD SQL CONFIG #================================================= cp $final_path/installer/sql/create-mysql.sql ./structure.sql ynh_replace_string "\`prefix_" "\`$prefix" ./structure.sql mysql -u $db_user -p$db_pwd $db_user < ./structure.sql ynh_configure data.sql ./data.sql mysql -u $db_user -p$db_pwd $db_user < ./data.sql #================================================= # Add nice themes #================================================= ynh_setup_source "$final_path/upload/templates/libreform" libreform #ynh_setup_source "$final_path/upload/templates/librepoll" librepoll #================================================= # STORE THE CHECKSUM OF THE CONFIG FILE #================================================= # Calculate and store the config file checksum into the app settings ynh_store_file_checksum "$final_path/application/config/config.php" #================================================= # GENERIC FINALISATION #================================================= # SECURING FILES AND DIRECTORIES #================================================= # Set permissions set_permissions #================================================= # Randomize Password user #================================================= # Permission should be correctly set before to do this ls_cli=$final_path/application/commands/console.php set +x ynh_exec_as "$app" php $ls_cli resetpassword "$admin" "$(ynh_string_random 24)" set -x #================================================= # SETUP FAIL2BAN #================================================= #ynh_add_fail2ban_config "/var/log/nginx/${domain}-error.log" "PHP message: Leed: wrong login for .* client: " 5 #================================================= # SETUP SSOWAT #================================================= yunohost app addaccess $app -u $admin ynh_sso_access "/index.php?r=admin,/index.php?r=plugins,/scripts" #================================================= # RELOAD NGINX #================================================= systemctl reload nginx #================================================= # SEND A README FOR THE ADMIN #================================================= ynh_print_OFF message="You can now create a poll on this address: https://${domain}${path_url}/admin/ If you facing an issue or want to improve this app, please open a new issue in this project: https://github.com/YunoHost-Apps/limesurvey_ynh" ynh_send_readme_to_admin "$message" "$admin" ynh_print_ON