PnX-SI / GeoNature-citizen

Portail web d'inventaire citoyen de la biodiversité à destination du grand public
https://pnx-si.github.io/GeoNature-citizen/
GNU Affero General Public License v3.0
19 stars 28 forks source link

Installation GeoNature-citizen #352

Closed geobrun closed 5 months ago

geobrun commented 1 year ago

Bonjour tout le monde,

Je souhaite procéder à l'installation de GeoNature-citizen 0.99.4-dev sur un serveur Debian 11 où sont déjà installés GeoNature 2.12.2 et TaxHub 1.11.1.

D'après ce que j'ai compris, étant donné que TaxHub est déjà installé, je dois procéder à une installation manuelle. J'en suis actuellement au téléchargement du référentiel des géométries communales. Pour cela, je dois télécharger des fichiers SQL qui se trouvent normalement dans le répertoire suivant : https://github.com/PnX-SI/GeoNature/raw/master/data/core

Or, on dirait que ce répertoire n'existe plus dans les dernières versions de GeoNature. Quelqu'un sait si son contenu a été rebasculé dans un autre répertoire ?

Bonne journée

mvergez commented 1 year ago

Bonjour, Le référentiel des géométries communales n'est plus nécessaire car Citizen utilise l'api Nominatim (https://nominatim.openstreetmap.org) pour récupérer les informations sur les villes. La documentation n'est malheureusement pas à jour.

Si je ne dis pas de bêtises, normalement lancer le script suivant : https://github.com/PnX-SI/GeoNature-citizen/blob/master/install/install_app.sh devrait suffire puisqu'il s'occupe de créer la base de données, créer le rôle postgres, d'installer le backend, le frontend et la configuration apache.

En espérant que cela fonctionne pour vous

geobrun commented 1 year ago

Ok, merci pour l'information ! Par contre, si j'utilise le script "install_app" (je ne l'ai pas regardé), je ne risque pas d'écraser mon Taxhub actuel ?

lpofredc commented 1 year ago

Non, si la variable install_taxhub est bien à false dans le fichier config/settings.ini, alors cela n'impactera pas votre installation de TaxHub.

https://github.com/PnX-SI/GeoNature-citizen/blob/ccc23c02d83b1434704f7769bff148276e176557/config/settings.ini.template#L15

https://github.com/PnX-SI/GeoNature-citizen/blob/ccc23c02d83b1434704f7769bff148276e176557/install/install_app.sh#L106-L109

Quoiqu'il en soit, il est toujours préférable d'effectuer une sauvegarde préalable ;).

geobrun commented 1 year ago

Ok, merci pour l'information @lpofredc ! De mon côté, j'avais seulement renseigné le fichier config.toml, pas le fichier settings.ini. Je vais tester ta solution. Il faut forcément renseigner les deux fichiers je suppose ?

Pas de souci pour les sauvegardes ! ;)

lpofredc commented 1 year ago

Pour une installation nouvelle, il suffit d'éxécuter le fichier install_app.sh. Ce script se chargera de créer les fichiers de configuration settings.ini (en lançant ./install/check_settings.sh) et le fichier config.toml (via le script ./install/copy_config.sh)

geobrun commented 1 year ago

Mon premier essai est un échec : l'URL que j'ai paramétré débouche sur une erreur 503. J'ai remarqué qu'aucun schéma du genre gnc_core n'a été créé. Petite question toute bête : est-ce que ces schémas GeoNature-citizen doivent être créés dans ma BDD GeoNature classique ou est-ce qu'ils doivent être créés dans une nouvelle BDD, avec un nouvel utilisateur PostGreSQL ?

camillemonchicourt commented 1 year ago

GeoNature-citizen est conçu pour être indépendant de GeoNature avec sa propre BDD et fonctionne sans GeoNature. Si tu veux l'intégrer dans une BDD existante (GeoNature ou autre), il faut peut-être adapter les scripts.

geobrun commented 1 year ago

Ok, merci @camillemonchicourt.

Donc si j'ai bien compris, dans le fichier settings.ini, j'indique le chemin de ma BDD GeoNature pour faire le lien avec mon Taxhub. Puis au cours de l'installation, lorsqu'une fenêtre me demande de nouveau des identifiants de BDD, je renseigne des informations pour la création de la nouvelle base de données. A moins que ce ne soit l'inverse ?

geobrun commented 1 year ago

