env and setting setup for cloud env

This commit is contained in:
2ManyProjects 2025-05-05 00:27:03 -05:00
parent 6bb9bd40dd
commit 6a37e8d1f0
3 changed files with 47 additions and 2 deletions

View file

@ -3,6 +3,7 @@ const dotenv = require('dotenv');
// Load environment variables // Load environment variables
dotenv.config(); dotenv.config();
const config = { const config = {
// Server configuration // Server configuration
port: process.env.PORT || 4000, port: process.env.PORT || 4000,
@ -65,6 +66,13 @@ const config = {
protocol: process.env.ENVIRONMENT === 'prod' ? 'https' : 'http', protocol: process.env.ENVIRONMENT === 'prod' ? 'https' : 'http',
apiDomain: process.env.ENVIRONMENT === 'prod' ? (process.env.API_PROD_URL || 'api.rocks.2many.ca') : 'localhost:4000', apiDomain: process.env.ENVIRONMENT === 'prod' ? (process.env.API_PROD_URL || 'api.rocks.2many.ca') : 'localhost:4000',
analyticApiKey: process.env.SITE_ANALYTIC_API || '', 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 // Update carriers allowed
if (carriersAllowed && carriersAllowed.value) config.shipping.carriersAllowed = carriersAllowed.value.split(','); if (carriersAllowed && carriersAllowed.value) config.shipping.carriersAllowed = carriersAllowed.value.split(',');
} }
// Update site settings if they exist in DB // Update site settings if they exist in DB
const siteSettings = settings.filter(s => s.category === 'site'); const siteSettings = settings.filter(s => s.category === 'site');
if (siteSettings.length > 0) { if (siteSettings.length > 0) {
@ -154,6 +161,24 @@ config.updateFromDatabase = (settings) => {
const siteProtocol = siteSettings.find(s => s.key === 'site_protocol'); const siteProtocol = siteSettings.find(s => s.key === 'site_protocol');
const siteApiDomain = siteSettings.find(s => s.key === 'site_api_domain'); const siteApiDomain = siteSettings.find(s => s.key === 'site_api_domain');
const analyticApiKey = siteSettings.find(s => s.key === 'site_analytics_api_key'); 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 (siteDomain && siteDomain.value) config.site.domain = siteDomain.value;
if (siteProtocol && siteProtocol.value) config.site.protocol = siteProtocol.value; if (siteProtocol && siteProtocol.value) config.site.protocol = siteProtocol.value;

View file

@ -260,6 +260,13 @@ module.exports = (pool, query, authMiddleware) => {
if (key === 'site_api_domain') config.site.apiDomain = value; if (key === 'site_api_domain') config.site.apiDomain = value;
if (key === 'site_analytics_api_key') config.site.analyticApiKey = value; if (key === 'site_analytics_api_key') config.site.analyticApiKey = value;
if (key === 'site_environment') config.environment = 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 += `API_PROD_URL=${config.site.apiDomain === 'localhost:4000' ? '' : config.site.apiDomain}\n`;
} }
envContent += `SITE_ANALYTIC_API=${config.site.analyticApiKey}\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 // Write to .env file
const envPath = path.join(__dirname, '../../.env'); const envPath = path.join(__dirname, '../../.env');

View file

@ -32,7 +32,13 @@ VALUES
('site_api_domain', NULL, 'site'), ('site_api_domain', NULL, 'site'),
('site_protocol', NULL, 'site'), ('site_protocol', NULL, 'site'),
('site_environment', 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 -- Payment Settings
('currency', 'CAD', 'payment'), ('currency', 'CAD', 'payment'),