mirror of
https://github.com/OneUptime/oneuptime
synced 2024-11-22 15:24:55 +00:00
158 lines
5.2 KiB
TypeScript
158 lines
5.2 KiB
TypeScript
import ObjectID from 'Common/Types/ObjectID';
|
|
import Port from 'Common/Types/Port';
|
|
import Hostname from 'Common/Types/API/Hostname';
|
|
import SubscriptionPlan from 'Common/Types/Billing/SubscriptionPlan';
|
|
import { JSONObject } from 'Common/Types/JSON';
|
|
import BillingConfig from './BillingConfig';
|
|
|
|
export enum ConfigLogLevel {
|
|
INFO = 'INFO',
|
|
WARN = 'WARN',
|
|
ERROR = 'ERROR',
|
|
DEBUG = 'DEBUG',
|
|
}
|
|
|
|
export const getAllEnvVars: () => JSONObject = (): JSONObject => {
|
|
return process.env;
|
|
};
|
|
|
|
export const IsBillingEnabled: boolean = BillingConfig.IsBillingEnabled;
|
|
export const BillingPublicKey: string = BillingConfig.BillingPublicKey;
|
|
export const BillingPrivateKey: string = BillingConfig.BillingPrivateKey;
|
|
|
|
export const DatabaseHost: Hostname = Hostname.fromString(
|
|
process.env['DATABASE_HOST'] || 'postgres'
|
|
);
|
|
|
|
export const DatabasePort: Port = new Port(
|
|
process.env['DATABASE_PORT'] || '5432'
|
|
);
|
|
|
|
export const DatabaseUsername: string =
|
|
process.env['DATABASE_USERNAME'] || 'postgres';
|
|
|
|
export const DatabasePassword: string =
|
|
process.env['DATABASE_PASSWORD'] || 'password';
|
|
|
|
export const DatabaseName: string =
|
|
process.env['DATABASE_NAME'] || 'oneuptimedb';
|
|
|
|
export const DatabaseSslCa: string | undefined =
|
|
process.env['DATABASE_SSL_CA'] || undefined;
|
|
|
|
export const DatabaseSslKey: string | undefined =
|
|
process.env['DATABASE_SSL_KEY'] || undefined;
|
|
|
|
export const DatabaseSslCert: string | undefined =
|
|
process.env['DATABASE_SSL_CERT'] || undefined;
|
|
|
|
export const DatabaseRejectUnauthorized: boolean =
|
|
process.env['DATABASE_SSL_REJECT_UNAUTHORIZED'] === 'true';
|
|
|
|
export const ShouldDatabaseSslEnable: boolean = Boolean(
|
|
DatabaseSslCa || (DatabaseSslCert && DatabaseSslKey)
|
|
);
|
|
|
|
export const EncryptionSecret: ObjectID = new ObjectID(
|
|
process.env['ENCRYPTION_SECRET'] || 'secret'
|
|
);
|
|
|
|
export const AirtableApiKey: string = process.env['AIRTABLE_API_KEY'] || '';
|
|
|
|
export const AirtableBaseId: string = process.env['AIRTABLE_BASE_ID'] || '';
|
|
|
|
export const ClusterKey: ObjectID = new ObjectID(
|
|
process.env['ONEUPTIME_SECRET'] || 'secret'
|
|
);
|
|
|
|
export const HasClusterKey: boolean = Boolean(process.env['ONEUPTIME_SECRET']);
|
|
|
|
export const AppApiHostname: Hostname = Hostname.fromString(
|
|
`${process.env['SERVER_APP_HOSTNAME'] || 'localhost'}:${
|
|
process.env['APP_PORT'] || 80
|
|
}`
|
|
);
|
|
|
|
export const IngestorHostname: Hostname = Hostname.fromString(
|
|
`${process.env['SERVER_INGESTOR_HOSTNAME'] || 'localhost'}:${
|
|
process.env['INGESTOR_PORT'] || 80
|
|
}`
|
|
);
|
|
|
|
export const IsolatedVMHostname: Hostname = Hostname.fromString(
|
|
`${process.env['SERVER_ISOLATED_VM_HOSTNAME'] || 'localhost'}:${
|
|
process.env['ISOLATED_VM_PORT'] || 80
|
|
}`
|
|
);
|
|
|
|
export const AccountsHostname: Hostname = Hostname.fromString(
|
|
`${process.env['SERVER_ACCOUNTS_HOSTNAME'] || 'localhost'}:${
|
|
process.env['ACCOUNTS_PORT'] || 80
|
|
}`
|
|
);
|
|
|
|
export const DashboardHostname: Hostname = Hostname.fromString(
|
|
`${process.env['SERVER_DASHBOARD_HOSTNAME'] || 'localhost'}:${
|
|
process.env['DASHBOARD_PORT'] || 80
|
|
}`
|
|
);
|
|
|
|
export const Env: string = process.env['NODE_ENV'] || 'production';
|
|
|
|
// Redis does not require password.
|
|
export const RedisHostname: string = process.env['REDIS_HOST'] || 'redis';
|
|
export const RedisPort: Port = new Port(process.env['REDIS_PORT'] || '6379');
|
|
export const RedisDb: number = Number(process.env['REDIS_DB']) || 0;
|
|
export const RedisUsername: string = process.env['REDIS_USERNAME'] || 'default';
|
|
export const RedisPassword: string =
|
|
process.env['REDIS_PASSWORD'] || 'password';
|
|
export const RedisTlsCa: string | undefined =
|
|
process.env['REDIS_TLS_CA'] || undefined;
|
|
export const RedisTlsSentinelMode: boolean =
|
|
process.env['REDIS_TLS_SENTINEL_MODE'] === 'true';
|
|
|
|
export const ShouldRedisTlsEnable: boolean = Boolean(
|
|
RedisTlsCa || RedisTlsSentinelMode
|
|
);
|
|
|
|
export const IsProduction: boolean =
|
|
process.env['ENVIRONMENT'] === 'production';
|
|
|
|
export const IsDevelopment: boolean =
|
|
process.env['ENVIRONMENT'] === 'development';
|
|
|
|
export const IsTest: boolean = process.env['ENVIRONMENT'] === 'test';
|
|
|
|
export const SubscriptionPlans: Array<SubscriptionPlan> =
|
|
SubscriptionPlan.getSubscriptionPlans(getAllEnvVars());
|
|
|
|
export const AnalyticsKey: string = process.env['ANALYTICS_KEY'] || '';
|
|
export const AnalyticsHost: string = process.env['ANALYTICS_HOST'] || '';
|
|
|
|
export const DisableAutomaticIncidentCreation: boolean =
|
|
process.env['DISABLE_AUTOMATIC_INCIDENT_CREATION'] === 'true';
|
|
|
|
export const ClickhouseHost: Hostname = Hostname.fromString(
|
|
process.env['CLICKHOUSE_HOST'] || 'clickhouse'
|
|
);
|
|
|
|
export const ClickhousePort: Port = new Port(
|
|
process.env['CLICKHOUSE_PORT'] || '8123'
|
|
);
|
|
|
|
export const ClickhouseUsername: string =
|
|
process.env['CLICKHOUSE_USER'] || 'default';
|
|
|
|
export const ClickhousePassword: string =
|
|
process.env['CLICKHOUSE_PASSWORD'] || 'password';
|
|
|
|
export const ClickhouseDatabase: string =
|
|
process.env['CLICKHOUSE_DATABASE'] || 'oneuptime';
|
|
|
|
export const GitSha: string = process.env['GIT_SHA'] || 'unknown';
|
|
|
|
export const AppVersion: string = process.env['APP_VERSION'] || 'unknown';
|
|
|
|
export const LogLevel: ConfigLogLevel =
|
|
(process.env['LOG_LEVEL'] as ConfigLogLevel) || ConfigLogLevel.ERROR;
|