diff --git a/README.md b/README.md index 5358fbf..805a30a 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ - [x] [Prometheus监控指标](https://gost.run/tutorials/metrics/) - [x] [动态配置](https://gost.run/tutorials/api/config/) - [x] [Web API](https://gost.run/tutorials/api/overview/) -- [ ] Web UI +- [ ] GUI/WebUI ## 概览 @@ -81,7 +81,11 @@ docker run --rm gogost/gost -V ## 工具 -### WebUI(非官方) +### GUI + +[go-gost/gostctl](https://github.com/go-gost/gostctl) + +### WebUI [cnwhy/gost-ui](https://github.com/cnwhy/gost-ui) diff --git a/README_en.md b/README_en.md index 8276e69..e32edd2 100644 --- a/README_en.md +++ b/README_en.md @@ -81,7 +81,11 @@ docker run --rm gogost/gost -V ## Tools -### WebUI (Unofficial) +### GUI + +[go-gost/gostctl](https://github.com/go-gost/gostctl) + +### WebUI [cnwhy/gost-ui](https://github.com/cnwhy/gost-ui) diff --git a/cmd/gost/config.go b/cmd/gost/config.go index ab6381c..76a1e1f 100644 --- a/cmd/gost/config.go +++ b/cmd/gost/config.go @@ -32,34 +32,26 @@ func buildService(cfg *config.Config) (services []service.Service) { log := logger.Default() for _, loggerCfg := range cfg.Loggers { - if lg := logger_parser.ParseLogger(loggerCfg); lg != nil { - if err := registry.LoggerRegistry().Register(loggerCfg.Name, lg); err != nil { - log.Fatal(err) - } + if err := registry.LoggerRegistry().Register(loggerCfg.Name, logger_parser.ParseLogger(loggerCfg)); err != nil { + log.Fatal(err) } } for _, autherCfg := range cfg.Authers { - if auther := auth_parser.ParseAuther(autherCfg); auther != nil { - if err := registry.AutherRegistry().Register(autherCfg.Name, auther); err != nil { - log.Fatal(err) - } + if err := registry.AutherRegistry().Register(autherCfg.Name, auth_parser.ParseAuther(autherCfg)); err != nil { + log.Fatal(err) } } for _, admissionCfg := range cfg.Admissions { - if adm := admission_parser.ParseAdmission(admissionCfg); adm != nil { - if err := registry.AdmissionRegistry().Register(admissionCfg.Name, adm); err != nil { - log.Fatal(err) - } + if err := registry.AdmissionRegistry().Register(admissionCfg.Name, admission_parser.ParseAdmission(admissionCfg)); err != nil { + log.Fatal(err) } } for _, bypassCfg := range cfg.Bypasses { - if bp := bypass_parser.ParseBypass(bypassCfg); bp != nil { - if err := registry.BypassRegistry().Register(bypassCfg.Name, bp); err != nil { - log.Fatal(err) - } + if err := registry.BypassRegistry().Register(bypassCfg.Name, bypass_parser.ParseBypass(bypassCfg)); err != nil { + log.Fatal(err) } } @@ -68,79 +60,59 @@ func buildService(cfg *config.Config) (services []service.Service) { if err != nil { log.Fatal(err) } - if r != nil { - if err := registry.ResolverRegistry().Register(resolverCfg.Name, r); err != nil { - log.Fatal(err) - } + if err := registry.ResolverRegistry().Register(resolverCfg.Name, r); err != nil { + log.Fatal(err) } } for _, hostsCfg := range cfg.Hosts { - if h := hosts_parser.ParseHostMapper(hostsCfg); h != nil { - if err := registry.HostsRegistry().Register(hostsCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.HostsRegistry().Register(hostsCfg.Name, hosts_parser.ParseHostMapper(hostsCfg)); err != nil { + log.Fatal(err) } } for _, ingressCfg := range cfg.Ingresses { - if h := ingress_parser.ParseIngress(ingressCfg); h != nil { - if err := registry.IngressRegistry().Register(ingressCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.IngressRegistry().Register(ingressCfg.Name, ingress_parser.ParseIngress(ingressCfg)); err != nil { + log.Fatal(err) } } for _, routerCfg := range cfg.Routers { - if h := router_parser.ParseRouter(routerCfg); h != nil { - if err := registry.RouterRegistry().Register(routerCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.RouterRegistry().Register(routerCfg.Name, router_parser.ParseRouter(routerCfg)); err != nil { + log.Fatal(err) } } for _, sdCfg := range cfg.SDs { - if h := sd_parser.ParseSD(sdCfg); h != nil { - if err := registry.SDRegistry().Register(sdCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.SDRegistry().Register(sdCfg.Name, sd_parser.ParseSD(sdCfg)); err != nil { + log.Fatal(err) } } for _, observerCfg := range cfg.Observers { - if h := observer_parser.ParseObserver(observerCfg); h != nil { - if err := registry.ObserverRegistry().Register(observerCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.ObserverRegistry().Register(observerCfg.Name, observer_parser.ParseObserver(observerCfg)); err != nil { + log.Fatal(err) } } for _, recorderCfg := range cfg.Recorders { - if h := recorder_parser.ParseRecorder(recorderCfg); h != nil { - if err := registry.RecorderRegistry().Register(recorderCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.RecorderRegistry().Register(recorderCfg.Name, recorder_parser.ParseRecorder(recorderCfg)); err != nil { + log.Fatal(err) } } for _, limiterCfg := range cfg.Limiters { - if h := limiter_parser.ParseTrafficLimiter(limiterCfg); h != nil { - if err := registry.TrafficLimiterRegistry().Register(limiterCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.TrafficLimiterRegistry().Register(limiterCfg.Name, limiter_parser.ParseTrafficLimiter(limiterCfg)); err != nil { + log.Fatal(err) } } for _, limiterCfg := range cfg.CLimiters { - if h := limiter_parser.ParseConnLimiter(limiterCfg); h != nil { - if err := registry.ConnLimiterRegistry().Register(limiterCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.ConnLimiterRegistry().Register(limiterCfg.Name, limiter_parser.ParseConnLimiter(limiterCfg)); err != nil { + log.Fatal(err) } } for _, limiterCfg := range cfg.RLimiters { - if h := limiter_parser.ParseRateLimiter(limiterCfg); h != nil { - if err := registry.RateLimiterRegistry().Register(limiterCfg.Name, h); err != nil { - log.Fatal(err) - } + if err := registry.RateLimiterRegistry().Register(limiterCfg.Name, limiter_parser.ParseRateLimiter(limiterCfg)); err != nil { + log.Fatal(err) } } for _, hopCfg := range cfg.Hops { @@ -148,10 +120,8 @@ func buildService(cfg *config.Config) (services []service.Service) { if err != nil { log.Fatal(err) } - if hop != nil { - if err := registry.HopRegistry().Register(hopCfg.Name, hop); err != nil { - log.Fatal(err) - } + if err := registry.HopRegistry().Register(hopCfg.Name, hop); err != nil { + log.Fatal(err) } } for _, chainCfg := range cfg.Chains { @@ -159,10 +129,8 @@ func buildService(cfg *config.Config) (services []service.Service) { if err != nil { log.Fatal(err) } - if c != nil { - if err := registry.ChainRegistry().Register(chainCfg.Name, c); err != nil { - log.Fatal(err) - } + if err := registry.ChainRegistry().Register(chainCfg.Name, c); err != nil { + log.Fatal(err) } } diff --git a/go.mod b/go.mod index 6e0dee9..cef4fb8 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ toolchain go1.22.2 require ( github.com/go-gost/core v0.0.0-20240508132029-8d554ddcf77c - github.com/go-gost/x v0.0.0-20240508132615-754b2fdeacd4 + github.com/go-gost/x v0.0.0-20240607125747-ce60160cd78b github.com/judwhite/go-svc v1.2.1 ) diff --git a/go.sum b/go.sum index 284f82c..a523659 100644 --- a/go.sum +++ b/go.sum @@ -53,8 +53,6 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-gost/core v0.0.0-20240424153155-5d6c2115fa15 h1:X7rvyLzslfgA+A7VKlUr//l798na8ZywuFyGcGfDUl8= -github.com/go-gost/core v0.0.0-20240424153155-5d6c2115fa15/go.mod h1:j08tDHkFzk7dfOeLhl3RWsASdf9YWWRfWBUQqbQvx3A= github.com/go-gost/core v0.0.0-20240508132029-8d554ddcf77c h1:1ahtn+3bQB50at5ubWDOrA4yja8vWpWNrGSRaCztNWg= github.com/go-gost/core v0.0.0-20240508132029-8d554ddcf77c/go.mod h1:j08tDHkFzk7dfOeLhl3RWsASdf9YWWRfWBUQqbQvx3A= github.com/go-gost/gosocks4 v0.0.1 h1:+k1sec8HlELuQV7rWftIkmy8UijzUt2I6t+iMPlGB2s= @@ -67,10 +65,8 @@ github.com/go-gost/relay v0.5.0 h1:JG1tgy/KWiVXS0ukuVXvbM0kbYuJTWxYpJ5JwzsCf/c= github.com/go-gost/relay v0.5.0/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 h1:xj8gUZGYO3nb5+6Bjw9+tsFkA9sYynrOvDvvC4uDV2I= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451/go.mod h1:/9QfdewqmHdaE362Hv5nDaSWLx3pCmtD870d6GaquXs= -github.com/go-gost/x v0.0.0-20240426125656-332a3a1cd09f h1:L8Bj0PkvP1INong0K/0CLPB01fCspyPaS/1QB28yCZc= -github.com/go-gost/x v0.0.0-20240426125656-332a3a1cd09f/go.mod h1:4n4ge2x0JVzyJQX0oim2e3T+CNDY6k82XCUIAfFgs4s= -github.com/go-gost/x v0.0.0-20240508132615-754b2fdeacd4 h1:gTMdNotqegfi46XDrfCJLh0ifIbzYjpnRfojdJHSw68= -github.com/go-gost/x v0.0.0-20240508132615-754b2fdeacd4/go.mod h1:8A0ew3migxwXqkOZPKypVGd/W/lwy+/PMpC9qktkbKk= +github.com/go-gost/x v0.0.0-20240607125747-ce60160cd78b h1:yTeX7tkFfBleyQMzOAYsP/SKHVtvf8f98VGv0H4iox0= +github.com/go-gost/x v0.0.0-20240607125747-ce60160cd78b/go.mod h1:8A0ew3migxwXqkOZPKypVGd/W/lwy+/PMpC9qktkbKk= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=