Skip to content
Snippets Groups Projects
gatsby-config.js 7.28 KiB
Newer Older
require("dotenv").config()

const PF_DOMAIN = process.env.PF_DOMAIN || "demo.onegeosuite.fr"
const PF_PROTOCOL = process.env.PF_PROTOCOL || "https"
const PF_PORT = process.env.PF_PORT || 443

const PF_URL =
    PF_PORT != 443 && PF_PORT != 80
        ? PF_PROTOCOL + "://" + PF_DOMAIN + ":" + PF_PORT
        : PF_PROTOCOL + "://" + PF_DOMAIN

const DIRECTUS_URL = process.env.DIRECTUS_URL || PF_URL + "/directus/"

console.info("Plateform URL = ", PF_URL)
console.info("Directus URL = ", DIRECTUS_URL, process.env.DIRECTUS_TOKEN)

module.exports = {
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
    siteMetadata: {
        title: `Onegeo Portal`,
        subtitle: `Hub géospatial collaboratif`,
        description: `Solution Open Source sur-mesure pour communiquer et valoriser les données disponibles sur votre territoire ou vos infrastructures`,
        author: `NEOGEO`,
        // Required for gatsby-plugin-sitemap
        siteUrl: PF_URL,
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
        icon: ``,
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
    plugins: [
        `gatsby-plugin-react-helmet`,
        `gatsby-plugin-typescript`,
        `gatsby-plugin-image`,
        `gatsby-transformer-sharp`,
        `gatsby-plugin-sharp`,
        `gatsby-plugin-sitemap`,
        {
            resolve: `gatsby-plugin-env-variables`,
            options: {
                allowList: [
                    "PROJECT_INTERNAL_PROTOCOL",
                    "PROJECT_INTERNAL_HOST",
                    "PROJECT_INTERNAL_PORT",
                    "PROJECT_PROTOCOL",
                    "PROJECT_HOST",
                    "PROJECT_PORT",
                    "PROJECT_URL",
                    "PF_URL",
Julien MARGAIL's avatar
Julien MARGAIL committed

Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
                    "DIRECTUS_URL",
                    "DIRECTUS_ASSETS_URL",
                    "OGS_EXPLORER_PATH",
                    "OGS_LOGIN_PATH",
                    "DEV_BASE_URL",
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
                ],
            },
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
        {
            resolve: `gatsby-source-filesystem`,
            options: {
                name: `images`,
                path: `${__dirname}/src/images`,
            },
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
        process.env.NODE_ENV === `development`
            ? {
                  resolve: `gatsby-plugin-page-creator`,
                  options: {
                      path: `${__dirname}/src/pages-doc`,
                  },
              }
            : {
                  resolve: `gatsby-plugin-page-creator`,
                  options: {
                      path: `${__dirname}/src/pages`,
                  },
              },
        {
            resolve: `gatsby-plugin-feed`,
            options: {
                query: `
                {
                    directus {
                        site {
                            id
                            theme
                            title
                            description
                            author
                        }
                    }
                    site {
                        siteMetadata {
                            title
                            description
                            siteUrl
                        }
                    }
                }
                `,
                feeds: [
                    {
                        serialize: ({ query: { site, directus } }) => {
                            return directus.news.map((item) => {
                                const baseUrl = [
                                    site.siteMetadata.siteUrl,
                                    site.pathPrefix || "",
                                    "news",
                                ].join("/")

                                const thumbnail =
                                    item.image?.imageFile?.publicURL
                                // TODO URL ENcode image url
                                const thumbnailUrl = thumbnail
                                    ? site.siteMetadata.siteUrl +
                                      encodeURI(thumbnail)
                                return Object.assign(
                                    {},
                                    {
                                        title: item.title,
                                        description: item.content,
                                        date: item.date_published,
                                        url: baseUrl + "/" + item.slug,
                                        guid: baseUrl + "/" + item.slug,
                                        enclosure: {
                                            url: thumbnailUrl,
                                        },
                                        category: "news",
                                    }
                                )
                            })
                        },
                        query: `
                                directus {
                                    news(
                                        filter: { status: { _eq: "published" } }
                                        sort: "-date_published"
                                    ) {
                                        id
                                        slug
                                        content
                                        abstract
                                        title
                                        date_published
                        output: "/feed.rss",
                        title: "Onegeo Suite Portal RSS Feed",
                    },
                ],
            },
        },
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
        {
Julien MARGAIL's avatar
Julien MARGAIL committed
            resolve: "@onegeo-suite/gatsby-source-directus",
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
            options: {
                url: DIRECTUS_URL,
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
                auth: {
                    token: process.env.DIRECTUS_TOKEN,
                },
            },
        },
        {
            resolve: "@onegeo-suite/gatsby-plugin-auth",
            options: {},
        },
Julien MARGAIL's avatar
Julien MARGAIL committed

Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
        // this (optional) plugin enables Progressive Web App + Offline functionality
        // To learn more, visit: https://gatsby.dev/offline
        // `gatsby-plugin-offline`,
    ],
Julien MARGAIL's avatar
Julien MARGAIL committed
    proxy: [
        {
            // Access Geoserver API
            prefix: "/geoserver",
            url: PF_URL,
        },
        {
            // Access Metabase API
            prefix: "/metabase",
            url: PF_URL,
        },
Julien MARGAIL's avatar
Julien MARGAIL committed
        {
            // Access OGS Explorer API
            prefix: "/fr",
            url: PF_URL,
        },
        {
            // Access OGS Maps API
            prefix: "/maps",
            url: PF_URL,
        },
        {
            // Access Mapstore API
            prefix: "/geoportal",
            url: PF_URL,
        },
    ],
Tovo Ramontalambo's avatar
Tovo Ramontalambo committed
}