#!/bin/bash #================================================= # GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= source _common.sh source /usr/share/yunohost/helpers #================================================= # RETRIEVE ARGUMENTS FROM THE MANIFEST #================================================= timezone="$(cat /etc/timezone)" secret=$(ynh_string_random --length=32) set_motd="" enable_registration="true" enable_linksharing="true" enable_taskattachments="true" enable_taskcomments="true" enable_emailreminders="true" enable_userdeletion="true" maxavatarsize=1024 maxitemsperpage=50 #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= backend_path=/opt/$app #================================================= # STORE SETTINGS FROM MANIFEST #================================================= ynh_app_setting_set --app=$app --key=set_motd --value=$set_motd ynh_app_setting_set --app=$app --key=enable_registration --value=$enable_registration ynh_app_setting_set --app=$app --key=enable_linksharing --value=$enable_linksharing ynh_app_setting_set --app=$app --key=enable_taskattachments --value=$enable_taskattachments ynh_app_setting_set --app=$app --key=enable_taskcomments --value=$enable_taskcomments ynh_app_setting_set --app=$app --key=enable_emailreminders --value=$enable_emailreminders ynh_app_setting_set --app=$app --key=enable_userdeletion --value=$enable_userdeletion ynh_app_setting_set --app=$app --key=maxavatarsize --value=$maxavatarsize ynh_app_setting_set --app=$app --key=maxitemsperpage --value=$maxitemsperpage #================================================= # INSTALL FRONTEND #================================================= ynh_script_progression --message="Setting up frontend..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$install_dir" --source_id="front" chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" chown -R $app:www-data "$install_dir" #================================================= # INSTALL BACKEND #================================================= ynh_script_progression --message="Setting up backend..." --weight=1 ynh_app_setting_set --app=$app --key=backend_path --value=$backend_path # Download, check integrity, uncompress and patch the source from app.src mkdir -p "$backend_path" mkdir -p "$backend_path/files" tempdir="$(mktemp -d)" ynh_setup_source --dest_dir=$tempdir --source_id="back" back="$(find $tempdir -name "vikunja-*" \! -name "*.sha256")" cp "$back" "$backend_path/vikunja" chmod +x "$backend_path/vikunja" chown -R $app:www-data "$backend_path/files" #================================================= # NGINX CONFIGURATION #================================================= ynh_script_progression --message="Configuring NGINX web server..." --weight=3 # Create a dedicated NGINX config ynh_add_nginx_config #================================================= # ADD A CONFIGURATION #================================================= ynh_script_progression --message="Adding a configuration file..." --weight=1 redis_db=$(ynh_redis_get_free_db) ynh_add_config --template="../conf/config.yml" --destination="$backend_path/config.yml" chmod 400 "$backend_path/config.yml" chown $app:$app "$backend_path/config.yml" #================================================= # SETUP SYSTEMD #================================================= ynh_script_progression --message="Configuring a systemd service..." --weight=1 ynh_add_systemd_config #================================================= # INTEGRATE SERVICE IN YUNOHOST #================================================= ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 yunohost service add $app --description="Self-hosted To-Do list application" --log="/var/log/$app/$app.log" #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service ynh_systemd_action --service_name=$app --action=start --log_path=systemd #--line_match="server started on" #================================================= # END OF SCRIPT #================================================= ynh_script_progression --message="Installation of $app completed" --last