PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
102 stars 102 forks source link

Après le script install_all, l'accès à geonature renvoie une erreur 403 #2665

Closed rastaferraille closed 1 year ago

rastaferraille commented 1 year ago

Version 2.12.3

Description du bug Le script d'installation se termine correctement, mais l'accès depuis un navigateur à geonature renvoie une erreur 403.

Version OS

Debian 11.7 fraîchement installée.

rastaferraille commented 1 year ago

Le frontend n'a pas été compilé (il n'y a pas de répertoire "dist" dans le dossier). Je lance npm run build manuellement dans le dossier frontend. Le build se termine avec des warnings.

Quand j'accède à géonature depuis le navigateur, j'ai maintenant une erreur me disant que le l'API ne fonctionne pas. (Can't load config from API. Maybe API is down)

Dans le log d'apache, j'ai l'erreur suivante :

HTTP: failed to make connection to backend: 127.0.0.1

camillemonchicourt commented 1 year ago

Il nous faudrait plus d'info pour éventuellement identifier le soucis, notamment les logs du script install_all.

rastaferraille commented 1 year ago

Oui bien sûr ! Merci, voici le fichier !

install_all.log

camillemonchicourt commented 1 year ago

Il n'y a pas d'erreur dans les logs du script d'installation globale. Par contre en effet, il manque la partie de compilation du frontend, qui est pourtant faite automatiquement dans ce même script. Je viens de retester une installation globale avec le script install_all.sh sur Debian 11 et GeoNature version 2.12.3. Ça me fait bien toute l'installation automatiquement, dont la compilation du frontend, et mon GeoNature est bien accessible et fonctionnel directement à la fin du script, sans rien faire d'autre.

Je ne vois pas pourquoi, dans votre cas, la compilation du frontend ne s'est pas exécutée lors de l'installation globale. Et si l'application n'arrive pas à charger l'API depuis la configuration, c'est que vous avez un soucis dans votre URL de configuration.

Dans le fichier install_all.ini, il faut bien renseigner le paramètre "my_url" avec l'URL finale de votre serveur sur lequel est installé GeoNature. Par exemple "http://geonature.ecrins-parcnational.fr/" Et que ce serveur soit accessible et fonctionnel. Cela ne semble pas être votre cas ?

rastaferraille commented 1 year ago

Bonjour,

Merci beaucoup pour le temps passé pour l'investigation. Je vais vérifier l'URL. J'arrive bien à me connecter sur les autres pages (comme usersHub et TaxHub).

Je pense que je vais refaire un serveur vierge sans partir de notre template durci.

Merci,

Bien cordialement,

Le mar. 22 août 2023 à 18:17, Camille Monchicourt @.***> a écrit :

Il n'y a pas d'erreur dans les logs du script d'installation globale. Par contre en effet, il manque la partie de compilation du frontend, qui est pourtant faite automatiquement dans ce même script. Je viens de retester une installation globale avec le script install_all.sh sur Debian 11 et GeoNature version 2.12.3. Ça me fait bien toute l'installation automatiquement, dont la compilation du frontend, et mon GeoNature est bien accessible et fonctionnel directement à la fin du script, sans rien faire d'autre.

Je ne vois pas pourquoi, dans votre cas, la compilation du frontend ne s'est pas exécutée lors de l'installation globale. Et si l'application n'arrive pas à charger l'API depuis la configuration, c'est que vous avez un soucis dans votre URL de configuration.

Dans le fichier install_all.ini, il faut bien renseigner le paramètre "my_url" avec l'URL finale de votre serveur sur lequel est installé GeoNature. Par exemple "http://geonature.ecrins-parcnational.fr/" Et que ce serveur soit accessible et fonctionnel. Cela ne semble pas être votre cas ?

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2665#issuecomment-1688520282, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUTXSF7474TD2PL2DWLXWTLRDANCNFSM6AAAAAA3YERPHQ . You are receiving this because you authored the thread.Message ID: @.***>

camillemonchicourt commented 1 year ago

Oui nous venons de sortir la version 2.13.0 (compatible Debian 12) et avons alors encore fait de nombreux tests d'installation sans soucis.

rastaferraille commented 1 year ago

Bonjour,

J'ai installé avec succès (et beaucoup de facilité) la version 2.13 sur une nouvelle debian 12.

Merci encore.

Bien cordialement,

Le sam. 26 août 2023 à 00:37, Camille Monchicourt @.***> a écrit :

Oui nous venons de sortir la version 2.13.0 (compatible Debian 12) et avons alors encore fait de nombreux tests d'installation sans soucis.

— Reply to this email directly, view it on GitHub https://github.com/PnX-SI/GeoNature/issues/2665#issuecomment-1694004303, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXOFUQCMAQKBYNSPTRJN53XXESMJANCNFSM6AAAAAA3YERPHQ . You are receiving this because you authored the thread.Message ID: @.***>

