Renseigner les fichiers de configuration
Modifier le fichier de configuration
Côté backend
Les fichiers de configuration sont dans le dossier config
.
Le fichier à modifier est config.toml
.
Il peut-être créé en copiant le fichier config.toml.template
vers config.toml
:
$ cp config.toml.template config.toml
Editez alors les différents paramètres de ce fichier.
Fichier config.toml
:
# Database
SQLALCHEMY_DATABASE_URI = "postgresql+psycopg2://geonatuser:monpassachanger@127.0.0.1:5432/geonaturedb"
SQLALCHEMY_TRACK_MODIFICATIONS = false
# JWT Auth
JWT_SECRET_KEY = 'jwt-secret-string'
JWT_BLACKLIST_ENABLED = true
JWT_BLACKLIST_TOKEN_CHECKS = ['access', 'refresh']
# Application
appName = 'GeoNature-citizen' # Application name in the home page
DEFAULT_LANGUAGE = 'fr'
FLASK_ADMIN_FLUID_LAYOUT = true
# Debug
DEBUG = false
SQLALCHEMY_DEBUG_LEVEL = 'WARNING'
URL_APPLICATION = "http://mydomain.org" # Replace mydomain.org by your domain
API_TAXHUB = "http://mytaxhub.org/api/" # Replace mytaxhub.org by your TaxHub url
# URL to get info about a municipality (from a latitude and a longitude)
API_CITY = "https://nominatim.openstreetmap.org/reverse"
SECRET_KEY = 'MyS3cr3tK3y'
CONFIRM_MAIL_SALT = 'your-secret-salt' # secret salt for corfirm mail token
MEDIA_FOLDER = 'media'
#HCAPTCHA_SECRET_KEY=
# Rewards
REWARDS_ENABLED = false
# Verify observations
VERIFY_OBSERVATIONS_ENABLED = false
[RESET_PASSWD]
SUBJECT = "Réinitialisation de votre mot de passe"
FROM = 'contact@geonature-citizen.fr'
HTML_TEMPLATE = """<p>Bonjour,</p>
<p>Vous recevez cet email car vous avez demandé la réinitialisation du mot de passe de votre compte sur {app_url}.</p>
<p>Votre nouveau mot de passe : <code>{passwd}</code></p>
<p>Votre nom d'utilisateur, au cas où vous l'auriez oublié, est le suivant : <code>{username}</code></p>
<p>Merci d'avoir utilisé notre site !<p>
<p>L'équipe <a href="{app_url}">{app_name}</a></p>
"""
[CONFIRM_EMAIL]
USE_CONFIRM_EMAIL = true
SUBJECT = "Activez votre compte"
FROM = 'contact@geonature-citizen.fr'
HTML_TEMPLATE = """<p> Bonjour,</p>
<p>Nous vous confirmons que votre compte a bien été créé.</p>
<p> Afin d'activer votre compte veuillez <a href="{activate_url}">cliquer ici.</a>
<p>Nous vous souhaitons la bienvenue sur notre site.</p><br />
<p>Bien à vous.</p>
<p>L'équipe <a href="{app_url}">{app_name}</a></p>
"""
NO_VALIDATION_HTML_TEMPLATE = """<p> Bonjour,</p>
<p>Nous vous confirmons que votre compte a bien été créé.</p>
<p>Nous vous souhaitons la bienvenue sur notre site.</p><br />
<p>Bien à vous.</p>
<p>L'équipe <a href="{app_url}">{app_name}</a></p>
"""
[VALIDATION_EMAIL]
SUBJECT = "Mise à jour de votre observation {observation}"
HTML_TEMPLATE = """
<p>Bonjour,</p>
<p>{message}</p>
<p>Pour retrouver votre observation, <a href="{obs_link}">cliquez ici.</a></p>
"""
[MAIL]
MAIL_USE_SSL = false
MAIL_STARTTLS = true
MAIL_HOST = 'smtpd host'
MAIL_PORT = 493 # mandatory SSL port
MAIL_AUTH_LOGIN = 'smtpd/relay host username'
MAIL_AUTH_PASSWD = 'smtpd/relay host password'
MAIL_FROM_ADDR = 'fcloitre@dbwildlife.info'
# API flasgger main config
# Flaskadmin map default center
DEFAULT_CENTER_LAT = 45
DEFAULT_CENTER_LONG = 5
Pour que les modifications de ce fichier soient prises en compte, vous devez éxécuter la commande sudo supervisorctl restart gncitizen_api
.
Côté frontend
Les fichiers de configuration du frontend se trouvent dans le dossier ./frontend/src/conf
.
Les fichiers app.config.ts
et map.config.ts
permettent de personnaliser la configuration définie par défaut dans main.config.ts
.
Il sont créés lors de l’installation ou en copiant les fichiers app.config.ts.sample
vers app.config.ts
et map.config.ts.sample
vers map.config.ts
:
$ cd ./frontend/src/conf
$ cp app.config.ts.template app.config.ts
$ cp map.config.ts.template map.config.ts
Editez alors les différents paramètres de ces fichiers.
Fichier app.config.ts
:
export const AppConfig = {
appName: 'GeoNature-citizen',
API_ENDPOINT: 'http://localhost:5002/api',
API_TAXHUB: 'http://localhost:5000/api',
API_CITY: 'https://nominatim.openstreetmap.org/reverse',
// HCAPTCHA_SITE_KEY: null,
// FRONTEND: {
// PROD_MOD: true,
// MULTILINGUAL: false,
// DISPLAY_FOOTER: true,
// DISPLAY_TOPBAR: true,
// DISPLAY_SIDEBAR: true,
// DISPLAY_STATS: true,
// DISPLAY_BADGES: true,
// NEW_OBS_FORM_MODAL_VERSION: true,
// },
// META: {
// keywords: 'biodiversite enquetes participatif observations',
// },
// about: true,
URL_APPLICATION: 'http://127.0.0.1:4200',
// REWARDS: true,
// termsOfUse: {
// fr: 'assets/cgu.pdf',
// en: 'assets/termsOfUse.pdf',
// },
// signup: 'optional', // never|optional|always
// email_contact: false,
// platform_intro: {
// fr: 'Bienvenue<br /> sur GeoNature Citizen',
// en: 'Welcome<br /> on GeoNature Citizen',
// },
// platform_teaser: {
// fr: 'Hae duae provinciae bello quondam piratico catervis mixtae praedonum a Servilio pro consule missae sub iugum factae sunt vectigales. et hae quidem regiones velut in prominenti terrarum lingua positae ob orbe eoo monte Amano disparantur.',
// en: 'Hae duae provinciae bello quondam piratico catervis mixtae praedonum a Servilio pro consule missae sub iugum factae sunt vectigales. et hae quidem regiones velut in prominenti terrarum lingua positae ob orbe eoo monte Amano disparantur.',
// },
// platform_participate: {
// fr: 'PARTICIPER AU PROGRAMME',
// en: 'PARTICIPATE',
// },
// programs_label: {
// fr: 'Programmes',
// en: 'Surveys',
// },
// program_label: {
// fr: 'Le programme',
// en: 'Survey',
// },
// program_share_an_observation: {
// fr: 'PARTAGER UNE OBSERVATION',
// en: 'SHARE AN OBSERVATION',
// },
// program_add_an_observation: {
// fr: 'AJOUTER UNE OBSERVATION',
// en: 'CONTRIBUTE AN OBSERVATION',
// },
// program_allow_email_contact: {
// fr: "J'accepte que mon adresse e-mail puisse être utilisée pour recontacter à propos de mon observation",
// en: 'I agree that my e-mail address can be used to recontact about my observation',
// },
// taxonDisplayImageWhenUnique: true,
// taxonSelectInputThreshold: 7,
// taxonAutocompleteInputThreshold: 12,
// taxonAutocompleteFields: [
// 'nom_complet',
// 'nom_vern',
// 'nom_vern_eng',
// 'cd_nom',
// ],
// taxonDisplaySciName: true,
// program_list_observers_names: true,
// program_list_sort: '-timestamp_create',
// details_espece_url: '<url_inpn_or_atlas>/cd_nom/', // !! gardez bien le cd_nom/ dans l'url
// registration_message: 'Vous inscrire vous permet de gérer vos observations',
// imageUpload: {
// maxHeight: 1440,
// maxWidth: 1440,
// quality: 0.9,
// },
};
Fichier map.config.ts
:
export const MAP_CONFIG = {
// DEFAULT_PROVIDER: 'OpenStreetMapOrg',
// BASEMAPS: [
// {
// name: 'OpenStreetMapOrg',
// maxZoom: 19,
// layer: '//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
// subdomains: 'abc',
// attribution:
// '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Tiles style by <a href="https://www.hotosm.org/" target="_blank">Humanitarian OpenStreetMap Team</a> hosted by <a href="https://openstreetmap.fr/" target="_blank">OpenStreetMap France</a>',
// },
// {
// name: "OpenStreetMapFRHot",
// maxZoom: 19,
// layer: "//{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",
// subdomains: "abc",
// attribution:
// '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Tiles style by <a href="https://www.hotosm.org/" target="_blank">Humanitarian OpenStreetMap Team</a> hosted by <a href="https://openstreetmap.fr/" target="_blank">OpenStreetMap France</a>'
// },
// {
// name: "OpenStreetMapCH",
// maxZoom: 18,
// layer: "//tile.osm.ch/switzerland/{z}/{x}/{y}.png",
// subdomains: "abc",
// attribution:
// '© <a href="© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
// bounds: [[45, 5], [48, 11]]
// },
// {
// name: "OpenStreetMapDE",
// maxZoom: 18,
// layer: "//{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png",
// subdomains: "abc",
// attribution:
// '© <a href="© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
// },
// {
// name: "OpenStreetMapBZH",
// maxZoom: 18,
// layer: "//tile.openstreetmap.bzh/br/{z}/{x}/{y}.png",
// subdomains: "",
// attribution:
// '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Tiles courtesy of <a href="http://www.openstreetmap.bzh/" target="_blank">Breton OpenStreetMap Team</a>',
// bounds: [[46.2, -5.5], [50, 0.7]]
// },
// {
// name: 'OpenTopoMap',
// maxZoom: 17,
// layer: '//{s}.opentopomap.org/{z}/{x}/{y}.png',
// subdomains: 'abc',
// attribution: '© OpenTopoMap',
// },
// {
// name: 'IGN Vue satellite',
// maxZoom: 19,
// layer: 'https://wxs.ign.fr/decouverte/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&TILEMATRIXSET=PM&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&STYLE=normal&FORMAT=image/jpeg&TILECOL={x}&TILEROW={y}&TILEMATRIX={z}',
// subdomains: 'abc',
// attribution: '© IGN-F/Geoportail',
// },
// {
// name: 'IGN Cartes',
// maxZoom: 19,
// layer: 'https://wxs.ign.fr/decouverte/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&TILEMATRIXSET=PM&LAYER=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&STYLE=normal&FORMAT=image/png&TILECOL={x}&TILEROW={y}&TILEMATRIX={z}',
// subdomains: 'abc',
// attribution: '© IGN-F/Geoportail',
// },
// {
// // ⚠ google's terms&conditions
// // https://github.com/Leaflet/Leaflet/blob/master/FAQ.md#i-want-to-use-google-maps-api-tiles-with-leaflet-can-i-do-that
// name: "GoogleSatellite",
// maxZoom: 20,
// layer: "//mt{s}.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
// subdomains: "1",
// attribution: "© GoogleMap"
// }
// ],
// CENTER: [46.52863469527167, 2.43896484375],
// ZOOM_LEVEL: 6,
// ZOOM_LEVEL_RELEVE: 15,
// NEW_OBS_POINTER: 'assets/pointer-blue2.png',
// OBS_POINTER: 'assets/pointer-green.png',
// LOCATE_CONTROL_TITLE: {
// fr: 'Me localiser',
// en: 'Show me where i am',
// },
};
Configuration de l’authentification
Le fichier frontend/src/conf/app.config.ts
permet notamment de configuer l’authentification.
Il y a 3 possibilités :
un mode sans authentifiaction (
signup : "never"
),un mode avec authentification optionnelle (
signup : "optional"
) tout en conservant le mode sans authentification,un mode avec authentification obligatoire (
signup : "always"
).