Variable serverSchemaConst
serverSchema: ZodObject<
{
automatic_https: ZodOptional<
ZodObject<
{
disable: ZodOptional<ZodBoolean>;
disable_certificates: ZodOptional<ZodBoolean>;
disable_redirects: ZodOptional<ZodBoolean>;
ignore_loaded_certificates: ZodOptional<ZodBoolean>;
skip: ZodOptional<ZodArray<ZodString, "many">>;
skip_certificates: ZodOptional<ZodArray<ZodString, "many">>;
},
"strip",
ZodTypeAny,
{
disable?: boolean;
disable_certificates?: boolean;
disable_redirects?: boolean;
ignore_loaded_certificates?: boolean;
skip?: string[];
skip_certificates?: string[];
},
{
disable?: boolean;
disable_certificates?: boolean;
disable_redirects?: boolean;
ignore_loaded_certificates?: boolean;
skip?: string[];
skip_certificates?: string[];
},
>,
>;
client_ip_headers: ZodOptional<ZodArray<ZodString, "many">>;
enable_full_duplex: ZodOptional<ZodBoolean>;
errors: ZodOptional<
ZodObject<
{
routes: ZodOptional<
ZodArray<
ZodObject<
{
group: ZodOptional<ZodString>;
handle: ZodOptional<ZodArray<(...), (...)>>;
match: ZodOptional<ZodArray<(...), (...)>>;
terminal: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
group?: string;
handle?: (...)[];
match?: (...)[];
terminal?: boolean;
},
{
group?: string;
handle?: (...)[];
match?: (...)[];
terminal?: boolean;
},
>,
"many",
>,
>;
},
"strip",
ZodTypeAny,
{
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
},
{
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
},
>,
>;
idle_timeout: ZodOptional<ZodAny>;
keepalive_count: ZodOptional<ZodNumber>;
keepalive_idle: ZodOptional<ZodAny>;
keepalive_interval: ZodOptional<ZodAny>;
listen: ZodOptional<ZodArray<ZodString, "many">>;
listen_protocols: ZodOptional<
ZodArray<ZodArray<ZodString, "many">, "many">,
>;
listener_wrappers: ZodOptional<ZodArray<ZodUnknown, "many">>;
logs: ZodOptional<
ZodObject<
{
default_logger_name: ZodOptional<ZodString>;
logger_names: ZodOptional<
ZodRecord<ZodString, ZodArray<ZodString, "many">>,
>;
should_log_credentials: ZodOptional<ZodBoolean>;
skip_hosts: ZodOptional<ZodArray<ZodString, "many">>;
skip_unmapped_hosts: ZodOptional<ZodBoolean>;
trace: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
default_logger_name?: string;
logger_names?: Record<string, string[]>;
should_log_credentials?: boolean;
skip_hosts?: string[];
skip_unmapped_hosts?: boolean;
trace?: boolean;
},
{
default_logger_name?: string;
logger_names?: Record<string, string[]>;
should_log_credentials?: boolean;
skip_hosts?: string[];
skip_unmapped_hosts?: boolean;
trace?: boolean;
},
>,
>;
max_header_bytes: ZodOptional<ZodNumber>;
metrics: ZodOptional<
ZodObject<
{
allow_catch_all_hosts: ZodOptional<ZodBoolean>;
per_host: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{ allow_catch_all_hosts?: boolean; per_host?: boolean },
{ allow_catch_all_hosts?: boolean; per_host?: boolean },
>,
>;
named_routes: ZodOptional<
ZodRecord<
ZodString,
ZodUnion<
[
ZodObject<
{
group: ZodOptional<ZodString>;
handle: ZodOptional<ZodArray<ZodUnknown, "many">>;
match: ZodOptional<ZodArray<ZodAny, "many">>;
terminal: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
},
{
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
},
>,
ZodUndefined,
],
>,
>,
>;
protocols: ZodOptional<ZodArray<ZodString, "many">>;
read_header_timeout: ZodOptional<ZodAny>;
read_timeout: ZodOptional<ZodAny>;
routes: ZodOptional<
ZodArray<
ZodObject<
{
group: ZodOptional<ZodString>;
handle: ZodOptional<ZodArray<ZodUnknown, "many">>;
match: ZodOptional<ZodArray<ZodAny, "many">>;
terminal: ZodOptional<ZodBoolean>;
},
"strip",
ZodTypeAny,
{
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
},
{
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
},
>,
"many",
>,
>;
strict_sni_host: ZodOptional<ZodBoolean>;
tls_connection_policies: ZodOptional<ZodAny>;
trusted_proxies: ZodOptional<ZodUnknown>;
trusted_proxies_strict: ZodOptional<ZodNumber>;
trusted_proxies_unix: ZodOptional<ZodBoolean>;
write_timeout: ZodOptional<ZodAny>;
},
"strip",
ZodTypeAny,
{
automatic_https?: {
disable?: boolean;
disable_certificates?: boolean;
disable_redirects?: boolean;
ignore_loaded_certificates?: boolean;
skip?: string[];
skip_certificates?: string[];
};
client_ip_headers?: string[];
enable_full_duplex?: boolean;
errors?: {
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
};
idle_timeout?: any;
keepalive_count?: number;
keepalive_idle?: any;
keepalive_interval?: any;
listen?: string[];
listen_protocols?: string[][];
listener_wrappers?: unknown[];
logs?: {
default_logger_name?: string;
logger_names?: Record<string, string[]>;
should_log_credentials?: boolean;
skip_hosts?: string[];
skip_unmapped_hosts?: boolean;
trace?: boolean;
};
max_header_bytes?: number;
metrics?: { allow_catch_all_hosts?: boolean; per_host?: boolean };
named_routes?: Record<
string,
| {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}
| undefined,
>;
protocols?: string[];
read_header_timeout?: any;
read_timeout?: any;
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
strict_sni_host?: boolean;
tls_connection_policies?: any;
trusted_proxies?: unknown;
trusted_proxies_strict?: number;
trusted_proxies_unix?: boolean;
write_timeout?: any;
},
{
automatic_https?: {
disable?: boolean;
disable_certificates?: boolean;
disable_redirects?: boolean;
ignore_loaded_certificates?: boolean;
skip?: string[];
skip_certificates?: string[];
};
client_ip_headers?: string[];
enable_full_duplex?: boolean;
errors?: {
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
};
idle_timeout?: any;
keepalive_count?: number;
keepalive_idle?: any;
keepalive_interval?: any;
listen?: string[];
listen_protocols?: string[][];
listener_wrappers?: unknown[];
logs?: {
default_logger_name?: string;
logger_names?: Record<string, string[]>;
should_log_credentials?: boolean;
skip_hosts?: string[];
skip_unmapped_hosts?: boolean;
trace?: boolean;
};
max_header_bytes?: number;
metrics?: { allow_catch_all_hosts?: boolean; per_host?: boolean };
named_routes?: Record<
string,
| {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}
| undefined,
>;
protocols?: string[];
read_header_timeout?: any;
read_timeout?: any;
routes?: {
group?: string;
handle?: unknown[];
match?: any[];
terminal?: boolean;
}[];
strict_sni_host?: boolean;
tls_connection_policies?: any;
trusted_proxies?: unknown;
trusted_proxies_strict?: number;
trusted_proxies_unix?: boolean;
write_timeout?: any;
},
> = ...
Re-export generated Caddy schemas for convenience. These schemas are generated from the Caddy Go source code and provide low-level validation for Caddy JSON configuration.
For full list of generated schemas, see
./caddy-types.ts