Prepare Portainer stack deployment
This commit is contained in:
@@ -38,33 +38,41 @@ function parseBoolean(value: string | undefined, fallback: boolean): boolean {
|
||||
return ["1", "true", "yes", "on"].includes(value.toLowerCase());
|
||||
}
|
||||
|
||||
function readEnv(name: string): string | undefined {
|
||||
const value = process.env[name];
|
||||
if (value === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
return value.trim().length > 0 ? value : undefined;
|
||||
}
|
||||
|
||||
const rawConfig = {
|
||||
port: process.env.PORT,
|
||||
logLevel: process.env.LOG_LEVEL,
|
||||
databasePath: process.env.DATABASE_PATH,
|
||||
paperlessBaseUrl: process.env.PAPERLESS_BASE_URL,
|
||||
paperlessToken: process.env.PAPERLESS_TOKEN,
|
||||
paperlessExternalUrl: process.env.PAPERLESS_EXTERNAL_URL,
|
||||
appExternalUrl: process.env.APP_EXTERNAL_URL,
|
||||
appLocale: process.env.APP_LOCALE,
|
||||
schedulerIntervalMinutes: process.env.SCHEDULER_INTERVAL_MINUTES,
|
||||
alertDaysBefore: process.env.ALERT_DAYS_BEFORE,
|
||||
mailServer: process.env.MAIL_SERVER,
|
||||
mailPort: process.env.MAIL_PORT,
|
||||
mailUsername: process.env.MAIL_USERNAME,
|
||||
mailPassword: process.env.MAIL_PASSWORD,
|
||||
mailUseTls: parseBoolean(process.env.MAIL_USE_TLS, true),
|
||||
mailFrom: process.env.MAIL_FROM,
|
||||
mailTo: process.env.MAIL_TO,
|
||||
authUsername: process.env.AUTH_USERNAME,
|
||||
authPassword: process.env.AUTH_PASSWORD,
|
||||
authJwtSecret: process.env.AUTH_JWT_SECRET,
|
||||
authTokenExpiresInHours: process.env.AUTH_TOKEN_EXPIRES_IN_HOURS,
|
||||
ntfyServerUrl: process.env.NTFY_SERVER_URL,
|
||||
ntfyTopic: process.env.NTFY_TOPIC,
|
||||
ntfyToken: process.env.NTFY_TOKEN,
|
||||
ntfyPriority: process.env.NTFY_PRIORITY,
|
||||
icalSecret: process.env.ICAL_SECRET
|
||||
port: readEnv("PORT"),
|
||||
logLevel: readEnv("LOG_LEVEL"),
|
||||
databasePath: readEnv("DATABASE_PATH"),
|
||||
paperlessBaseUrl: readEnv("PAPERLESS_BASE_URL"),
|
||||
paperlessToken: readEnv("PAPERLESS_TOKEN"),
|
||||
paperlessExternalUrl: readEnv("PAPERLESS_EXTERNAL_URL"),
|
||||
appExternalUrl: readEnv("APP_EXTERNAL_URL"),
|
||||
appLocale: readEnv("APP_LOCALE"),
|
||||
schedulerIntervalMinutes: readEnv("SCHEDULER_INTERVAL_MINUTES"),
|
||||
alertDaysBefore: readEnv("ALERT_DAYS_BEFORE"),
|
||||
mailServer: readEnv("MAIL_SERVER"),
|
||||
mailPort: readEnv("MAIL_PORT"),
|
||||
mailUsername: readEnv("MAIL_USERNAME"),
|
||||
mailPassword: readEnv("MAIL_PASSWORD"),
|
||||
mailUseTls: parseBoolean(readEnv("MAIL_USE_TLS"), true),
|
||||
mailFrom: readEnv("MAIL_FROM"),
|
||||
mailTo: readEnv("MAIL_TO"),
|
||||
authUsername: readEnv("AUTH_USERNAME"),
|
||||
authPassword: readEnv("AUTH_PASSWORD"),
|
||||
authJwtSecret: readEnv("AUTH_JWT_SECRET"),
|
||||
authTokenExpiresInHours: readEnv("AUTH_TOKEN_EXPIRES_IN_HOURS"),
|
||||
ntfyServerUrl: readEnv("NTFY_SERVER_URL"),
|
||||
ntfyTopic: readEnv("NTFY_TOPIC"),
|
||||
ntfyToken: readEnv("NTFY_TOKEN"),
|
||||
ntfyPriority: readEnv("NTFY_PRIORITY"),
|
||||
icalSecret: readEnv("ICAL_SECRET")
|
||||
};
|
||||
|
||||
export type AppConfig = z.infer<typeof configSchema>;
|
||||
|
||||
Reference in New Issue
Block a user