Documentation ¶
Index ¶
- Constants
- Variables
- func ConfigReplaceDeprecated(s any) (map[string]string, error)
- type APIConfig
- type Config
- func (c *Config) AllowedPorts() mapset.Set
- func (c *Config) CaddyEnabled() bool
- func (c *Config) GetUploadDir() string
- func (c *Config) GetVaultDBPath() string
- func (c *Config) InitRequestLogOptions() *requestlog.Options
- func (c *Config) ParseAndValidate(mLog *logger.MemLogger) error
- func (c *Config) WriteCaddyBaseConfig(caddyConfig *caddy.Config) (bc *caddy.BaseConfig, err error)
- type DatabaseConfig
- type LogConfig
- type MonitoringConfig
- type NotificationsConfig
- type PushoverConfig
- type SMTPConfig
- type ServerConfig
Constants ¶
View Source
const ( MinKeepDisconnectedClients = time.Second MaxKeepDisconnectedClients = 7 * 24 * time.Hour DefaultVaultDBName = "vault.sqlite.db" NotificationLogStorageDuration = "7d" NotificationLogCleanupInterval = "1d" )
Variables ¶
View Source
var (
CheckClientsConnectionIntervalMinimum = time.Minute * 2
)
Functions ¶
Types ¶
type APIConfig ¶
type APIConfig struct { Address string `mapstructure:"address"` BaseURL string `mapstructure:"base_url"` EnableAcme bool `mapstructure:"enable_acme"` Auth string `mapstructure:"auth"` AuthFile string `mapstructure:"auth_file"` AuthUserTable string `mapstructure:"auth_user_table"` AuthGroupTable string `mapstructure:"auth_group_table"` AuthGroupDetailsTable string `mapstructure:"auth_group_details_table"` AuthHeader string `mapstructure:"auth_header"` UserHeader string `mapstructure:"user_header"` CreateMissingUsers bool `mapstructure:"create_missing_users"` DefaultUserGroup string `mapstructure:"default_user_group"` JWTSecret string `mapstructure:"jwt_secret"` DocRoot string `mapstructure:"doc_root"` CertFile string `mapstructure:"cert_file"` KeyFile string `mapstructure:"key_file"` AccessLogFile string `mapstructure:"access_log_file"` UserLoginWait float32 `mapstructure:"user_login_wait"` MaxFailedLogin int `mapstructure:"max_failed_login"` BanTime int `mapstructure:"ban_time"` MaxTokenLifeTimeHours int `mapstructure:"max_token_lifetime"` PasswordMinLength int `mapstructure:"password_min_length"` PasswordZxcvbnMinscore int `mapstructure:"password_zxcvbn_minscore"` TLSMin string `mapstructure:"tls_min"` EnableWsTestEndpoints bool `mapstructure:"enable_ws_test_endpoints"` MaxRequestBytes int64 `mapstructure:"max_request_bytes"` MaxFilePushSize int64 `mapstructure:"max_filepush_size"` CORS []string `mapstructure:"cors"` TwoFATokenDelivery string `mapstructure:"two_fa_token_delivery"` TwoFATokenTTLSeconds int `mapstructure:"two_fa_token_ttl_seconds"` TwoFASendTimeout time.Duration `mapstructure:"two_fa_send_timeout"` TwoFASendToType message.ValidationType `mapstructure:"two_fa_send_to_type"` TwoFASendToRegex string `mapstructure:"two_fa_send_to_regex"` TwoFASendToRegexCompiled *regexp.Regexp AuditLog auditlog.Config `mapstructure:",squash"` TotPEnabled bool `mapstructure:"totp_enabled"` TotPLoginSessionTimeout time.Duration `mapstructure:"totp_login_session_ttl"` TotPAccountName string `mapstructure:"totp_account_name"` }
type Config ¶
type Config struct { Server ServerConfig `mapstructure:"server"` Caddy caddy.Config `mapstructure:"caddy-integration"` Logging LogConfig `mapstructure:"logging"` API APIConfig `mapstructure:"api"` Database DatabaseConfig `mapstructure:"database"` Pushover PushoverConfig `mapstructure:"pushover"` SMTP SMTPConfig `mapstructure:"smtp"` Monitoring MonitoringConfig `mapstructure:"monitoring"` Notifications NotificationsConfig `mapstructure:"notifications"` PlusConfig rportplus.PlusConfig `mapstructure:",squash"` }
func (*Config) AllowedPorts ¶
func (*Config) CaddyEnabled ¶
func (*Config) GetUploadDir ¶
func (*Config) GetVaultDBPath ¶
func (*Config) InitRequestLogOptions ¶
func (c *Config) InitRequestLogOptions() *requestlog.Options
func (*Config) WriteCaddyBaseConfig ¶
type DatabaseConfig ¶
type DatabaseConfig struct { Type string `mapstructure:"db_type"` Host string `mapstructure:"db_host"` User string `mapstructure:"db_user"` Password string `mapstructure:"db_password"` Name string `mapstructure:"db_name"` Driver string Dsn string }
func (*DatabaseConfig) DsnForLogs ¶
func (d *DatabaseConfig) DsnForLogs() string
func (*DatabaseConfig) ParseAndValidate ¶
func (d *DatabaseConfig) ParseAndValidate() error
type MonitoringConfig ¶
type MonitoringConfig struct { DataStorageDuration string `mapstructure:"data_storage_duration"` DataStorageDays int64 `mapstructure:"data_storage_days"` Enabled bool `mapstructure:"enabled"` // contains filtered or unexported fields }
func (*MonitoringConfig) GetDataStorageDuration ¶
func (mc *MonitoringConfig) GetDataStorageDuration() (duration time.Duration)
type NotificationsConfig ¶
type NotificationsConfig struct { NotificationScriptDir string `mapstructure:"notification_script_dir"` LogStorageDurationString string `mapstructure:"log_storage_duration"` LogStorageDuration time.Duration CleanupIntervalString string `mapstructure:"cleanup_interval"` CleanupInterval time.Duration }
type PushoverConfig ¶
type PushoverConfig struct { APIToken string `mapstructure:"api_token"` UserKey string `mapstructure:"user_key"` }
func (*PushoverConfig) Validate ¶
func (c *PushoverConfig) Validate() error
type SMTPConfig ¶
type SMTPConfig struct { Server string `mapstructure:"server"` AuthUsername string `mapstructure:"auth_username"` AuthPassword string `mapstructure:"auth_password"` SenderEmail string `mapstructure:"sender_email"` Secure bool `mapstructure:"secure"` }
func (*SMTPConfig) Validate ¶
func (c *SMTPConfig) Validate() error
type ServerConfig ¶
type ServerConfig struct { ListenAddress string `mapstructure:"address"` URL []string `mapstructure:"url"` PairingURL string `mapstructure:"pairing_url"` KeySeed string `mapstructure:"key_seed"` Auth string `mapstructure:"auth"` AuthFile string `mapstructure:"auth_file"` AuthTable string `mapstructure:"auth_table"` Proxy string `mapstructure:"proxy"` UsedPortsRaw []string `mapstructure:"used_ports"` ExcludedPortsRaw []string `mapstructure:"excluded_ports"` DataDir string `mapstructure:"data_dir"` SqliteWAL bool `mapstructure:"sqlite_wal"` MaxConcurrentSSHConnectionHandshakes int `mapstructure:"max_concurrent_ssh_handshakes"` PurgeDisconnectedClients bool `mapstructure:"purge_disconnected_clients"` CleanupLostClients bool `mapstructure:"cleanup_lost_clients" replaced_by:"PurgeDisconnectedClients"` KeepLostClients time.Duration `mapstructure:"keep_lost_clients" replaced_by:"KeepDisconnectedClients"` KeepDisconnectedClients time.Duration `mapstructure:"keep_disconnected_clients"` CleanupClientsInterval time.Duration `mapstructure:"cleanup_clients_interval" replaced_by:"PurgeDisconnectedClientsInterval"` PurgeDisconnectedClientsInterval time.Duration `mapstructure:"purge_disconnected_clients_interval"` CheckClientsConnectionInterval time.Duration `mapstructure:"check_clients_connection_interval"` CheckClientsConnectionTimeout time.Duration `mapstructure:"check_clients_connection_timeout"` MaxRequestBytesClient int64 `mapstructure:"max_request_bytes_client"` CheckPortTimeout time.Duration `mapstructure:"check_port_timeout"` RunRemoteCmdTimeoutSec int `mapstructure:"run_remote_cmd_timeout_sec"` AuthWrite bool `mapstructure:"auth_write"` AuthMultiuseCreds bool `mapstructure:"auth_multiuse_creds"` EquateClientauthidClientid bool `mapstructure:"equate_clientauthid_clientid"` AllowRoot bool `mapstructure:"allow_root"` ClientLoginWait float32 `mapstructure:"client_login_wait"` MaxFailedLogin int `mapstructure:"max_failed_login"` BanTime int `mapstructure:"ban_time"` InternalTunnelProxyConfig clienttunnel.InternalTunnelProxyConfig `mapstructure:",squash"` JobsMaxResults int `mapstructure:"jobs_max_results"` AcmeHTTPPort int `mapstructure:"acme_http_port"` // DEPRECATED, only here for backwards compatibility MaxRequestBytes int64 `mapstructure:"max_request_bytes"` MaxFilePushSize int64 `mapstructure:"max_filepush_size"` EnableWsTestEndpoints bool `mapstructure:"enable_ws_test_endpoints"` AuthID string AuthPassword string // contains filtered or unexported fields }
func (*ServerConfig) GetSQLiteDataSourceOptions ¶
func (s *ServerConfig) GetSQLiteDataSourceOptions() sqlite.DataSourceOptions
Click to show internal directories.
Click to hide internal directories.