Planvisage SCM Application (8.0)
- Image Name : planvisage.azurecr.io/pvwebapp:latest
- Container Registry: planvisage.azurecr.io
Planvisage Web application can be configured using the following environment variables:
Environment variables
#Basic
1. ACR_USERNAME Azure container registry user name
2. ACR_PASSWORD Azure container registry password
3. APP_VERSION Application Version (Image Tag)
4. TIME_ZONE=Asia/Kolkata Application Time Zone
5. PV_SESSIONTIMEOUT Application Timeout
6. DB_EXECUTIONTIMEOUT Maximum time(sec) allowed for DB query execution.
#Database
7. DB_TYPE Database Type (POSTGRESQL/ORACLE/SQLSERVER/CLOUD)
8. DB_CONNECTSTR Database Connection String ( SQL Server)
#Log
9. LOG_TARGET=FILE Log file target Type FILE/BLOB/MEMORY/AWS_CLOUDWATCH (Optional)
10. BLOB_CONNECTSTR For Azure Blob Storage, provide the connection string (Optional)
11. BLOB_CONTAINER_NAME Name of the BLOB container
#License
12. LICENSE_KEY=abcd-efgh-1234-4568 License Key
13. LICENSE_NAME=companyname Company Name
14. LICENSE_EMAIL=email@comapnyname.com Email id to register license
#Security
15. SECURE_COOKIE=True/False If application is accessed by https:// set as "True", other wise "False"
#Email
16. SMTP_HOST SMTP Host name to send email
17. SMTP_PORT SMPT Port to send Email
18. SMTP_ISSSL SSL is True/False for SMTP
19. SMTP_USER SMTP User Name to send Email
20. SMTP_PWD Password for the specified UserName
#System Admin
21. SYSADMIN_PWD System Admin Password
22. SYSADMIN_EMAIL System Admin Email Id
#SAML
23. SAML_ENABLED=True/False SSO SAML enabled or not
24. SAML_APP_ID Application ID to be used in SSO type SAML
25. SAML_PRVD SAML provider URL
26. SAML_CERT SAML certificate
#Sanitization
27. SANITIZATION To enable Sanitization True/False for Primary Key columns Values
28. DATA_SANITIZATION To Enable sanitization True/False for all the column values
#AWS
29. AWS_LOG_GROUP Specifies the CloudWatch log group name to which application logs will be sent
30. AWS_REGION Defines the AWS region where your resources (like logs or storage) are located
31. AWS_ACCESS_KEY AWS access key used to authenticate and authorize access to AWS services
32. AWS_SECRET_KEY AWS secret key paired with the access key for secure AWS authentication
#Forecast
33. PY_FRCST_URL To give Python Forecast service URL
34. R_FRCST_URL To give R Forecast service URL
#Task Manager
35. TASK_MNGR_URL To give Task Manager/Task Scheduler URL
36. PLANTS_LIST Specify the list of plants as comma-separated values.The task manager should run tasks only for the plants listed in this variable.
37. MAX_PARALLEL Defines the maximum number of tasks that a single task manager is allowed to run in parallel.
38. APP_MODE Task Manager application to run in Worker Mode
#Change Container Listening Port
39. ASPNETCORE_URLS To allow the application to listen on specific port.Eg:ASPNETCORE_URLS="http://+:8091"
Sample DataBase ENV Configuration Format
# ===============================
# SQLSERVER / CLOUD
# ===============================
DB_TYPE=SQLSERVER/CLOUD
DB_CONNECTSTR=Data Source=##SERVER##;Initial Catalog=##DATABASE_NAME##;User ID=##USERNAME##;Password=##PASSWORD##;TrustServerCertificate=True;
# ===============================
# ORACLE
# ===============================
DB_TYPE=ORACLE
DB_CONNECTSTR=User Id=##USERNAME##;Password=##PASSWORD##;Data Source=##SERVER_IP##:1521/##SERVICE_NAME##;
# ===============================
# POSTGRESQL
# ===============================
DB_TYPE=POSTGRESQL
DB_CONNECTSTR=Server=##SERVER_IP##;Port=5432;Database=##DATABASE_NAME##;User Id=##USERNAME##;Password=##PASSWORD##;
Sample Blob ENV Configuration Format
LOG_TARGET = BLOB
BLOB_CONTAINER_NAME = ContainerName
BLOB_CONNECTSTR = DefaultEndpointsProtocol=https;AccountName=##accountName##;AccountKey=##accountKey##;EndpointSuffix=core.windows.net
Sample AWS CloudWatch ENV Configuration Format
LOG_TARGET = AWS_CLOUDWATCH
AWS_LOG_GROUP = LogGroupName
AWS_REGION = AWS-CloudWatch-Region (eg:ap-south-1)
AWS_ACCESS_KEY = CloudWatchAccessKey
AWS_SECRET_KEY = CloudWatchSecretKey
Sample Docker Compose .yml File
version: '3.9'
name: 'planvisage-scm'
services:
PvNginxServer:
image: planvisage.azurecr.io/nginxwebserver:latest
hostname: PV-NginxWebServer
ports:
- "81:80"
environment:
- AZURE_REGISTRY_USERNAME=${ACR_USERNAME}
- AZURE_REGISTRY_PASSWORD=${ACR_PASSWORD}
- TZ=${TIME_ZONE}
networks:
- pv-network
PvWebApplication:
image: planvisage.azurecr.io/planvisagedev:latest
pull_policy: always
hostname: PV-WebApplication
ports:
- "8080:8080"
volumes:
- ./PvWebApp/log/:/app/wwwroot/log/
- ./PvWebApp/xml/:/app/wwwroot/xml/
- ./PvWebApp/design/:/app/wwwroot/design
environment:
- AZURE_REGISTRY_USERNAME=${ACR_USERNAME}
- AZURE_REGISTRY_PASSWORD=${ACR_PASSWORD}
- TZ=${TIME_ZONE}
- LOG_TARGET=${LOG_TARGET}
- BLOB_CONNECTSTR=${BLOB_CONNECTSTR}
- DB_CONNECTSTR=${DB_CONNECTSTR}
- DB_TYPE=POSTGRESQL/ORACLE
- LICENSE_KEY=${LICENSE_KEY}
- LICENSE_NAME=${LICENSE_NAME}
- LICENSE_EMAIL=${LICENSE_EMAIL}
- PV_SESSIONTIMEOUT=${PV_SESSIONTIMEOUT}
- BLOB_CONTAINER_NAME=${BLOB_CONTAINER_NAME}
- SAML_ENABLED=${SAML_ENABLED}
- SAML_APP_ID=${SAML_APP_ID}
- SAML_PRVD=${SAML_PRVD}
- SAML_CERT=${SAML_CERT}
- SMPT_HOST=${SMPT_HOST}
- SMPT_PORT=${SMPT_PORT}
- SMPT_ISSSL=${SMPT_ISSSL}
- SMPT_USER=${SMPT_USER}
- SMPT_PWD=${SMPT_PWD}
- TASK_MNGR_URL=${TASK_MNGR_URL}
- SECURE_COOKIE=${SECURE_COOKIE}
- AWS_LOG_GROUP=${AWS_LOG_GROUP}
- AWS_REGION=${AWS_REGION}
- AWS_ACCESS_KEY=${AWS_ACCESS_KEY}
- AWS_SECRET_KEY=${AWS_SECRET_KEY}
- PY_FRCST_URL=${PY_FRCST_URL}
- R_FRCST_URL=${R_FRCST_URL}
networks:
- pv-network
command: mkdir /wwwroot/data/import/
PvTaskManager:
image: planvisage.azurecr.io/pvtaskmanagerscheduler:latest
pull_policy: always
hostname: PV-TaskManager
ports:
- "8081:8080"
volumes:
- ./PvWebAppTaskMngr/log/:/app/wwwroot/log/
- ./PvWebAppTaskMngr/xml/:/app/wwwroot/xml/
environment:
- AZURE_REGISTRY_USERNAME=${ACR_USERNAME}
- AZURE_REGISTRY_PASSWORD=${ACR_PASSWORD}
- TZ=${TIME_ZONE}
- LOG_TARGET=${LOG_TARGET}
- DB_CONNECTSTR=${DB_CONNECTSTR}
- DB_TYPE=POSTGRESQL/ORACLE
- DB_EXECUTIONTIMEOUT=${DB_EXECUTIONTIMEOUT}
- PYTHONFORECASTURL=${PYTHONFORECASTURL}
- RFORECASTURL=${RFORECASTURL}
- PY_FRCST_URL=${PY_FRCST_URL}
- R_FRCST_URL=${R_FRCST_URL}
- PLANTS_LIST=1,2,3..etc
- MAX_PARALLEL=1,2,3..etc
- APP_MODE=Worker
networks:
- pv-network
PvRForecast:
image: planvisage.azurecr.io/rforecast:latest
hostname: PV-RForecast
ports:
- "8083:8000"
environment:
- AZURE_REGISTRY_USERNAME=${ACR_USERNAME}
- AZURE_REGISTRY_PASSWORD=${ACR_PASSWORD}
- TZ=${TIME_ZONE}
networks:
- pv-network
PvPyForecast:
image: planvisage.azurecr.io/pyforecast:latest
hostname: PV-PyForecast
ports:
- "8084:8000"
environment:
- AZURE_REGISTRY_USERNAME=${ACR_USERNAME}
- AZURE_REGISTRY_PASSWORD=${ACR_PASSWORD}
- TZ=${TIME_ZONE}
networks:
- pv-network
networks:
pv-network: