-
Notifications
You must be signed in to change notification settings - Fork 13
/
install
executable file
·152 lines (117 loc) · 4.64 KB
/
install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
# source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# MANAGE FAILURE OF THE SCRIPT
#=================================================
ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée.
#=================================================
# RETRIEVE ARGUMENTS FROM THE MANIFEST
#=================================================
domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH
admin_user=$YNH_APP_ARG_ADMIN_USER
upload_password=$YNH_APP_ARG_UPLOAD_PASSWORD
is_public=$YNH_APP_ARG_IS_PUBLIC
app=$YNH_APP_INSTANCE_NAME
#=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS
#=================================================
final_path=/var/www/$app
test ! -e "$final_path" || ynh_die "This path already contains a folder"
# Normalize the url path syntax
path_url=$(ynh_normalize_url_path $path_url)
# Check web path availability
ynh_webpath_available $domain $path_url
# Register (book) web path
ynh_webpath_register $app $domain $path_url
#=================================================
# STORE SETTINGS FROM MANIFEST
#=================================================
ynh_app_setting_set $app domain $domain
ynh_app_setting_set $app path $path_url
ynh_app_setting_set $app admin $admin_user
ynh_app_setting_set $app is_public $is_public
#=================================================
# STANDARD MODIFICATIONS
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_app_setting_set $app final_path $final_path
ynh_setup_source "$final_path" # Télécharge la source, décompresse et copie dans $final_path
#=================================================
# NGINX CONFIGURATION
#=================================================
# Create a dedicated nginx config
ynh_add_nginx_config
#=================================================
# CREATE DEDICATED USER
#=================================================
# Create a system user
ynh_system_user_create $app
#=================================================
# PHP-FPM CONFIGURATION
#=================================================
# Create a dedicated php-fpm config
ynh_add_fpm_config
#=================================================
# SPECIFIC SETUP
#=================================================
# SET AND SAVE THE UPLOAD PASSWORD
#=================================================
jirafeauconfigfile="$final_path/lib/config.local.php"
cp "../conf/config.local.php" "$jirafeauconfigfile"
# Set and save upload password, allowing an empty one
if [ -z "$upload_password" ]
then
ynh_replace_string "YNH_UPLOAD_PASSWORD" "" "$jirafeauconfigfile"
ynh_app_setting_set $app upload_password ""
else
ynh_replace_string "YNH_UPLOAD_PASSWORD" "\'$upload_password\'" "$jirafeauconfigfile"
ynh_app_setting_set $app upload_password "$upload_password"
fi
#=================================================
# CONFIGURE JIRAFEAU
#=================================================
var_root=/home/yunohost.app/$app
ynh_replace_string "YNH_DOMAIN" "$domain" "$jirafeauconfigfile"
if [ "$path_url" = "/" ]
then
ynh_replace_string "YNH_WWW_PATH" "" "$jirafeauconfigfile"
else
ynh_replace_string "YNH_WWW_PATH" "$path_url" "$jirafeauconfigfile"
fi
ynh_replace_string "YNH_VAR_ROOT" "$var_root" "$jirafeauconfigfile"
ynh_replace_string "YNH_ADMIN_USER" "$admin_user" "$jirafeauconfigfile"
# Calculate and store the config file checksum into the app settings
ynh_store_file_checksum "$jirafeauconfigfile"
# Remove the install.php
rm $final_path/install.php
#=================================================
# GENERIC FINALISATION
#=================================================
# SECURING FILES AND DIRECTORIES
#=================================================
chown -R root: $final_path
mkdir -p $var_root/{files,links,async,block}
chown -R $app:root $var_root
chmod -R 700 $var_root
#=================================================
# SETUP SSOWAT
#=================================================
ynh_app_setting_set $app unprotected_uris "/"
if [ $is_public -eq 0 ]
then
domain_regex=$(echo "$domain" | sed 's@-@.@g')
[ "$path_url" = "/" ] && path_url=""
ynh_app_setting_set $app protected_regex "$domain_regex$path_url/$","$domain_regex$path_url/admin.php.*$"
fi
#=================================================
# RELOAD NGINX
#=================================================
systemctl reload nginx