1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/monica_ynh.git synced 2024-09-03 19:46:23 +02:00

Merge pull request #16 from anmol26s/master

Updated app to working state
This commit is contained in:
Sebastian Gumprich 2018-05-29 11:45:41 +02:00 committed by GitHub
commit 70e4dc5c9a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 409 additions and 580 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

145
LICENSE
View file

@ -1,5 +1,5 @@
GNU GENERAL PUBLIC LICENSE GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
@ -7,17 +7,15 @@
Preamble Preamble
The GNU General Public License is a free, copyleft license for The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works. software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast, to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the software for all its users.
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you price. Our General Public Licenses are designed to make sure that you
@ -26,44 +24,34 @@ them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things. free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you Developers that use our General Public Licenses protect your rights
these rights or asking you to surrender the rights. Therefore, you have with two steps: (1) assert copyright on the software, and (2) offer
certain responsibilities if you distribute copies of the software, or if you this License which gives you legal permission to copy, distribute
you modify it: responsibilities to respect the freedom of others. and/or modify the software.
For example, if you distribute copies of such a program, whether A secondary benefit of defending all users' freedom is that
gratis or for a fee, you must pass on to the recipients the same improvements made in alternate versions of the program, if they
freedoms that you received. You must make sure that they, too, receive receive widespread use, become available for other developers to
or can get the source code. And you must show them these terms so they incorporate. Many developers of free software are heartened and
know their rights. encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
Developers that use the GNU GPL protect your rights with two steps: The GNU Affero General Public License is designed specifically to
(1) assert copyright on the software, and (2) offer you this License ensure that, in such cases, the modified source code becomes available
giving you legal permission to copy, distribute and/or modify it. to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
For the developers' and authors' protection, the GPL clearly explains An older license, called the Affero General Public License and
that there is no warranty for this free software. For both users' and published by Affero, was designed to accomplish similar goals. This is
authors' sake, the GPL requires that modified versions be marked as a different license, not a version of the Affero GPL, but Affero has
changed, so that their problems will not be attributed erroneously to released a new version of the Affero GPL which permits relicensing under
authors of previous versions. this license.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and The precise terms and conditions for copying, distribution and
modification follow. modification follow.
@ -72,7 +60,7 @@ modification follow.
0. Definitions. 0. Definitions.
"This License" refers to version 3 of the GNU General Public License. "This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks. works, such as semiconductor masks.
@ -549,35 +537,45 @@ to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program. License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License. 13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work, License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License, but the work with which it is combined will remain governed by version
section 13, concerning interaction through a network will apply to the 3 of the GNU General Public License.
combination as such.
14. Revised Versions of this License. 14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will the GNU Affero General Public License from time to time. Such new versions
be similar in spirit to the present version, but may differ in detail to will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns. address new problems or concerns.
Each version is given a distinguishing version number. If the Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation. by the Free Software Foundation.
If the Program specifies that a proxy can decide which future If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you public statement of acceptance of a version permanently authorizes you
to choose that version for the Program. to choose that version for the Program.
@ -631,44 +629,33 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.} The software is called Monica and is a personal relationship management system.
Copyright (C) {year} {name of author} Copyright (C) 2017 Regis Freyd
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU Affero General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short If your software can interact with users remotely through a computer
notice like this when it starts in an interactive mode: network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
{project} Copyright (C) {year} {fullname} interface could display a "Source" link that leads users to an archive
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. of the code. There are many ways you could offer source, and different
This is free software, and you are welcome to redistribute it solutions will be better for different programs; see section 13 for the
under certain conditions; type `show c' for details. specific requirements.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>. <http://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

View file

@ -1,28 +1,44 @@
# Unmaintained
This project is unmaintained. If anyone wants to take over, please open an issue!
# Monica app for YunoHost # Monica app for YunoHost
[![Installer Monica with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=monica)
**Shipped version:** v2.1.1
<p align="center"><img src="37693034-5783b3d6-2c93-11e8-80ea-bd78438dcd51.png"></p>
<h1 align="center">Personal Relationship Manager</h1>
- [Yunohost project](https://yunohost.org) - [Yunohost project](https://yunohost.org)
- [Monica](https://monicahq.com/) - [Monica](https://monicahq.com/)
- [Monica source code at Github](https://github.com/monicahq/monica)
Personal Relationship Manager - a new kind of CRM to organize interactions with your friends and family. ## Introduction
## TODO Monica is an open-source web application to organize the interactions with your loved ones. I call it a PRM, or Personal Relationship Management. Think of it as a [CRM](https://en.wikipedia.org/wiki/Customer_relationship_management) (a popular tool used by sales teams in the corporate world) for your friends or family.
## Install
##### This app will install PHP7.1
```
sudo yunohost app install https://github.com/YunoHost-Apps/monica_ynh
```
**First User Registraion:** Visit the app **domain** after the installtion is complete to register as **first user**. After the first user is registerd the registration will be **locked**. You can open the register for all by chaning the value **APP_DISABLE_SIGNUP** to **false** in **.env**. There is **no admin interface** in the Monica app currently.
## Updae
```
sudo yunohost app upgrade -u https://github.com/YunoHost-Apps/monica_ynh monica
```
#### Change the settigs of the app by changing the values in .env
## What works ?
* [X] Update and remove script
* [X] Upgrade script
* [X] Backup and restore script (**Need testing**)
* [X] Multi-instance (**Need testing**)
* [x] make root domain redirect to index.php
* [ ] LDAP/SSO support * [ ] LDAP/SSO support
* As for now, the specified admin user with the password `admin` is created in monica
* [ ] Make monica installable into subdirectory (eg. https://example.com/monica/) * [ ] Make monica installable into subdirectory (eg. https://example.com/monica/)
* Currently it is only possible to install monica into the root of a domain (eg. https://example.com/) * Currently it is only possible to install monica into the root of a domain (eg. https://example.com/)
* This is due to a limitation in monica, not yunohost! * This is due to a limitation in monica, not yunohost!
* See [here](https://github.com/monicahq/monica/issues/139) for the current progress. * See [here](https://github.com/monicahq/monica/issues/139) for the current progress.
* [x] make root domain redirect to index.php
## Notes for Upgrading
* Check for changes in .env
## License ## License

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,6 +1,6 @@
SOURCE_URL=https://github.com/monicahq/monica/archive/v2.0.1.tar.gz SOURCE_URL=https://github.com/monicahq/monica/archive/v2.1.1.tar.gz
SOURCE_SUM=ca604063ce0e99576fc813fb7a5f3f34d3dec906d7ce214f3e4ae55f7b48b804 SOURCE_SUM=be470d407c19854f08c1f8ff12829df0d36945a7923d78039abc63650105ac71
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true SOURCE_IN_SUBDIR=true
SOURCE_FILENAME=v2.0.1.tar.gz SOURCE_FILENAME=v2.1.1.tar.gz

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

@ -7,18 +7,19 @@
}, },
"url": "https://monica.com", "url": "https://monica.com",
"license": "GPL-3.0", "license": "GPL-3.0",
"version": "2.0", "version": "2.1.1",
"maintainer": { "maintainer": {
"name": "Sebastian Gumprich", "name": "Sebastian Gumprich",
"email": "yunohost@gumpri.ch", "email": "yunohost@gumpri.ch",
"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",
@ -59,7 +49,7 @@
"en": "Is it a public application?", "en": "Is it a public application?",
"fr": "Est-ce une application publique ?" "fr": "Est-ce une application publique ?"
}, },
"default": false "default": true
}, },
{ {
"name": "language", "name": "language",
@ -67,7 +57,7 @@
"en": "Choose the application language", "en": "Choose the application language",
"fr": "Choisissez la langue de l'application" "fr": "Choisissez la langue de l'application"
}, },
"choices": ["fr", "en"], "choices": ["cs","de","en","es","fr","he","it","nl","pt","ru","zh"],
"default": "en" "default": "en"
} }
] ]

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