diff --git a/.github/templates/README.template.md b/.github/templates/README.template.md index 0ec58f5..af271ef 100644 --- a/.github/templates/README.template.md +++ b/.github/templates/README.template.md @@ -1,4 +1,4 @@ -Secure Proxy for Signal REST API +Secure Proxy for Signal REST API

Secure Proxy for Signal Messenger REST API

diff --git a/Dockerfile b/Dockerfile index a8f6c15..d502b8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,8 @@ RUN apk --no-cache add ca-certificates ENV SERVER__PORT=8880 -ENV DEFAULTS_PATH=/app/config/defaults.yml +ENV DEFAULTS_PATH=/app/data/defaults.yml +ENV FAVICON_PATH=/app/data/favicon.ico ENV CONFIG_PATH=/config/config.yml ENV TOKENS_DIR=/config/tokens diff --git a/config/defaults.yml b/data/defaults.yml similarity index 100% rename from config/defaults.yml rename to data/defaults.yml diff --git a/data/favicon.ico b/data/favicon.ico new file mode 100644 index 0000000..d23ee42 Binary files /dev/null and b/data/favicon.ico differ diff --git a/internals/proxy/middlewares/server.go b/internals/proxy/middlewares/server.go new file mode 100644 index 0000000..b0ae44b --- /dev/null +++ b/internals/proxy/middlewares/server.go @@ -0,0 +1,23 @@ +package middlewares + +import ( + "net/http" + + "github.com/codeshelldev/secured-signal-api/utils/config" +) + +type ServeMiddleware struct { + Next http.Handler +} + +func (data ServeMiddleware) Use() http.Handler { + mux := http.NewServeMux() + + mux.HandleFunc("/favicon.ico", func(w http.ResponseWriter, req *http.Request) { + http.ServeFile(w, req, config.ENV.FAVICON_PATH) + }) + + mux.Handle("/", data.Next) + + return mux +} \ No newline at end of file diff --git a/internals/proxy/proxy.go b/internals/proxy/proxy.go index e99c01c..ca554fc 100644 --- a/internals/proxy/proxy.go +++ b/internals/proxy/proxy.go @@ -11,4 +11,4 @@ func Create(targetUrl string) *httputil.ReverseProxy { proxy := httputil.NewSingleHostReverseProxy(url) return proxy -} +} \ No newline at end of file diff --git a/logo/landscape b/logo/banner.png similarity index 100% rename from logo/landscape rename to logo/banner.png diff --git a/main.go b/main.go index da4c76a..4cf1eff 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( log "github.com/codeshelldev/secured-signal-api/utils/logger" ) -var initHandler *httputil.ReverseProxy +var proxy_last *httputil.ReverseProxy var ENV *config.ENV_ @@ -31,29 +31,33 @@ func main() { log.Info("Initialized Logger with Level of ", log.Level()) - initHandler = proxy.Create(ENV.API_URL) + proxy_last = proxy.Create(ENV.API_URL) - body_m4 := middlewares.BodyMiddleware{ - Next: initHandler, + body_m5 := middlewares.BodyMiddleware{ + Next: proxy_last, } - temp_m3 := middlewares.TemplateMiddleware{ - Next: body_m4.Use(), + temp_m4 := middlewares.TemplateMiddleware{ + Next: body_m5.Use(), } - endp_m2 := middlewares.EndpointsMiddleware{ - Next: temp_m3.Use(), + endp_m3 := middlewares.EndpointsMiddleware{ + Next: temp_m4.Use(), } - auth_m1 := middlewares.AuthMiddleware{ - Next: endp_m2.Use(), + auth_m2 := middlewares.AuthMiddleware{ + Next: endp_m3.Use(), + } + + serv_m1 := middlewares.ServeMiddleware{ + Next: auth_m2.Use(), } log_m0 := middlewares.LogMiddleware{ - Next: auth_m1.Use(), + Next: serv_m1.Use(), } - log.Info("Initialized Proxy Handler") + log.Info("Initialized Middlewares") addr := "0.0.0.0:" + ENV.PORT diff --git a/utils/config/loader.go b/utils/config/loader.go index 64253b5..ea0b746 100644 --- a/utils/config/loader.go +++ b/utils/config/loader.go @@ -17,6 +17,7 @@ import ( type ENV_ struct { CONFIG_PATH string DEFAULTS_PATH string + FAVICON_PATH string TOKENS_DIR string LOG_LEVEL string PORT string @@ -37,6 +38,7 @@ var ENV *ENV_ = &ENV_{ CONFIG_PATH: os.Getenv("CONFIG_PATH"), DEFAULTS_PATH: os.Getenv("DEFAULTS_PATH"), TOKENS_DIR: os.Getenv("TOKENS_DIR"), + FAVICON_PATH: os.Getenv("FAVICON_PATH"), API_TOKENS: []string{}, SETTINGS: map[string]*SETTING_{