diff --git a/.DS_Store b/.DS_Store index 1bee935..863a1dc 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/backend/enviroment/getEnvVariables.ts b/backend/enviroment/getEnvVariables.ts new file mode 100644 index 0000000..7f071b0 --- /dev/null +++ b/backend/enviroment/getEnvVariables.ts @@ -0,0 +1,23 @@ +import path from "path"; + +const getEnvVariables = () => { + + const configPath = path.join(__dirname, "..", "..", "config"); + + const processType = process.env.NODE_ENV; + + if (processType === 'production') { + + require('dotenv').config({ path: configPath + "/prod.env"}) + + } else if (processType === 'development') { + + require('dotenv').config({ path: configPath + "/dev.env"}) + + } else if (processType === 'test') { + + require('dotenv').config({ path: configPath + "/test.env"}) + } +} + +export default getEnvVariables; \ No newline at end of file diff --git a/backend/key/getKey.ts b/backend/key/getKey.ts index c77429f..ef6ece9 100644 --- a/backend/key/getKey.ts +++ b/backend/key/getKey.ts @@ -9,7 +9,7 @@ const getKey = async() => { env.key = process.env.KEY - } else if (process.env.NODE_ENV) { + } else if (process.env.NODE_ENV === "production") { let password: string = await prompt("Enter Server Encryption Password: ", {method: "hide"}); diff --git a/backend/server/server.ts b/backend/server/server.ts index cd46310..6f4c5a2 100755 --- a/backend/server/server.ts +++ b/backend/server/server.ts @@ -12,13 +12,15 @@ import busboy from "connect-busboy"; import compression from "compression"; import http from "http"; + + const app = express(); const publicPath = path.join(__dirname, "..", "..", "public"); let server: any; let serverHttps: any; -if (process.env.NODE_ENV === 'production') { +if (process.env.SSL === 'true') { const cert = fs.readFileSync("certificate.crt") const ca = fs.readFileSync("certificate.ca-bundle"); diff --git a/backend/server/serverStart.ts b/backend/server/serverStart.ts index d5b6ddb..5935c7a 100644 --- a/backend/server/serverStart.ts +++ b/backend/server/serverStart.ts @@ -1,3 +1,5 @@ +import getEnvVariables from "../enviroment/getEnvVariables"; +getEnvVariables(); import getKey from "../key/getKey"; import servers from "./server"; @@ -7,7 +9,9 @@ const serverStart = async() => { await getKey(); - if (process.env.NODE_ENV === 'production') { + console.log("ENV", process.env.NODE_ENV); + + if (process.env.NODE_ENV === 'production' && process.env.SSL === "true") { server.listen(process.env.HTTP_PORT,process.env.URL, () => { console.log("Http Server Running On Port:", process.env.HTTP_PORT); @@ -17,7 +21,7 @@ const serverStart = async() => { console.log( 'Https Server Running On Port:', process.env.HTTPS_PORT); } ); - } else if (process.env.NODE_ENV === 'production-no-ssl') { + } else if (process.env.NODE_ENV === 'production') { server.listen(process.env.HTTP_PORT,process.env.URL, () => { console.log("Http Server (No-SSL) Running On Port:", process.env.HTTP_PORT); diff --git a/package.json b/package.json index 47463d9..89589b1 100755 --- a/package.json +++ b/package.json @@ -5,26 +5,12 @@ "license": "GNU General Public License v3.0", "scripts": { "server": "live-server public/", - "build": "cross-env NODE_ENV=production webpack -p --env production", - "build:no-ssl": "cross-env NODE_ENV=production-no-ssl webpack -p --env production-no-ssl", - "build:dev": "webpack", + "build": "webpack -p --env production", + "build:dev": "webpack --env development", "dev-server": "webpack-dev-server", - "test": "cross-env NODE_ENV=test env-cmd -f ./config/test.env jest --config=jest.config.json --watchAll --runInBand", - "start:dev": "env-cmd -f ./config/dev.env node server/serverStart.js", - "start": "cross-env NODE_ENV=production env-cmd -f ./config/prod.env node server/serverStart.js --env production", - "start:no-ssl": "cross-env NODE_ENV=production-no-ssl env-cmd -f ./config/prod.env node dist/server/serverStart.js --env production-no-ssl", - "clean-database": "env-cmd -f ./config/prod.env node serverUtils/cleanDatabase.js", - "clean-database:dev": "env-cmd -f ./config/dev.env node serverUtils/cleanDatabase.js", - "backup-database": "env-cmd -f ./config/prod.env node serverUtils/backupDatabase.js", - "backup-database:dev": "env-cmd -f ./config/dev.env node serverUtils/backupDatabase.js", - "restore-database": "env-cmd -f ./config/prod.env node serverUtils/restoreDatabase.js", - "restore-database:dev": "env-cmd -f ./config/dev.env node serverUtils/restoreDatabase.js", - "delete-temp-database": "env-cmd -f ./config/prod.env node serverUtils/deleteTempDatabase.js", - "delete-temp-database:dev": "env-cmd -f ./config/dev.env node serverUtils/deleteTempDatabase.js", - "delete-database": "env-cmd -f ./config/prod.env node serverUtils/deleteDatabase.js", - "delete-database:dev": "env-cmd -f ./config/dev.env node serverUtils/deleteDatabase.js", - "change-password-database": "env-cmd -f ./config/prod.env node serverUtils/changeEncryptionPassword.js", - "change-password-database:dev": "env-cmd -f ./config/dev.env node serverUtils/changeEncryptionPassword.js", + "test": "NODE_ENV=test env-cmd -f ./config/test.env jest --config=jest.config.json --watchAll --runInBand", + "start:dev": "NODE_ENV=development node dist/server/serverStart.js", + "start": "NODE_ENV=production node dist/server/serverStart.js --env production", "create-indexes-database": "env-cmd -f ./config/prod.env node serverUtils/createIndexes.js", "create-indexes-database:dev": "env-cmd -f ./config/dev.env node serverUtils/createIndexes.js", "init": "node serverUtils/initServer.js", diff --git a/webpack.config.js b/webpack.config.js index 53ad704..196be09 100755 --- a/webpack.config.js +++ b/webpack.config.js @@ -6,25 +6,33 @@ const CompressionPlugin = require("compression-webpack-plugin"); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const path = require("path"); -process.env.NODE_ENV = process.env.NODE_ENV || "development" +//console.log("node env", process.env.NODE_ENV); -console.log("node env", process.env.NODE_ENV); +//process.env.NODE_ENV = process.env.NODE_ENV || "development" -if (process.env.NODE_ENV === "test") { - - require("dotenv").config({path: ".env.test"}) - -} else if (process.env.NODE_ENV === "development") { - - require("dotenv").config({path: ".env.development"}) - -} else { - require("dotenv").config({path: ".env.production"}); -} +//console.log("node env", process.env.NODE_ENV); module.exports = (env) => { - const isProduction = (env === "production" || env === "production-no-ssl") + + if (env === "test") { + + console.log("Loading test env variables") + require("dotenv").config({path: ".env.test"}) + + } else if (env === "development") { + + console.log("Loading development env variables") + require("dotenv").config({path: ".env.development"}) + + } else { + + console.log("Loading production env variables") + require("dotenv").config({path: ".env.production"}); + } + + console.log("env", env); + const isProduction = env === "production" console.log("is prod", isProduction); const CSSExtract = new MiniCssExtractPlugin({ filename: 'styles.css' });