Files
community-rule/lib/server/env.ts
T
2026-05-22 15:50:33 -06:00

32 lines
1.0 KiB
TypeScript

export function getSessionPepper(): string {
const secret = process.env.SESSION_SECRET;
if (!secret || secret.length < 16) {
throw new Error(
"SESSION_SECRET must be set (min 16 characters) for auth routes.",
);
}
return secret;
}
export function getDatabaseUrl(): string | undefined {
return process.env.CLOUDRON_POSTGRESQL_URL?.trim() || undefined;
}
export function getSmtpUrl(): string | undefined {
const server = process.env.CLOUDRON_MAIL_SMTP_SERVER?.trim();
const port = process.env.CLOUDRON_MAIL_SMTP_PORT?.trim();
if (!server || !port) return undefined;
const username = process.env.CLOUDRON_MAIL_SMTP_USERNAME?.trim() ?? "";
const password = process.env.CLOUDRON_MAIL_SMTP_PASSWORD?.trim() ?? "";
if (username || password) {
const auth = `${encodeURIComponent(username)}:${encodeURIComponent(password)}@`;
return `smtp://${auth}${server}:${port}`;
}
return `smtp://${server}:${port}`;
}
export function isDatabaseConfigured(): boolean {
return Boolean(getDatabaseUrl());
}