diff --git a/INSTALL/INSTALL.debian10.md b/INSTALL/INSTALL.debian10.md new file mode 100644 index 0000000..3113ead --- /dev/null +++ b/INSTALL/INSTALL.debian10.md @@ -0,0 +1,184 @@ +Installation on Debian 10 +========================= + +# 1. Install LAMP & dependencies + +## 1.1. Install system dependencies + + $ sudo apt-get install zip unzip git gettext curl gsfonts software-properties-common + +Some might already be installed. + +## 1.2. Install MariaDB + + $ sudo apt-get install mariadb-server + +### Secure the MariaDB installation + + $ sudo mysql_secure_installation + +Especially by setting a strong root password. + +## 1.3. 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 + + + ServerAdmin admin@localhost.lu + ServerName monarc.local + DocumentRoot /var/lib/monarc/fo/public + + + DirectoryIndex index.php + AllowOverride All + Require all granted + + + + Header always set X-Content-Type-Options nosniff + Header always set X-XSS-Protection "1; mode=block" + Header always set X-Robots-Tag none + Header always set X-Frame-Options SAMEORIGIN + + + SetEnv APP_ENV "development" + + + +## 1.4. Install PHP and dependencies + + $ sudo apt-get install php7.3 libapache2-mod-php7.3 php7.3-curl php7.3-gd php7.3-mysql php7.3-apcu php7.3-xml php7.3-mbstring php7.3-intl php7.3-imagick php7.3-zip + + $ curl -sS https://getcomposer.org/installer -o composer-setup.php + $ sudo php composer-setup.php --install-dir=/usr/bin --filename=composer + +## 1.5 Apply all changes + + $ sudo systemctl restart apache2.service + + + +# 2. Installation of MONARC + +## 2.1. MONARC source code + + $ mkdir -p /var/lib/monarc/fo + $ git clone https://github.com/monarc-project/MonarcAppFO.git /var/lib/monarc/fo + $ cd /var/lib/monarc/fo + $ mkdir -p data/cache + $ mkdir -p data/LazyServices/Proxy + $ chmod -R g+w data + $ composer install -o + + +### Back-end + +The back-end is using the Zend Framework 3. + +Create two symbolic links: + + $ cd module/Monarc + $ ln -s ./../../vendor/monarc/core Core + $ ln -s ./../../vendor/monarc/frontoffice FrontOffice + $ cd ../.. + +There are 2 parts: + +* Monarc\FrontOffice is only for MONARC; +* Monarc\Core is common to MONARC and to the back office of MONARC. + + +### Front-end + +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 MONARC: ng_client; +* one common for MONARC and the back office of MONARC: ng_anr. + + +## 2.2. Databases + +### Create 2 databases + +In your MariaDB interpreter: + + MariaDB [(none)]> CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; + MariaDB [(none)]> 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' => 'localhost', + 'user' => 'sqlmonarcuser', + 'password' => '', + 'dbname' => 'monarc_common', + ), + ), + 'orm_cli' => array( + 'params' => array( + 'host' => 'localhost', + 'user' => 'sqlmonarcuser', + 'password' => '', + 'dbname' => 'monarc_cli', + ), + ), + ), + ), + ); + + + +# 3. Update MONARC + +Install Grunt: + + $ curl -sL https://deb.nodesource.com/setup_13.x | sudo bash - + $ sudo apt-get install nodejs + $ npm install -g grunt-cli + +then update MONARC: + + $ ./scripts/update-all.sh -c + + +# 4. Create initial user + + $ php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/Monarc/FrontOffice/migrations/phinx.php + + +The username is *admin@admin.test* and the password is *admin*.