Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func StringToDurationHook ¶
func StringToDurationHook() mapstructure.DecodeHookFunc
Types ¶
type CacheConfig ¶
type ConfigLoader ¶
type ConfigLoader struct {
// contains filtered or unexported fields
}
func NewConfigLoader ¶
func NewConfigLoader() *ConfigLoader
func (*ConfigLoader) RegisterPlags ¶
func (*ConfigLoader) Validate ¶
func (cl *ConfigLoader) Validate() error
type CronJobConfig ¶
type CronJobConfig struct { Enable bool `config:"enable" description:"Enable scheduled background jobs" default:"true"` CleanFilesInterval time.Duration `config:"clean-files-interval" description:"Interval for cleaning expired files" default:"1h"` CleanUploadsInterval time.Duration `config:"clean-uploads-interval" description:"Interval for cleaning incomplete uploads" default:"12h"` FolderSizeInterval time.Duration `config:"folder-size-interval" description:"Interval for updating folder sizes" default:"2h"` }
type DBConfig ¶
type DBConfig struct { DataSource string `config:"data-source" description:"Database connection string" required:"true"` PrepareStmt bool `config:"prepare-stmt" description:"Use prepared statements" default:"true"` LogLevel string `config:"log-level" description:"Database logging level" default:"error"` Pool DBPool `config:"pool"` }
type DBPool ¶
type DBPool struct { Enable bool `config:"enable" description:"Enable connection pooling" default:"true"` MaxOpenConnections int `config:"max-open-connections" description:"Maximum number of open connections" default:"25"` MaxIdleConnections int `config:"max-idle-connections" description:"Maximum number of idle connections" default:"25"` MaxLifetime time.Duration `config:"max-lifetime" description:"Maximum connection lifetime" default:"10m"` }
type JWTConfig ¶
type JWTConfig struct { Secret string `config:"secret" description:"JWT signing secret key" required:"true"` SessionTime time.Duration `config:"session-time" description:"JWT token validity duration" default:"30d"` AllowedUsers []string `config:"allowed-users" description:"List of allowed usernames"` }
type LoggingConfig ¶
type ServerCmdConfig ¶
type ServerCmdConfig struct { Server ServerConfig `config:"server"` Log LoggingConfig `config:"log"` JWT JWTConfig `config:"jwt"` DB DBConfig `config:"db"` TG TGConfig `config:"tg"` CronJobs CronJobConfig `config:"cronjobs"` Cache CacheConfig `config:"cache"` }
type ServerConfig ¶
type ServerConfig struct { Port int `config:"port" description:"HTTP port for the server to listen on" default:"8080"` GracefulShutdown time.Duration `config:"graceful-shutdown" description:"Grace period for server shutdown" default:"10s"` EnablePprof bool `config:"enable-pprof" description:"Enable pprof debugging endpoints"` ReadTimeout time.Duration `config:"read-timeout" description:"Maximum duration for reading entire request" default:"1h"` WriteTimeout time.Duration `config:"write-timeout" description:"Maximum duration for writing response" default:"1h"` }
type TGConfig ¶
type TGConfig struct { RateLimit bool `config:"rate-limit" description:"Enable rate limiting for API calls" default:"true"` RateBurst int `config:"rate-burst" description:"Maximum burst size for rate limiting" default:"5"` Rate int `config:"rate" description:"Rate limit in requests per minute" default:"100"` Ntp bool `config:"ntp" description:"Use NTP for time synchronization"` StorageFile string `config:"storage-file" description:"Path to SQLite storage file"` DisableStreamBots bool `config:"disable-stream-bots" description:"Disable streaming bots"` Proxy string `config:"proxy" description:"HTTP/SOCKS5 proxy URL"` ReconnectTimeout time.Duration `config:"reconnect-timeout" description:"Client reconnection timeout" default:"5m"` PoolSize int `config:"pool-size" description:"Session pool size" default:"8"` EnableLogging bool `config:"enable-logging" description:"Enable Telegram client logging"` AppId int `config:"app-id" description:"Telegram app ID" default:"2496"` AppHash string `config:"app-hash" description:"Telegram app hash" default:"8da85b0d5bfe62527e5b244c209159c3"` DeviceModel string `` /* 137-byte string literal not displayed */ SystemVersion string `config:"system-version" description:"System version" default:"Win32"` AppVersion string `config:"app-version" description:"App version" default:"6.1.4 K"` LangCode string `config:"lang-code" description:"Language code" default:"en"` SystemLangCode string `config:"system-lang-code" description:"System language code" default:"en-US"` LangPack string `config:"lang-pack" description:"Language pack" default:"webk"` Uploads TGUpload `config:"uploads"` Stream TGStream `config:"stream"` }
type TGUpload ¶
type TGUpload struct { EncryptionKey string `config:"encryption-key" description:"Encryption key for uploads" required:"true"` Threads int `config:"threads" description:"Number of upload threads" default:"8"` MaxRetries int `config:"max-retries" description:"Maximum upload retry attempts" default:"10"` Retention time.Duration `config:"retention" description:"Upload retention period" default:"7d"` }
Click to show internal directories.
Click to hide internal directories.