Bon, tout ce que j'ai testé s'est soldé par un échec. Et même pire : une de mes installations a même plus ou moins écrasé mon Usershub et Taxhub précédemment installé ! J'ai réussi à restaurer Usershub mais je butte sur Taxhub. J'ai actuellement deux Taxhub installés : un sur ma BDD geonature2db classique et un autre sur ma nouvelle BDD geonature2citizen. Après réinstallation, Taxhub fonctionne bien, mais il continue à pointer sur ma nouvelle BDD et non sur l'ancienne. J'ai regardé dans les paramètres : je ne trouve pas l'endroit où c'est sûrement indiqué de pointer la nouvelle BDD... Quelqu'un a une idée du paramètre qu'il faudrait que je modifie pour refaire pointer Taxhub sur la bonne BDD ? Sinon je ferai une restauration.

camillemonchicourt commented 1 year ago

Au PNE on ne connaît pas/maîtrise pas l'installation de GeoNature-citizen qu'on n'utilise pas. Et je ne suis pas certain que d'autres avant toi aient déployé GeoNature-citizen sur le même serveur que GeoNature.

Pour TaxHub, sa BDD est définie dans son fichier de configuration.

geobrun commented 1 year ago

Ok, c'est bon, Taxhub est bien reparti. Je devais être un peu fatigué hier soir car j'étais passé à côté du paramètre qui avait été modifié par erreur dans le fichier apptax/config.py.

Merci pour l'info @camillemonchicourt. C'est sûr que ce n'est pas évident de s'y retrouver entre la documentation qui semble partiellement obsolète et le fait que la dernière version date d'il y a maintenant presque un et demi. Du coup, je vais voir pour passer le script install/install_app.sh petit à petit afin de déterminer ce qui cloche dans l'installation.

Pour commencer, voilà ce que j'ai compris de Citizen :

Est-ce que quelqu'un peut me dire si je me trompe sur un point ? :)

Pour l'instant, voilà les deux points sur lesquels j'ai bloqué :

geobrun commented 1 year ago

Suite et fin (a priori) de mes problèmes d'installation !

D'abord, je me suis rendu compte que j'étais en train d'installer la version 0.99.4-dev de Citizen alors qu'il existe une version 1.0.0. C'est seulement qu'elle n'est pas indiquée dans la partie "release" du dépôt. Du coup, je suis reparti de cette version 1.0.0.

Pour information, avec cette release, j'ai buté sur deux petits soucis.

Premier problème, la commande sudo apt -y install python-dev me renvoyait cette erreur :

Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.
L'information suivante devrait vous aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
 libpython2.7-minimal : Casse: python (< 2.7.18)
                        Casse: python-dev (< 2.7.18)
                        Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
 libpython2.7-stdlib : Casse: python (< 2.7.18)
                       Casse: python-dev (< 2.7.18)
                       Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
 python : Dépend: libpython-stdlib (= 2.7.13-2) mais il n'est pas installable
 python-dev : Dépend: libpython-dev (= 2.7.13-2) mais il n'est pas installable
 python2 : Casse: python (< 2.7.15-2)
 python2-minimal : Casse: python-minimal (< 2.7.15-2) mais 2.7.13-2 devra être installé
 python2.7 : Casse: python (< 2.7.18)
             Casse: python-dev (< 2.7.18)
             Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
 python2.7-minimal : Casse: python (< 2.7.18)
                     Casse: python-dev (< 2.7.18)
                     Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
 python3-six : Casse: python (< 2.7.18)
               Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
 python3-yaml : Casse: python (< 2.7.18)
                Casse: python-minimal (< 2.7.18) mais 2.7.13-2 devra être installé
E: Erreur, pkgProblem::Resolve a généré des ruptures, ce qui a pu être causé par les paquets devant être gardés en l'état.

Je ne sais pas si elle est importante mais mon installation a l'air de fonctionner correctement malgré tout. Par contre, cette erreur empêchait l'installation d'autres paquets, et notamment de supervisor (d'où l'erreur 503 que j'avais depuis hier).

Second problème, dans le fichier install/install_app.sh, la ligne python3 -m virtualenv $venv_path débouchait sur l'erreur suivante :

ModuleNotFoundError: No module named 'virtualenv.activation.xonsh'

J'avais déjà rencontré ce type d'erreur par le passé avec GeoNature : j'ai remplacé cette commande par la suivante python3 -m venv $venv_path.

Après ça, pas de souci : les schémas de Citizen sont bien installés dans la BDD dédiée, le lien avec l'API de Taxhub semble opérationnel, et les frontend et backend fonctionnent !

Et merci pour votre aide bien sûr ! :)

camillemonchicourt commented 1 year ago

Tant mieux si tu t'en es sorti. Il faudrait finaliser/stabiliser une installation fonctionnelle et documentée.

Je ne vois pas où tu as trouvée une version 1.0.0 ?

geobrun commented 1 year ago

Je l'ai téléchargée directement depuis la page d'accueil du dépôt : onglet vert "Code", puis "Download ZIP".

camillemonchicourt commented 1 year ago

Ah OK, tu as pris la branche master dans laquelle une version 1.0.0 est en préparation, mais pas encore officielle (ni finie ?) car pas dans les releases.

geobrun commented 1 year ago

C'est ça !

camillemonchicourt commented 1 year ago

Je réouvre car les sujets mentionnés ici ne sont pas réglés, tant que la 1.0.0 n'est pas sortie.

Il y a aussi pas mal de corrections/améliorations qui sont seulement présents dans la branche dev, potentiellement la plus à jour et fonctionnelle ? https://github.com/PnX-SI/GeoNature-citizen/compare/dev A voir avec @lpofredc si il en sait plus.

geobrun commented 1 year ago

J'ai créé une PR pour résoudre le problème de venv que j'ai mentionné plus haut (355).

Par contre, je ne sais pas comment résoudre le premier problème que j'ai rencontré avec la commande sudo apt -y install python-dev.

juliettefabre commented 1 year ago

Ok, c'est bon, Taxhub est bien reparti. Je devais être un peu fatigué hier soir car j'étais passé à côté du paramètre qui avait été modifié par erreur dans le fichier apptax/config.py.

Bonjour,

Je me suis lancée dans l'installation de citizen 0.99.4-dev sur un serveur ayant déjà une install de GeoNature, Taxhub, Usershub et Atlas. J'ai mal interprété les items dans le fichier de config settings.ini, du coup je n'ai pas renseigné ce qu'il fallait, et je me retrouve dans une situation simiaire à celle que vous avez rencontrée ..

La plupart des applis marchent, sauf citizen, mais je rencontre des bugs, sûrement du au fait que mon install de Taxhub a été modifiée ..

Qu'est ce que vous avez du modifier dans le fichier apptax/config.py ?

Savez-vous comment je peux supprimer l'installation de citizen proprement ?

Merci !

geobrun commented 1 year ago

Bonjour,

Il me semble que c'était le paramètre SQLALCHEMY_DATABASE_URI qui avait été modifié. Il faut le faire repointer sur ta BDD GeoNature. Et ensuite redémarrer tous les services de mémoire.

juliettefabre commented 1 year ago

Le paramètre SQLALCHEMY_DATABASE_URI pointe toujours sur la BDD GeoNature ..

Et aucune BDD n'a été créée pour citizen, ce qui est sans doute logique vu que dans la section Configuration PostgreSQL du fichier config/settings.ini, j'ai spécifié les paramètres de ma BDD GeoNature existante .. Qu'as-tu spécifié dans cette section ?

Bon finalement les applis ont l'air d'aller mieux (??), je vais supprimer le dossier gncitizen et retenter une install sans taxhub et avec les bons paramètres de config ?

geobrun commented 1 year ago

Dans cette section, j'ai renseigné un nouveau nom de BDD et un nouveau nom d'utilisateur (pas sûr que ce soit utile pour ce dernier).

Je te conseille de repartir de la version 1.0.0 car j'ai rencontré pas mal de souci avec la version 0.99.4-dev !

juliettefabre commented 1 year ago

OK merci !

camillemonchicourt commented 1 year ago

Oui attention, la dernière version officielle est la 0.99.4-dev, mais depuis il y a eu beaucoup de corrections et évolutions, en vue de sortir une 1.0.0. Celle-ci n'est pas finalisée et sortie, mais le code est dans la branche MASTER - https://github.com/PnX-SI/GeoNature-citizen/compare/v0.99.4-dev...master

Et à priori, au regard des différents retours, elle corrige différents soucis de la version 0.99.4-dev.

Il faut qu'on trouve du temps ou de l'argent pour finaliser et sortir cette version 1.0.0...

juliettefabre commented 1 year ago

