#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh 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 #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= #REMOVEME? domain=$YNH_APP_ARG_DOMAIN path="/" #REMOVEME? is_public=$YNH_APP_ARG_IS_PUBLIC #REMOVEME? language=$YNH_APP_ARG_LANGUAGE #REMOVEME? app=$YNH_APP_INSTANCE_NAME # Installer variables _homedir="/var/$app/" #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= #REMOVEME? ynh_script_progression --message="Validating installation parameters..." # Register (book) web path #REMOVEME? ynh_webpath_register --app=$app --domain=$domain --path=$path #================================================= # STORE SETTINGS FROM MANIFEST #================================================= #REMOVEME? ynh_script_progression --message="Storing installation settings..." #REMOVEME? ynh_app_setting_set --app=$app --key=domain --value=$domain #REMOVEME? ynh_app_setting_set --app=$app --key=path --value=$path ynh_app_setting_set --app=$app --key=language --value=$language ynh_app_setting_set --app=$app --key=_homedir --value=$_homedir #================================================= # STANDARD MODIFICATIONS #================================================= # FIND AND OPEN A PORT #================================================= #REMOVEME? ynh_script_progression --message="Finding an available port..." # Find an available port #REMOVEME? port=$(ynh_find_port --port=8095) #REMOVEME? ynh_app_setting_set --app=$app --key=port --value=$port #================================================= # INSTALL DEPENDENCIES #================================================= #REMOVEME? ynh_script_progression --message="Installing OpenProject & its dependencies..." debian_release=$(lsb_release -r -s) #REMOVEME? ynh_install_app_dependencies $pkg_dependencies #REMOVEME? ynh_install_extra_app_dependencies --repo="deb https://dl.packager.io/srv/deb/opf/openproject/stable/$PROJECT_VERSION/debian $debian_release main" --package="$extra_pkg_dependencies" --key="https://dl.packager.io/srv/opf/openproject/key" #================================================= # CREATE DEDICATED USER #================================================= #REMOVEME? ynh_script_progression --message="Configuring system user..." # Create a system user #REMOVEME? ynh_system_user_create --username=$app #================================================= # CREATE A POSTGRESQL DATABASE #================================================= #REMOVEME? ynh_script_progression --message="Creating a PostgreSQL database..." #REMOVEME? ynh_psql_test_if_first_run #REMOVEME? db_name=$(ynh_sanitize_dbid --db_name=$app) #REMOVEME? db_user=$db_name #REMOVEME? ynh_app_setting_set --app=$app --key=db_name --value=$db_name #REMOVEME? ynh_psql_setup_db --db_user=$db_user --db_name=$db_name #REMOVEME? db_pwd=$(ynh_app_setting_get --app=$app --key=psqlpwd) #================================================= # NGINX CONFIGURATION #================================================= ynh_script_progression --message="Configuring NGINX web server..." # Create a dedicated NGINX config ynh_add_nginx_config #================================================= # SPECIFIC SETUP #================================================= # OPENPROJECT CONFIGURATION #================================================= ynh_script_progression --message="Configuring OpenProject..." mkdir -p "/etc/openproject/" _openproject_install_dat="/etc/openproject/installer.dat" #TODO Not sure about this email sending. To be tested. cat >> "$_openproject_install_dat"<< EOF postgres/autoinstall reuse postgres/db_host 127.0.0.1 postgres/db_port 5432 postgres/db_username $db_user postgres/db_password $db_pwd postgres/db_name $db_name server/autoinstall skip server/hostname $domain server/protocol HTTPS smtp/autoinstall smtp smtp/authentication none smtp/host 127.0.0.1 smtp/port 25 smtp/domain $domain smtp/admin_email admin@$domain memcached/autoinstall install server/hostname $domain server/ssl no EOF ynh_store_file_checksum --file="$_openproject_install_dat" chmod 750 "/etc/openproject/" chmod -R o-rwx "/etc/openproject/" chown -R $app:$app "/etc/openproject/" openproject config:set PORT=$port openproject config:set SERVER_PROTOCOL_FORCE_HTTPS="true" openproject config:set SERVER_HOSTNAME=$domain openproject config:set SERVER_PATH_PREFIX=$path openproject configure >> "$YNH_STDINFO" #================================================= # GENERIC FINALIZATION #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= ynh_script_progression --message="Integrating service in YunoHost..." yunohost service add $app #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." # Start a systemd service ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" #================================================= # SETUP SSOWAT #================================================= #REMOVEME? ynh_script_progression --message="Configuring permissions..." # Make app public if necessary #REMOVEME? if [ $is_public -eq 1 ] then # Everyone can access the app. # The "main" permission is automatically created before the install script. #REMOVEME? ynh_permission_update --permission="main" --add="visitors" fi #REMOVEME? ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --auth_header="false" --show_tile="false" --protected="true" #================================================= # RELOAD NGINX #================================================= #REMOVEME? ynh_script_progression --message="Reloading NGINX web server..." #REMOVEME? ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Installation of $app completed"