env and setting setup for cloud env
This commit is contained in:
parent
6bb9bd40dd
commit
6a37e8d1f0
3 changed files with 47 additions and 2 deletions
|
|
@ -3,6 +3,7 @@ const dotenv = require('dotenv');
|
|||
// Load environment variables
|
||||
dotenv.config();
|
||||
|
||||
|
||||
const config = {
|
||||
// Server configuration
|
||||
port: process.env.PORT || 4000,
|
||||
|
|
@ -65,6 +66,13 @@ const config = {
|
|||
protocol: process.env.ENVIRONMENT === 'prod' ? 'https' : 'http',
|
||||
apiDomain: process.env.ENVIRONMENT === 'prod' ? (process.env.API_PROD_URL || 'api.rocks.2many.ca') : 'localhost:4000',
|
||||
analyticApiKey: process.env.SITE_ANALYTIC_API || '',
|
||||
deployment: process.env.DEPLOYMENT_MODE || 'self-hosted',
|
||||
redisHost: process.env.REDIS_HOST || '',
|
||||
redisTLS: process.env.REDIS_TLS || '',
|
||||
awsRegion: process.env.AWS_REGION || '',
|
||||
awsS3Bucket: process.env.S3_BUCKET || '',
|
||||
cdnDomain: process.env.CDN_DOMAIN || '',
|
||||
awsqueueurl: process.env.SQS_QUEUE_URL || '',
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -146,7 +154,6 @@ config.updateFromDatabase = (settings) => {
|
|||
// Update carriers allowed
|
||||
if (carriersAllowed && carriersAllowed.value) config.shipping.carriersAllowed = carriersAllowed.value.split(',');
|
||||
}
|
||||
|
||||
// Update site settings if they exist in DB
|
||||
const siteSettings = settings.filter(s => s.category === 'site');
|
||||
if (siteSettings.length > 0) {
|
||||
|
|
@ -154,6 +161,24 @@ config.updateFromDatabase = (settings) => {
|
|||
const siteProtocol = siteSettings.find(s => s.key === 'site_protocol');
|
||||
const siteApiDomain = siteSettings.find(s => s.key === 'site_api_domain');
|
||||
const analyticApiKey = siteSettings.find(s => s.key === 'site_analytics_api_key');
|
||||
const redisHost = siteSettings.find(s => s.key === 'site_redis_host');
|
||||
const redisTLS = siteSettings.find(s => s.key === 'site_redis_tls');
|
||||
const awsRegion = siteSettings.find(s => s.key === 'site_aws_region');
|
||||
const awsS3Bucket = siteSettings.find(s => s.key === 'site_aws_s3_bucket');
|
||||
const cdnDomain = siteSettings.find(s => s.key === 'site_cdn_domain');
|
||||
const deployment = siteSettings.find(s => s.key === 'site_deployment');
|
||||
const awsqueueurl = siteSettings.find(s => s.key === 'site_aws_queue_url');
|
||||
|
||||
|
||||
if (redisHost && redisHost.value) config.site.redisHost = redisHost.value;
|
||||
if (redisTLS && redisTLS.value) config.site.redisTLS = redisHost.value;
|
||||
if (awsRegion && awsRegion.value) config.site.awsRegion = awsRegion.value;
|
||||
if (awsS3Bucket && awsS3Bucket.value) config.site.awsS3Bucket = awsS3Bucket.value;
|
||||
if (cdnDomain && cdnDomain.value) config.site.cdnDomain = cdnDomain.value;
|
||||
if (deployment && deployment.value) config.site.deployment = deployment.value;
|
||||
if (awsqueueurl && awsqueueurl.value) config.site.awsqueueurl = awsqueueurl.value;
|
||||
|
||||
|
||||
|
||||
if (siteDomain && siteDomain.value) config.site.domain = siteDomain.value;
|
||||
if (siteProtocol && siteProtocol.value) config.site.protocol = siteProtocol.value;
|
||||
|
|
|
|||
|
|
@ -260,6 +260,13 @@ module.exports = (pool, query, authMiddleware) => {
|
|||
if (key === 'site_api_domain') config.site.apiDomain = value;
|
||||
if (key === 'site_analytics_api_key') config.site.analyticApiKey = value;
|
||||
if (key === 'site_environment') config.environment = value;
|
||||
if (key === 'site_deployment') config.site.deployment = value;
|
||||
if (key === 'site_redis_host') config.site.redisHost = value;
|
||||
if (key === 'site_redis_tls') config.site.redisTLS = value;
|
||||
if (key === 'site_aws_region') config.site.awsRegion = value;
|
||||
if (key === 'site_aws_s3_bucket') config.site.awsS3Bucket = value;
|
||||
if (key === 'site_cdn_domain') config.site.cdnDomain = value;
|
||||
if (key === 'site_aws_queue_url') config.site.awsqueueurl = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -340,6 +347,13 @@ module.exports = (pool, query, authMiddleware) => {
|
|||
envContent += `API_PROD_URL=${config.site.apiDomain === 'localhost:4000' ? '' : config.site.apiDomain}\n`;
|
||||
}
|
||||
envContent += `SITE_ANALYTIC_API=${config.site.analyticApiKey}\n`;
|
||||
envContent += `DEPLOYMENT_MODE=${config.site.deployment}\n`;
|
||||
envContent += `REDIS_HOST=${config.site.redisHost}\n`;
|
||||
envContent += `REDIS_TLS=${config.site.redisTLS}\n`;
|
||||
envContent += `AWS_REGION=${config.site.awsRegion}\n`;
|
||||
envContent += `S3_BUCKET=${config.site.awsS3Bucket}\n`;
|
||||
envContent += `CDN_DOMAIN=${config.site.cdnDomain}\n`;
|
||||
envContent += `SQS_QUEUE_URL=${config.site.awsqueueurl}\n`;
|
||||
|
||||
// Write to .env file
|
||||
const envPath = path.join(__dirname, '../../.env');
|
||||
|
|
|
|||
|
|
@ -32,7 +32,13 @@ VALUES
|
|||
('site_api_domain', NULL, 'site'),
|
||||
('site_protocol', NULL, 'site'),
|
||||
('site_environment', NULL, 'site'),
|
||||
('site_analytics_api_key', NULL, 'site'),
|
||||
('site_deployment', NULL, 'site'),
|
||||
('site_redis_host', NULL, 'site'),
|
||||
('site_redis_tls', NULL, 'site'),
|
||||
('site_aws_region', NULL, 'site'),
|
||||
('site_aws_s3_bucket', NULL, 'site'),
|
||||
('site_cdn_domain', NULL, 'site'),
|
||||
('site_aws_queue_url', NULL, 'site'),
|
||||
|
||||
-- Payment Settings
|
||||
('currency', 'CAD', 'payment'),
|
||||
|
|
|
|||
Loading…
Reference in a new issue