OK, j'ai installé la version de la branche master.

J'ai du modifier le fichier install/install_app.sh comme expliqué ici :

Second problème, dans le fichier install/install_app.sh, la ligne python3 -m virtualenv $venv_path débouchait sur l'erreur suivante :

ModuleNotFoundError: No module named 'virtualenv.activation.xonsh'

J'avais déjà rencontré ce type d'erreur par le passé avec GeoNature : j'ai remplacé cette commande par la suivante python3 -m venv $venv_path.

La BDD est bien créée, je n'ai aucun message d'erreur.

Mais j'ai une erreur 404 sur toutes les URL de l'application Citizen.

Dans le fichier settings, j'ai mis :

my_url = http://geonature.oreme.org/gncitizen/ 
url_application = http://geonature.oreme.org/gncitizen/
api_endpoint = http://geonature.oreme.org/gncitizen/api
api_taxhub = http://geonature.oreme.org/taxhub/api

Pourtant, à la fin de l'install, j'ai un message pour le backoffice avec une mauvaise URL pour l'API (cette URL ne marche pas non plus ) :

Backoffice access informations are stored in /home/geonatureadmin/gncitizen/config/backoffice_access as follows:

Backoffice password
===================
url: (geonature.oreme.org/api/admin)

J'ai modifié le fichier de conf /etc/apache2/sites-available/gncitizen.conf pour ajouter le segment manquant /gncitizen :

<VirtualHost *:80>
        # Host
        ServerName geonature.oreme.org

        #      Root url (for frontend)
        <Location /gncitizen>
        ProxyPass  http://localhost:4000/ retry=0
        ProxyPassReverse  http://localhost:4000/
        </Location>

        #      API Url
        <Location /gncitizen/api>
        ProxyPass  http://localhost:5002/gncitizen/api retry=0
        ProxyPassReverse  http://localhost:5002/gncitizen/api
    </Location>

        # Secured backoffice
    <Location /gncitizen/api/admin/>
        AuthType Basic
        AuthName "Restricted Area"
        AuthBasicProvider file
        AuthUserFile "/home/geonatureadmin/gncitizen/config/backoffice_htpasswd"
        Require user citizen
    </Location>

        # Error logs    
        ErrorLog /home/geonatureadmin/gncitizen/var/log/apache2-citizen.log
        CustomLog /home/geonatureadmin/gncitizen/var/log/apache2-citizen.log combined

</VirtualHost>

Mais ça n'a rien changé.

Et je n'ai rien dans aucun fichier de log ....

geobrun commented 1 year ago

A priori, ton fichier de configuration a l'air bon. Tu as bien lancé les commandes sudo a2ensite citizen.conf et sudo service apache2 restart pour le prendre en compte ?

Tu as essayé de redémarré les services ou le serveur ? Ca m'a souvent dépanné par le passé quand des URL n'étaient plus accessibles.

juliettefabre commented 1 year ago

Oui j'ai bien suivi les 2 commandes apache .. Et après un reboot de la VM c'est pas mieux ...

mvergez commented 1 year ago

Bonjour,

Une petite idée : as-tu essayé la commande sudo apache2ctl -S, elle permet de lister notamment tous les virtualhost. Pour bien voir si Apache a bien pris en compte cette configuration de citizen. J'ai l'impression que le problème vient bien d'Apache.

Après, tu peux tester si tu peux accéder à http://localhost:4000 depuis le serveur en utilisant wget, pour voir si le front répond.

Je cherche si j'ai d'autres idées...

juliettefabre commented 1 year ago

Merci, a priori tout semble OK :

