Skip to content

Environment Variables

INFO

The MicroPowerManager follows The Twelve-Factor App principle. MicroPowerManager's configuration is separated from the code base and can be done via environment variables.

In this document we describe the most relevant environment variables and highlight the ones which are required to be populated for MicroPowerManager to function properly.

Frontend

Backend connection

Environment VariableDefaultDescription
MPM_ENVRequiredEnvironment identifier for the MicroPowerManager frontend. Can be development, demo or production. Recommended to set to production in production environments. Note: This is different from the builtin NODE_ENV environment variable.
MPM_BACKEND_URLRequiredThe URL of the MicroPowerManager backend. For example http://localhost:8000 (for non-local) or https://demo-backend.micropowermanager.io (for production).

Backend

Because MicroPowerManager is based on Laravel and Laravel Plugins a lot of behaviour can be configured using environment variables.

For more details see the corresponding plugin's documentation.

Laravel

Environment VariableDefaultDescription
APP_NAMEMicroPowerManagerDisplay Name of the Application
APP_ENVdevelopmentEnvironment identifier for the MicroPowerManager backend. Can be development, demo or production. Recommended to set to production in production environments.
APP_DEBUGTrueWhether or not to run MicroPowerManager in debug mode. Recommended to set to false in production environments.
APP_KEYRequiredUsed by the Illuminate encrypter service to encrypt database entries. In production environments make sure this is a random, 32 character string, otherwise these encrypted strings will not be safe
APP_URLhttp://localhost:8000Set this to root of MicroPowerManager in deployed environments (production or demo).

MicroPowerManager

These environment variables control how the MicroPowerManager behaves as an application.

Environment VariableDefaultDescription
MPM_LOAD_DEMO_DATAfalseWhether or not the demo data should be loaded when the MicroPowerManager starts for the first time. Recommended for local development and demo environments. Optional for production environments.

JSON Web Token Authentication (jwt-auth)

For more details see jwt-auth documentation.

Environment VariableDefaultDescription
JWT_SECRETRequiredjwt-auht secret, ideally created with php artisan jwt:secret.

Database connection

Environment VariableDefaultDescription
DB_CONNECTIONmicro_power_managerName of the laravel default connection. Should almost never be changed.
DB_HOSTRequiredNetwork host name the database is accessible from. For example db (for local) or long-url.my-cloud-provider.com/region/db (for dedicated databases).
DB_PORT3306Database port.
DB_DATABASEmicro_power_managerDatabase name.
DB_USERNAMERequiredDatabase username. For example root.
DB_PASSWORDRequiredDatabase password. For example password123!

Redis connection

We recommend running MicroPowerManager with Redis.

Environment VariableDefaultDescription
REDIS_HOSTRequired (If Redis is used)Network host name the Redis cluster is accessible from. For example redis (for local) or long-url.my-cloud-provider.com/region/db (for dedicated Redis cluster).
REDIS_PASSWORDRequired (If Redis is used)Password for Redis.
REDIS_PORT6379

Caching

We recommend running MicroPowerManager with Redis for caching.

Environment VariableDefaultDescription
CACHE_DRIVERfileRecommended to set to redis.

Session management

Environment VariableDefaultDescription
SESSION_DRIVERfile
SESSION_LIFETIME120

Broadcasting

We recommend running MicroPowerManager with Pusher Channels for broadcasting.

Environment VariableDefaultDescription
BROADCAST_DRIVERnullRecommended to set to pusher.
PUSHER_APP_IDRequired (If Pusher is used)Pusher App id.
PUSHER_APP_KEYRequired (If Pusher is used)Pusher App key.
PUSHER_APP_SECRETRequired (If Pusher is used)Pusher App secret.
PUSHER_APP_CLUSTERRequired (If Pusher is used)Pusher App cluster. For example eu.

Queue

Environment VariableDefaultDescription
QUEUE_DRIVERsyncRecommended to set to database.
QUEUE_PAYMENTpaymentName of the payment queue.
QUEUE_ENERGYenergy_paymentName of the energy payment queue.
QUEUE_TOKENtokenName of the token queue.
QUEUE_SMSsmsName of the SMS queue.
QUEUE_HISTORYhistoryName of the History queue.
QUEUE_REPORTreport_generatorName of the Report Generator queue.
QUEUE_MISCmiscName of the miscellaneous queue.

Basic setup

Logging

Set of environment variables that can be used to configure logging and logging providers in MicroPowerManager.

