1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/bozon_ynh.git synced 2024-09-03 18:16:09 +02:00

Refractoring & stretch update

This commit is contained in:
ewilly 2018-05-26 13:17:41 +02:00
parent 22fdb2ec59
commit ba769be23a
8 changed files with 27 additions and 114 deletions

View file

@ -16,7 +16,7 @@ location __PATH__/ {
add_header X-Permitted-Cross-Domain-Policies none;
# Set max upload size
client_max_body_size __FILESIZE__;
client_max_body_size 10G;
client_body_timeout 30m;
proxy_read_timeout 30m;
fastcgi_buffers 64 4K;

View file

@ -1,6 +1,6 @@
[__NAME__]
[__NAMETOCHANGE__]
; The address on which to accept FastCGI requests.
listen = /var/run/php5-fpm-__NAME__.sock
listen = /var/run/php5-fpm-__NAMETOCHANGE__.sock
; Set permissions for unix socket, if one is used.
listen.owner = www-data
@ -8,8 +8,8 @@ listen.group = www-data
listen.mode = 0600
; Unix user/group of processes.
user = __NAME__
group = __NAME__
user = __USER__
group = __USER__
; Choose how the process manager will control the number of child processes.
pm = dynamic
@ -65,7 +65,7 @@ catch_workers_output = yes
clear_env = no
; Additional php.ini defines, specific to this pool of workers.
php_value[upload_max_filesize] = __FILESIZE__
php_value[post_max_size] = __POSTSIZE__
php_value[upload_max_filesize] = 10G
php_value[post_max_size] = 10G
php_value[default_charset] = UTF-8
php_value[always_populate_raw_post_data] = -1

View file

@ -51,23 +51,6 @@
},
"default": false
},
{
"name": "language",
"ask": {
"en": "Language (if the browser language is not detected)",
"fr": "Langue (si la langue du navigateur n'est pas détectée)"
},
"choices": ["de","en","es","fr"],
"default": "en"
},
{
"name": "filesize",
"ask": {
"en": "Define the file upload size limit",
"fr": "Définissez la taille limite de téléchargement"
},
"default": "2G"
},
{
"name": "admin",
"type": "user",

View file

@ -38,40 +38,6 @@ myynh_clean_source () {
[ -e "$TMPDIR/.gitignore" ] && rm -r "$TMPDIR/.gitignore"
}
# Create a dedicated nginx config
myynh_add_nginx_config () {
ynh_backup_if_checksum_is_different "$nginx_conf" 1
cp ../conf/nginx.conf "$nginx_conf"
# To avoid a break by set -u, use a void substitution ${var:-}. If the variable is not set, it's simply set with an empty variable.
# Substitute in a nginx config file only if the variable is not empty
if test -n "${path_url:-}"; then
if [ "${path_url:-}" != "/" ]; then
ynh_replace_string "^#sub_path_only " "" "$nginx_conf"
ynh_replace_string "__PATH__" "$path_url" "$nginx_conf"
else
ynh_replace_string "location\( \(=\|~\|~\*\|\^~\)\)\? __PATH__/" "location\1 $path_url" "$nginx_conf"
fi
fi
[ -n "${final_path:-}" ] && ynh_replace_string "__FINALPATH__" "$final_path" "$nginx_conf"
[ -n "${app:-}" ] && ynh_replace_string "__NAME__" "$app" "$nginx_conf"
[ -n "${filesize:-}" ] && ynh_replace_string "__FILESIZE__" "$filesize" "$nginx_conf"
ynh_store_file_checksum "$nginx_conf"
systemctl reload nginx
}
# Create a dedicated php-fpm config
myynh_add_fpm_config () {
ynh_backup_if_checksum_is_different "$phpfpm_conf" 1
cp ../conf/php-fpm.conf "$phpfpm_conf"
postsize=${filesize%?}.1${filesize: -1}
ynh_replace_string "__FINALPATH__" "$final_path" "$phpfpm_conf"
ynh_replace_string "__NAME__" "$app" "$phpfpm_conf"
ynh_replace_string "__FILESIZE__" "$filesize" "$phpfpm_conf"
ynh_replace_string "__POSTSIZE__" "$postsize" "$phpfpm_conf"
chown root: "$phpfpm_conf"
ynh_store_file_checksum "$phpfpm_conf"
systemctl reload php5-fpm
}
myynh_set_permissions () {
[ $(find "$final_path" -type f | wc -l) -gt 0 ] && find "$final_path" -type f | xargs chmod 0644
[ $(find "$final_path" -type d | wc -l) -gt 0 ] && find "$final_path" -type d | xargs chmod 0755

View file

@ -12,8 +12,6 @@ app=$YNH_APP_INSTANCE_NAME
domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH
is_public=$YNH_APP_ARG_IS_PUBLIC
language=$YNH_APP_ARG_LANGUAGE
filesize=$YNH_APP_ARG_FILESIZE
admin=$YNH_APP_ARG_ADMIN
password=$YNH_APP_ARG_PASSWORD
backup_core_only=$YNH_APP_ARG_BACKUP_CORE_ONLY
@ -21,10 +19,6 @@ backup_core_only=$YNH_APP_ARG_BACKUP_CORE_ONLY
# definie useful vars
final_path="/var/www/$app"
data_path="/home/yunohost.app/$app"
bozon_conf="$final_path/config.php"
bozon_auto_dropzone_php="$final_path/core/auto_dropzone.php"
nginx_conf="/etc/nginx/conf.d/$domain.d/$app.conf"
phpfpm_conf="/etc/php5/fpm/pool.d/$app.conf"
# check domain/path availability
path_url=$(ynh_normalize_url_path "$path_url")
@ -42,8 +36,6 @@ ynh_install_app_dependencies "$PKG_DEPENDENCIES"
ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_set "$app" path "$path_url"
ynh_app_setting_set "$app" is_public $is_public
ynh_app_setting_set "$app" filesize "$filesize"
ynh_app_setting_set "$app" language "$language"
ynh_app_setting_set "$app" admin_user "$admin"
ynh_app_setting_set "$app" backup_core_only $backup_core_only
@ -58,23 +50,6 @@ ynh_setup_source "$TMPDIR"
myynh_clean_source
mv "$TMPDIR" "$final_path"
# configure config file
# language
ynh_replace_string "default_language='en'" "default_language='$language'" "$bozon_conf"
# max upload file size
case ${filesize: -1} in
g|G)
max_length=$((${filesize%?}*1024))
;;
*)
max_length=${filesize%?}
;;
esac
ynh_replace_string "max_length=2048" "max_length=$max_length" "$bozon_conf"
ynh_store_file_checksum "$bozon_conf"
# create private & data folders
myynh_create_dir "$final_path/private"
myynh_create_dir "$data_path/uploads"
@ -86,10 +61,18 @@ ln -s "$data_path/thumbs" "$final_path/thumbs"
myynh_set_permissions
# configure nginx settings
myynh_add_nginx_config
if test -n "${path_url:-}"; then
if [ "${path_url:-}" != "/" ]; then
ynh_replace_string "^#sub_path_only " "" "../conf/nginx.conf"
ynh_replace_string "__PATH__" "$path_url" "../conf/nginx.conf"
else
ynh_replace_string "location\( \(=\|~\|~\*\|\^~\)\)\? __PATH__/" "location\1 $path_url" "../conf/nginx.conf"
fi
fi
ynh_add_nginx_config
# copy and set php-fpm configuration
myynh_add_fpm_config
ynh_add_fpm_config
# set temporary public access for curl call
ynh_app_setting_set "$app" unprotected_uris "/"