$ sudo apache2ctl -S
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server geonature.oreme.org (/etc/apache2/sites-enabled/geonature.conf:1)
         port 80 namevhost geonature.oreme.org (/etc/apache2/sites-enabled/geonature.conf:1)
         port 80 namevhost geonature.oreme.org (/etc/apache2/sites-enabled/gncitizen.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
...
$ wget http://localhost:4000
--2023-05-26 12:42:16--  http://localhost:4000/
Résolution de localhost (localhost)… 127.0.0.1
Connexion à localhost (localhost)|127.0.0.1|:4000… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 75708 (74K) [text/html]
Sauvegarde en : « index.html »
juliettefabre commented 1 year ago

En revanche j'ai une erreur 404 sur le wget de l'API :

$ wget http://localhost:5002/gncitizen/api
--2023-05-26 12:52:40--  http://localhost:5002/gncitizen/api
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:5002... connected.
HTTP request sent, awaiting response... 404 NOT FOUND
2023-05-26 12:52:40 ERROR 404: NOT FOUND.
juliettefabre commented 1 year ago
$ wget http://localhost:4000
--2023-05-26 12:42:16--  http://localhost:4000/
Résolution de localhost (localhost)… 127.0.0.1
Connexion à localhost (localhost)|127.0.0.1|:4000… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 75708 (74K) [text/html]
Sauvegarde en : « index.html »

Cela génère des erreurs dans supervisor_gncitizen_front.log :

getAllPrograms failed: ErrorEvent is not defined
getAllPrograms failed: ErrorEvent is not defined
ERROR ReferenceError: ErrorEvent is not defined
    at CatchSubscriber.selector (/home/geonatureadmin/gncitizen/frontend/dist/server.js:337642:42)
    at CatchSubscriber.error (/home/geonatureadmin/gncitizen/frontend/dist/server.js:40609:31)
    at XMLHttpRequest.onLoad (/home/geonatureadmin/gncitizen/frontend/dist/server.js:92614:30)
    at XMLHttpRequestEventTarget.dispatchEvent (/home/geonatureadmin/gncitizen/frontend/dist/server.js:117878:20)
    at XMLHttpRequest._dispatchProgress (/home/geonatureadmin/gncitizen/frontend/dist/server.js:118373:12)
    at XMLHttpRequest._onHttpResponseEnd (/home/geonatureadmin/gncitizen/frontend/dist/server.js:118328:12)
    at IncomingMessage.<anonymous> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:118287:24)
    at ZoneDelegate.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:611:35)
    at Object.onInvokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:29357:33)
    at ZoneDelegate.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:610:40)
juliettefabre commented 1 year ago

Bonjour,

L'erreur 404 venait effectivement d'un problème de configuration apache, il y avait un conflit avec le virtual host de GeoNature. En séparant les virtual host, c'est mieux.

J'ai aussi corrigé le fichier settings.ini :

# My host URL or IP with / at the end
my_url=http://citizen.oreme.org/
url_application=http://citizen.oreme.org/gncitizen        # Url For the frontend
api_endpoint=http://geonature.oreme.org/geonature/api        # Url for the geonature api don't forget /api
api_port=5002                               # GeoNature-citizen API port, recommended settings
api_taxhub=http://geonature.oreme.org/taxhub/api/  # Url for the taxhub api

Désormais j'ai quelque chose sur http://citizen.oreme.org et sur api/admin (mais pas sur http://citizen.oreme.org/gncitizen)

J'ai cependant toujours une erreur sur le frontend dans supervisor_gncitizen_front.log :

-------------------------------------------------
GeoNature-citizen frontend server is starting ...
-------------------------------------------------
Found '/home/geonatureadmin/gncitizen/frontend/.nvmrc' with version <v14.17.6>
Now using node v14.17.6 (npm v6.14.15)

> frontend@1.0.0 serve:ssr /home/geonatureadmin/gncitizen/frontend
> node dist/server

/home/geonatureadmin/gncitizen/frontend/dist/server.js:382
                            throw error;
                            ^

Error: listen EADDRINUSE: address already in use :::4000
    at Server.setupListenHandle [as _listen2] (net.js:1320:16)
    at listenInCluster (net.js:1368:12)
    at Server.listen (net.js:1454:7)
    at Function.listen (/home/geonatureadmin/gncitizen/frontend/dist/server.js:128475:24)
    at Module.<anonymous> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:178:5)
    at __webpack_require__ (/home/geonatureadmin/gncitizen/frontend/dist/server.js:20:30)
    at /home/geonatureadmin/gncitizen/frontend/dist/server.js:84:18
    at Object.<anonymous> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:87:10)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1347:8)
    at ZoneDelegate.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:611:35)
    at Zone.runTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:378:51)
    at ZoneTask.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:693:38)
    at ZoneTask.invoke (/home/geonatureadmin/gncitizen/frontend/dist/server.js:682:52)
    at data.args.<computed> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:1634:63)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 4000
}

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! frontend@1.0.0 serve:ssr: `node dist/server`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the frontend@1.0.0 serve:ssr script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!    /home/geonatureadmin/.npm/_logs/2023-06-30T12_39_48_990Z-debug.log

