Open pbarille opened 11 months ago
OK merci pour ce retour. Nous n'avons pas encore sorti de version officiellement compatible Debian 12, car pas encore testé. Donc merci pour ce retour, et tant mieux si il n'y a que ce petit ajustement.
Intéressant pour les modifications des SQL, mais je ne suis pas certain qu'il faille se baser par défaut sur le contenu du champs l.enable = true
pour les communes à remonter, car peu de structures ont renseigné ce champs et ça compliquerait la tache et la compréhension (déjà bien complexe) pour les nouveaux utilisateurs. Mais à voir...
Intéressant pour les autres optimisations. Il faudrait se pencher sur ça, mais nous n'avons pas de ressources sur le projet GeoNature-atlas actuellement, donc nous concentrons sur GeoNature.
J'espère qu'il sera possible prochainement de faire un gros travail de ménage, de simplification et d'optimisations sur GeoNature-atlas, car ça devient de plus en plus dense et complexe et il y aurait matière à optimiser et simplifier.
Je confirme aussi que l'install se passe bien sur debian 12 avec, pour ma part, une version de greenlet==1.1.3
dans le requirements.txt
.
Dans mon cas, il s'agissait d'une migration de serveur avec une version existante de l'atlas en 1.5.1 vers 1.6.1. J'ai donc migré la base de données sans modifications autres que le SQL proposé dans la version 1.6.0.
Concernant Apache, de mon côté, je suis sur sous domaine, donc l'atlas aussi à une url à la racine.
j'utilise le IncludeOptional /etc/apache2/conf-available/geonature.conf
dans le virtualhost de GeoNature mais le fichier de la conf apache /etc/apache2/conf-available/geonature.conf
doit être mise à jour car il est prévu pour une utilisation de GN sur un domaine principal, tel que https://mondomaine.xy/geonature. Il faut retirer des /geonature
dans les Alias
, RewriteRule
, AliasMatch
et Location
ceci fonctionne avec l'url ci-dessus
/etc/apache2/sites-available/geonature-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName geonature.mondomaine.xy
<Directory /home/geonatureadmin/geonature/frontend/dist>
Require all granted
</Directory>
IncludeOptional /etc/apache2/conf-available/geonature.conf
ErrorLog "/var/log/apache2/geonature_error.log"
CustomLog "/var/log/apache2/geonature_access.log" combined
SSLCertificateFile /etc/letsencrypt/live/geonature.mondomaine.xy/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/geonature.mondomaine.xy/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
/etc/apache2/conf-available/geonature.conf
# Alias: first have precedence, so static & media aliases must be defined before /geonature alias
Alias "/api/media" "/home/geonatureadmin/geonature/backend/media"
<Directory "/home/geonatureadmin/geonature/backend/media">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
Alias "/api/static" "/home/geonatureadmin/geonature/backend/static"
<Directory "/home/geonatureadmin/geonature/backend/static">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
# CUSTOM STATIC FILE
RewriteEngine On
# Define STATIC_FILE environment variable
RewriteRule "^/api/static/(.*)$" - [env=STATIC_FILE:$1,chain]
# Test if custom static file exists (not tested for non static file thanks to previous chain flag)
RewriteCond "/home/geonatureadmin/geonature/custom/%{ENV:STATIC_FILE}" -f
# If so, redirect to custom static file instead of default static file
RewriteRule "^/api/static/(.*)$" "/home/geonatureadmin/geonature/custom/$1" [L]
<Directory "/home/geonatureadmin/geonature/custom">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
AliasMatch "^(.*)$" "/home/geonatureadmin/geonature/frontend/dist$1"
<Directory "/home/geonatureadmin/geonature/frontend/dist">
Require all granted
</Directory>
<Location "/api">
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/geo+json
</IfModule>
</Location>
# Location: last have precedence so next blocks must be located after /api location block
<Location "/api/media">
ProxyPass !
</Location>
<Location "/api/static">
ProxyPass !
</Location>
Et... /etc/apache2/sites-available/atlas-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName atlas.mondomaine.xy
# Configuration GeoNature-atlas
<Location />
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
SSLCertificateFile /etc/letsencrypt/live/atlas.mondomaine.xy/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/atlas.mondomaine.xy/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
Concernant le fichier /etc/apache2/conf-available/geonature.conf
, normalement (de mémoire) on n'a pas à le modifier manuellement.
Le script https://github.com/PnX-SI/GeoNature/blob/master/install/06_configure_apache.sh se charge de le renseigner comme il faut et si on modifie l'URL de son GeoNature (pour le passer sur un sous-domaine par exemple), on le relance et cela regénère le fichier /etc/apache2/conf-available/geonature.conf
comme il faut.
Voir https://docs.geonature.fr/installation.html#configuration-apache
Ha cool. J'ignorais cette méthode. C'est bien pratique, je testerai. Merci
l'install se passe bien sur debian 12 avec, pour ma part, une version de
greenlet==1.1.3
dans lerequirements.txt
.
Même constat, seul la mise à jour de la version de Greenlet vers 1.1.3 a été nécessaire pour l'installation sur Debian 12.
Par contre, côté performance, cela ne fonctionnait pas avec la release par défaut et une base GeoNature de 9 millions d'observations. J'ai du créer une branche feat/cbna
intégrant les PR #393, #397, #402, #404, #406 et #454 pour que cela créé la base de l'Atlas en moins de 10mn.
Super merci pour ce retour ! Sur la partie configuration d'apache, j'ai le meme soucis que vous sur la cohabitation entre geonature et atlas sur le meme serveur.
J'ai donc essayé votre solution en écrivant (C'est la première fois que je fais de la configuration apache)
ProxyPass /geonature ! ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/
dans /etc/apache2/sites-available/atlas.conf
Mais impossible de redémarrer le service.
AH00526: Syntax error on line 4 of /etc/apache2/sites-enabled/atlas.conf: ProxyPass|ProxyPassMatch can not have a path when defined in a location. Action 'restart' failed. The Apache error log may have more information.
Je suppose que cela ne s'écrit pas exactement comme ceci mais impossible de trouver la bonne solution. Comment avez-vous fais ?
j'ai indiqué "URL_APPLICATION = "" " dans config.py
Merci d'avance.
Configuration Apache
Nous avons eu quelques soucis avec les configurations apache pour faire cohabiter atlas et geonature sur le même serveur.
La configuration suivante fonctionne très bien mais a rendu geonature inaccessible :
<Location /> ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/ </Location>
La configuration suivante nous a renvoyé des erreurs 404 pour l'accès à atlas, nous avions pourtant modifié le config.py pour pointer sur
/atlas
également :<Location /atlas> ProxyPass http://127.0.0.1:8080/atlas ProxyPassReverse http://127.0.0.1:8080/atlas </Location>
Nous avons trouvé la solution suivante qui est fonctionnelle et qui nous convient sur l'organisation des urls :
ProxyPass /geonature ! ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/
Bonjour,
J'ai bien la même chose concernant l'URL application.
Pour les confs apache, le fichier atlas.conf
se situe dans le dossier conf-available
et non site-available
sur mon serveur mais ce n'est peut-être pas là où ça se joue.
J'ai un ServerName
qui pointe vers mon nom de domaine (ou à défaut l'IP de mon serveur) de défini dans atlas.conf
Il faut également enlever les balise </Location></Location>
dans atlas.conf
pour que cela fonctionne, au vu de votre message d'erreur, peut-être sont-elles toujours présentes dans votre fichier.
Bonne journée, Pascal
Bonjour, je me permet de revenir vers vous.
J'ai réinstallé Géonature, citizen et Atlas sur un debian 12. J'ai également du changer greenlet==1.1.3 dans le requirements.txt
Mais voila Géonature n'est aussi plus accessible de mon coté.
J'ai une configuration en sous domaine avec gncitizen.mondomaine.xy, geonature.mondomaine.xy et atlas.mondomaine.xy. Mais dorénavant geonature.mondomaine.xy, mondomaine.xy et atlas.mondomaine.xy arrive tous sur le site d'atlas.
Dans atlas/configuration/config.py.example j'ai essayé de renseigner pour l'URL : "" ou "atlas.mondomaine.xy", mais cela ne change rien. Je peux d'ailleurs mettre n'importe quoi dans les guillemets et rien ne change (je relance bien 'sudo systemctl restart geonature-atlas' apres chaque changement).
voici mon fichier conf-availables/geonature.conf :
# Alias: first have precedence, so static & media aliases must be defined before /geonature alias
Alias "/api/media" "/home/geonatureadmin/geonature/backend/media"
<Directory "/home/geonatureadmin/geonature/backend/media">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
Alias "/api/static" "/home/geonatureadmin/geonature/backend/static"
<Directory "/home/geonatureadmin/geonature/backend/static">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
# CUSTOM STATIC FILE
RewriteEngine On
# Define STATIC_FILE environment variable
RewriteRule "^/api/static/(.*)$" - [env=STATIC_FILE:$1,chain]
# Test if custom static file exists (not tested for non static file thanks to previous chain flag)
RewriteCond "/home/geonatureadmin/geonature/custom/%{ENV:STATIC_FILE}" -f
# If so, redirect to custom static file instead of default static file
RewriteRule "^/api/static/(.*)$" "/home/geonatureadmin/geonature/custom/$1" [L]
<Directory "/home/geonatureadmin/geonature/custom">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
AliasMatch "^(.*)$" "/home/geonatureadmin/geonature/frontend/dist$1"
<Directory "/home/geonatureadmin/geonature/frontend/dist">
Require all granted
</Directory>
<Location "/api">
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/geo+json
</IfModule>
</Location>
# Location: last have precedence so next blocks must be located after /api location block
<Location "/api/media">
ProxyPass !
</Location>
<Location "/api/static">
ProxyPass !
</Location>
Et pour atlas.conf :
ServerName www.atlas.mondomaine.xy
<Location />
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>
J'ai donc essayé de modifié atlas.conf pour bloqué l’accès au sous-domaine geonature pour atlas, mais cela bloque l’accès pour tout le serveur et aucune de ces versions n'a corrigé mon problème :
ServerName www.mondomaine.xy
ServerAlias www.*.mondomaine.xy
SetEnvIfNoCase Host "geonature\.mondomaine\.xy$" BAD_HOST
<Location />
Order Deny,Allow
Deny from env=BAD_HOST
ProxyPass http://127.0.0.1:8080/
ProxyPassReverse http://127.0.0.1:8080/
</Location>`
ou encore
`SetEnvIf Host "^atlas\.mondomaine\.xy$" BAD_HOST
<Location />
Order Deny,Allow
Deny from env=BAD_HOST
ProxyPassReverse http://127.0.0.1:8080/
ProxyPass http://127.0.0.1:8080/
</Location>
et
SetEnvIfNoCase Host "^atlas\.mondomaine\.xy$" BAD_HOST
<Location />
Order Deny,Allow
Deny from env=BAD_HOST
ProxyPassReverse http://127.0.0.1:8080/
ProxyPass http://127.0.0.1:8080/
</Location>
Quel est votre configuration de atlas.conf @gildeluermoz ?
Merci d'avance, Simon.
Bonjour,
Nous sommes en cours de migration de notre atlas vers une machine basée sur debian 12.
Voici notre partage d'expérience sur cette installation, nous sommes bien sûr preneurs de vos retours.
Requirements.txt
Nous avons dû faire évoluer la version de greenlet qui posait des problèmes lors su lancement du script d'installation de l'application. Nous somme partis sur la version 3.0.2.
atlas_ref_geo.sql
Nous avons ajouté
AND l.enable = true
à la ligne 68 pour ne sélectionner que notre région en ayant pris soin de modifier la tableref_geo.l_areas
en amont pour ne garder que notre région avec le statutenable
atlas_synthese.sql
Nous avons modifié la requête de création de la vue syntheseff de la sorte pour gagner en performances :
7.atlas.vm_communes.sql
Nous avons commenté la ligne 9 pour ne pas exécuter la requête spatiale qui prend un temps assez conséquent en ayant là aussi pris soin de ne garder au statut
enable
que les communes de notre territoire12.atlas.t_mailles_territoire.sql
La requête initiale a fait crashé postgres à chaque fois que nous l'avons lancé via le script de déploiement.
Nous l'avons réécrite de la sorte :
Configuration Apache
Nous avons eu quelques soucis avec les configurations apache pour faire cohabiter atlas et geonature sur le même serveur.
La configuration suivante fonctionne très bien mais a rendu geonature inaccessible :
La configuration suivante nous a renvoyé des erreurs 404 pour l'accès à atlas, nous avions pourtant modifié le config.py pour pointer sur
/atlas
également :Nous avons trouvé la solution suivante qui est fonctionnelle et qui nous convient sur l'organisation des urls :
Merci ! Bonne journée, Pascal
cc @MathieuLagarde