adjustments to migration after testing

This commit is contained in:
miloschwartz 2025-02-25 22:58:52 -05:00
parent e4789c6b08
commit de70c62ea8
No known key found for this signature in database
5 changed files with 139 additions and 62 deletions

View file

@ -38,14 +38,45 @@ const configSchema = z.object({
save_logs: z.boolean(),
log_failed_attempts: z.boolean().optional()
}),
domains: z.record(
z.string(),
z.object({
base_domain: hostnameSchema.transform((url) => url.toLowerCase()),
cert_resolver: z.string().optional(),
prefer_wildcard_cert: z.boolean().optional()
})
),
domains: z
.record(
z.string(),
z.object({
base_domain: hostnameSchema.transform((url) =>
url.toLowerCase()
),
cert_resolver: z.string().optional(),
prefer_wildcard_cert: z.boolean().optional()
})
)
.refine(
(domains) => {
const keys = Object.keys(domains);
if (keys.length === 0) {
return false;
}
return true;
},
{
message: "At least one domain must be defined"
}
)
.refine(
(domains) => {
const envBaseDomain = process.env.APP_BASE_DOMAIN;
if (envBaseDomain) {
return hostnameSchema.safeParse(envBaseDomain).success;
}
return true;
},
{
message: "APP_BASE_DOMAIN must be a valid hostname"
}
),
server: z.object({
external_port: portSchema
.optional()
@ -169,8 +200,6 @@ export class Config {
}
}
public loadEnvironment() {}
public loadConfig() {
const loadConfig = (configPath: string) => {
try {
@ -277,6 +306,17 @@ export class Config {
: "false";
process.env.DASHBOARD_URL = parsedConfig.data.app.dashboard_url;
if (process.env.APP_BASE_DOMAIN) {
console.log(
`DEPRECATED! APP_BASE_DOMAIN is deprecated and will be removed in a future release. Use the domains section in the configuration file instead. See https://docs.fossorial.io/Pangolin/Configuration/config for more information.`
);
parsedConfig.data.domains.domain1 = {
base_domain: process.env.APP_BASE_DOMAIN,
cert_resolver: "letsencrypt"
};
}
this.rawConfig = parsedConfig.data;
}