Et dans les log npm en question :

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   '/home/geonatureadmin/.nvm/versions/node/v14.17.6/bin/node',
1 verbose cli   '/home/geonatureadmin/.nvm/versions/node/v14.17.6/bin/npm',
1 verbose cli   'run',
1 verbose cli   'serve:ssr'
1 verbose cli ]
2 info using npm@6.14.15
3 info using node@v14.17.6
4 verbose run-script [ 'preserve:ssr', 'serve:ssr', 'postserve:ssr' ]
5 info lifecycle frontend@1.0.0~preserve:ssr: frontend@1.0.0
6 info lifecycle frontend@1.0.0~serve:ssr: frontend@1.0.0
7 verbose lifecycle frontend@1.0.0~serve:ssr: unsafe-perm in lifecycle true
8 verbose lifecycle frontend@1.0.0~serve:ssr: PATH: /home/geonatureadmin/.nvm/versions/node/v14.17.6/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/geonatureadmin/gncitizen/fronte>
9 verbose lifecycle frontend@1.0.0~serve:ssr: CWD: /home/geonatureadmin/gncitizen/frontend
10 silly lifecycle frontend@1.0.0~serve:ssr: Args: [ '-c', 'node dist/server' ]
11 silly lifecycle frontend@1.0.0~serve:ssr: Returned: code: 1  signal: null
12 info lifecycle frontend@1.0.0~serve:ssr: Failed to exec serve:ssr script
13 verbose stack Error: frontend@1.0.0 serve:ssr: `node dist/server`
13 verbose stack Exit status 1
13 verbose stack    at EventEmitter.<anonymous> (/home/geonatureadmin/.nvm/versions/node/v14.17.6/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack    at EventEmitter.emit (events.js:400:28)
13 verbose stack    at ChildProcess.<anonymous> (/home/geonatureadmin/.nvm/versions/node/v14.17.6/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack    at ChildProcess.emit (events.js:400:28)
13 verbose stack    at maybeClose (internal/child_process.js:1055:16)
13 verbose stack    at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
14 verbose pkgid frontend@1.0.0
15 verbose cwd /home/geonatureadmin/gncitizen/frontend
16 verbose Linux 5.10.0-23-cloud-amd64
17 verbose argv "/home/geonatureadmin/.nvm/versions/node/v14.17.6/bin/node" "/home/geonatureadmin/.nvm/versions/node/v14.17.6/bin/npm" "run" "serve:ssr"
18 verbose node v14.17.6
19 verbose npm  v6.14.15
20 error code ELIFECYCLE
21 error errno 1
22 error frontend@1.0.0 serve:ssr: `node dist/server`
22 error Exit status 1
23 error Failed at the frontend@1.0.0 serve:ssr script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

Il vaudrait peut-être mieux que je fasse une nouvelle issue ?

juliettefabre commented 1 year ago

OK je crois que c'est encore un conflit avec GeoNature, conflit sur le port 4000.

TheoLechemia commented 1 year ago

Il n'y a rien qui tourne sur le port 4000 côté GeoNature

juliettefabre commented 1 year ago

En effet j'ai plané !

lpofredc commented 1 year ago

Votre gncitizen est sur l'url http://citizen.oreme.org/, votre config de frontend (dans src/conf/app.config.ts) semble indiquer que l'API de Citizen (variable API_ENDPOINT) est à http://geonature.oreme.org/gncitizen/api alors quelle est disponible à http://citizen.oreme.org/api. En principe il ne vous reste plus qu'à changer cette variable dans la conf du frontend et le recompiler. Par précaution, je vous recommande de tuer le processus node en cours et de le relancer via supervisor (sudo supervisorctl restart gncitizen_front)

juliettefabre commented 1 year ago

Bonjour,

Merci ! Dans le fichier de settings il est indiqué # Url for the geonature api don't forget /api, j'ai donc bêtement renseigné http://geonature.oreme.org/geonature/api à mon 2ème essai d'installation ..

Désolée pour la question de béotienne, mais quelle commande dois-je lancer pour recompiler le frontend après avoir modifié la conf ?

lpofredc commented 1 year ago

En effet, c'est à revoir dans les fichiers de config, merci pour ce retour.

Voici concernant la commande de recompilation:

cd ~/gncitizen/frontend/
nvm use
npm run build:i18n-ssr
juliettefabre commented 1 year ago

Merci ! La compilation a bien marché, j'ai relancé le front, mais j'ai toujours les mêmes erreurs dans les logs ..

Error: listen EADDRINUSE: address already in use :::4000
    at Server.setupListenHandle [as _listen2] (net.js:1320:16)
    at listenInCluster (net.js:1368:12)
    at Server.listen (net.js:1454:7)
    at Function.listen (/home/geonatureadmin/gncitizen/frontend/dist/server.js:128475:24)
    at Module.<anonymous> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:178:5)
    at __webpack_require__ (/home/geonatureadmin/gncitizen/frontend/dist/server.js:20:30)
    at /home/geonatureadmin/gncitizen/frontend/dist/server.js:84:18
    at Object.<anonymous> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:87:10)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1347:8)
    at ZoneDelegate.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:611:35)
    at Zone.runTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:378:51)
    at ZoneTask.invokeTask (/home/geonatureadmin/gncitizen/frontend/dist/server.js:693:38)
    at ZoneTask.invoke (/home/geonatureadmin/gncitizen/frontend/dist/server.js:682:52)
    at data.args.<computed> (/home/geonatureadmin/gncitizen/frontend/dist/server.js:1634:63)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 4000
}

