1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/monica_ynh.git synced 2024-09-03 19:46:23 +02:00
anmol26s 2018-05-28 17:54:43 +05:30
parent 25143c8bf5
commit 170737fcc3
11 changed files with 142 additions and 316 deletions

View file

@ -6,15 +6,10 @@
;; Test complete ;; Test complete
; Manifest ; Manifest
domain="domain.tld" (DOMAIN) domain="domain.tld" (DOMAIN)
path="/path" (PATH) path="/" (PATH)
admin="john" (USER) admin="john" (USER)
language="fr"
is_public=1 (PUBLIC|public=1|private=0) is_public=1 (PUBLIC|public=1|private=0)
admin_name="john" (USER) language="fr"
admin_pass="08jtiig45f88r7" (PASSWORD)
admin_email="abc@example.com"
password="pass"
port="666" (PORT)
; Checks ; Checks
pkg_linter=1 pkg_linter=1
setup_sub_dir=0 setup_sub_dir=0
@ -26,7 +21,7 @@
backup_restore=1 backup_restore=1
multi_instance=1 multi_instance=1
incorrect_path=0 incorrect_path=0
port_already_use=1 port_already_use=0
change_url=0 change_url=0
;;; Levels ;;; Levels
Level 1=auto Level 1=auto
@ -41,3 +36,6 @@
Level 8=0 Level 8=0
Level 9=0 Level 9=0
Level 10=0 Level 10=0
;;; Options
Email=
Notification=none

View file

@ -1,7 +1,8 @@
# Two choices: local|production. # Two choices: local|production. Use local if you want to install Monica as a
APP_ENV=production # 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. # to false.
APP_DEBUG=false APP_DEBUG=false
@ -11,56 +12,71 @@ APP_DEBUG=false
# Use `php artisan key:generate` to generate a random key. # Use `php artisan key:generate` to generate a random key.
APP_KEY=ChangeMeBy32KeyLengthOrGenerated APP_KEY=ChangeMeBy32KeyLengthOrGenerated
# The URL of your application. # Prevent information leakage by referring to IDs with hashIds instead of
APP_URL=yunodomainyunopath # the actual IDs used in the database.
HASH_SALT=ChangeMeBy20+KeyLength
HASH_LENGTH=18
# Frequency of creation of new log files. # The URL of your application.
# Possible values: single|daily|syslog|errorlog APP_URL=
APP_LOG=daily
# Database information # Database information
# To keep this information secure, we urge you to change the default password # To keep this information secure, we urge you to change the default password
DB_CONNECTION=mysql DB_CONNECTION=mysql
DB_HOST=127.0.0.1 DB_HOST=127.0.0.1
DB_PORT=3306 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_DATABASE=yunobase
DB_USERNAME=yunouser DB_USERNAME=yunouser
DB_PASSWORD=yunopass DB_PASSWORD=yunopass
DB_PREFIX=
DB_TEST_DATABASE=monica_test DB_TEST_DATABASE=monica_test
DB_TEST_USERNAME=homestead DB_TEST_USERNAME=homestead
DB_TEST_PASSWORD=secret DB_TEST_PASSWORD=secret
# Mail credentials used to send emails from the application. # Mail credentials used to send emails from the application.
MAIL_DRIVER=smtp MAIL_DRIVER=mail
MAIL_HOST=127.0.0.1 MAIL_HOST=127.0.0.1
MAIL_PORT=25 MAIL_PORT=25
MAIL_USERNAME= MAIL_USERNAME=
MAIL_PASSWORD= MAIL_PASSWORD=
MAIL_ENCRYPTION= MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=yunomail MAIL_FROM_ADDRESS=monica@yunodomain
MAIL_FROM_NAME="Monica@Yunohost" MAIL_FROM_NAME="Monica"
APP_EMAIL_NEW_USERS_NOTIFICATION=yunomail APP_EMAIL_NEW_USERS_NOTIFICATION=yunomail
# Default timezone for new users. Users can change this setting inside the # Default timezone for new users. Users can change this setting inside the
# application at their leisure. # application at their leisure.
# Must be exactly one of the timezones used in this list: # 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 # 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. # Ability to disable signups on your instance. Can be true or false. Default to false.
APP_DISABLE_SIGNUP=true APP_DISABLE_SIGNUP=true
# Specific to the hosted version on .com. You probably don't need those. # Set trusted proxy IP addresses.
# Let them empty if you don't need them. # To trust all proxies that connect directly to your server, use a "*".
GOOGLE_ANALYTICS_APP_ID= # To trust one or more specific proxies that connect directly to your server, use a comma separated list of IP addresses.
INTERCOM_APP_ID= APP_TRUSTED_PROXIES=
SENTRY_APP_ID=
# 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 # 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 # 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. # UI, as well as the release notes for the new changes. Can be true or false.
# Default to true. # Default to true.
CHECK_VERSION=false CHECK_VERSION=true
# Have access to paid features available on https://monicahq.com, for free. # Have access to paid features available on https://monicahq.com, for free.
# Can be true or false. Default to false. # Can be true or false. Default to false.
@ -72,12 +88,43 @@ REQUIRES_SUBSCRIPTION=false
# Leave blank unless you know what you are doing. # Leave blank unless you know what you are doing.
STRIPE_KEY= STRIPE_KEY=
STRIPE_SECRET= STRIPE_SECRET=
PAID_PLAN_FRIENDLY_NAME= PAID_PLAN_MONTHLY_FRIENDLY_NAME=
PAID_PLAN_ID= PAID_PLAN_MONTHLY_ID=
PAID_PLAN_PRICE= 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 # Change this only if you know what you are doing
CACHE_DRIVER=database CACHE_DRIVER=database
SESSION_DRIVER=file SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync 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