View file

@ -21,8 +21,6 @@ domain=$(ynh_app_setting_get "$app" domain)
# definie useful vars
final_path="/var/www/$app"
data_path="/home/yunohost.app/$app"
nginx_conf="/etc/nginx/conf.d/$domain.d/$app.conf"
phpfpm_conf="/etc/php5/fpm/pool.d/$app.conf"
# create a full backup (core+datas) if app installed
if [ $(yunohost app list -i -f "$app" | wc -l) -gt 1 ]; then

View file

@ -25,8 +25,6 @@ backup_core_only=$(ynh_app_setting_get "$app" backup_core_only)
# definie useful vars
final_path="/var/www/$app"
data_path="/home/yunohost.app/$app"
nginx_conf="/etc/nginx/conf.d/$domain.d/$app.conf"
phpfpm_conf="/etc/php5/fpm/pool.d/$app.conf"
# check domain/path availability
ynh_webpath_available "$domain" "$path_url"
@ -39,8 +37,8 @@ ynh_install_app_dependencies "$PKG_DEPENDENCIES"
ynh_system_user_create "$app"
# restore sconf files
ynh_restore_file "$nginx_conf"
ynh_restore_file "$phpfpm_conf"
ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_restore_file "/etc/php5/fpm/pool.d/$app.conf"
# restore source
ynh_restore_file "$final_path"

View file

@ -12,18 +12,12 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get "$app" domain)
path_url=$(ynh_app_setting_get "$app" path)
is_public=$(ynh_app_setting_get "$app" is_public)
filesize=$(ynh_app_setting_get "$app" filesize)
language=$(ynh_app_setting_get "$app" language)
admin_user=$(ynh_app_setting_get "$app" admin_user)
backup_core_only=$(ynh_app_setting_get "$app" backup_core_only)
# definie useful vars
final_path="/var/www/$app"
data_path="/home/yunohost.app/$app"
bozon_conf="$final_path/config.php"
bozon_auto_dropzone_php="$final_path/core/auto_dropzone.php"
nginx_conf="/etc/nginx/conf.d/$domain.d/$app.conf"
phpfpm_conf="/etc/php5/fpm/pool.d/$app.conf"
# use prior backup and restore on error only if backup feature exists on installed instance
if [ -f "/etc/yunohost/apps/$app/scripts/backup" ] ; then
@ -49,27 +43,14 @@ myynh_clean_source
cp -a "$TMPDIR/." "$final_path"
rm -R "$TMPDIR"
# Only add 'max_length' line in config.php if does not exist yet
if [ $(grep "max_length=" "$bozon_conf" | wc -l) -eq 0 ]; then
case ${filesize: -1} in
g|G)
max_length=$((${filesize%?}*1024))
;;
*)
max_length=${filesize%?}
;;
esac
sed -i "54i\$max_length=$max_length;" "$bozon_conf"
fi
# set permissions
myynh_set_permissions
# configure nginx settings
myynh_add_nginx_config
ynh_add_nginx_config
# copy and set php-fpm configuration
myynh_add_fpm_config
ynh_add_fpm_config
# if app is private, remove url to SSOWat conf from skipped_uris
if [ $is_public -eq 0 ]
@ -84,5 +65,9 @@ else
ynh_app_setting_set "$app" unprotected_uris "/"
fi
# Purge php sessions stored in /var/lib/php5/sessions
# Purge php sessions stored in /var/lib/phpx/sessions
if [ -d "/usr/lib/php5" ]; then
[ -x /usr/lib/php5/sessionclean ] && /usr/lib/php5/sessionclean
elif [ -d "/usr/lib/php" ]; then
[ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean
fi