config

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	ApiLog                     bool          `yaml:"api_log" env:"API_LOG" env-default:"true"`
	ServerAddress              string        `yaml:"server_address" env:"SERVER_ADDRESS" env-default:":3100"`
	IdempotencyStorageLifetime int64         `yaml:"idempotency_storage_lifetime" env:"IDEMPOTENCY_STORAGE_LIFETIME" env-default:"10"`
	RateLimitTime              int           `yaml:"rate_limit_time" env:"RATE_LIMIT_TIME" env-default:"1"`
	RateLimitRequests          int           `yaml:"rate_limit_requests" env:"RATE_LIMIT_REQUESTS" env-default:"20"`
	AppName                    string        `yaml:"app_name" env:"APP_NAME" env-default:"GoChat"`
	BaseUrl                    string        `yaml:"base_url" env:"BASE_URL" env-default:"http://example.com" validation:"http_url"`
	ContentHosts               []string      `yaml:"content_hosts" env:"CONTENT_HOSTS" env-separator:","`
	Cluster                    []string      `yaml:"cluster" env:"CLUSTER" env-default:""`
	ClusterKeyspace            string        `yaml:"cluster_keyspace" env:"CLUSTER_KEYSPACE" env-default:"gochat"`
	AuthSecret                 string        `yaml:"auth_secret" env:"AUTH_SECRET" env-default:"change_me_before_use_it_in_production"`
	Swagger                    bool          `yaml:"swagger" env:"SWAGGER" env-default:"false"`
	KeyDB                      string        `yaml:"keydb" env:"KEYDB" env-default:"127.0.0.1:6379"`
	UploadLimit                int64         `yaml:"upload_limit" env:"UPLOAD_LIMIT" env-default:"50000000"`
	AttachmentTTLMinutes       int64         `yaml:"attachment_ttl_minutes" env:"ATTACHMENT_TTL_MINUTES" env-default:"10"`
	NatsConnString             string        `yaml:"nats_conn_string" env:"NATS_CONN_STRING" env-default:"nats://nats:4222"`
	IndexerNatsConnString      string        `yaml:"indexer_nats_conn_string" env:"INDEX_NATS_CONN_STRING" env-default:"nats://indexer-nats:4222"`
	PGDSN                      string        `yaml:"pg_dsn" env:"PG_DSN" env-default:""`
	PGRetries                  int           `yaml:"pg_retries" env:"PG_RETRIES" env-default:"5"`
	S3Endpoint                 string        `yaml:"s3_endpoint" env:"S3_ENDPOINT" env-default:""`
	S3AccessKeyID              string        `yaml:"s3_access_key_id" env:"S3_ACCESS_KEY_ID" env-default:""`
	S3SecretAccessKey          string        `yaml:"s3_secret_access_key" env:"S3_SECRET_ACCESS_KEY" env-default:""`
	S3UseSSL                   bool          `yaml:"s3_use_ssl" env:"S3_USE_SSL" env-default:"false"`
	S3Bucket                   string        `yaml:"s3_bucket" env:"S3_BUCKET" env-default:"gochat"`
	S3Region                   string        `yaml:"s3_region" env:"S3_REGION"`
	OSInsecureSkipVerify       bool          `yaml:"os_insecure_skip_verify" env:"OS_INSECURE_SKIP_VERIFY"`
	OSAddresses                []string      `yaml:"os_addresses" env:"OS_ADDRESSES"`
	OSUsername                 string        `yaml:"os_username" env:"OS_USERNAME"`
	OSPassword                 string        `yaml:"os_password" env:"OS_PASSWORD"`
	VoiceRegions               []VoiceRegion `yaml:"voice_regions"`
	VoiceDefaultRegion         string        `yaml:"voice_region" env:"VOICE_REGION" env-default:"global"`
	EtcdEndpoints              []string      `yaml:"etcd_endpoints" env:"ETCD_ENDPOINTS" env-separator:","`
	EtcdPrefix                 string        `yaml:"etcd_prefix" env:"ETCD_PREFIX" env-default:"/gochat/sfu"`
	EtcdUsername               string        `yaml:"etcd_username" env:"ETCD_USERNAME"`
	EtcdPassword               string        `yaml:"etcd_password" env:"ETCD_PASSWORD"`
}

func LoadConfig

func LoadConfig(logger *slog.Logger) (*Config, error)

type VoiceRegion added in v1.5.0

type VoiceRegion struct {
	ID   string `yaml:"id"`
	Name string `yaml:"name"`
}

Jump to

Keyboard shortcuts

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