#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # INSTALL DEPENDENCIES #================================================= ynh_script_progression --message="Installing dependencies..." --weight=6 ynh_install_nodejs --nodejs_version=$nodejs_version #================================================= # CREATE A POSTQRESQL DATABASE #================================================= ynh_script_progression --message="Creating a Redis database..." --weight=5 # Configure redis redis_db=$(ynh_redis_get_free_db) ynh_app_setting_set --app="$app" --key=redis_db --value="$redis_db" #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression --message="Setting up source files..." --weight=1 ynh_setup_source --dest_dir=$install_dir chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= # SETUP SYSTEMD #================================================= ynh_script_progression --message="Configuring a systemd service..." --weight=4 ynh_add_systemd_config ynh_add_nginx_config ynh_use_logrotate yunohost service add $app --description="Collaborative editor" --log="/var/log/$app/$app.log" #================================================= # MODIFY A CONFIG FILE #================================================= ynh_script_progression --message="Configuring $app..." --weight=6 abiword_path="null" soffice_path="null" if [[ "$export" == "abiword" ]] then abiword_path="\"$(which abiword)\"" elif [[ "$export" == "libreoffice" ]] then soffice_path="\"$(which soffice)\"" fi ynh_add_config --template="settings.json" --destination="$install_dir/settings.json" ynh_add_config --template="credentials.json" --destination="$install_dir/credentials.json" chmod 600 "$install_dir/settings.json" chown $app:$app "$install_dir/settings.json" chmod 600 "$install_dir/credentials.json" chown $app:$app "$install_dir/credentials.json" #================================================= # INSTALL ETHERPAD #================================================= ynh_script_progression --message="Installing $app..." --weight=10 pushd $install_dir ynh_use_nodejs env $ynh_node_load_PATH corepack enable env $ynh_node_load_PATH corepack prepare pnpm@latest --activate ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH ETHERPAD_PRODUCTION=true bin/installDeps.sh #ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH pnpm install --recursive --production popd #Buiding admin pushd $install_dir/admin ynh_use_nodejs ynh_exec_warn_less ynh_exec_as $app env $ynh_node_load_PATH corepack pnpm build mv $install_dir/admin/dist $install_dir/src/templates/admin/ popd #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=6 ynh_systemd_action --service_name=$app --action=restart --log_path=systemd --line_match="Your Etherpad version is" #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Installation of Etherpad completed" --last