View file

@ -1,41 +0,0 @@
<?php
use App\Kid;
use App\Event;
use App\Contact;
use App\Reminder;
use Carbon\Carbon;
use Faker\Factory as Faker;
use App\Helpers\RandomHelper;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class CreateUser extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// populate account table
$accountID = DB::table('accounts')->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();
}
}

View file

@ -1,5 +1,5 @@
location ^~ YNH_EXAMPLE_PATH { location ^~ __PATH__ {
alias YNH_WWW_PATH; alias __FINALPATH__/public/;
try_files $uri $uri/ @monica; try_files $uri $uri/ @monica;
index index.php; index index.php;
# Force https # Force https
@ -8,7 +8,7 @@ location ^~ YNH_EXAMPLE_PATH {
} }
location ~ \.php { location ~ \.php {
fastcgi_split_path_info ^(.+?\.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; fastcgi_index index.php;
include fastcgi_params; include fastcgi_params;
fastcgi_param REMOTE_USER $remote_user; fastcgi_param REMOTE_USER $remote_user;

View file

@ -1,7 +1,7 @@
; Start a new pool named 'www'. ; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the ; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here) ; pool name ('www' here)
[YNH_WWW_APP] [__NAMETOCHANGE__]
; Per pool prefix ; Per pool prefix
; It only applies on the following directives: ; It only applies on the following directives:
@ -24,7 +24,7 @@
; specific port; ; specific port;
; '/path/to/unix/socket' - to listen on a unix socket. ; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory. ; 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. ; Set listen(2) backlog. A value of '-1' means unlimited.
; Default Value: 128 (-1 on FreeBSD and OpenBSD) ; Default Value: 128 (-1 on FreeBSD and OpenBSD)
@ -50,8 +50,8 @@ listen.mode = 0600
; Unix user/group of processes ; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group ; Note: The user is mandatory. If the group is not set, the default user's group
; will be used. ; will be used.
user = www-data user = __USER__
group = www-data group = __USER__
; Choose how the process manager will control the number of child processes. ; Choose how the process manager will control the number of child processes.
; Possible Values: ; Possible Values:
@ -170,7 +170,7 @@ request_slowlog_timeout = 5s
; The log file for slow requests ; The log file for slow requests
; Default Value: not set ; Default Value: not set
; Note: slowlog is mandatory if request_slowlog_timeout is 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. ; Set open file descriptor rlimit.
; Default Value: system defined value ; Default Value: system defined value
@ -195,7 +195,7 @@ rlimit_core = 0
; Chdir to this directory at the start. ; Chdir to this directory at the start.
; Note: relative path can be used. ; Note: relative path can be used.
; Default Value: current directory or / when chroot ; 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 ; 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. ; 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_flag[log_errors] = on
;php_admin_value[memory_limit] = 32M ;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[upload_max_filesize] = 50M
;php_value[post_max_size] = 50M ;php_value[post_max_size] = 50M
;php_value[mail.add_x_header] = Off ;php_value[mail.add_x_header] = Off
# Other common parameters ; Other common parameters
;php_value[max_execution_time] = 600 ;php_value[max_execution_time] = 600
;php_value[max_input_time] = 300 ;php_value[max_input_time] = 300
;php_value[memory_limit] = 256M ;php_value[memory_limit] = 256M

View file

@ -1 +0,0 @@
yunohost app install /vagrant/monica_ynh/ --debug -n -a "domain=monica.ynh.local&path=/&admin=basti&is_public=0&language=en"

View file

@ -14,11 +14,12 @@
"url": "http://github.com/rndmh3ro/monica_ynh" "url": "http://github.com/rndmh3ro/monica_ynh"
}, },
"requirements": { "requirements": {
"yunohost": ">> 2.7.0" "yunohost": ">> 2.7.2"
}, },
"multi_instance": true, "multi_instance": true,
"services": [ "services": [
"nginx", "nginx",
"php7.1",
"mysql" "mysql"
], ],
"arguments": { "arguments": {
@ -32,17 +33,6 @@
}, },
"example": "monica.com" "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", "name": "admin",
"type": "user", "type": "user",

View file

@ -4,49 +4,16 @@
# YUNOHOST 2.7 FORTHCOMING HELPERS # 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 # Create a dedicated php-fpm config
# #
# usage: ynh_add_fpm_config # usage: ynh_add_fpm_config
ynh_add_fpm_config () { ynh_add_fpm7.1_config () {
finalphpconf="/etc/php5/fpm/pool.d/$app.conf" # 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" ynh_backup_if_checksum_is_different "$finalphpconf"
sudo cp ../conf/php-fpm.conf "$finalphpconf" sudo cp ../conf/php-fpm.conf "$finalphpconf"
ynh_replace_string "__NAMETOCHANGE__" "$app" "$finalphpconf" ynh_replace_string "__NAMETOCHANGE__" "$app" "$finalphpconf"
@ -57,59 +24,27 @@ ynh_add_fpm_config () {
if [ -e "../conf/php-fpm.ini" ] if [ -e "../conf/php-fpm.ini" ]
then 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" ynh_backup_if_checksum_is_different "$finalphpini"
sudo cp ../conf/php-fpm.ini "$finalphpini" sudo cp ../conf/php-fpm.ini "$finalphpini"
sudo chown root: "$finalphpini" sudo chown root: "$finalphpini"
ynh_store_file_checksum "$finalphpini" ynh_store_file_checksum "$finalphpini"
fi fi
sudo systemctl reload $fpm_service
sudo systemctl reload php5-fpm
} }
# Remove the dedicated php-fpm config # Remove the dedicated php-fpm config
# #
# usage: ynh_remove_fpm_config # usage: ynh_remove_fpm7.1_config
ynh_remove_fpm_config () { ynh_remove_fpm7.1_config () {
ynh_secure_remove "/etc/php5/fpm/pool.d/$app.conf" local fpm_config_dir=$(ynh_app_setting_get $app fpm_config_dir)
ynh_secure_remove "/etc/php5/fpm/conf.d/20-$app.ini" 2>&1 local fpm_service=$(ynh_app_setting_get $app fpm_service)
sudo systemctl reload php5-fpm 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 # Execute a command as another user
# usage: exec_as USER COMMAND [ARG ...] # usage: exec_as USER COMMAND [ARG ...]
@ -157,100 +92,10 @@ init_composer() {
|| ynh_die "Unable to update monica core dependencies" || ynh_die "Unable to update monica core dependencies"
} }
#
# NodeJS helpers
#
sudo_path () { sudo_path () {
sudo env "PATH=$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 # PHP7 helpers
# #
@ -274,4 +119,3 @@ ynh_remove_php7 () {
sudo apt-key del 2048R/11A06851 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 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
} }

View file

@ -21,7 +21,7 @@ ynh_abort_if_errors
#================================================= #=================================================
domain=$YNH_APP_ARG_DOMAIN domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH path_url="/"
admin=$YNH_APP_ARG_ADMIN admin=$YNH_APP_ARG_ADMIN
is_public=$YNH_APP_ARG_IS_PUBLIC is_public=$YNH_APP_ARG_IS_PUBLIC
language=$YNH_APP_ARG_LANGUAGE language=$YNH_APP_ARG_LANGUAGE
@ -70,7 +70,7 @@ ynh_app_setting_set $app language $language
#================================================= #=================================================
ynh_install_php7 ynh_install_php7
ynh_install_nodejs 6.10.3 ynh_install_nodejs 9
#================================================= #=================================================
# CREATE A MYSQL DATABASE # CREATE A MYSQL DATABASE
@ -94,9 +94,6 @@ init_composer $final_path
# NGINX CONFIGURATION # 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 # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
@ -107,20 +104,20 @@ ynh_add_nginx_config
# Create a system user # Create a system user
ynh_system_user_create $app ynh_system_user_create $app
#=================================================
# PHP-FPM 7.1 CONFIGURATION
#=================================================
# Create a dedicated php-fpm7.1 config
ynh_add_fpm7.1_config
#================================================= #=================================================
# SPECIFIC SETUP # SPECIFIC SETUP
#================================================= #=================================================
# create a user # 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') 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 # setup application config
sudo cp ../conf/.env $final_path/.env sudo cp ../conf/.env $final_path/.env
cd $final_path && sudo /usr/bin/php7.1 artisan -n key:generate --force 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/yunobase/$db_name/g" $final_path/.env
sudo sed -i "s/yunomail/$email/g" $final_path/.env sudo sed -i "s/yunomail/$email/g" $final_path/.env
sudo sed -i "s/yunodomain/$domain/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/language/$language/g" $final_path/.env
sudo sed -i "s,yunopath,${path_url},g" $final_path/.env
# Install nodejs packages # Install nodejs packages
cd $final_path && sudo_path npm install -g npm@4 pnpm cd $final_path && sudo_path npm install
cd $final_path && sudo_path pnpm install cd $final_path && sudo_path npm run production
cd $final_path && sudo_path pnpm install -g bower gulp
cd $final_path && sudo_path bower install -f --allow-root
# setup application config # 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 migrate --force
cd $final_path && sudo /usr/bin/php7.1 artisan -q storage:link 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 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 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 # 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 mv /tmp/cron$app /etc/cron.d/$app
sudo chown root /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 # Set permissions to app files
chown -R www-data: $final_path chown -R $app: $final_path
#================================================= #=================================================
# SETUP SSOWAT # SETUP SSOWAT

View file

@ -16,21 +16,10 @@ source /usr/share/yunohost/helpers
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain) domain=$(ynh_app_setting_get $app domain)
port=$(ynh_app_setting_get $app port)
db_name=$(ynh_app_setting_get $app db_name) db_name=$(ynh_app_setting_get $app db_name)
#================================================= #=================================================
# STANDARD REMOVE # 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 # REMOVE DEPENDENCIES
#================================================= #=================================================
@ -59,6 +48,14 @@ ynh_secure_remove "/var/www/$app"
# Remove the dedicated nginx config # Remove the dedicated nginx config
ynh_remove_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 # SPECIFIC REMOVE
#================================================= #=================================================

View file

@ -27,9 +27,8 @@ path_url=$(ynh_app_setting_get $app path)
admin=$(ynh_app_setting_get $app admin) admin=$(ynh_app_setting_get $app admin)
is_public=$(ynh_app_setting_get $app is_public) is_public=$(ynh_app_setting_get $app is_public)
final_path=$(ynh_app_setting_get $app final_path) 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) db_name=$(ynh_app_setting_get $app db_name)
language=$(ynh_app_setting_get $app language)
#================================================= #=================================================
# ENSURE DOWNWARD COMPATIBILITY # ENSURE DOWNWARD COMPATIBILITY
#================================================= #=================================================
@ -67,9 +66,6 @@ ynh_setup_source "$final_path"
# NGINX CONFIGURATION # 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 # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
@ -80,6 +76,7 @@ ynh_add_nginx_config
# Create a system user # Create a system user
ynh_system_user_create $app ynh_system_user_create $app
#================================================= #=================================================
# SPECIFIC UPGRADE # SPECIFIC UPGRADE
#================================================= #=================================================
@ -89,15 +86,16 @@ ynh_system_user_create $app
# install new dependencies # 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 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') # PHP-FPM 7.1 CONFIGURATION
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 # Create a dedicated php-fpm7.1 config
sudo sed -i "s/yuno_lastname/$last_name/g" ../conf/CreateUser.php ynh_add_fpm7.1_config
sudo sed -i "s/yuno_email/$email/g" ../conf/CreateUser.php
sudo cp ../conf/CreateUser.php $final_path/database/seeds/CreateUser.php
# create a user
email=$(ynh_user_get_info $admin 'mail')
# setup application config # setup application config
sudo cp ../conf/.env $final_path/.env 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/yunobase/$db_name/g" $final_path/.env
sudo sed -i "s/yunomail/$email/g" $final_path/.env sudo sed -i "s/yunomail/$email/g" $final_path/.env
sudo sed -i "s/yunodomain/$domain/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/language/$language/g" $final_path/.env
sudo sed -i "s,yunopath,${path_url},g" $final_path/.env
exec_composer "$final_path" update --quiet --no-dev --prefer-dist exec_composer "$final_path" update --quiet --no-dev --prefer-dist
# setup application config # setup application config
cd $final_path && sudo /usr/bin/php7.1 artisan migrate --force cd $final_path && sudo /usr/bin/php7.1 artisan migrate --force
cd $final_path && sudo /usr/bin/php7.1 artisan optimize
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
@ -125,7 +121,7 @@ cd $final_path && sudo /usr/bin/php7.1 artisan optimize
#================================================= #=================================================
# Set right permissions for curl installation # Set right permissions for curl installation
chown -R www-data: $final_path chown -R $app: $final_path
#================================================= #=================================================
# SETUP SSOWAT # SETUP SSOWAT