config

package
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2022 License: BSD-3-Clause Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DNSProviderConfigured added in v0.6.0

func DNSProviderConfigured() bool

func GetBool

func GetBool(key string, defaultValue bool) bool

func GetString

func GetString(key, defaultValue string) string

func KeepAliveInterval

func KeepAliveInterval() time.Duration

func MagicDNSSuffix added in v0.2.0

func MagicDNSSuffix() string

Types

type Auth added in v0.3.0

type Auth struct {
	Provider          AuthProvider      `yaml:"provider,omitempty" envPrefix:"PROVIDER_"`
	SystemAdminPolicy SystemAdminPolicy `yaml:"system_admins"`
}

type AuthProvider

type AuthProvider struct {
	Issuer       string   `yaml:"issuer" env:"ISSUER"`
	ClientID     string   `yaml:"client_id" env:"CLIENT_ID"`
	ClientSecret string   `yaml:"client_secret" env:"CLIENT_SECRET"`
	Scopes       []string `yaml:"additional_scopes"  env:"SCOPES"`
}

type Config

type Config struct {
	HttpListenAddr    string   `yaml:"http_listen_addr,omitempty" env:"HTTP_LISTEN_ADDR"`
	HttpsListenAddr   string   `yaml:"https_listen_addr,omitempty" env:"HTTPS_LISTEN_ADDR"`
	MetricsListenAddr string   `yaml:"metrics_listen_addr,omitempty" env:"METRICS_LISTEN_ADDR"`
	ServerUrl         string   `yaml:"server_url,omitempty" env:"SERVER_URL"`
	Tls               Tls      `yaml:"tls,omitempty" envPrefix:"TLS_"`
	PollNet           PollNet  `yaml:"poll_net,omitempty" envPrefix:"POLL_NET_"`
	Keys              Keys     `yaml:"keys,omitempty" envPrefix:"KEYS_"`
	Database          Database `yaml:"database,omitempty" envPrefix:"DB_"`
	Auth              Auth     `yaml:"auth,omitempty" envPrefix:"AUTH_"`
	DNS               DNS      `yaml:"dns,omitempty"`
	Logging           Logging  `yaml:"logging,omitempty" envPrefix:"LOGGING_"`
}

func LoadConfig

func LoadConfig(path string) (*Config, error)

func (*Config) CreateUrl

func (c *Config) CreateUrl(format string, a ...interface{}) string

func (*Config) ReadServerKeys

func (c *Config) ReadServerKeys(defaultKeys *domain.ControlKeys) (*ServerKeys, error)

type DNS added in v0.2.0

type DNS struct {
	MagicDNSSuffix string      `yaml:"magic_dns_suffix"`
	Provider       DNSProvider `yaml:"provider,omitempty"`
}

type DNSProvider added in v0.3.0

type DNSProvider struct {
	Name          string            `yaml:"name"`
	Zone          string            `yaml:"zone"`
	Configuration map[string]string `yaml:"config"`
}

type Database

type Database struct {
	Type string `yaml:"type,omitempty" env:"TYPE"`
	Url  string `yaml:"url,omitempty" env:"URL"`
}

type Keys

type Keys struct {
	ControlKey       string `yaml:"control_key,omitempty" env:"CONTROL_KEY"`
	LegacyControlKey string `yaml:"legacy_control_key,omitempty" env:"LEGACY_CONTROL_KEY"`
	SystemAdminKey   string `yaml:"system_admin_key,omitempty" env:"SYSTEM_ADMIN_KEY"`
}

type Logging

type Logging struct {
	Level  string `yaml:"level,omitempty" env:"LEVEL"`
	Format string `yaml:"format,omitempty" env:"FORMAT"`
	File   string `yaml:"file,omitempty" env:"FILE"`
}

type PollNet

type PollNet struct {
	KeepAliveInterval time.Duration `yaml:"keep_alive_interval" env:"KEEP_ALIVE_INTERVAL"`
}

type ServerKeys

type ServerKeys struct {
	SystemAdminKey   *key.ServerPrivate
	ControlKey       tkey.MachinePrivate
	LegacyControlKey tkey.MachinePrivate
}

type SystemAdminPolicy

type SystemAdminPolicy struct {
	Subs    []string `yaml:"subs,omitempty"`
	Emails  []string `yaml:"emails,omitempty"`
	Filters []string `yaml:"filters,omitempty"`
}

type Tls

type Tls struct {
	Disable     bool   `yaml:"disable" env:"DISABLE"`
	ForceHttps  bool   `yaml:"force_https" env:"FORCE_HTTPS"`
	CertFile    string `yaml:"cert_file,omitempty" env:"CERT_FILE"`
	KeyFile     string `yaml:"key_file,omitempty" env:"KEY_FILE"`
	AcmeEnabled bool   `yaml:"acme,omitempty" env:"ACME_ENABLED"`
	AcmeEmail   string `yaml:"acme_email,omitempty" env:"ACME_EMAIL"`
	AcmeCA      string `yaml:"acme_ca,omitempty" env:"ACME_CA"`
	AcmePath    string `yaml:"acme_path,omitempty" env:"ACME_PATH"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL