package common // --------------------------------------------------------------------------- // Default config templates // --------------------------------------------------------------------------- type AppConfig struct { App App `mapstructure:"app" toml:"app"` Certificates Certificates `mapstructure:"certificates" toml:"certificates"` Cloudflare Cloudflare `mapstructure:"cloudflare" toml:"cloudflare"` Git Git `mapstructure:"git" toml:"git"` } type App struct { Mode string `mapstructure:"mode" toml:"mode"` TickRate int `mapstructure:"tick_rate" toml:"tick_rate"` UUID string `mapstructure:"uuid" toml:"uuid"` } type Git struct { Host string `mapstructure:"host" toml:"host"` Server string `mapstructure:"server" toml:"server"` Username string `mapstructure:"username" toml:"username"` APIToken string `mapstructure:"api_token" toml:"api_token"` OrgName string `mapstructure:"org_name" toml:"org_name"` } type Certificates struct { DataRoot string `mapstructure:"data_root" toml:"data_root"` Email string `mapstructure:"email" toml:"email"` CADirURL string `mapstructure:"ca_dir_url" toml:"ca_dir_url"` } type Cloudflare struct { CFEmail string `mapstructure:"cf_email" toml:"cf_email"` CFAPIKey string `mapstructure:"cf_api_key" toml:"cf_api_key"` } type Repo struct { RepoSuffix string `mapstructure:"repo_suffix" toml:"repo_suffix"` } type Internal struct { LastIssued int64 `mapstructure:"last_issued" toml:"last_issued"` RepoExists bool `mapstructure:"repo_exists" toml:"repo_exists"` Status string `mapstructure:"status" toml:"status"` } // --------------------------------------------------------------------------- // Server domain config // --------------------------------------------------------------------------- type ServerDomainConfig struct { Domain ServerDomainCfg `mapstructure:"domain" toml:"domain"` Certificates ServerDomainCerts `mapstructure:"certificates" toml:"certificates"` Repo Repo `mapstructure:"repo" toml:"repo"` Internal Internal `mapstructure:"internal" toml:"internal"` } type ServerDomainCfg struct { DomainName string `mapstructure:"domain_name" toml:"domain_name"` Enabled bool `mapstructure:"enabled" toml:"enabled"` DNSServer string `mapstructure:"dns_server" toml:"dns_server"` } type ServerDomainCerts struct { DataRoot string `mapstructure:"data_root" toml:"data_root"` CryptoKey string `mapstructure:"crypto_key" toml:"crypto_key"` RequestMethod string `mapstructure:"request_method" toml:"request_method"` Expiry int `mapstructure:"expiry" toml:"expiry"` RenewPeriod int `mapstructure:"renew_period" toml:"renew_period"` SubDomains []string `mapstructure:"sub_domains" toml:"sub_domains"` } // --------------------------------------------------------------------------- // Client domain config // --------------------------------------------------------------------------- type ClientDomainConfig struct { Domain ClientDomainCfg `mapstructure:"domain" toml:"domain"` Certificates ClientDomainCerts `mapstructure:"certificates" toml:"certificates"` Repo Repo `mapstructure:"repo" toml:"repo"` } type ClientDomainCfg struct { DomainName string `mapstructure:"domain_name" toml:"domain_name"` Enabled bool `mapstructure:"enabled" toml:"enabled"` } type ClientDomainCerts struct { DataRoot string `mapstructure:"data_root" toml:"data_root"` CryptoKey string `mapstructure:"crypto_key" toml:"crypto_key"` CertSymlinks []string `mapstructure:"cert_symlinks" toml:"cert_symlinks"` KeySymlinks []string `mapstructure:"key_symlinks" toml:"key_symlinks"` }