routers.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package router
  2. import (
  3. "net/http"
  4. "github.com/gin-contrib/pprof"
  5. "github.com/0xJacky/Nginx-UI/api/analytic"
  6. "github.com/0xJacky/Nginx-UI/api/certificate"
  7. "github.com/0xJacky/Nginx-UI/api/cluster"
  8. "github.com/0xJacky/Nginx-UI/api/config"
  9. "github.com/0xJacky/Nginx-UI/api/nginx"
  10. nginxLog "github.com/0xJacky/Nginx-UI/api/nginx_log"
  11. "github.com/0xJacky/Nginx-UI/api/notification"
  12. "github.com/0xJacky/Nginx-UI/api/openai"
  13. "github.com/0xJacky/Nginx-UI/api/public"
  14. "github.com/0xJacky/Nginx-UI/api/settings"
  15. "github.com/0xJacky/Nginx-UI/api/sites"
  16. "github.com/0xJacky/Nginx-UI/api/streams"
  17. "github.com/0xJacky/Nginx-UI/api/system"
  18. "github.com/0xJacky/Nginx-UI/api/template"
  19. "github.com/0xJacky/Nginx-UI/api/terminal"
  20. "github.com/0xJacky/Nginx-UI/api/upstream"
  21. "github.com/0xJacky/Nginx-UI/api/user"
  22. "github.com/0xJacky/Nginx-UI/internal/middleware"
  23. "github.com/gin-gonic/gin"
  24. "github.com/uozi-tech/cosy"
  25. cSettings "github.com/uozi-tech/cosy/settings"
  26. )
  27. func InitRouter() {
  28. r := cosy.GetEngine()
  29. initEmbedRoute(r)
  30. r.NoRoute(func(c *gin.Context) {
  31. c.JSON(http.StatusNotFound, gin.H{
  32. "message": "not found",
  33. })
  34. })
  35. root := r.Group("/api")
  36. {
  37. public.InitRouter(root)
  38. system.InitPublicRouter(root)
  39. user.InitAuthRouter(root)
  40. // Authorization required and not websocket request
  41. g := root.Group("/", middleware.AuthRequired(), middleware.Proxy())
  42. {
  43. if cSettings.ServerSettings.RunMode == gin.DebugMode {
  44. pprof.Register(g)
  45. }
  46. user.InitUserRouter(g)
  47. analytic.InitRouter(g)
  48. user.InitManageUserRouter(g)
  49. nginx.InitRouter(g)
  50. sites.InitCategoryRouter(g)
  51. sites.InitRouter(g)
  52. streams.InitRouter(g)
  53. config.InitRouter(g)
  54. template.InitRouter(g)
  55. certificate.InitCertificateRouter(g)
  56. certificate.InitDNSCredentialRouter(g)
  57. certificate.InitAcmeUserRouter(g)
  58. system.InitPrivateRouter(g)
  59. settings.InitRouter(g)
  60. openai.InitRouter(g)
  61. cluster.InitRouter(g)
  62. notification.InitRouter(g)
  63. }
  64. // Authorization required and websocket request
  65. w := root.Group("/", middleware.AuthRequired(), middleware.ProxyWs())
  66. {
  67. analytic.InitWebSocketRouter(w)
  68. certificate.InitCertificateWebSocketRouter(w)
  69. o := w.Group("", middleware.RequireSecureSession())
  70. {
  71. terminal.InitRouter(o)
  72. }
  73. nginxLog.InitRouter(w)
  74. upstream.InitRouter(w)
  75. system.InitWebSocketRouter(w)
  76. }
  77. }
  78. }