From 170737fcc31e649f32a721b71afa1172b35e518a Mon Sep 17 00:00:00 2001 From: anmol26s Date: Mon, 28 May 2018 17:54:43 +0530 Subject: [PATCH] Fixed https://github.com/YunoHost-Apps/monica_ynh/issues/13,https://github.com/YunoHost-Apps/monica_ynh/issues/3,tried to make app working state,use dedicate user --- check_process | 14 ++-- conf/.env | 89 ++++++++++++++++----- conf/CreateUser.php | 41 ---------- conf/nginx.conf | 6 +- conf/php-fpm.conf | 16 ++-- install | 1 - manifest.json | 14 +--- scripts/_common.sh | 188 ++++---------------------------------------- scripts/install | 40 +++++----- scripts/remove | 19 ++--- scripts/upgrade | 30 +++---- 11 files changed, 142 insertions(+), 316 deletions(-) delete mode 100644 conf/CreateUser.php delete mode 100644 install diff --git a/check_process b/check_process index 93f48ff..70b4c97 100644 --- a/check_process +++ b/check_process @@ -6,15 +6,10 @@ ;; Test complete ; Manifest domain="domain.tld" (DOMAIN) - path="/path" (PATH) + path="/" (PATH) admin="john" (USER) - language="fr" is_public=1 (PUBLIC|public=1|private=0) - admin_name="john" (USER) - admin_pass="08jtiig45f88r7" (PASSWORD) - admin_email="abc@example.com" - password="pass" - port="666" (PORT) + language="fr" ; Checks pkg_linter=1 setup_sub_dir=0 @@ -26,7 +21,7 @@ backup_restore=1 multi_instance=1 incorrect_path=0 - port_already_use=1 + port_already_use=0 change_url=0 ;;; Levels Level 1=auto @@ -41,3 +36,6 @@ Level 8=0 Level 9=0 Level 10=0 +;;; Options +Email= +Notification=none diff --git a/conf/.env b/conf/.env index cd613f8..e661fd8 100644 --- a/conf/.env +++ b/conf/.env @@ -1,7 +1,8 @@ -# Two choices: local|production. -APP_ENV=production +# Two choices: local|production. Use local if you want to install Monica as a +# development version. Use production otherwise. +APP_ENV=local -# true if you want to show debug information on error. For production, put this +# true if you want to show debug information on errors. For production, put this # to false. APP_DEBUG=false @@ -11,56 +12,71 @@ APP_DEBUG=false # Use `php artisan key:generate` to generate a random key. APP_KEY=ChangeMeBy32KeyLengthOrGenerated -# The URL of your application. -APP_URL=yunodomainyunopath +# Prevent information leakage by referring to IDs with hashIds instead of +# the actual IDs used in the database. +HASH_SALT=ChangeMeBy20+KeyLength +HASH_LENGTH=18 -# Frequency of creation of new log files. -# Possible values: single|daily|syslog|errorlog -APP_LOG=daily +# The URL of your application. +APP_URL= # Database information # To keep this information secure, we urge you to change the default password DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 +# You can use mysql unix socket if available, it overrides DB_HOST and DB_PORT values. +#DB_UNIX_SOCKET=/var/run/mysqld/mysqld.sock DB_DATABASE=yunobase DB_USERNAME=yunouser DB_PASSWORD=yunopass +DB_PREFIX= DB_TEST_DATABASE=monica_test DB_TEST_USERNAME=homestead DB_TEST_PASSWORD=secret # Mail credentials used to send emails from the application. -MAIL_DRIVER=smtp +MAIL_DRIVER=mail MAIL_HOST=127.0.0.1 MAIL_PORT=25 MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION= -MAIL_FROM_ADDRESS=yunomail -MAIL_FROM_NAME="Monica@Yunohost" +MAIL_FROM_ADDRESS=monica@yunodomain +MAIL_FROM_NAME="Monica" APP_EMAIL_NEW_USERS_NOTIFICATION=yunomail # Default timezone for new users. Users can change this setting inside the # application at their leisure. # Must be exactly one of the timezones used in this list: # https://github.com/monicahq/monica/blob/master/resources/views/settings/index.blade.php#L70 -APP_DEFAULT_TIMEZONE=America/New_York +APP_DEFAULT_TIMEZONE=US/Eastern + +# Default locale used in the application. +APP_DEFAULT_LOCALE=language # Ability to disable signups on your instance. Can be true or false. Default to false. APP_DISABLE_SIGNUP=true -# Specific to the hosted version on .com. You probably don't need those. -# Let them empty if you don't need them. -GOOGLE_ANALYTICS_APP_ID= -INTERCOM_APP_ID= -SENTRY_APP_ID= +# Set trusted proxy IP addresses. +# To trust all proxies that connect directly to your server, use a "*". +# To trust one or more specific proxies that connect directly to your server, use a comma separated list of IP addresses. +APP_TRUSTED_PROXIES= + +# Frequency of creation of new log files. Logs are written when an error occurs. +# Refer to config/logging.php for the possible values. +LOG_CHANNEL=daily + +# Error tracking. Specific to hosted version on .com. You probably don't need +# those. +SENTRY_SUPPORT=false +SENTRY_DSN= # Send a daily ping to https://version.monicahq.com to check if a new version # is available. When a new version is detected, you will have a message in the # UI, as well as the release notes for the new changes. Can be true or false. # Default to true. -CHECK_VERSION=false +CHECK_VERSION=true # Have access to paid features available on https://monicahq.com, for free. # Can be true or false. Default to false. @@ -72,12 +88,43 @@ REQUIRES_SUBSCRIPTION=false # Leave blank unless you know what you are doing. STRIPE_KEY= STRIPE_SECRET= -PAID_PLAN_FRIENDLY_NAME= -PAID_PLAN_ID= -PAID_PLAN_PRICE= +PAID_PLAN_MONTHLY_FRIENDLY_NAME= +PAID_PLAN_MONTHLY_ID= +PAID_PLAN_MONTHLY_PRICE= +PAID_PLAN_ANNUAL_FRIENDLY_NAME= +PAID_PLAN_ANNUAL_ID= +PAID_PLAN_ANNUAL_PRICE= # Change this only if you know what you are doing CACHE_DRIVER=database SESSION_DRIVER=file +SESSION_LIFETIME=120 QUEUE_DRIVER=sync +# Default filesystem to store uploaded files. +# Possible values: public|s3 +DEFAULT_FILESYSTEM=public + +# AWS keys for S3 when using this storage method +AWS_KEY= +AWS_SECRET= +AWS_REGION=us-east-1 +AWS_BUCKET= +AWS_SERVER= + +# Allow Two Factor Authentication feature on your instance +2FA_ENABLED=false + +# CLIENT ID and SECRET used for the official mobile application +# This is to make sure that only the mobile application that you approve can +# access the route to let your users sign in with their credentials +MOBILE_CLIENT_ID= +MOBILE_CLIENT_SECRET= + +# Allow to access general statistics about your instance through a public API +# call +ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false + +# Indicates that each user in the instance must comply to international policies +# like CASL or GDPR +POLICY_COMPLIANT=true diff --git a/conf/CreateUser.php b/conf/CreateUser.php deleted file mode 100644 index 4e0ca43..0000000 --- a/conf/CreateUser.php +++ /dev/null @@ -1,41 +0,0 @@ -insertGetId([ - 'api_key' => str_random(30), - ]); - - // populate user table - $userId = DB::table('users')->insertGetId([ - 'account_id' => $accountID, - 'first_name' => 'yuno_firstname', - 'last_name' => 'yuno_lastname', - 'email' => 'yuno_email', - 'password' => bcrypt('admin'), - 'timezone' => 'America/New_York', - 'remember_token' => str_random(10), - ]); - - $faker = Faker::create(); - - } -} diff --git a/conf/nginx.conf b/conf/nginx.conf index 79d96cd..512148d 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,5 +1,5 @@ -location ^~ YNH_EXAMPLE_PATH { - alias YNH_WWW_PATH; +location ^~ __PATH__ { + alias __FINALPATH__/public/; try_files $uri $uri/ @monica; index index.php; # Force https @@ -8,7 +8,7 @@ location ^~ YNH_EXAMPLE_PATH { } location ~ \.php { fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass unix:/run/php/php7.1-fpm.sock; + fastcgi_pass unix:/var/run/php7.1-fpm-__NAME__.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param REMOTE_USER $remote_user; diff --git a/conf/php-fpm.conf b/conf/php-fpm.conf index 2061166..1c70519 100644 --- a/conf/php-fpm.conf +++ b/conf/php-fpm.conf @@ -1,7 +1,7 @@ ; Start a new pool named 'www'. ; the variable $pool can we used in any directive and will be replaced by the ; pool name ('www' here) -[YNH_WWW_APP] +[__NAMETOCHANGE__] ; Per pool prefix ; It only applies on the following directives: @@ -24,7 +24,7 @@ ; specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. -listen = /var/run/php5-fpm-YNH_WWW_APP.sock +listen = /var/run/php7.1-fpm-__NAMETOCHANGE__.sock ; Set listen(2) backlog. A value of '-1' means unlimited. ; Default Value: 128 (-1 on FreeBSD and OpenBSD) @@ -50,8 +50,8 @@ listen.mode = 0600 ; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. -user = www-data -group = www-data +user = __USER__ +group = __USER__ ; Choose how the process manager will control the number of child processes. ; Possible Values: @@ -170,7 +170,7 @@ request_slowlog_timeout = 5s ; The log file for slow requests ; Default Value: not set ; Note: slowlog is mandatory if request_slowlog_timeout is set -slowlog = /var/log/nginx/YNH_WWW_APP.slow.log +slowlog = /var/log/nginx/__NAMETOCHANGE__.slow.log ; Set open file descriptor rlimit. ; Default Value: system defined value @@ -195,7 +195,7 @@ rlimit_core = 0 ; Chdir to this directory at the start. ; Note: relative path can be used. ; Default Value: current directory or / when chroot -chdir = /var/www/YNH_WWW_ALIAS +chdir = __FINALPATH__ ; Redirect worker stdout and stderr into main error log. If not set, stdout and ; stderr will be redirected to /dev/null according to FastCGI specs. @@ -238,12 +238,12 @@ catch_workers_output = yes ;php_admin_flag[log_errors] = on ;php_admin_value[memory_limit] = 32M -# Common values to change to increase file upload limit +; Common values to change to increase file upload limit ;php_value[upload_max_filesize] = 50M ;php_value[post_max_size] = 50M ;php_value[mail.add_x_header] = Off -# Other common parameters +; Other common parameters ;php_value[max_execution_time] = 600 ;php_value[max_input_time] = 300 ;php_value[memory_limit] = 256M diff --git a/install b/install deleted file mode 100644 index 80a6c79..0000000 --- a/install +++ /dev/null @@ -1 +0,0 @@ -yunohost app install /vagrant/monica_ynh/ --debug -n -a "domain=monica.ynh.local&path=/&admin=basti&is_public=0&language=en" diff --git a/manifest.json b/manifest.json index 5d809b1..7f35bf1 100644 --- a/manifest.json +++ b/manifest.json @@ -14,11 +14,12 @@ "url": "http://github.com/rndmh3ro/monica_ynh" }, "requirements": { - "yunohost": ">> 2.7.0" + "yunohost": ">> 2.7.2" }, "multi_instance": true, "services": [ "nginx", + "php7.1", "mysql" ], "arguments": { @@ -32,17 +33,6 @@ }, "example": "monica.com" }, - { - "name": "path", - "type": "path", - "ask": { - "en": "Currently it's only possible to install Monica on the root of a domain, eg. monica.example.com", - "fr": "Attention: Only install Monica on the domain root, e.g. monica.example.com" - }, - "example": "/", - "default": "/", - "choices": ["/"] - }, { "name": "admin", "type": "user", diff --git a/scripts/_common.sh b/scripts/_common.sh index a1818c5..7f031f3 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -4,49 +4,16 @@ # YUNOHOST 2.7 FORTHCOMING HELPERS # ============================================================================= -# Create a dedicated nginx config -# -# usage: ynh_add_nginx_config -ynh_add_nginx_config () { - finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf" - ynh_backup_if_checksum_is_different "$finalnginxconf" - sudo cp ../conf/nginx.conf "$finalnginxconf" - - # 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 - ynh_replace_string "__PATH__" "$path_url" "$finalnginxconf" - fi - if test -n "${domain:-}"; then - ynh_replace_string "__DOMAIN__" "$domain" "$finalnginxconf" - fi - if test -n "${port:-}"; then - ynh_replace_string "__PORT__" "$port" "$finalnginxconf" - fi - if test -n "${app:-}"; then - ynh_replace_string "__NAME__" "$app" "$finalnginxconf" - fi - if test -n "${final_path:-}"; then - ynh_replace_string "__FINALPATH__" "$final_path" "$finalnginxconf" - fi - ynh_store_file_checksum "$finalnginxconf" - - sudo systemctl reload nginx -} - -# Remove the dedicated nginx config -# -# usage: ynh_remove_nginx_config -ynh_remove_nginx_config () { - ynh_secure_remove "/etc/nginx/conf.d/$domain.d/$app.conf" - sudo systemctl reload nginx -} - # Create a dedicated php-fpm config # # usage: ynh_add_fpm_config -ynh_add_fpm_config () { - finalphpconf="/etc/php5/fpm/pool.d/$app.conf" +ynh_add_fpm7.1_config () { + # Configure PHP-FPM 7.1 by default + local fpm_config_dir="/etc/php/7.1/fpm" + local fpm_service="php7.1-fpm" + ynh_app_setting_set $app fpm_config_dir "$fpm_config_dir" + ynh_app_setting_set $app fpm_service "$fpm_service" + finalphpconf="$fpm_config_dir/pool.d/$app.conf" ynh_backup_if_checksum_is_different "$finalphpconf" sudo cp ../conf/php-fpm.conf "$finalphpconf" ynh_replace_string "__NAMETOCHANGE__" "$app" "$finalphpconf" @@ -57,59 +24,27 @@ ynh_add_fpm_config () { if [ -e "../conf/php-fpm.ini" ] then - finalphpini="/etc/php5/fpm/conf.d/20-$app.ini" + finalphpini="$fpm_config_dir/conf.d/20-$app.ini" ynh_backup_if_checksum_is_different "$finalphpini" sudo cp ../conf/php-fpm.ini "$finalphpini" sudo chown root: "$finalphpini" ynh_store_file_checksum "$finalphpini" fi - - sudo systemctl reload php5-fpm + sudo systemctl reload $fpm_service } # Remove the dedicated php-fpm config # -# usage: ynh_remove_fpm_config -ynh_remove_fpm_config () { - ynh_secure_remove "/etc/php5/fpm/pool.d/$app.conf" - ynh_secure_remove "/etc/php5/fpm/conf.d/20-$app.ini" 2>&1 - sudo systemctl reload php5-fpm +# usage: ynh_remove_fpm7.1_config +ynh_remove_fpm7.1_config () { + local fpm_config_dir=$(ynh_app_setting_get $app fpm_config_dir) + local fpm_service=$(ynh_app_setting_get $app fpm_service) + ynh_secure_remove "$fpm_config_dir/pool.d/$app.conf" + ynh_secure_remove "$fpm_config_dir/conf.d/20-$app.ini" 2>&1 + sudo systemctl reload $fpm_service } -# Create a dedicated systemd config -# -# usage: ynh_add_systemd_config -ynh_add_systemd_config () { - finalsystemdconf="/etc/systemd/system/$app.service" - ynh_backup_if_checksum_is_different "$finalsystemdconf" - sudo cp ../conf/systemd.service "$finalsystemdconf" - # 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 "${final_path:-}"; then - ynh_replace_string "__FINALPATH__" "$final_path" "$finalsystemdconf" - fi - if test -n "${app:-}"; then - ynh_replace_string "__APP__" "$app" "$finalsystemdconf" - fi - ynh_store_file_checksum "$finalsystemdconf" - - sudo chown root: "$finalsystemdconf" - sudo systemctl enable $app - sudo systemctl daemon-reload -} - -# Remove the dedicated systemd config -# -# usage: ynh_remove_systemd_config -ynh_remove_systemd_config () { - finalsystemdconf="/etc/systemd/system/$app.service" - if [ -e "$finalsystemdconf" ]; then - sudo systemctl stop $app - sudo systemctl disable $app - ynh_secure_remove "$finalsystemdconf" - fi -} # Execute a command as another user # usage: exec_as USER COMMAND [ARG ...] @@ -157,100 +92,10 @@ init_composer() { || ynh_die "Unable to update monica core dependencies" } -# -# NodeJS helpers -# - sudo_path () { sudo env "PATH=$PATH" $@ } -# INFOS -# n (Node version management) utilise la variable PATH pour stocker le path de la version de node à utiliser. -# C'est ainsi qu'il change de version -# En attendant une généralisation de root, il est possible d'utiliser sudo avec le helper temporaire sudo_path -# Il permet d'utiliser sudo en gardant le $PATH modifié -# ynh_install_nodejs installe la version de nodejs demandée en argument, avec n -# ynh_use_nodejs active une version de nodejs dans le script courant -# 3 variables sont mises à disposition, et 2 sont stockées dans la config de l'app -# - nodejs_path: Le chemin absolu de cette version de node -# Utilisé pour des appels directs à node. -# - nodejs_version: Simplement le numéro de version de nodejs pour cette application -# - nodejs_use_version: Un alias pour charger une version de node dans le shell courant. -# Utilisé pour démarrer un service ou un script qui utilise node ou npm -# Dans ce cas, c'est $PATH qui contient le chemin de la version de node. Il doit être propagé sur les autres shell si nécessaire. - -n_install_dir="/opt/node_n" -ynh_use_nodejs () { - nodejs_version=$(ynh_app_setting_get $app nodejs_version) - - load_n_path="[[ :$PATH: == *\":$n_install_dir/bin:\"* ]] || PATH+=\":$n_install_dir/bin\"" - - nodejs_use_version="n $nodejs_version" - - # "Load" a version of node - eval $load_n_path; $nodejs_use_version - eval $load_n_path; sudo env "PATH=$PATH" $nodejs_use_version - - # Get the absolute path of this version of node - nodejs_path="$(n bin $nodejs_version)" - - # Make an alias for node use - ynh_node_exec="eval $load_n_path; n use $nodejs_version" - sudo_ynh_node_exec="eval $load_n_path; sudo env \"PATH=$PATH\" n use $nodejs_version" -} - -ynh_install_nodejs () { - # Use n, https://github.com/tj/n to manage the nodejs versions - local nodejs_version="$1" - local n_install_script="https://git.io/n-install" - - # Create $n_install_dir - sudo mkdir -p "$n_install_dir" - - # Load n path in PATH - PATH+=":$n_install_dir/bin" - - # If n is not previously setup, install it - n --version > /dev/null 2>&1 || \ - ( echo "Installation of N - Node.js version management" >&2; \ - curl -sL $n_install_script | sudo N_PREFIX="$n_install_dir" bash -s -- -y $nodejs_version ) - - # Install the requested version of nodejs (except for the first installation of n, which installed the requested version of node.) - sudo env "PATH=$PATH" n $nodejs_version - - # Use the real installed version. Sometimes slightly different - nodejs_version=$(node --version | cut -c2-) - - # Store the ID of this app and the version of node requested for it - echo "$YNH_APP_ID:$nodejs_version" | sudo tee --append "$n_install_dir/ynh_app_version" - - # Store nodejs_version into the config of this app - ynh_app_setting_set $app nodejs_version $nodejs_version - - ynh_use_nodejs -} - -ynh_remove_nodejs () { - ynh_use_nodejs - - # Remove the line for this app - sudo sed --in-place "/$YNH_APP_ID:$nodejs_version/d" "$n_install_dir/ynh_app_version" - - # If none another app uses this version of nodejs, remove it. - if ! grep --quiet "$nodejs_version" "$n_install_dir/ynh_app_version" - then - n rm $nodejs_version - fi - - # If none another app uses n, remove n - if [ ! -s "$n_install_dir/ynh_app_version" ] - then - ynh_secure_remove "$n_install_dir" - sudo sed --in-place "/N_PREFIX/d" /root/.bashrc - fi -} - # # PHP7 helpers # @@ -274,4 +119,3 @@ ynh_remove_php7 () { sudo apt-key del 2048R/11A06851 ynh_remove_app_dependencies php7.1 php7.1-zip php7.1-fpm php7.1-mysql php7.1-xml php7.1-intl php7.1-mbstring php7.1-gd php7.1-curl } - diff --git a/scripts/install b/scripts/install index 0a51012..a2bd9bc 100755 --- a/scripts/install +++ b/scripts/install @@ -21,7 +21,7 @@ ynh_abort_if_errors #================================================= domain=$YNH_APP_ARG_DOMAIN -path_url=$YNH_APP_ARG_PATH +path_url="/" admin=$YNH_APP_ARG_ADMIN is_public=$YNH_APP_ARG_IS_PUBLIC language=$YNH_APP_ARG_LANGUAGE @@ -70,7 +70,7 @@ ynh_app_setting_set $app language $language #================================================= ynh_install_php7 -ynh_install_nodejs 6.10.3 +ynh_install_nodejs 9 #================================================= # CREATE A MYSQL DATABASE @@ -94,9 +94,6 @@ init_composer $final_path # NGINX CONFIGURATION #================================================= -sudo sed -i "s@YNH_EXAMPLE_PATH@$path_url@g" ../conf/nginx.conf -sudo sed -i "s@YNH_WWW_PATH@$final_path\/public\/@g" ../conf/nginx.conf - # Create a dedicated nginx config ynh_add_nginx_config @@ -107,20 +104,20 @@ ynh_add_nginx_config # Create a system user ynh_system_user_create $app +#================================================= +# PHP-FPM 7.1 CONFIGURATION +#================================================= + +# Create a dedicated php-fpm7.1 config +ynh_add_fpm7.1_config + #================================================= # SPECIFIC SETUP #================================================= # create a user -first_name=$(ynh_user_get_info $admin 'firstname') -last_name=$(ynh_user_get_info $admin 'lastname') email=$(ynh_user_get_info $admin 'mail') -sudo sed -i "s/yuno_firstname/$first_name/g" ../conf/CreateUser.php -sudo sed -i "s/yuno_lastname/$last_name/g" ../conf/CreateUser.php -sudo sed -i "s/yuno_email/$email/g" ../conf/CreateUser.php -sudo cp ../conf/CreateUser.php $final_path/database/seeds/CreateUser.php - # setup application config sudo cp ../conf/.env $final_path/.env cd $final_path && sudo /usr/bin/php7.1 artisan -n key:generate --force @@ -133,25 +130,24 @@ sudo sed -i "s/yunopass/$db_pwd/g" $final_path/.env sudo sed -i "s/yunobase/$db_name/g" $final_path/.env sudo sed -i "s/yunomail/$email/g" $final_path/.env sudo sed -i "s/yunodomain/$domain/g" $final_path/.env -## uses commas because path url contains a slash -sudo sed -i "s,yunopath,${path_url},g" $final_path/.env +sudo sed -i "s/language/$language/g" $final_path/.env + # Install nodejs packages -cd $final_path && sudo_path npm install -g npm@4 pnpm -cd $final_path && sudo_path pnpm install -cd $final_path && sudo_path pnpm install -g bower gulp -cd $final_path && sudo_path bower install -f --allow-root +cd $final_path && sudo_path npm install +cd $final_path && sudo_path npm run production + # setup application config cd $final_path && sudo /usr/bin/php7.1 artisan -q migrate --force cd $final_path && sudo /usr/bin/php7.1 artisan -q storage:link -cd $final_path && sudo /usr/bin/php7.1 artisan -q optimize cd $final_path && sudo /usr/bin/php7.1 artisan -q db:seed --class ActivityTypesTableSeeder --force cd $final_path && sudo /usr/bin/php7.1 artisan -q db:seed --class CountriesSeederTable --force -cd $final_path && sudo /usr/bin/php7.1 artisan -q db:seed --class CreateUser --force +cd $final_path && sudo /usr/bin/php7.1 artisan -q setup:production --force + # create a cronjob to run the scheduler -echo "* * * * * www-data cd $final_path && /usr/bin/php7.1 $final_path/artisan schedule:run >/dev/null 2>&1" > /tmp/cron$app +echo "* * * * * sudo $app /usr/bin/php7.1 $final_path/artisan schedule:run" > /tmp/cron$app sudo mv /tmp/cron$app /etc/cron.d/$app sudo chown root /etc/cron.d/$app @@ -162,7 +158,7 @@ sudo chown root /etc/cron.d/$app #================================================= # Set permissions to app files -chown -R www-data: $final_path +chown -R $app: $final_path #================================================= # SETUP SSOWAT diff --git a/scripts/remove b/scripts/remove index 50fda26..62576d8 100755 --- a/scripts/remove +++ b/scripts/remove @@ -16,21 +16,10 @@ source /usr/share/yunohost/helpers app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get $app domain) -port=$(ynh_app_setting_get $app port) db_name=$(ynh_app_setting_get $app db_name) #================================================= # STANDARD REMOVE -#================================================= -# REMOVE SERVICE FROM ADMIN PANEL -#================================================= - -if yunohost service status | grep -q $app -then - echo "Remove $app service" - yunohost service remove $app -fi - #================================================= # REMOVE DEPENDENCIES #================================================= @@ -59,6 +48,14 @@ ynh_secure_remove "/var/www/$app" # Remove the dedicated nginx config ynh_remove_nginx_config +#================================================= +# REMOVE PHP-FPM 7.1 CONFIGURATION +#================================================= + +# Remove the dedicated php-fpm7.1 config +ynh_remove_fpm7.1_config + + #================================================= # SPECIFIC REMOVE #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index bb8e4b2..47ce4c0 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -27,9 +27,8 @@ path_url=$(ynh_app_setting_get $app path) admin=$(ynh_app_setting_get $app admin) is_public=$(ynh_app_setting_get $app is_public) final_path=$(ynh_app_setting_get $app final_path) -port=$(ynh_app_setting_get $app port) db_name=$(ynh_app_setting_get $app db_name) - +language=$(ynh_app_setting_get $app language) #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= @@ -67,9 +66,6 @@ ynh_setup_source "$final_path" # NGINX CONFIGURATION #================================================= -sudo sed -i "s@YNH_EXAMPLE_PATH@$path_url@g" ../conf/nginx.conf -sudo sed -i "s@YNH_WWW_PATH@$final_path\/public\/@g" ../conf/nginx.conf - # Create a dedicated nginx config ynh_add_nginx_config @@ -80,6 +76,7 @@ ynh_add_nginx_config # Create a system user ynh_system_user_create $app + #================================================= # SPECIFIC UPGRADE #================================================= @@ -89,15 +86,16 @@ ynh_system_user_create $app # install new dependencies ynh_install_app_dependencies php7.1 php7.1-zip php7.1-fpm php7.1-mysql php7.1-xml php7.1-intl php7.1-mbstring php7.1-gd php7.1-curl -# create a user -first_name=$(ynh_user_get_info $admin 'firstname') -last_name=$(ynh_user_get_info $admin 'lastname') -email=$(ynh_user_get_info $admin 'mail') +#================================================= +# PHP-FPM 7.1 CONFIGURATION +#================================================= -sudo sed -i "s/yuno_firstname/$first_name/g" ../conf/CreateUser.php -sudo sed -i "s/yuno_lastname/$last_name/g" ../conf/CreateUser.php -sudo sed -i "s/yuno_email/$email/g" ../conf/CreateUser.php -sudo cp ../conf/CreateUser.php $final_path/database/seeds/CreateUser.php +# Create a dedicated php-fpm7.1 config +ynh_add_fpm7.1_config + + +# create a user +email=$(ynh_user_get_info $admin 'mail') # setup application config sudo cp ../conf/.env $final_path/.env @@ -109,14 +107,12 @@ sudo sed -i "s/yunopass/$db_pwd/g" $final_path/.env sudo sed -i "s/yunobase/$db_name/g" $final_path/.env sudo sed -i "s/yunomail/$email/g" $final_path/.env sudo sed -i "s/yunodomain/$domain/g" $final_path/.env -## uses commas because path url contains a slash -sudo sed -i "s,yunopath,${path_url},g" $final_path/.env +sudo sed -i "s/language/$language/g" $final_path/.env exec_composer "$final_path" update --quiet --no-dev --prefer-dist # setup application config cd $final_path && sudo /usr/bin/php7.1 artisan migrate --force -cd $final_path && sudo /usr/bin/php7.1 artisan optimize #================================================= # GENERIC FINALIZATION @@ -125,7 +121,7 @@ cd $final_path && sudo /usr/bin/php7.1 artisan optimize #================================================= # Set right permissions for curl installation -chown -R www-data: $final_path +chown -R $app: $final_path #================================================= # SETUP SSOWAT