Allow setting server config variables via .env file
This commit is contained in:
parent
589ffeaf49
commit
0dcf3ce59c
|
@ -20,6 +20,7 @@
|
|||
"@types/stripe": "8.0.416",
|
||||
"ansi-colors": "4.1.1",
|
||||
"date-fns": "2.22.1",
|
||||
"dotenv": "16.0.0",
|
||||
"fs-extra": "10.0.0",
|
||||
"geolite2-redist": "2.0.4",
|
||||
"level": "7.0.0",
|
||||
|
@ -1889,6 +1890,14 @@
|
|||
"node": ">=0.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/dynamic-dedupe": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
|
||||
|
@ -5698,6 +5707,11 @@
|
|||
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
|
||||
"dev": true
|
||||
},
|
||||
"dotenv": {
|
||||
"version": "16.0.0",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||
"integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q=="
|
||||
},
|
||||
"dynamic-dedupe": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
"@types/stripe": "8.0.416",
|
||||
"ansi-colors": "4.1.1",
|
||||
"date-fns": "2.22.1",
|
||||
"dotenv": "16.0.0",
|
||||
"fs-extra": "10.0.0",
|
||||
"geolite2-redist": "2.0.4",
|
||||
"level": "7.0.0",
|
||||
|
|
|
@ -14,6 +14,8 @@ import { StripeProvisionerConfig } from "./provisioning/stripe";
|
|||
import { MixpanelConfig } from "./logging/mixpanel";
|
||||
import { HTTPReceiverConfig } from "./transport/http";
|
||||
import { PostgresConfig } from "./storage/postgres";
|
||||
import dotenv from "dotenv";
|
||||
import { resolve } from "path";
|
||||
|
||||
export class TransportConfig extends Config {
|
||||
@ConfigParam()
|
||||
|
@ -34,9 +36,6 @@ export class EmailConfig extends Config {
|
|||
|
||||
@ConfigParam(SMTPConfig)
|
||||
smtp?: SMTPConfig;
|
||||
|
||||
@ConfigParam("string")
|
||||
footer?: string;
|
||||
}
|
||||
|
||||
export class DataStorageConfig extends Config {
|
||||
|
@ -153,5 +152,9 @@ export class PadlocConfig extends Config {
|
|||
}
|
||||
|
||||
export function getConfig() {
|
||||
const envFile = process.argv.find((arg) => arg.startsWith("--env="))?.slice(6);
|
||||
const path = envFile && resolve(process.cwd(), envFile);
|
||||
const override = process.argv.includes("--env-override");
|
||||
dotenv.config({ override, path });
|
||||
return new PadlocConfig().fromEnv(process.env as { [v: string]: string }, "PL_");
|
||||
}
|
||||
|
|
|
@ -12,10 +12,10 @@ export class SMTPConfig extends Config {
|
|||
}
|
||||
|
||||
@ConfigParam()
|
||||
host: string = "";
|
||||
host: string = "localhost";
|
||||
|
||||
@ConfigParam()
|
||||
port: string = "";
|
||||
@ConfigParam("number")
|
||||
port: number = 1025;
|
||||
|
||||
@ConfigParam("boolean")
|
||||
secure: boolean = false;
|
||||
|
|
|
@ -7,7 +7,7 @@ import { Config, ConfigParam } from "@padloc/core/src/config";
|
|||
export class MongoDBStorageConfig extends Config {
|
||||
@ConfigParam()
|
||||
host: string = "localhost";
|
||||
@ConfigParam()
|
||||
@ConfigParam("number")
|
||||
port: number = 27017;
|
||||
@ConfigParam()
|
||||
username: string = "";
|
||||
|
|
Loading…
Reference in New Issue