2019-03-12 00:02:09 +01:00
#!/bin/bash
2015-09-27 00:52:48 +02:00
2019-03-12 00:02:09 +01:00
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
2015-09-27 00:52:48 +02:00
2019-03-12 00:02:09 +01:00
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
ynh_abort_if_errors
#=================================================
# RETRIEVE ARGUMENTS FROM THE MANIFEST
#=================================================
domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH
is_public=$YNH_APP_ARG_IS_PUBLIC
2020-11-28 10:57:02 +01:00
admin=$YNH_APP_ARG_ADMIN
2021-03-01 11:36:32 +01:00
password=$YNH_APP_ARG_PASSWORD
2021-11-27 08:27:38 +01:00
phpversion=$YNH_PHP_VERSION
2022-03-13 16:00:14 +01:00
timezone="$(cat /etc/timezone)"
2019-03-12 00:02:09 +01:00
app=$YNH_APP_INSTANCE_NAME
#=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Validating installation parameters..." --weight=1
2019-03-12 00:02:09 +01:00
final_path=/var/www/$app
test ! -e "$final_path" || ynh_die "This path already contains a folder"
# Register (book) web path
2020-11-28 10:09:39 +01:00
ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url
2019-03-12 00:02:09 +01:00
#=================================================
# STORE SETTINGS FROM MANIFEST
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Storing installation settings..."
2019-03-12 00:02:09 +01:00
2020-11-28 10:09:39 +01:00
ynh_app_setting_set --app=$app --key=domain --value=$domain
ynh_app_setting_set --app=$app --key=path --value=$path_url
2020-11-28 10:57:02 +01:00
ynh_app_setting_set --app=$app --key=admin --value=$admin
2021-11-27 08:27:38 +01:00
ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion
2019-03-12 00:02:09 +01:00
#=================================================
# STANDARD MODIFICATIONS
#=================================================
# INSTALL DEPENDENCIES
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Installing dependencies..."
2019-03-12 00:02:09 +01:00
2021-01-11 16:44:58 +01:00
ynh_exec_warn_less ynh_install_app_dependencies $pkg_dependencies
2019-03-12 00:02:09 +01:00
#=================================================
2020-11-28 10:09:39 +01:00
# CREATE A POSTGRESQL DATABASE
2019-03-12 00:02:09 +01:00
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Creating a PostgreSQL database..." --weight=2
2019-03-12 00:02:09 +01:00
2023-01-20 03:09:14 +01:00
db_user=$(ynh_sanitize_dbid --db_name=$app)
ynh_app_setting_set --app=$app --key=db_user --value=$db_user
ynh_psql_test_if_first_run # Make sure PSQL is installed
2023-01-22 23:30:26 +01:00
ynh_psql_setup_db --db_user=$db_user --db_name="${db_user}_tmp" # This helper will create db_user, generate db_user_pwd. But it will also create a database Noalyss does not need, hence the "tmp" flag
ynh_psql_drop_db "${db_user}_tmp" # Remove the useless database just created with the "tmp" flag.
2019-03-12 00:02:09 +01:00
2023-01-20 03:09:14 +01:00
# Give permission to db_user to create databases, as with version 9025 at least, standard Noalyss operation (can be tweaked with shared server install process - with potentially less features?) will require to create several databases: one admin database (account_repository), one database per accounting template (two are populated at install by default: mod1, mod2, etc.), one per accounting folder that will be created while using the app, etc.
if [ -n "$db_user" ]; then
2023-01-19 03:30:32 +01:00
sql="ALTER USER $db_user CREATEDB"
ynh_psql_execute_as_root --sql="$sql"
fi
2019-03-12 00:02:09 +01:00
2021-07-04 10:23:53 +02:00
#=================================================
# CREATE DEDICATED USER
#=================================================
ynh_script_progression --message="Configuring system user..." --weight=1
# Create a system user
ynh_system_user_create --username=$app --home_dir="$final_path"
2019-03-12 00:02:09 +01:00
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
2023-01-22 12:56:27 +01:00
ynh_script_progression --message="Setting up source files..." --weight=5
2015-09-27 00:52:56 +02:00
2020-11-28 12:38:02 +01:00
ynh_app_setting_set --app=$app --key=final_path --value=$final_path
2019-03-12 00:02:09 +01:00
# Download, check integrity, uncompress and patch the source from app.src
2020-11-28 12:38:02 +01:00
ynh_setup_source --dest_dir="$final_path"
2015-09-27 01:21:26 +02:00
2021-07-04 10:23:53 +02:00
chmod 750 "$final_path"
chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path"
2019-03-12 00:02:09 +01:00
#=================================================
# PHP-FPM CONFIGURATION
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Configuring PHP-FPM..." --weight=3
2019-03-12 00:02:09 +01:00
2020-11-28 10:09:39 +01:00
# Create a dedicated PHP-FPM config
2021-11-21 22:02:12 +01:00
ynh_add_fpm_config --usage=low --footprint=low
2019-03-12 00:02:09 +01:00
2023-01-22 12:56:27 +01:00
#=================================================
# NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Configuring NGINX web server..." --weight=2
# Create a dedicated NGINX config
ynh_add_nginx_config
2021-03-02 10:09:52 +01:00
# =================================================
2019-03-12 00:02:09 +01:00
# MODIFY A CONFIG FILE
2021-03-02 10:09:52 +01:00
# =================================================
2022-04-14 11:18:38 +02:00
ynh_script_progression --message="Modifying $app config file..."
2020-11-28 10:09:39 +01:00
2022-04-14 11:18:38 +02:00
ynh_add_config --template="../conf/noalyss.conf" --destination="$final_path/include/config.inc.php"
2015-09-27 02:54:32 +02:00
2022-04-14 11:18:38 +02:00
chmod 650 "$final_path/include/config.inc.php"
chown $app: "$final_path/include/config.inc.php"
2021-11-27 08:27:38 +01:00
2023-02-07 04:16:50 +01:00
# Keep an archive of Noalyss' install.php script for it to be reachable by YNH restore script since the original file is deleted at the end of the install process (this archive is currently left unused, but it could be useful for future potential implementation such as scripting the admin admin user change - cf. annotations in Noalyss' /inlude/config.inc.php for use case).
2023-02-07 04:16:50 +01:00
cp "$final_path/html/install.php" "$final_path/html/install.php.archive"
2022-04-14 11:54:24 +02:00
2019-03-12 00:02:09 +01:00
#=================================================
# SETUP LOGROTATE
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Configuring log rotation..."
2015-09-28 00:31:48 +02:00
2019-03-12 00:02:09 +01:00
# Use logrotate to manage application logfile(s)
ynh_use_logrotate
#=================================================
# SETUP SSOWAT
#=================================================
2021-03-01 11:36:32 +01:00
ynh_script_progression --message="Configuring permissions..."
2019-03-12 00:02:09 +01:00
2020-11-28 10:09:39 +01:00
# Make app public if necessary or protect it
2019-03-12 00:02:09 +01:00
if [ $is_public -eq 1 ]
then
2021-03-01 11:36:32 +01:00
ynh_permission_update --permission="main" --add="visitors"
2019-03-12 00:02:09 +01:00
fi
2015-09-27 01:47:03 +02:00
2019-03-12 00:02:09 +01:00
#=================================================
# RELOAD NGINX
#=================================================
2020-11-28 10:09:39 +01:00
ynh_script_progression --message="Reloading NGINX web server..." --weight=2
2015-09-27 01:47:25 +02:00
2020-11-28 10:09:39 +01:00
ynh_systemd_action --service_name=nginx --action=reload
2015-09-27 22:57:03 +02:00
2021-03-02 09:46:56 +01:00
#=================================================
# SEND A README FOR THE ADMIN
#=================================================
2023-01-19 03:30:32 +01:00
ynh_script_progression --message="Sending a readme to the admin email address. Please check it to complete the installation process."
2021-03-02 09:46:56 +01:00
2023-01-23 05:06:09 +01:00
message="Noalyss installation is *almost* complete :)
2021-03-02 09:46:56 +01:00
2023-01-23 05:06:09 +01:00
To conclude, please open the admin configuration page of your ${app^} domain: https://$domain$path_url/install.php
You will have to:
2023-01-23 05:30:17 +01:00
1. Select the language you want and click on \"Continuer\" (FR) / \"Continue\" (EN).
2. Scroll the page down and click on the button \"Commencer la mise à jour ou l'installation ?\" (FR) / \"Start the update or the installation ?\" (EN)
2023-01-19 03:30:32 +01:00
3. Scroll to the bottom of the page and click on the button \"Essai effacement install.php et se connecter à NOALYSS\" (FR) / \"Try erasing install.php and log into NOALYSS\" (EN)
2021-03-02 09:46:56 +01:00
2023-01-23 05:06:09 +01:00
Once done, you will be able to log into Noalyss with your credentials:
-------------------------------------------
2023-01-23 05:16:50 +01:00
${app^}'s domain: https://$domain$path_url
${app^}'s admin user: $admin
${app^}'s admin password: $password
2023-01-23 05:06:09 +01:00
-------------------------------------------
Link to Noalyss' user documentation: https://www.noalyss.eu/?page_id=1031
2021-03-02 09:46:56 +01:00
2023-01-19 03:30:32 +01:00
Please find also for reference the credential for the dedicated PostgreSQL database user:
2023-01-23 05:06:09 +01:00
-------------------------------------------
Database's dedicated user: $app
2023-01-23 05:30:17 +01:00
Database's dedicated user's password: $db_pwd
2023-01-23 05:06:09 +01:00
-------------------------------------------
2021-03-02 09:46:56 +01:00
2023-01-23 05:06:09 +01:00
If you are facing any problem or want to improve this app, please open a new issue here: https://github.com/YunoHost-Apps/noalysse_ynh/issues
2023-01-23 05:16:50 +01:00
Or post a message in the forum: https://forum.yunohost.org/t/noalyss-beligum-and-french-accounting/7356"
2021-03-02 09:46:56 +01:00
ynh_send_readme_to_admin "$message"
2019-03-12 00:02:09 +01:00
#=================================================
# END OF SCRIPT
#=================================================
2015-09-28 01:09:37 +02:00
2020-11-28 10:38:48 +01:00
ynh_script_progression --message="Installation of $app completed" --last