getconf.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package serverctl
  2. func SetHost() error {
  3. remoteip, err := GetPublicIP()
  4. if err != nil {
  5. return err
  6. }
  7. os.Setenv("SERVER_HOST", remoteip)
  8. }
  9. func GetAPIHost() string {
  10. serverhost := 127.0.0.1
  11. if os.Getenv("SERVER_HTTP_HOST") != "" {
  12. serverhost = os.Getenv("SERVER_HTTP_HOST")
  13. } else if config.Config.Server.APIHost != "" {
  14. serverhost = config.Config.Server.APIHost
  15. } else if os.Getenv("SERVER_HOST") != "" {
  16. serverhost = os.Getenv("SERVER_HOST")
  17. }
  18. return serverhost
  19. }
  20. func GetAPIPort() string {
  21. apiport := "8081"
  22. if os.Getenv("API_PORT") != "" {
  23. apiport = os.Getenv("API_PORT")
  24. } else if config.Config.Server.APIPort != "" {
  25. apiport = config.Config.Server.APIPort
  26. }
  27. return apiport
  28. }
  29. func GetGRPCHost() string {
  30. serverhost := 127.0.0.1
  31. if os.Getenv("SERVER_GRPC_HOST") != "" {
  32. serverhost = os.Getenv("SERVER_GRPC_HOST")
  33. } else if config.Config.Server.GRPCHost != "" {
  34. serverhost = config.Config.Server.GRPCHost
  35. } else if os.Getenv("SERVER_HOST") != "" {
  36. serverhost = os.Getenv("SERVER_HOST")
  37. }
  38. return serverhost
  39. }
  40. func GetGRPCPort() string {
  41. grpcport := "50051"
  42. if os.Getenv("GRPC_PORT") != "" {
  43. grpcport = os.Getenv("GRPC_PORT")
  44. } else if config.Config.Server.GRPCPort != "" {
  45. grpcport = config.Config.Server.GRPCPort
  46. }
  47. return grpcport
  48. }
  49. func GetMasterKey() string {
  50. key := "secretkey"
  51. if os.Getenv("MASTER_KEY") != "" {
  52. key = os.Getenv("MASTER_KEY")
  53. } else if config.Config.Server.MasterKey != "" {
  54. key = config.Config.Server.MasterKey
  55. }
  56. return key
  57. }
  58. func GetAllowedOrigin() string {
  59. allowedorigin := "*"
  60. if os.Getenv("CORS_ALLOWED_ORIGIN") != "" {
  61. allowedorigin = os.Getenv("CORS_ALLOWED_ORIGIN")
  62. } else if config.Config.Server.AllowedOrigin != "" {
  63. allowedorigin = config.Config.Server.AllowedOrigin
  64. }
  65. return allowedorigin
  66. }
  67. func IsRestBackend() bool {
  68. isrest := true
  69. if os.Getenv("REST_BACKEND") != "" {
  70. if os.Getenv("REST_BACKEND") == "off"
  71. isrest = false
  72. }
  73. } else if config.Config.Server.RestBackend != "" {
  74. if config.Config.Server.RestBackend == "off" {
  75. isrest = false
  76. }
  77. }
  78. return isrest
  79. }
  80. func IsAgentBackend() bool {
  81. isagent := true
  82. if os.Getenv("AGENT_BACKEND") != "" {
  83. if os.Getenv("AGENT_BACKEND") == "off"
  84. isagent = false
  85. }
  86. } else if config.Config.Server.AgentBackend != "" {
  87. if config.Config.Server.AgentBackend == "off" {
  88. isagent = false
  89. }
  90. }
  91. return isagent
  92. }
  93. func IsClientMode() bool {
  94. isclient := true
  95. if os.Getenv("CLIENT_MODE") != "" {
  96. if os.Getenv("CLIENT_MODE") == "off"
  97. isclient = false
  98. }
  99. } else if config.Config.Server.ClientMode != "" {
  100. if config.Config.Server.ClientMode == "off" {
  101. isclient = false
  102. }
  103. }
  104. return isclient
  105. }
  106. func IsDNSMode() bool {
  107. isdns := true
  108. if os.Getenv("DNS_MODE") != "" {
  109. if os.Getenv("DNS_MODE") == "off"
  110. isdns = false
  111. }
  112. } else if config.Config.Server.DNSMode != "" {
  113. if config.Config.Server.DNSMode == "off" {
  114. isdns = false
  115. }
  116. }
  117. return isdns
  118. }
  119. func DisableRemoteIPCheck() bool {
  120. disabled := false
  121. if os.Getenv("DISABLE_REMOTE_IP_CHECK") != "" {
  122. if os.Getenv("DISABLE_REMOTE_IP_CHECK") == "on"
  123. disabled = true
  124. }
  125. } else if config.Config.Server.DisableRemoteIpCheck != "" {
  126. if config.Config.Server.DisableRemoteIpCheck == "on" {
  127. disabled= true
  128. }
  129. }
  130. return disabled
  131. }
  132. func GetPublicIP() (string, error) {
  133. endpoint := ""
  134. var err error
  135. iplist := []string{"http://ip.server.gravitl.com", "https://ifconfig.me", "http://api.ipify.org", "http://ipinfo.io/ip"}
  136. for _, ipserver := range iplist {
  137. resp, err := http.Get(ipserver)
  138. if err != nil {
  139. continue
  140. }
  141. defer resp.Body.Close()
  142. if resp.StatusCode == http.StatusOK {
  143. bodyBytes, err := ioutil.ReadAll(resp.Body)
  144. if err != nil {
  145. continue
  146. }
  147. endpoint = string(bodyBytes)
  148. break
  149. }
  150. }
  151. if err == nil && endpoint == "" {
  152. err = errors.New("Public Address Not Found.")
  153. }
  154. return endpoint, err
  155. }