mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-20 13:49:07 +02:00
47 lines
1.6 KiB
Go
47 lines
1.6 KiB
Go
package cmd
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
configloader "github.com/netbirdio/netbird/util/config"
|
|
)
|
|
|
|
// Config contains Signal service startup configuration.
|
|
type Config struct {
|
|
Port int `yaml:"port" env:"NB_PORT" flag:"port"`
|
|
MetricsPort int `yaml:"metricsPort" env:"-" flag:"metrics-port"`
|
|
LetsencryptDomain string `yaml:"letsencryptDomain" env:"NB_LETSENCRYPT_DOMAIN" flag:"letsencrypt-domain"`
|
|
LetsencryptEmail string `yaml:"letsencryptEmail" env:"NB_LETSENCRYPT_EMAIL" flag:"letsencrypt-email"`
|
|
LetsencryptDataDir string `yaml:"letsencryptDataDir" env:"NB_SSL_DIR,NB_LETSENCRYPT_DATA_DIR" flag:"letsencrypt-data-dir,ssl-dir"`
|
|
CertFile string `yaml:"certFile" env:"NB_CERT_FILE" flag:"cert-file"`
|
|
CertKey string `yaml:"certKey" env:"NB_CERT_KEY" flag:"cert-key"`
|
|
LogLevel string `yaml:"logLevel" env:"-" flag:"log-level"`
|
|
LogFile string `yaml:"logFile" env:"-" flag:"log-file"`
|
|
PprofAddress string `yaml:"pprofAddress" env:"NB_PPROF_ADDR"`
|
|
}
|
|
|
|
func defaultConfig() *Config {
|
|
logFile := "/var/log/netbird/signal.log"
|
|
if runtime.GOOS == "windows" {
|
|
logFile = os.Getenv("PROGRAMDATA") + "\\Netbird\\signal.log"
|
|
}
|
|
return &Config{
|
|
MetricsPort: 9090,
|
|
LogLevel: "info",
|
|
LogFile: logFile,
|
|
}
|
|
}
|
|
|
|
func loadConfig(cmd *cobra.Command, configPath string) (*Config, error) {
|
|
return configloader.Load(configPath, defaultConfig(), configloader.Options{
|
|
TagName: "yaml",
|
|
AllowMissing: configPath == "",
|
|
FlagSet: cmd.Flags(),
|
|
Strict: true,
|
|
InvalidEnvironment: configloader.InvalidEnvironmentUsePartial,
|
|
})
|
|
}
|