J'ai tenté de modifier également dans la config URL_APPLICATION:http://citizen.oreme.org (sans le segment gncitizen final) mais pas mieux ...

lpofredc commented 1 year ago

C'est sans doute que le service précédent tourne toujours en tache de fond. Tentez les commandes suivantes:

sudo supervisorctl stop gncitizen_front
sudo killall node
sudo supervisorctl start gncitizen_front
juliettefabre commented 1 year ago

Ouiiii ça marche ! Merci infiniment !

sig-pnrbsn commented 7 months ago

Bonjour, J'ai tenté l'installation de la Geonature Ctitizen version 1.0.0 en suivant les conseils mentionnés dans ce post, dont je remercie les participants. L'installation a globalement bien fonctionné, mais le chargement du site est très long (plus d'une minute) et j'ai une erreur "getAllPrograms failed: ErrorEvent is not defined..." dans le fichier supervisor_gncitizen_front.log. La partie admin (/api/admin/) fonctionne normalement.

Une idée d'où peut venir le problème ? Toute aide sera la bienvenue ! Merci d'avance.

lpofredc commented 7 months ago

Bonjour @sig-pnrbsn, que donne l'url d'API /api/programs, correspondant à celle appelée par la fonction getAllPrograms du frontend? Comment la première enquête a-t-elle été créée?

sig-pnrbsn commented 7 months ago

@lpofredc merci pour votre aide. L'url /api/programs renvoie la liste des programmes en JSON. Il y a 2 enquêtes test créées sur l'interface d'administration (/api/admin). Voici le résultat :

{"type": "FeatureCollection", "features": [{"properties": {"id_program": 1, "id_project": 1, "title": "prgm test", "short_desc": "test de programme", "image": null, "logo": null, "id_module": 1, "taxonomy_list": 106, "is_active": true, "timestamp_create": "2024-01-15 10:21:35.340038", "timestamp_update": "2024-01-15 10:21:35.340041", "module": {"id_module": 1, "name": "observations", "label": "observations", "desc": "Module d'observations taxonomiques", "icon": null, "on_sidebar": false, "timestamp_create": "2024-01-15 09:08:14.166076", "timestamp_update": "2024-01-15 09:08:14.166081"}, "project": {"id_project": 1, "unique_id_project": "e529cb0d-a4f7-4bcd-89dc-5ccd7e40d21c", "name": "projet test", "short_desc": null, "long_desc": "", "timestamp_create": "2024-01-15 10:21:09.549706", "timestamp_update": "2024-01-15 10:21:09.549709"}}}, {"properties": {"id_program": 2, "id_project": 1, "title": "prgm test 2", "short_desc": "test prgm2", "image": null, "logo": null, "id_module": 1, "taxonomy_list": 103, "is_active": true, "timestamp_create": "2024-01-15 10:45:12.497003", "timestamp_update": "2024-01-15 10:45:12.497005", "module": {"id_module": 1, "name": "observations", "label": "observations", "desc": "Module d'observations taxonomiques", "icon": null, "on_sidebar": false, "timestamp_create": "2024-01-15 09:08:14.166076", "timestamp_update": "2024-01-15 09:08:14.166081"}, "project": {"id_project": 1, "unique_id_project": "e529cb0d-a4f7-4bcd-89dc-5ccd7e40d21c", "name": "projet test", "short_desc": null, "long_desc": "", "timestamp_create": "2024-01-15 10:21:09.549706", "timestamp_update": "2024-01-15 10:21:09.549709"}}}], "count": 2}

