1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/wallabag2_ynh.git synced 2024-10-01 13:35:06 +02:00
wallabag2_ynh/scripts/install
eric_G 95df3db6aa
Testing (#216)
* Fix hook (#206)

* Auto-update READMEs

* fix hook

---------

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Update manifest.toml (#208)

* Update manifest.toml

* Auto-update READMEs

* Add parameters.yml (#209)

* Add parameters.yml

* Update upgrade

* Update change_url

* Function (#210)

* Add parameters.yml

* Update upgrade

* add function

* fix: add time for php script to run a 'long sync' with an application (#213)

* Auto-update READMEs

* [autopatch] Automatic patch attempt for helpers 2.1 (#214)

* Testing (#207)

* Fix hook (#206)

* Auto-update READMEs

* fix hook

---------

Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Update manifest.toml (#208)

* Update manifest.toml

* Auto-update READMEs

* Add parameters.yml (#209)

* Add parameters.yml

* Update upgrade

* Update change_url

* Function (#210)

* Add parameters.yml

* Update upgrade

* add function

---------

Co-authored-by: Kayou <pierre@kayou.io>
Co-authored-by: yunohost-bot <yunohost@yunohost.org>

* Auto-update READMEs

* [autopatch] Automatic patch attempt for helpers 2.1

* cleaning

---------

Co-authored-by: eric_G <46165813+ericgaspar@users.noreply.github.com>
Co-authored-by: Kayou <pierre@kayou.io>
Co-authored-by: Yunohost-Bot <>

* Auto-update READMEs

* Update manifest.toml

* Auto-update READMEs

* fix

* Auto-update READMEs

* Update manifest.toml

* Update manifest.toml

* Auto-update READMEs

* cleaning

---------

Co-authored-by: Kayou <pierre@kayou.io>
Co-authored-by: yunohost-bot <yunohost@yunohost.org>
Co-authored-by: Gofannon <17145502+Gofannon@users.noreply.github.com>
Co-authored-by: YunoHost Bot <yunohost-bot@users.noreply.github.com>
2024-09-10 13:50:50 +02:00

85 lines
2.8 KiB
Bash

#!/bin/bash
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# INITIALIZE AND STORE SETTINGS
#=================================================
# Generate random DES key & password
deskey=$(ynh_string_random --length=24)
ynh_app_setting_set --key="deskey" --value="$deskey"
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression "Setting up source files..."
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$install_dir"
# Create log dir/file is it useless?
mkdir -p "$install_dir/var/logs/"
touch "$install_dir/var/logs/prod.log"
# Set permissions to app files
# Restrict rights to Wallabag user only
if [ -e "$install_dir/var/cache/prod/appProdProjectContainer.php" ]; then
chmod 700 "$install_dir/var/cache/prod/appProdProjectContainer.php"
fi
#=================================================
# APP INITIAL CONFIGURATION
#=================================================
ynh_script_progression "Adding $app's configuration files..."
ynh_config_add --template="parameters.yml" --destination="$install_dir/app/config/parameters.yml"
# Install dependencies and Wallabag
php_exec wallabag:install
# Add users to Wallabag
for username in $(ynh_user_list); do
user_email=$(ynh_user_get_info --username="$username" --key=mail)
# We don't care about that thanks to LDAP
user_pass=$(ynh_string_random)
php_exec fos:user:create "$username" "$user_email" "$user_pass"
done
# Set admin user
php_exec fos:user:promote --super "$admin"
# Configure Wallabag instance URL
ynh_mysql_db_shell <<< "UPDATE internal_setting SET value = 'https://$domain$path' WHERE name = 'wallabag_url'"
#=================================================
# SETUP HOOKS
#=================================================
ynh_replace --match="__APP__" --replace="$app" --file="../hooks/post_user_create"
ynh_replace --match="__APP__" --replace="$app" --file="../hooks/post_user_delete"
#=================================================
# SYSTEM CONFIGURATION
#=================================================
ynh_script_progression "Adding system configurations related to $app..."
ynh_config_add_nginx
ynh_config_add_phpfpm
ynh_config_add_logrotate "$install_dir/var/logs/prod.log"
# Create a dedicated Fail2Ban config
ynh_config_add_fail2ban --logpath="$install_dir/var/logs/prod.log" --failregex='app.ERROR: Authentication failure for user "([\w]+)?", from IP "<HOST>"'
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression "Installation of $app completed"