Merge branch 'master' into renameObjectKeyword
commit
467c7690bc
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -1,6 +1,21 @@
|
|||
MONARC Changelog
|
||||
================
|
||||
|
||||
## 2.7.1 (2018-09-07)
|
||||
|
||||
### Enhancement
|
||||
|
||||
- inform user which rights he has on each risk analysis (#131);
|
||||
- display read/write access of the currently connected user on the home page (list of analysis) (#130);
|
||||
- improvements to the statement of applicability (SOA) module (speed improvements);
|
||||
- minor improvements to the home page.
|
||||
|
||||
### Fix
|
||||
|
||||
- impossible to download a report when user has no wright access (#133);
|
||||
- name of columns of the evaluation scales are not displayed when a user has not write access (#132).
|
||||
|
||||
|
||||
## 2.7.0 (2018-08-22)
|
||||
|
||||
### New
|
||||
|
|
|
@ -0,0 +1,187 @@
|
|||
Installation on Ubuntu 16.04
|
||||
============================
|
||||
|
||||
# 1. Install LAMP & dependencies
|
||||
|
||||
## Install the dependencies
|
||||
|
||||
sudo apt-get install vim zip unzip git gettext curl net-tools gsfonts curl
|
||||
|
||||
Some might already be installed.
|
||||
|
||||
## Install MariaDB
|
||||
|
||||
sudo apt-get install mariadb-client mariadb-server
|
||||
|
||||
# Secure the MariaDB installation
|
||||
|
||||
sudo mysql_secure_installation
|
||||
|
||||
Especially by setting a strong root password.
|
||||
|
||||
## Install Apache2
|
||||
|
||||
sudo apt-get install apache2 apache2-doc apache2-utils
|
||||
|
||||
## Enable modules, settings, and default of SSL in Apache
|
||||
|
||||
sudo a2dismod status
|
||||
sudo a2enmod ssl
|
||||
sudo a2enmod rewrite
|
||||
sudo a2enmod headers
|
||||
|
||||
## Apache Virtual Host
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName monarc.localhost
|
||||
DocumentRoot /var/lib/monarc/fo/public
|
||||
|
||||
<Directory /var/lib/monarc/fo/public>
|
||||
DirectoryIndex index.php
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
SetEnv APPLICATION_ENV "development"
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
## Install PHP and dependencies
|
||||
|
||||
sudo apt-get install php apache2 libapache2-mod-php php-curl php-gd php-mcrypt php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip
|
||||
|
||||
## Apply all changes
|
||||
|
||||
sudo systemctl restart apache2.service
|
||||
|
||||
|
||||
|
||||
# 2. Installation of MONARC
|
||||
|
||||
## MONARC code
|
||||
|
||||
Clone the repository and invoke `composer` using the shipped `composer.phar`:
|
||||
|
||||
cd /var/lib/monarc/
|
||||
git clone https://github.com/monarc-project/MonarcAppFO.git fo
|
||||
cd fo/
|
||||
chown -R www-data data
|
||||
chmod -R g+w data
|
||||
php composer.phar self-update
|
||||
php composer.phar install -o
|
||||
|
||||
The `self-update` directive is to ensure you have an up-to-date `composer.phar`
|
||||
available.
|
||||
|
||||
|
||||
### Backend
|
||||
|
||||
The backend is not directly modules of the project but libraries.
|
||||
You must create modules with symbolic links to libraries.
|
||||
|
||||
Create two symbolic links:
|
||||
|
||||
mkdir module
|
||||
cd module/
|
||||
ln -s ./../vendor/monarc/core MonarcCore
|
||||
ln -s ./../vendor/monarc/frontoffice MonarcFO
|
||||
|
||||
There are 2 parts:
|
||||
|
||||
* MonarcFO is only for front office;
|
||||
* MonarcCore is common to the front office and to the back office.
|
||||
|
||||
|
||||
### Frontend
|
||||
|
||||
The frontend is an AngularJS application.
|
||||
|
||||
mkdir node_modules
|
||||
cd node_modules
|
||||
git clone https://github.com/monarc-project/ng-client.git ng_client
|
||||
git clone https://github.com/monarc-project/ng-anr.git ng_anr
|
||||
|
||||
There are 2 parts:
|
||||
|
||||
* one only for front office: ng_client;
|
||||
* one common for front office and back office: ng_anr.
|
||||
|
||||
|
||||
## Databases
|
||||
|
||||
### Change SQL Mode in my.cnf
|
||||
|
||||
[mysqld]
|
||||
sql-mode = MYSQL40
|
||||
|
||||
### Create 2 databases
|
||||
|
||||
CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||
CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||
|
||||
* monarc_common contains models and data created by CASES;
|
||||
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
|
||||
model of monarc_common.
|
||||
|
||||
### Initializes the database
|
||||
|
||||
mysql -u user monarc_common < db-bootstrap/monarc_structure.sql
|
||||
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
|
||||
|
||||
### Database connection
|
||||
|
||||
Create the configuration file:
|
||||
|
||||
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
|
||||
|
||||
And configure the database connection:
|
||||
|
||||
return array(
|
||||
'doctrine' => array(
|
||||
'connection' => array(
|
||||
'orm_default' => array(
|
||||
'params' => array(
|
||||
'host' => 'host',
|
||||
'user' => 'user',
|
||||
'password' => 'password',
|
||||
'dbname' => 'monarc_common',
|
||||
),
|
||||
),
|
||||
'orm_cli' => array(
|
||||
'params' => array(
|
||||
'host' => 'host',
|
||||
'user' => 'user',
|
||||
'password' => 'password',
|
||||
'dbname' => 'monarc_cli',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
|
||||
# Update MONARC
|
||||
|
||||
## Install Grunt
|
||||
|
||||
sudo apt-get install nodejs
|
||||
sudo apt-get install npm
|
||||
sudo npm install -g grunt-cli
|
||||
sudo ln -s /usr/bin/nodejs /usr/bin/node
|
||||
|
||||
|
||||
Update MONARC:
|
||||
|
||||
./scripts/update-all.sh
|
||||
|
||||
This script will retrieve the updates from the last stable release of MONARC,
|
||||
execute the database migration scripts and compile the translations.
|
||||
|
||||
|
||||
# Create initial user
|
||||
|
||||
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
|
||||
|
||||
|
||||
The username is *admin@admin.test* and the password is *admin*.
|
|
@ -1,243 +0,0 @@
|
|||
Installation on Ubuntu 17.04
|
||||
============================
|
||||
|
||||
The master branch should always be working and it is recommended to install the
|
||||
project using this one.
|
||||
|
||||
If you have already installed MONARC and want to upgrade to a later version, you
|
||||
can use the provided script:
|
||||
|
||||
$ ./scripts/update-all.sh
|
||||
$ sudo systemctl restart apache2
|
||||
|
||||
|
||||
|
||||
PHP & MySQL
|
||||
-----------
|
||||
|
||||
Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*,
|
||||
*mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*.
|
||||
|
||||
In __php.ini__, set:
|
||||
|
||||
* *upload_max_filesize* to 200M;
|
||||
* *post_max_size* to 50M;
|
||||
* *memory_limit* to 512M (snapshots of important risk analysis requires more
|
||||
memory).
|
||||
|
||||
Install Apache and enable mods: *rewrite*, *ssl* (with a2enmod)
|
||||
|
||||
Install MariaDB.
|
||||
|
||||
|
||||
Installation of MONARC
|
||||
----------------------
|
||||
|
||||
Clone the repository and invoke `composer` using the shipped `composer.phar`:
|
||||
|
||||
git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc
|
||||
cd monarc/
|
||||
chown -R www-data data
|
||||
chmod -R g+w data
|
||||
php composer.phar self-update
|
||||
php composer.phar install -o
|
||||
|
||||
(The `self-update` directive is to ensure you have an up-to-date `composer.phar`
|
||||
available.)
|
||||
|
||||

|
||||
|
||||
|
||||
Databases
|
||||
---------
|
||||
Create 2 databases:
|
||||
|
||||
CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||
CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||
|
||||
Change SQL Mode in my.cnf:
|
||||
|
||||
[mysqld]
|
||||
sql-mode = MYSQL40
|
||||
|
||||
There are 2 databases:
|
||||
|
||||
* monarc_common contains models and data created by CASES;
|
||||
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
|
||||
model of monarc_common.
|
||||
|
||||
Populate the monarc_common database:
|
||||
|
||||
mysql -u user monarc_common < db-bootstrap/monarc_structure.sql
|
||||
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
|
||||
|
||||
|
||||
API
|
||||
---
|
||||
|
||||
The project is composed of 2 parts:
|
||||
|
||||
* an API in charge of retrieving data;
|
||||
* an interface which displays data.
|
||||
|
||||
The API is not directly modules of the project but libraries.
|
||||
You must create modules with symbolic links to libraries.
|
||||
Create 2 symbolic links in the root of project directory:
|
||||
|
||||
mkdir module
|
||||
cd module/
|
||||
ln -s ./../vendor/monarc/core MonarcCore
|
||||
ln -s ./../vendor/monarc/frontoffice MonarcFO
|
||||
|
||||
There are 2 parts:
|
||||
|
||||
* one only for front office;
|
||||
* one common for front office and back office (private project).
|
||||
|
||||
It is developed with Zend framework 2.
|
||||
|
||||

|
||||
|
||||
|
||||
Interfaces
|
||||
----------
|
||||
|
||||
Repository for Angular at the root of the project:
|
||||
|
||||
mkdir node_modules
|
||||
cd node_modules
|
||||
git clone https://github.com/monarc-project/ng-client.git ng_client
|
||||
git clone https://github.com/monarc-project/ng-anr.git ng_anr
|
||||
|
||||
There are 2 parts:
|
||||
* one only for front office: ng_client;
|
||||
* one common for front office and back office: ng_anr.
|
||||
|
||||
It is developed with Angular framework version 1.
|
||||
|
||||

|
||||
|
||||
|
||||
Web Server Setup
|
||||
----------------
|
||||
|
||||
### PHP CLI Server
|
||||
|
||||
The simplest way to get started if you are using PHP 5.4 or above is to start
|
||||
the internal PHP cli-server in the root directory:
|
||||
|
||||
php -S 0.0.0.0:8080 -t public/ public/index.php
|
||||
|
||||
This will start the cli-server on port 8080, and bind it to all network
|
||||
interfaces.
|
||||
|
||||
Note: The built-in CLI server is **for development only**.
|
||||
|
||||
### Apache Setup
|
||||
|
||||
To setup Apache, setup a virtual host to point to the public/ directory of the
|
||||
project and you should be ready to go! It should look something like below:
|
||||
|
||||
<VirtualHost 127.0.0.1:80>
|
||||
ServerName monarc.localhost
|
||||
DocumentRoot /path/to/monarc/public
|
||||
SetEnv APPLICATION_ENV "development"
|
||||
<Directory /path/to/monarc/public>
|
||||
DirectoryIndex index.php
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
Database connection
|
||||
-------------------
|
||||
|
||||
Create file `config/autoload/local.php`:
|
||||
|
||||
return array(
|
||||
'doctrine' => array(
|
||||
'connection' => array(
|
||||
'orm_default' => array(
|
||||
'params' => array(
|
||||
'host' => 'host',
|
||||
'user' => 'user',
|
||||
'password' => 'password',
|
||||
'dbname' => 'monarc_common',
|
||||
),
|
||||
),
|
||||
'orm_cli' => array(
|
||||
'params' => array(
|
||||
'host' => 'host',
|
||||
'user' => 'user',
|
||||
'password' => 'password',
|
||||
'dbname' => 'monarc_cli',
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Create configuration file
|
||||
|
||||
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
|
||||
|
||||
Update connection information to *local.php* and *global.php*.
|
||||
|
||||
Configuration files are stored in cache.
|
||||
If your changes have not been considered, empty cache by deleting file in
|
||||
/data/cache
|
||||
|
||||
Install Grunt
|
||||
-------------
|
||||
|
||||
sudo apt-get install nodejs
|
||||
sudo apt-get install npm
|
||||
sudo npm install -g grunt-cli
|
||||
sudo ln -s /usr/bin/nodejs /usr/bin/node
|
||||
|
||||
|
||||
Update MONARC
|
||||
-------------
|
||||
|
||||
Play script (mandatory from the root of the project):
|
||||
|
||||
/bin/bash ./scripts/update-all.sh
|
||||
|
||||
This script will retrieve the updates from the last stable release of MONARC.
|
||||
|
||||
It uses others shell scripts. You may need to change the access rights of those
|
||||
scripts.
|
||||
|
||||
Before updating MONARC it is advised to configure database backup. For that you
|
||||
just need to create a file _data/backup/credentialsmysql.cnf_:
|
||||
|
||||
[client]
|
||||
host = localhost
|
||||
user = sql-monarc-user
|
||||
password = your-password
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
[mysql_upgrade]
|
||||
host = localhost
|
||||
user = sql-monarc-user
|
||||
password = your-password
|
||||
socket = /var/run/mysqld/mysqld.sock
|
||||
basedir = /usr
|
||||
|
||||
If this file is not present, a warning message will be displayed during the
|
||||
upgrade.
|
||||
|
||||
|
||||
Create Initial User and Client
|
||||
------------------------------
|
||||
|
||||
Create first user:
|
||||
|
||||
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
|
||||
|
||||
|
||||
The username is *admin@admin.test* and the password is *admin*.
|
|
@ -1 +1 @@
|
|||
{"major":2, "minor":7, "hotfix":0}
|
||||
{"major":2, "minor":7, "hotfix":1}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "MONARC",
|
||||
"version": "2.7.0",
|
||||
"version": "2.7.1",
|
||||
"description": "MONARC Frontoffice App",
|
||||
"private": true,
|
||||
"repository": {
|
||||
|
|
|
@ -44,11 +44,36 @@ echo -e "\n--- Install base packages… ---\n"
|
|||
apt-get -y install vim zip unzip git gettext curl > /dev/null
|
||||
|
||||
echo -e "\n--- Install MariaDB specific packages and settings… ---\n"
|
||||
echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections
|
||||
echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections
|
||||
# echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections
|
||||
# echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections
|
||||
apt-get -y install mariadb-server mariadb-client > /dev/null
|
||||
# Secure the MariaDB installation (especially by setting a strong root password)
|
||||
systemctl restart mariadb.service > /dev/null
|
||||
sleep 5
|
||||
apt-get -y install expect > /dev/null
|
||||
## do we need to spawn mysql_secure_install with sudo in future?
|
||||
expect -f - <<-EOF
|
||||
set timeout 10
|
||||
spawn mysql_secure_installation
|
||||
expect "Enter current password for root (enter for none):"
|
||||
send -- "\r"
|
||||
expect "Set root password?"
|
||||
send -- "y\r"
|
||||
expect "New password:"
|
||||
send -- "${DBPASSWORD_ADMIN}\r"
|
||||
expect "Re-enter new password:"
|
||||
send -- "${DBPASSWORD_ADMIN}\r"
|
||||
expect "Remove anonymous users?"
|
||||
send -- "y\r"
|
||||
expect "Disallow root login remotely?"
|
||||
send -- "y\r"
|
||||
expect "Remove test database and access to it?"
|
||||
send -- "y\r"
|
||||
expect "Reload privilege tables now?"
|
||||
send -- "y\r"
|
||||
expect eof
|
||||
EOF
|
||||
sudo apt-get purge -y expect > /dev/null 2>&1
|
||||
|
||||
echo -e "\n--- Installing PHP-specific packages… ---\n"
|
||||
apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip > /dev/null
|
||||
|
|
Loading…
Reference in New Issue