config

package
v0.11.8 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HasInstance added in v0.10.0

func HasInstance() bool

func SetInstance added in v0.10.0

func SetInstance(cfg ConfigInstance)

func Validate

func Validate(data []byte) gperr.Error

Types

type Config

type Config struct {
	ACL             *acl.Config      `json:"acl"`
	AutoCert        *autocert.Config `json:"autocert"`
	Entrypoint      Entrypoint       `json:"entrypoint"`
	Providers       Providers        `json:"providers"`
	MatchDomains    []string         `json:"match_domains" validate:"domain_name"`
	Homepage        HomepageConfig   `json:"homepage"`
	TimeoutShutdown int              `json:"timeout_shutdown" validate:"gte=0"`
}

func DefaultConfig

func DefaultConfig() *Config

type ConfigInstance

type ConfigInstance interface {
	Value() *Config
	Reload() gperr.Error
	Statistics() map[string]any
	RouteProviderList() []string
	Context() context.Context
	GetAgent(agentAddrOrDockerHost string) (*agent.AgentConfig, bool)
	VerifyNewAgent(host string, ca agent.PEMPair, client agent.PEMPair) (int, gperr.Error)
	ListAgents() []*agent.AgentConfig
	AutoCertProvider() *autocert.Provider
}

func GetInstance added in v0.10.0

func GetInstance() ConfigInstance

type Entrypoint

type Entrypoint struct {
	Middlewares []map[string]any               `json:"middlewares"`
	AccessLog   *accesslog.RequestLoggerConfig `json:"access_log" validate:"omitempty"`
}

type HomepageConfig

type HomepageConfig struct {
	UseDefaultCategories bool `json:"use_default_categories"`
}

type Providers

type Providers struct {
	Files        []string                   `json:"include" yaml:"include,omitempty" validate:"dive,filepath"`
	Docker       map[string]string          `json:"docker" yaml:"docker,omitempty" validate:"non_empty_docker_keys,dive,unix_addr|url"`
	Agents       []*agent.AgentConfig       `json:"agents" yaml:"agents,omitempty"`
	Notification []notif.NotificationConfig `json:"notification" yaml:"notification,omitempty"`
	Proxmox      []proxmox.Config           `json:"proxmox" yaml:"proxmox,omitempty"`
}

Jump to

Keyboard shortcuts

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