Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // nolint:gochecknoglobals // DefaultConfig is the default config for the application. // It is used as a fallback if loading the proper config fails. // Loading it should always be accompanied by a warning. DefaultConfig = Config{ DBConfig: DBConfig{ Engine: "postgres", Host: "localhost", Port: uint16(5432), Database: "librate", User: "postgres", Password: "postgres", SSL: "unknown", PGConfig: "/usr/bin/pg_config", StartCmd: "sudo service postgresql start", }, Fiber: FiberConfig{ Host: "localhost", Port: 3000, Prefork: false, }, Secret: uuid.Must(uuid.NewV7()).String(), LibrateEnv: "production", } // nolint:gochecknoglobals // TestConfig is a convenience config for testing, so that the test functions are terser, avoiding unnecessary repetition. TestConfig = Config{ DBConfig: DBConfig{ Engine: "postgres", Host: "localhost", Port: uint16(5432), Database: "librate_test", User: "postgres", Password: "postgres", SSL: "disable", PGConfig: "/usr/bin/pg_config", StartCmd: "skip", AutoMigrate: true, ExitAfterMigration: false, }, Redis: RedisConfig{ Host: "localhost", Port: 6379, Username: "", Password: "", Database: 5, }, Fiber: FiberConfig{ Host: "0.0.0.0", Port: 3001, Prefork: false, ReduceMemUsage: false, StaticDir: "./static", PowInterval: 1, PowDifficulty: 1, }, Secret: "secret", LibrateEnv: "test", } )
Functions ¶
func FileExists ¶ added in v0.6.6
FileExists checks whether the config file exists. It is useful for the fallback mechanism of using default config
func LoadConfig ¶
LoadConfig loads the config from the config file, or falls back to defaults. It is used only when no --config flag is passed.
Types ¶
type Config ¶
type Config struct {
DBConfig `json:"database,omitempty" yaml:"database" mapstructure:"database"`
Fiber FiberConfig `json:"fiber,omitempty" yaml:"fiber" mapstructure:"fiber"`
Secret string `json:"secret,omitempty" yaml:"secret" mapstructure:"secret"`
// default to production for security reasons
LibrateEnv string `json:"librateEnv,omitempty" yaml:"librateEnv" default:"production" mapstructure:"librateEnv"`
Redis RedisConfig `json:"redis,omitempty" yaml:"redis" mapstructure:"redis"`
Logging logging.Config `json:"logging,omitempty" yaml:"logging" mapstructure:"logging"`
Keys KeysConfig `json:"keys,omitempty" yaml:"keys" mapstructure:"keys"`
}
Config is the struct that holds all the configuration for the application unfortunately, camel case must be used, instead the yaml parser will not work
func LoadFromFile ¶ added in v0.6.2
LoadFromFile loads the config from the config file, or tries to call LoadConfig.
type DBConfig ¶
type DBConfig struct {
Engine string `yaml:"engine" default:"postgres"`
Host string `yaml:"host" default:"localhost"`
Port uint16 `yaml:"port" default:"5432"`
Database string `yaml:"database" default:"librate"`
User string `yaml:"user" default:"postgres"`
Password string `yaml:"password,omitempty" default:"postgres"`
SSL string `yaml:"SSL" default:"unknown"`
PGConfig string `yaml:"pgConfig,omitempty" default:"/usr/bin/pg_config"`
StartCmd string `yaml:"startCmd,omitempty" default:"sudo service postgresql start"`
AutoMigrate bool `yaml:"autoMigrate,omitempty" default:"true"`
ExitAfterMigration bool `yaml:"exitAfterMigration,omitempty" default:"false"`
}
type FiberConfig ¶
type FiberConfig struct {
Host string `yaml:"host" default:"localhost"`
Domain string `yaml:"domain" default:"lr.localhost"`
Port int `yaml:"port" default:"3000"`
Prefork bool `yaml:"prefork" default:"false"`
ReduceMemUsage bool `yaml:"reduceMemUsage" default:"false"`
StaticDir string `yaml:"staticDir" default:"./static"`
PowInterval int `yaml:"powInterval" default:"300"`
PowDifficulty int `yaml:"powDifficulty" default:"30000"`
RequestTimeout int `yaml:"requestTimeout" default:"10"`
}
type KeysConfig ¶ added in v0.7.0
type RedisConfig ¶
Click to show internal directories.
Click to hide internal directories.