feat(opnsense-config): add caddy module with configuration management
Introduce a new Caddy module within opnsense-config to manage Caddy server configurations. This includes enabling/disabling Caddy, setting ports, and reloading/restarting the service via OPNsense shell commands. Additionally, provide a sample Caddy configuration file for PXE booting and a test file in the pxe-http-files directory.
This commit is contained in:
83
harmony-rs/opnsense-config-xml/src/data/caddy.rs
Normal file
83
harmony-rs/opnsense-config-xml/src/data/caddy.rs
Normal file
@@ -0,0 +1,83 @@
|
||||
use yaserde::MaybeString;
|
||||
use yaserde_derive::{YaDeserialize, YaSerialize};
|
||||
|
||||
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
|
||||
pub struct Pischem {
|
||||
pub caddy: Caddy,
|
||||
}
|
||||
|
||||
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
|
||||
pub struct Caddy {
|
||||
pub general: CaddyGeneral,
|
||||
pub reverseproxy: MaybeString,
|
||||
}
|
||||
|
||||
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
|
||||
pub struct CaddyGeneral {
|
||||
pub enabled: u8,
|
||||
#[yaserde(rename = "EnableLayer4")]
|
||||
pub enable_layer4: Option<u8>,
|
||||
#[yaserde(rename = "HttpPort")]
|
||||
pub http_port: Option<u16>,
|
||||
#[yaserde(rename = "HttpsPort")]
|
||||
pub https_port: Option<u16>,
|
||||
#[yaserde(rename = "TlsEmail")]
|
||||
pub tls_email: MaybeString,
|
||||
#[yaserde(rename = "TlsAutoHttps")]
|
||||
pub tls_auto_https: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsProvider")]
|
||||
pub tls_dns_provider: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsApiKey")]
|
||||
pub tls_dns_api_key: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsSecretApiKey")]
|
||||
pub tls_dns_secret_api_key: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsOptionalField1")]
|
||||
pub tls_dns_optional_field1: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsOptionalField2")]
|
||||
pub tls_dns_optional_field2: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsOptionalField3")]
|
||||
pub tls_dns_optional_field3: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsOptionalField4")]
|
||||
pub tls_dns_optional_field4: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsPropagationTimeout")]
|
||||
pub tls_dns_propagation_timeout: MaybeString,
|
||||
#[yaserde(rename = "TlsDnsPropagationResolvers")]
|
||||
pub tls_dns_propagation_resolvers: MaybeString,
|
||||
pub accesslist: MaybeString,
|
||||
#[yaserde(rename = "DisableSuperuser")]
|
||||
pub disable_superuser: Option<i32>,
|
||||
#[yaserde(rename = "GracePeriod")]
|
||||
pub grace_period: Option<u16>,
|
||||
#[yaserde(rename = "HttpVersion")]
|
||||
pub http_version: MaybeString,
|
||||
#[yaserde(rename = "LogCredentials")]
|
||||
pub log_credentials: MaybeString,
|
||||
#[yaserde(rename = "LogAccessPlain")]
|
||||
pub log_access_plain: MaybeString,
|
||||
#[yaserde(rename = "LogAccessPlainKeep")]
|
||||
pub log_access_plain_keep: Option<u16>,
|
||||
#[yaserde(rename = "LogLevel")]
|
||||
pub log_level: MaybeString,
|
||||
#[yaserde(rename = "DynDnsSimpleHttp")]
|
||||
pub dyn_dns_simple_http: MaybeString,
|
||||
#[yaserde(rename = "DynDnsInterface")]
|
||||
pub dyn_dns_interface: MaybeString,
|
||||
#[yaserde(rename = "DynDnsInterval")]
|
||||
pub dyn_dns_interval: MaybeString,
|
||||
#[yaserde(rename = "DynDnsIpVersions")]
|
||||
pub dyn_dns_ip_versions: MaybeString,
|
||||
#[yaserde(rename = "DynDnsTtl")]
|
||||
pub dyn_dns_ttl: MaybeString,
|
||||
#[yaserde(rename = "DynDnsUpdateOnly")]
|
||||
pub dyn_dns_update_only: MaybeString,
|
||||
#[yaserde(rename = "AuthProvider")]
|
||||
pub auth_provider: MaybeString,
|
||||
#[yaserde(rename = "AuthToDomain")]
|
||||
pub auth_to_domain: MaybeString,
|
||||
#[yaserde(rename = "AuthToPort")]
|
||||
pub auth_to_port: MaybeString,
|
||||
#[yaserde(rename = "AuthToTls")]
|
||||
pub auth_to_tls: Option<i32>,
|
||||
#[yaserde(rename = "AuthToUri")]
|
||||
pub auth_to_uri: MaybeString,
|
||||
}
|
||||
@@ -2,6 +2,8 @@ mod opnsense;
|
||||
mod interfaces;
|
||||
mod dhcpd;
|
||||
mod haproxy;
|
||||
mod caddy;
|
||||
pub use caddy::*;
|
||||
pub use haproxy::*;
|
||||
pub use opnsense::*;
|
||||
pub use interfaces::*;
|
||||
|
||||
@@ -5,7 +5,7 @@ use uuid::Uuid;
|
||||
use yaserde::{MaybeString, NamedList, RawXml};
|
||||
use yaserde_derive::{YaDeserialize, YaSerialize};
|
||||
|
||||
use super::Interface;
|
||||
use super::{Interface, Pischem};
|
||||
|
||||
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
|
||||
#[yaserde(rename = "opnsense")]
|
||||
@@ -44,7 +44,7 @@ pub struct OPNsense {
|
||||
pub wireless: Wireless,
|
||||
pub hasync: Hasync,
|
||||
#[yaserde(rename = "Pischem")]
|
||||
pub pischem: Option<RawXml>,
|
||||
pub pischem: Option<Pischem>,
|
||||
pub ifgroups: Ifgroups,
|
||||
}
|
||||
|
||||
@@ -1370,7 +1370,6 @@ pub struct ConfigOpenVPN {
|
||||
pub StaticKeys: MaybeString,
|
||||
}
|
||||
|
||||
|
||||
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
|
||||
pub struct StaticRoutes {
|
||||
#[yaserde(attribute)]
|
||||
|
||||
Reference in New Issue
Block a user