Reading values from the configuration file in a theme's handlebars template

Hi there! :wave::slightly_smiling_face:

I was wondering: how could I read a custom value, added in the configuration file, in one of the theme’s handlebars templates?

For example, let’s say I add a custom property named isProduction, where isProduction = NODE_ENV === "production" in the configuration file. How could I display the value of isProduction, from the configuration file, in my theme’s handlebars template?

Are there any calls to Ghost’s APIs that I could run in order to get that information? I am using Ghost v4.1.1.

Thank you so much!

I don’t think reading from the config file will ever be allowed due to security concerns. What exactly are you trying to do?

@vikaspotluri123 Thank you for your reply! :pray:

I am using Ghost in a Docker container, and my end goal is to read/display one of the passed env variables in the front-end. For example, this is how next.js does it:

I attempted to use Ghost Content API to see if I could read any env. variables, but that did not see to work either.

Any suggestions, or alternatives, would be deeply appreciated :slightly_smiling_face:

What is it you want to achieve by doing that? Reading env vars is an assumed solution to a problem, not the problem itself :wink:

@Kevin Thank you for reaching out :slightly_smiling_face:

I have different environments: development, staging, production, etc… and I have an external API url that changes based on the environment. The environment (development, staging, production…) is determined with an env. variable that I pass to our docker container during build time.

For example:

if NODE_ENV===production, the API_URL is production-api.example.org
if NODE_ENV===staging, the API_URL is staging-api.example.org
if NODE_ENV===development, the API_URL is development-api.example.org

My goal would be to update this url dynamically (API_URL) on the FE depending on the passed env. variable (NODE_ENV)

Hopefully that helps to explain my problem. Please don’t hesitate to reach out if you have more questions.