retour

Installation CEL 2019

code sur https://gitlab.com/slack_lpm
identifiant : telabotanica
mdp : à demander à Delphine ou Laura


client sur https://beta.tela-botanica.org/cel2/cel2-client/dist/cel2-client/
services sur https://beta.tela-botanica.org/cel2/cel2-services/public/api/
bdd : testsf

Une copie de dev est dispo dans https://beta.tela-botanica.org/cel2-dev/

Cel client

Prod

Build

Il faut build en local pour déployer l'appli en prod. La config est dans src/environments/environment.prod.ts
ng build --base-href "/appli:cel/" --prod

Deploy

rsync -avz dist/cel2-client/ telaorg@sycomore:/home/telaorg/www/cel-ng/

Beta

ng build --base-href "/appli:cel/" --configuration beta

Pour le test, le projet est entièrement copié sur Aphyllanthe pour permettre de build sur le serveur (mais c'est pas ouf).

Redirections

Elles sont déjà sur les serveurs et voici leur contenu (grosso modo) :

Redirection appli

RewriteEngine On
RewriteRule ^appli:cel$ /cel2/cel2-client/dist/cel2-client/ [QSA,L,NE]

Controlleur général

Ajouter la règle de redir (vérifier le chemin,  RewriteBase doit correspondre au base-href ci-dessus) pour permettre à apache de servir l'application (dans le .htaccess ou la conf)
RewriteEngine On
RewriteBase /cel2/cel2-client/dist/cel2-client/
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]


En cas d'erreur sur du css pendant le build de l'appli (ng build) ne pas hésiter à vider le contenu du fichier bloquant.


Cel service

installer ext-zip

Faut caler déclarer la variable d'environnement dans le .htaccess
SetEnv APP_ENV prod


Installer les dépendances :
APP_ENV=prod  php7.3 /usr/local/bin/composer install --no-dev


Et pour que les services répondent bien faut ajouter des règles du genre :
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /cel2/cel2-services/public/index.php [L,QSA]


Une fois que symfony tourne correctement, on peut interroger les API dans /api avec curl (en web ça demande une authentification)
http://beta.tela-botanica.org/cel2/cel2-services/public/api/occurrences.json?sortBy=&sortDirection=&page=0&perPage=10

Elasticsearch


Nécessite JAVA

Documentation pour Oracle Java 11 : https://tecadmin.net/install-oracle-java-11-on-debian-9-stretch/
apt install dirmngr
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EA8CACC073C3DB2A
echo "deb http://ppa.launchpad.net/linuxuprising/java/ubuntu bionic main" | tee /etc/apt/sources.list.d/linuxuprising-java.list
apt update && apt install oracle-java11-installer
apt install oracle-java11-set-default


Et sinon avec la version libre de java ça marche bien normalement aussi :
apt install default-jre



Puis Elastic

Documentation : https://gist.github.com/nucreativa/680660f2c418bbd1a04182f45514e3bb
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
apt update && apt install elasticsearch


Problèmes possibles

Limite de ram sur la machine, OOM-killer tue le processus Java sans autre log que 2 pauvres lignes dans dmesg
Voir : https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd
When using the RPM or Debian packages on systems that use systemd, system limits must be specified via systemd.

The systemd service file (/usr/lib/systemd/system/elasticsearch.service) contains the limits that are applied by default.

To override them, add a file called /etc/systemd/system/elasticsearch.service.d/override.conf (alternatively, you may run sudo systemctl edit elasticsearch which opens the file automatically inside your default editor). Set any changes in this file, such as:

[Service]
LimitMEMLOCK=infinity

Once finished, run the following command to reload units:

sudo systemctl daemon-reload