cen-cgeier commented 1 year ago

Bonjour à tous,

Constat : J'ai un problème très similaire, que je ne parviens pas à résoudre... En effet, depuis la mise à jour de GN, je suis confronté à la page 403 Forbbiden. De la même façon que @rastaferraille plus haut, je ne possède pas de dossier dist geonature > frontend > dist. ![image](https://github.com/PnX-SI/GeoNature/assets/96542451/3e1fea26-a856-4f28-95aa-1125d9d5e De la même façon que @rastaferraille plus haut, je ne possède pas de dossier dist geonature > frontend > dist.118)

Le problème survient après la montée en version suivante : GN 2.12.3 ==> 2.13.2 Monitoring 0.6.0 ==> 0.7.0 Import 2.1.0 ==> 2.2.3 Export 1.4.0 ==> 1.6.0 Dashboard 1.3.0 ==> 1.4.0

Tentatives réalisées : J'ai tenté les commandes suivantes :

Logs : Aucun log se rapportant au problème ne figure dans les fichiers de log. Les commandes réalisées renvoient toutes deux le message suivant :

(venv) geonatureadmin@cen38:~$ geonature update-configuration
/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py:302: DeprecationWarning: '_app_ctx_stack' is deprecated and will be removed in Flask 2.3. Use 'g' to store data, or 'app_ctx' to access the current context.
  queries = _app_ctx_stack.top.sqlalchemy_queries
/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/flask_sqlalchemy/__init__.py:304: DeprecationWarning: '_app_ctx_stack' is deprecated and will be removed in Flask 2.3. Use 'g' to store data, or 'app_ctx' to access the current context.
  queries = _app_ctx_stack.top.sqlalchemy_queries = []