Environment VariableDefaultDescription
LOG_CHANNELstackLog channel. For more information about available log channels, see logging.php
LOGGLY_TOKENRequired (When using Loggly)Access token for Loggly.
LOG_LEVELdebugLevel of the logs send to Loggly.
LOG_SLACK_WEBHOOK_URLRequired (When using Slack)Slack Webhook URL

Email

Configure the following environment variable to enable MicroPowerManager to send email (signup confirmation, password reset, etc...)

Environment VariableDefaultDescription
MAIL_HOSTsmtp.mailgun.orgMail server hostname. For example smtp.mailserver.com.
MAIL_PORT587Mail server port.
MAIL_ENCRYPTIONtlsMail encryption.
MAIL_USERNAMERequired (when using email)Mail server username.
MAIL_PASSWORDRequired (when using email)Mail server password.

MPM Plugins

Certain MicroPowerManager plugins require configuration before they can be used. Find below a reference of configurations which are required if the corresponding plugin is used.

Airtel

For detailed information see Airtel Developer Documentation.

Environment VariableDefaultDescription
AIRTEL_REQUEST_URLRequired (when plugin is used)The Airtel service URL.
AIRTEL_USERNAMERequired (when plugin is used)The Airtel username.
AIRTEL_PASSWORDRequired (when plugin is used)The Airtel password.
AIRTEL_IPS[]List of IP whitelisted for Airtel services.

Calin STS Meters

For detailed information see Calin Meter Developer Documentation.

Environment VariableDefaultDescription
CALIN_CLIENT_URLRequired (when plugin is used)Calin Meter client URL used for generating STS tokens.
CALIN_USER_IDRequired (when plugin is used)Calin Meter API username used for generating STS tokens.
CALIN_KEYRequired (when plugin is used)Calin Meter API key used for generating STS tokens.

If you meters are used which can send their consumption data to Calin's API the following environment variables need to be set.

Environment VariableDefaultDescription
METER_DATA_URLRequired (when plugin is used)Calin Meter API URL used for consumption data upload.
METER_DATA_KEYRequired (when plugin is used)Calin Meter API key used for consumption data upload.
METER_DATA_USERRequired (when plugin is used)Calin Meter API username used for consumption data upload.

Calin Smart Meters

For detailed information see Calin Smart Meter Developer Documentation.

Environment VariableDefaultDescription
CALIN_SMART_COMPANY_NAMERequired (when plugin is used)Calin Smart Meter company name used for communication with Calin API.
CALIN_SMART_PURCHASE_API_URLRequired (when plugin is used)Calin Smart Meter Purchase API URL used for communication with Calin API.
CALIN_SMART_CLEAR_API_URLRequired (when plugin is used)Calin Smart Meter Clear API URL used for communication with Calin API.
CALIN_SMART_USER_NAMERequired (when plugin is used)Calin Smart Meter username used for communication with Calin API.
CALIN_SMART_PASSWORDRequired (when plugin is used)Calin Smart Meter password used for communication with Calin API.
CALIN_SMART_PASSWORD_VENTRequired (when plugin is used)Calin Smart Meter password vent used for communication with Calin API.

Vodacom

Vodacom integration requires a VPN tunnel with Vodacom infrastructure. For detailed information see Vodacom Developer Documentation

Environment VariableDefaultDescription
VODACOM_SPIDRequired (when plugin is used)Vodacom SPID.
VODACOM_SPPASSWORDRequired (when plugin is used)Vodacom SPPASSWORD.
VODACOM_IPSRequired (when plugin is used)Vodacom IPs.
VODACOM_REQUEST_URLRequired (when plugin is used)Vodacom Request API URL.
VODACOM_BROKER_CRTRequired (when plugin is used)Path to broker .crt file.
VODACOM_SLL_KEYRequired (when plugin is used)Path to .key file.
VODACOM_CERTIFICATE_AUTHORITYRequired (when plugin is used)Path to .cer file.
VODACOM_SSL_CERTRequired (when plugin is used)Path to .pem file.

SunKing

For detailed information see SunKing Developer Documentation

Environment VariableDefaultDescription
SUNKING_API_URLRequired (when plugin is used)SunKing API URL. For example https://dev.assetcontrol.central.glp apps.com/v2.

WaveMoney

For detailed information see WaveMoney Developer Documentation

Environment VariableDefaultDescription
WAVEMONEY_API_URLRequired (when plugin is used)WaveMoney API URL. For example https://preprodpayments.wavemoney.io:8107.

BingMaps

WARNING

BingMaps is deprecated in favour of OpenStreetMap. It's not recommended for production use.

Environment VariableDefaultDescription
BINGMAP_API_URLRequired (when BingMaps is used)BingMaps API URL (including the API key). For example https://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?key=

Built with VitePress ❤️.