diff --git a/INSTALL/INSTALL.ubuntu1804.md b/INSTALL/INSTALL.ubuntu1804.md new file mode 100644 index 0000000..9e975c2 --- /dev/null +++ b/INSTALL/INSTALL.ubuntu1804.md @@ -0,0 +1,178 @@ +Installation on Ubuntu 16.04 +============================ + +# 1. Install LAMP & dependencies + +## Install the dependencies + + $ sudo apt-get install vim zip unzip git gettext 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 + +## Enable modules, settings, and default of SSL in Apache + + $ sudo a2dismod status + $ sudo a2enmod ssl + $ sudo a2enmod rewrite + $ sudo a2enmod headers + +## Apache Virtual Host + + + ServerName monarc.localhost + DocumentRoot /var/lib/monarc/bo/MonarcAppBO/public + + + DirectoryIndex index.php + AllowOverride All + Require all granted + + + SetEnv APPLICATION_ENV "development" + + + +## Install PHP and dependencies + + $ sudo apt-get 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 + +## 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/bo/ + $ git clone https://github.com/monarc-project/MonarcAppBO.git + $ cd MonarcAppBO/ + $ chown -R www-data data + $ chmod -R g+w data + $ sudo composer self-update + $ composer 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/backoffice MonarcBO + +There are 2 parts: + +* MonarcBO is only for back 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-backoffice.git ng_backoffice + $ git clone https://github.com/monarc-project/ng-anr.git ng_anr + +There are 2 parts: + +* one only for back office: ng_backoffice; +* one common for front office and back office: ng_anr. + + +## Databases + +### Create 2 databases + +In your MariaDB interpreter: + + CREATE DATABASE monarc_master 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_master contains all user and organization information. + +### 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_master', + ), + ), + ), + ), + ); + + + +# Update MONARC + +## Install Grunt + + $ sudo apt-get -y install npm + $ npm install -g grunt-cli + + +Update MONARC: + + $ ./scripts/update-all.sh + + +# Create initial user + + $ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcBO/migrations/phinx.php + + +The username is *admin@admin.test* and the password is *admin*. diff --git a/README.md b/README.md index ea754d8..2d88e44 100644 --- a/README.md +++ b/README.md @@ -8,190 +8,14 @@ itself or you can check the [MONARC architecture](https://www.monarc.lu/documentation/technical-guide/#monarc-and-the-back-office). -Installation ------------- - -PHP & MySQL ------------ - -Install PHP (version 7.2 recommended) with Apache with extensions: -xml, mbstring, mysql, zip, unzip, mcrypt, intl, imagick (extension php) - -For Apache add mods : rewrite, ssl (a2enmod) - -Install MariaDb. - - -Using Composer (recommended) ----------------------------- - -If not already done, install composer relevant to your distribution. Then, -clone the repository and manually invoke `composer`: - - $ cd my/project/dir - $ git clone https://github.com/monarc-project/MonarcAppBO.git - $ cd MonarcAppBO/ - $ composer self-update - $ composer install -o - -The `self-update` ensures you have an up-to-date `composer.phar` available. - -![Arbo](public/img/arbo1.png "Arbo") - - -Databases ---------- -Create 2 databases: - - CREATE DATABASE monarc_master 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 create by CASES. -* monarc_master contains all user and authentication information. - -Once the databases are created, extract and import the extracted file to the ***monarc_common*** database: - - $ tar -xzvf db-bootstrap/monarc-common.tar.gz -C db-bootstrap/ - $ mysql -u sqlmonarcuser -p monarc_common < db-bootstrap/monarc-common.sql - - -Back-end --------- - -The project is splited on 2 parts: - -* an Api in charge of retrieve data -* an interface to display data - -The API is not a module of the project but libraries. -You must create modules with symbolic links to the libraries: - - $ mkdir module - $ cd module - $ ln -s ./../vendor/monarc/core MonarcCore - $ ln -s ./../vendor/monarc/backoffice MonarcBO - - -There are 2 parts: - -* one only for front office -* one common for front office and back office (private project) - - -![Arbo](public/img/arbo2.png "Arbo") - - -Front-end ---------- - -Repositories for AngularJS: - - $ mkdir node_modules - $ cd node_modules - $ git clone https://github.com/monarc-project/ng-backoffice.git ng_backoffice - $ 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 (private project) (ng_anr) - - -![Arbo](public/img/arbo3.png "Arbo") - - -Web Server Setup ----------------- - -### 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: - - - ServerName monarc.localhost - DocumentRoot /path/to/monarc/public - SetEnv APPLICATION_ENV "development" - - DirectoryIndex index.php - AllowOverride All - Require All Granted - - - - -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_master', - ), - ), - ), - ), - ); - - - -Configuration +Documentation ------------- -Create file configuration - - $ 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 yours changes have not been considered, empty cache by deleting file in /data/cache -You might need to create the folders. Also, the /data/cache folder needs to be -owned by the internet user (www-data in ubuntu). - -Install Grunt -------------- - - $ sudo apt-get -y install npm - $ npm install -g grunt-cli - -Update project --------------- -Play script (mandatory from the root of the project)(pull and migrations): - - $ ./scripts/update-all.sh - - -Create Initial User and Client ------------------------------- - -Create first user: - - $ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcBO/migrations/phinx.php - -The username is *admin@admin.test* and the password is *admin*. - - -Data Model ----------- - -monarc_common -![monarc_common](public/img/model-common.png "monarc_common") +You will find a user guide and a technical guide on the +[MONARC website](https://www.monarc.lu/documentation). +For installation instructions see +[INSTALL](https://github.com/monarc-project/MonarcAppBO/tree/master/INSTALL). License @@ -210,7 +34,7 @@ This software is licensed under For more information, [the list of authors and contributors](AUTHORS) is available. -Data provided with MONARC (threats, assets, vulnerabilities) are licensed under +Data provided with MONARC (threats, assets, vulnerabilities) are licensed under [CC0 1.0 Universal (CC0 1.0)](https://creativecommons.org/publicdomain/zero/1.0/) - Public Domain Dedication. If a specific author wants to license an object under a different license, a pull request can be requested. diff --git a/public/img/arbo1.png b/public/img/arbo1.png deleted file mode 100644 index a3136c4..0000000 Binary files a/public/img/arbo1.png and /dev/null differ diff --git a/public/img/arbo2.png b/public/img/arbo2.png deleted file mode 100644 index 60eef46..0000000 Binary files a/public/img/arbo2.png and /dev/null differ diff --git a/public/img/arbo3.png b/public/img/arbo3.png deleted file mode 100644 index 785853e..0000000 Binary files a/public/img/arbo3.png and /dev/null differ