lpofredc commented 7 months ago

merci @sig-pnrbsn. Je ne parviens pas à reproduire.

L'interface de Citizen se charge-t-elle a minima (logo, image de l'introduction). Une capture d'écran complète avec le rendu de la page et la console du navigateur ouverte aiderait à mieux comprendre le problème.

Par ailleurs, ce message d'erreur que vous avez m'interpelle, il stipule que ErrorEvent is not defined alors que c'est un type d'object javascript normalement reconnu par les navigateurs modernes: https://developer.mozilla.org/fr/docs/Web/API/ErrorEvent.

Quel navigateur utilisez-vous, avez-vous essayé sur Chrome ou Firefox ?

sig-pnrbsn commented 7 months ago

@lpofredc Oui l'interface se charge avec les éléments par défaut (elle n'est pas encore personnalisée). J'utilise un navigateur Firefox à jour. Voici le message complet dans le log :

getAllPrograms failed: ErrorEvent is not defined ERROR ReferenceError: ErrorEvent is not defined at CatchSubscriber.selector (/home/geonat/gncitizen1/frontend/dist/server.js:337642:42) at CatchSubscriber.error (/home/geonat/gncitizen1/frontend/dist/server.js:40609:31) at XMLHttpRequest.onError (/home/geonat/gncitizen1/frontend/dist/server.js:92635:26) at XMLHttpRequestEventTarget.dispatchEvent (/home/geonat/gncitizen1/frontend/dist/server.js:117878:20) at XMLHttpRequest._dispatchProgress (/home/geonat/gncitizen1/frontend/dist/server.js:118373:12) at XMLHttpRequest._onHttpRequestError (/home/geonat/gncitizen1/frontend/dist/server.js:118363:12) at ClientRequest. (/home/geonat/gncitizen1/frontend/dist/server.js:118232:24) at ZoneDelegate.invokeTask (/home/geonat/gncitizen1/frontend/dist/server.js:611:35) at Object.onInvokeTask (/home/geonat/gncitizen1/frontend/dist/server.js:29357:33) at ZoneDelegate.invokeTask (/home/geonat/gncitizen1/frontend/dist/server.js:610:40) Locale: fr.

Ci-joint une capture d'écran avec la console. L'adresse du site (provisoire) est la suivante si vous voulez voir directement : https://citizen.cartaparc.fr

Merci

Capture_GNCitizen_PnrBSN

sig-pnrbsn commented 7 months ago

Bonjour @lpofredc, avez-vous une idée de l'origine du problème. Ou bien d'autres tests à réaliser ? Merci

lpofredc commented 7 months ago

Bonjour @sig-pnrbsn,

Rien n'aboutit sur l'URL fournie (https://citizen.cartaparc.fr).

J'ai en effet pu constater une telle erreur dans le log du frontent côté serveur, lorsque le backend (API flask) était off. Cela fait penser à ce ticket: https://stackoverflow.com/questions/76517268/angular-universal-ssr-not-reaching-api-with-error-errorevent-is-not-defined

Les services frontend et backend sont-ils bien opérationnels ?

Pouvez-vous préciser les configurations suivantes ?

https://github.com/PnX-SI/GeoNature-citizen/blob/93472eab0fefbbc6da2e612d2f01016749fb97bb/config/config.toml.template#L19-L22

https://github.com/PnX-SI/GeoNature-citizen/blob/93472eab0fefbbc6da2e612d2f01016749fb97bb/frontend/src/conf/app.config.ts.template#L3-L21

sig-pnrbsn commented 7 months ago

Bonjour @lpofredc ,

L'URL https://citizen.cartaparc.fr/ finit par aboutir, mais il faut être vraiment très patient... :)

La commande sudo supervisorctl status renvoie les services gncitizen_api et gncitizen_front en statut "running".

Voici le contenu des fichiers de configuration.

sig-pnrbsn commented 5 months ago

Bonjour @lpofredc ,

Je me permet de relancer cette discussion car je n'ai toujours pas trouvé de solution à mon problème.

Les paramètres ci-dessus vous semblent-ils corrects ?

Merci d'avance.