server.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package settings
  2. import (
  3. "github.com/go-acme/lego/v4/lego"
  4. )
  5. type Server struct {
  6. HttpHost string `json:"http_host" protected:"true"`
  7. HttpPort string `json:"http_port" protected:"true"`
  8. RunMode string `json:"run_mode" protected:"true"`
  9. JwtSecret string `json:"jwt_secret" protected:"true"`
  10. NodeSecret string `json:"node_secret" protected:"true"`
  11. HTTPChallengePort string `json:"http_challenge_port"`
  12. Email string `json:"email" protected:"true"`
  13. Database string `json:"database" protected:"true"`
  14. StartCmd string `json:"start_cmd" protected:"true"`
  15. CADir string `json:"ca_dir" binding:"omitempty,url"`
  16. Demo bool `json:"demo" protected:"true"`
  17. PageSize int `json:"page_size" protected:"true"`
  18. GithubProxy string `json:"github_proxy" binding:"omitempty,url"`
  19. CertRenewalInterval int `json:"cert_renewal_interval" binding:"min=7,max=21"`
  20. RecursiveNameservers []string `json:"recursive_nameservers" binding:"omitempty,dive,hostname_port"`
  21. SkipInstallation bool `json:"skip_installation" protected:"true"`
  22. InsecureSkipVerify bool `json:"insecure_skip_verify" protected:"true"`
  23. Name string `json:"name" binding:"omitempty,safety_text"`
  24. }
  25. func (s *Server) GetCADir() string {
  26. if s.Demo {
  27. return lego.LEDirectoryStaging
  28. }
  29. if s.CADir != "" {
  30. return s.CADir
  31. }
  32. return lego.LEDirectoryProduction
  33. }
  34. func (s *Server) GetCertRenewalInterval() int {
  35. if s.CertRenewalInterval < 7 {
  36. return 7
  37. }
  38. if s.CertRenewalInterval > 21 {
  39. return 21
  40. }
  41. return s.CertRenewalInterval
  42. }
  43. var ServerSettings = Server{
  44. HttpHost: "0.0.0.0",
  45. HttpPort: "9000",
  46. RunMode: "debug",
  47. HTTPChallengePort: "9180",
  48. Database: "database",
  49. StartCmd: "login",
  50. Demo: false,
  51. PageSize: 10,
  52. CADir: "",
  53. GithubProxy: "",
  54. CertRenewalInterval: 7,
  55. RecursiveNameservers: make([]string, 0),
  56. }