diff --git a/config/config.go b/config/config.go index 14bcbe4..babcbb7 100644 --- a/config/config.go +++ b/config/config.go @@ -6,9 +6,11 @@ import ( ) type Config struct { - BindAddress string `mapstructure:"bind_address"` - Port string `mapstructure:"listen_port"` - IPInfoAPIKey string `mapstructure:"ipinfo_api_key"` + BindAddress string `mapstructure:"bind_address"` + Port string `mapstructure:"listen_port"` + ServerLat float64 `mapstructure:"server_lat"` + ServerLng float64 `mapstructure:"server_lng"` + IPInfoAPIKey string `mapstructure:"ipinfo_api_key"` StatsPassword string `mapstructure:"statistics_password"` RedactIP bool `mapstructure:"redact_ip_addresses"` diff --git a/settings.toml b/settings.toml index 89b0436..42ef444 100644 --- a/settings.toml +++ b/settings.toml @@ -2,6 +2,9 @@ bind_address="" # backend listen port listen_port=8989 +# Server location +server_lat=0 +server_lng=0 # ipinfo.io API key, if applicable ipinfo_api_key="" diff --git a/web/helpers.go b/web/helpers.go index 7aa6cae..9d31328 100644 --- a/web/helpers.go +++ b/web/helpers.go @@ -72,6 +72,13 @@ func getIPInfo(addr string) results.IPInfoResponse { } func getServerLocation() (float64, float64) { + conf := config.LoadedConfig() + + if conf.ServerLat > 0 && conf.ServerLng > 0 { + log.Infof("Configured server coordinates: %.6f, %.6f", conf.ServerLat, conf.ServerLng) + return conf.ServerLat, conf.ServerLng + } + var ret results.IPInfoResponse resp, err := http.DefaultClient.Get(getIPInfoURL("")) if err != nil {