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. Le fichier utilisé par GeoNature-citizen est config.toml. Il peut-être créé en copiant le fichier config.toml.example vers config.toml:

$ cp config.toml.example 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


[RESET_PASSWD]
    SUBJECT = "Link"
    FROM = 'contact@geonature-citizen.fr'
    TEXT_TEMPLATE = '''
    Bonjour,\r\nVoici votre nouveau mot de passe :\r\n{passwd}\r\n"{app_url}
    '''
    HTML_TEMPLATE = '''
    Bonjour,<br /><br />Voici votre nouveau mot de passe :<br />
    {passwd}
    <br /><br />"
    <a href="{app_url}">Connexion</a>'
    '''

[CONFIRM_EMAIL]
    USE_CONFIRM_EMAIL = true
    SUBJECT = "Activez votre compte"
    FROM = 'contact@geonature-citizen.fr'
    HTML_TEMPLATE = '''<p> Bonjour,</p><br /><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>
    '''
    NO_VALIDATION_HTML_TEMPLATE = '''<p> Bonjour,</p><br /><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>
    '''

[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'


# API flasgger main config

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 app.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:
    //             '&copy; <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:
    //     '&copy; <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:
    //     '&copy; <a href="&copy; <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:
    //     '&copy; <a href="&copy; <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:
    //     '&copy; <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").