From adf6f80061ceeb0ea165a860679da2d595a3dbd7 Mon Sep 17 00:00:00 2001 From: Jacky Date: Fri, 9 May 2025 10:24:45 +0000 Subject: [PATCH] feat(modules): retrieve nginx modules status --- api/nginx/modules.go | 17 +++ api/nginx/router.go | 2 + app/src/api/ngx.ts | 11 ++ app/src/layouts/SideBar.vue | 31 +++- app/src/pinia/moudule/global.ts | 7 + app/src/routes/modules/streams.ts | 2 + app/src/routes/type.d.ts | 1 + internal/kernel/boot.go | 2 + internal/nginx/config_args.go | 11 ++ internal/nginx/modules.go | 233 ++++++++++++++++++++++++++---- internal/nginx/nginx.go | 7 + internal/self_check/tasks.go | 2 +- 12 files changed, 292 insertions(+), 34 deletions(-) create mode 100644 api/nginx/modules.go diff --git a/api/nginx/modules.go b/api/nginx/modules.go new file mode 100644 index 00000000..1d52275e --- /dev/null +++ b/api/nginx/modules.go @@ -0,0 +1,17 @@ +package nginx + +import ( + "net/http" + + "github.com/0xJacky/Nginx-UI/internal/nginx" + "github.com/gin-gonic/gin" +) + +func GetModules(c *gin.Context) { + modules := nginx.GetModules() + modulesList := make([]nginx.Module, 0, modules.Len()) + for _, module := range modules.AllFromFront() { + modulesList = append(modulesList, module) + } + c.JSON(http.StatusOK, modulesList) +} diff --git a/api/nginx/router.go b/api/nginx/router.go index 9ac59c95..d12a3577 100644 --- a/api/nginx/router.go +++ b/api/nginx/router.go @@ -27,4 +27,6 @@ func InitRouter(r *gin.RouterGroup) { // Performance optimization endpoints r.GET("nginx/performance", GetPerformanceSettings) r.POST("nginx/performance", UpdatePerformanceSettings) + + r.GET("nginx/modules", GetModules) } diff --git a/app/src/api/ngx.ts b/app/src/api/ngx.ts index 3349445a..c345c0f8 100644 --- a/app/src/api/ngx.ts +++ b/app/src/api/ngx.ts @@ -104,6 +104,13 @@ export interface NginxPerfOpt { proxy_cache: ProxyCacheConfig } +export interface NgxModule { + name: string + params?: string + dynamic: boolean + loaded: boolean +} + const ngx = { build_config(ngxConfig: NgxConfig) { return http.post('/ngx/build_config', ngxConfig) @@ -152,6 +159,10 @@ const ngx = { update_performance(params: NginxPerfOpt): Promise { return http.post('/nginx/performance', params) }, + + get_modules(): Promise { + return http.get('/nginx/modules') + }, } export default ngx diff --git a/app/src/layouts/SideBar.vue b/app/src/layouts/SideBar.vue index c6c32682..86f22b68 100644 --- a/app/src/layouts/SideBar.vue +++ b/app/src/layouts/SideBar.vue @@ -1,10 +1,12 @@