/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/sqlalchemy/orm/mapper.py:1841: SAWarning: Property TBaseVisits.dataset on mapped class TBaseVisits->t_base_visits being replaced with new property TBaseVisits.dataset; the old property will be discarded
  util.warn(
Génération de la configuration du frontend :
  GeoNature … OK
  Module ZONES_HUMIDES … OK
  Module IMPORT … OK
  Module EXPORTS … OK
  Module DASHBOARD … OK
  Module MONITORINGS … OK
  Module OCCTAX … OK
  Module VALIDATION … OK
  Module OCCHAB … OK
Rebuild du frontend …
Found '/home/geonatureadmin/geonature/frontend/.nvmrc' with version <lts/gallium>
Running node v16.20.2 (npm v8.19.4)

> geonature@0.0.0 build
> ng build

✔ Browser application bundle generation complete.

Warning: /home/geonatureadmin/geonature/frontend/external_modules/import/app/components/import_list/import-list.component.ts depends on 'file-saver'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/import/app/components/import_process/fields-mapping-step/fields-mapping-step.component.ts depends on 'rxjs/observable/forkJoin'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/import/app/components/import_report/import_report.component.ts depends on 'leaflet-image'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/monitorings/app/components/monitoring-properties/monitoring-properties.component.ts depends on 'html2canvas'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/occhab/app/components/occhab-map-list/occhab-map-list.component.ts depends on 'moment'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/zones_humides/app/services/files.service.ts depends on 'file-saver'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/zones_humides/app/zh-map-list/zh-map-list.component.ts depends on 'moment'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/external_modules/zones_humides/node_modules/angular2-multiselect-dropdown/__ivy_ngcc__/fesm2015/angular2-multiselect-dropdown.js depends on '@tweenjs/tween.js'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/GN2CommonModule/form/autocomplete/autocomplete.component.ts depends on 'rxjs/observable/of'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/GN2CommonModule/form/dynamic-form-generator/dynamic-form-generator.component.ts depends on 'fast-deep-equal/es6'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/GN2CommonModule/map/map.service.ts depends on 'leaflet.markercluster'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/GN2CommonModule/map/map.service.ts depends on 'lodash'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/app.module.ts depends on 'ng2-cookies'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/components/home-content/home-content.component.ts depends on 'leaflet'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Warning: /home/geonatureadmin/geonature/frontend/src/app/syntheseModule/synthese.component.ts depends on 'lodash/cloneDeep'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:41:19 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

41     console.log(L.Draw);
                     ~~~~

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:43:32 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

43     this._mapService.map.off(L.Draw.Event.DRAWSTART);
                                  ~~~~

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:44:31 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

44     this._mapService.map.on(L.Draw.Event.CREATED, (e) => {
                                 ~~~~

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:47:32 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

47     this._mapService.map.off(L.Draw.Event.EDITED);
                                  ~~~~

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:48:31 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

48     this._mapService.map.on(L.Draw.Event.EDITSTART, (e) => {
                                 ~~~~

Error: external_modules/zones_humides/app/zh-forms/map/map.component.ts:51:31 - error TS2339: Property 'Draw' does not exist on type 'typeof import("/home/geonatureadmin/geonature/frontend/node_modules/@types/leaflet/index")'.

51     this._mapService.map.on(L.Draw.Event.EDITED, (e) => {
                                 ~~~~

Traceback (most recent call last):
  File "/home/geonatureadmin/geonature/backend/venv/bin/geonature", line 8, in <module>
    sys.exit(main())
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/flask/cli.py", line 357, in decorator
    return __ctx.invoke(f, *args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/venv/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/home/geonatureadmin/geonature/backend/geonature/core/command/main.py", line 129, in update_configuration
    build_frontend()
  File "/home/geonatureadmin/geonature/backend/geonature/utils/command.py", line 76, in build_frontend
    run(cmd, check=True, cwd=str(FRONTEND_DIR))
  File "/usr/lib/python3.8/subprocess.py", line 516, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/bin/env', 'bash', '-i', '-c', 'nvm exec npm run build']' returned non-zero exit status 1.
TheoLechemia commented 1 year ago

Bonjour,

est ce que tu peux essayer de lancer cette commande depuis ton répertoire frontend : npm install @types/leaflet-draw puis de relancer un build : npm run build

cen-cgeier commented 1 year ago

Salut @TheoLechemia et un grand merci pour ta réactivité ! J'ai exécuté les 2 commandes que tu proposes :

(venv) geonatureadmin@cen38:~/geonature/frontend$ npm run build

> geonature@0.0.0 build /home/geonatureadmin/geonature/frontend
> ng build

Node.js version v10.15.3 detected.
The Angular CLI requires a minimum Node.js version of either v14.20, v16.13 or v18.10.

Please update your Node.js version or visit https://nodejs.org/ for additional instructions.

npm ERR! code ELIFECYCLE
npm ERR! errno 3
npm ERR! geonature@0.0.0 build: `ng build`
npm ERR! Exit status 3
npm ERR! 
npm ERR! Failed at the geonature@0.0.0 build 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-10-09T14_55_52_436Z-debug.log

J'ai finalement exécuter la même commande en passant par nvm comme semble le faire GéoNature :

J'ai de-nouveau accès à la page de login :rocket: . Je vais pousser mes vérification mais les choses semblent rentrées dans l'ordre.

Encore merci !

camillemonchicourt commented 1 year ago

C'est normal que tu aies un soucis. Tu as le module ZH qui n'a pas de version compatible avec GN 2.13. On a bien eu le même soucis sur @types/leaflet-draw quand on a tenté de mettre à jour GN en 2.13 avec le module ZH installé.

Je pense que c'est lié au fait que la librairie @types a été ajouté dans les dépendances de frontend de GN en 2.13 et que ça pose un soucis au module ZH.

cen-cgeier commented 1 year ago

Haaaa, ce bon vieux module ZH quel farceur ! :smile: J'avais oublié que des problèmes de compatibilité pouvaient persister avec ce module. Merci du diagnostique @camillemonchicourt, je tenterais d'être plus prudent à l'avenir.

camillemonchicourt commented 1 year ago

Oui on a réussi à le faire fonctionner avec GN 2.12, mais pas encore 2.13. On va regarder si c'est un soucis simple mais pas certain.

cen-cgeier commented 1 year ago

Je n'ai pas eu le temps de chercher l'origine du problème, mais dans tous les cas la solution de Théo a fonctionné. Après npm install @types/leaflet-draw et nvm exec npm run build, le module GN_ZH est fonctionnel et opérationnel tout comme le reste de GN à priori

camillemonchicourt commented 1 year ago

OK merci. Ça devrait nous permettre de solutionner le truc et sortir la version 1.2 de ZH, compatible avec GN 2.13 : https://github.com/PnX-SI/gn_module_ZH/pull/35/files

camillemonchicourt commented 1 year ago

Le soucis est bien lié au contexte du module ZH et du passage de la dépendance @type/leafet des dépendances de dev aux dépendances de prod dans la 2.13 de GeoNature (https://github.com/PnX-SI/GeoNature/pull/2609). Dans les 2 cas, ce n'est pas une erreur ni côté ZH, ni côté GN, mais plutôt le fait qu'il faut le faire pour d'autres dépendances Frontend de Leaflet.

Ce que Théo a fait ici - https://github.com/PnX-SI/GeoNature/pull/2746

A tester et si OK, on pourra faire une release de GN incluant cela, puis une version du module ZH compatible avec GN 2.13.

camillemonchicourt commented 1 year ago

Corrigé dans la version 2.13.3 de GeoNature et la version 1.2.0 du module ZH compatible avec GeoNature 2.13.