36 lines
1016 B
TypeScript
36 lines
1016 B
TypeScript
function parsePort({
|
|
value,
|
|
fallback,
|
|
}: {
|
|
value?: string;
|
|
fallback: number;
|
|
}) {
|
|
const parsed = Number(value);
|
|
|
|
if (!Number.isInteger(parsed) || parsed < 1 || parsed > 65535) {
|
|
return fallback;
|
|
}
|
|
|
|
return parsed;
|
|
}
|
|
|
|
export const TlsData = {
|
|
/** Public HTTPS port Caddy listens on. Never 80/443. */
|
|
CaddyHttpsPort: parsePort({
|
|
value: process.env.CADDY_HTTPS_PORT,
|
|
fallback: 8443,
|
|
}),
|
|
/** Plain HTTP port for Caddy redirects/bootstrap. Never port 80. */
|
|
CaddyHttpPort: parsePort({
|
|
value: process.env.CADDY_HTTP_PORT,
|
|
fallback: 8081,
|
|
}),
|
|
/** Default acme.sh DNS provider id, e.g. dns_cf. */
|
|
DefaultDnsProvider: process.env.ACME_DNS_PROVIDER || "",
|
|
/** Use the Let's Encrypt staging endpoint. */
|
|
AcmeStaging: process.env.ACME_STAGING == "1",
|
|
/** Keep the ingress port closed unless a route is enabled. */
|
|
IngressEnabled: process.env.CADDY_INGRESS_ENABLED != "0",
|
|
RenewBeforeDays: 30,
|
|
} as const;
|