1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/bonfire_ynh.git synced 2024-09-03 18:16:01 +02:00
bonfire_ynh/scripts/install
2023-08-13 14:02:24 +02:00

105 lines
4.5 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
ynh_install_nodejs --nodejs_version=16.13.0 # TODO : need to decide of a better version
ynh_use_nodejs
secret_key_base=$(ynh_string_random --length=24)
signing_salt=$(ynh_string_random --length=24)
encryption_salt=$(ynh_string_random --length=24)
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression --message="Setting up source files..." --weight=1
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir"
chmod -R o-rwx "$install_dir"
chown -R $app:www-data "$install_dir"
#=================================================
# NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Configuring NGINX web server..." --weight=1
# Create a dedicated NGINX config
ynh_add_nginx_config
#=================================================
# ADD A CONFIGURATION
#=================================================
ynh_script_progression --message="Adding a configuration file..." --weight=1
ynh_add_config --template="../conf/.env" --destination="$install_dir/.env"
chmod 400 "$install_dir/.env"
chown $app:$app "$install_dir/.env"
# max file upload size
MEDIA_UPLOAD_SIZE="${media_upload_size//[!0-9]/}000000"
ynh_replace_string --match_string="UPLOAD_LIMIT=MEDIA_UPLOAD_SIZE" --replace_string="UPLOAD_LIMIT=$MEDIA_UPLOAD_SIZE" --target_file="$install_dir/.env"
# Secret keys
SECRET_KEY_BASE=$(ynh_string_random)
SIGNING_SALT=$(ynh_string_random)
ENCRYPTION_SALT=$(ynh_string_random)
ynh_replace_string --match_string="__SECRET_KEY_BASE__" --replace_string="$SECRET_KEY_BASE" --target_file="$install_dir/.env"
ynh_replace_string --match_string="__SIGNING_SALT__" --replace_string="$SIGNING_SALT" --target_file="$install_dir/.env"
ynh_replace_string --match_string="__ENCRYPTION_SALT__" --replace_string="$ENCRYPTION_SALT" --target_file="$install_dir/.env"
#=================================================
# SPECIFIC SETUP
#=================================================
source $install_dir/.env
export WITH_DOCKER=no # or source .env ? # Using this for now
ynh_script_progression --message="Configuring Bonfire release..." --weight=1
cd $install_dir
ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no mix local.hex --force" # install Hex in non-interractive way
ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no just config-basic"
#ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no just mix bonfire.deps .update"
#=================================================
# Building the release
#=================================================
ynh_script_progression --message="Building Bonfire release..." --weight=1
export TERM=linux # why is that not defined ?
export TERMINFO=/etc/terminfo
### DONT USE GLOBAL NPM INSTALL
ynh_replace_string --match_string="npm install --global" --replace_string="npm install" --target_file="$install_dir/justfile"
ynh_exec_warn ynh_exec_as $app $ynh_node_load_PATH -s $SHELL -lc "WITH_DOCKER=no just rel-build"
#ynh_exec_warn just rel-build # node needs (root) access to /usr/local/lib/node_modules
#=================================================
# Run the release
#=================================================
release_folder="_build/prod/rel/bonfire"
ynh_script_progression --message="Running database migrations..." --weight=1
# Database created before, let's run the migrations
ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no just cmd $release_folder/bin/bonfire eval 'EctoSparkles.Migrator.migrate()'"
ynh_script_progression --message="Starting Bonfire..." --weight=1
ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no just cmd $release_folder/bin/bonfire start"
# start bonfire as a daemon
ynh_script_progression --message="Starting Bonfire daemon..." --weight=1
ynh_exec_warn ynh_exec_as $app -s $SHELL -lc "WITH_DOCKER=no just cmd $release_folder/bin/bonfire start daemon"
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Installation of $app completed" --weight=1
ynh_script_progression --message="Now you need to sign-up, the first account will automatically be admin." --last