32 lines
1.0 KiB
TypeScript
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());
|
|
}
|