diff --git a/backend/webui_service/webui_init.go b/backend/webui_service/webui_init.go
index 7f41963f7b5979d30d621dc1c779ed8f440a1305..e318378888aa6e6ade97cbaa751bb2a2d29e60e6 100644
--- a/backend/webui_service/webui_init.go
+++ b/backend/webui_service/webui_init.go
@@ -1,12 +1,15 @@
 package webui_service
 
 import (
+	"context"
 	"io"
+	"net/http"
 	"os"
 	"os/signal"
 	"runtime/debug"
 	"sync"
 	"syscall"
+	"time"
 
 	"github.com/gin-contrib/cors"
 	"github.com/sirupsen/logrus"
@@ -23,8 +26,8 @@ type WebuiApp struct {
 	cfg      *factory.Config
 	webuiCtx *webui_context.WEBUIContext
 
-	wg *sync.WaitGroup
-
+	wg            *sync.WaitGroup
+	server        *http.Server
 	billingServer *billing.BillingDomain
 }
 
@@ -155,23 +158,45 @@ func (a *WebuiApp) Start(tlsKeyLogPath string) {
 
 	router.NoRoute(ReturnPublic())
 
+	var addr string
 	if webServer != nil {
-		logger.InitLog.Infoln(router.Run(webServer.IP + ":" + webServer.PORT))
+		addr = webServer.IP + ":" + webServer.PORT
 	} else {
-		logger.InitLog.Infoln(router.Run(":5000"))
+		addr = ":5000"
+	}
+
+	a.server = &http.Server{
+		Addr:    addr,
+		Handler: router,
 	}
+	go func() {
+		logger.MainLog.Infof("Http server listening on %+v", addr)
+		if err := a.server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
+			logger.MainLog.Fatalf("listen: %s\n", err)
+		}
+	}()
 
 	logger.MainLog.Infoln("wait all routine stopped")
 	a.wg.Wait()
 }
 
 func (a *WebuiApp) Terminate() {
-	logger.InitLog.Infoln("Terminating WebUI-AF...")
+	logger.MainLog.Infoln("Terminating WebUI-AF...")
 
 	if a.billingServer != nil {
 		a.billingServer.Stop()
 	}
 
+	if a.server != nil {
+		logger.MainLog.Infoln("stopping HTTP server")
+
+		ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
+		defer cancel()
+		if err := a.server.Shutdown(ctx); err != nil {
+			logger.MainLog.Fatal("HTTP server forced to shutdown: ", err)
+		}
+	}
+
 	// Deregister with NRF
 	if a.webuiCtx.IsRegistered {
 		problemDetails, err := webui_context.SendDeregisterNFInstance()
@@ -184,5 +209,5 @@ func (a *WebuiApp) Terminate() {
 		}
 	}
 
-	logger.InitLog.Infoln("WebUI-AF Terminated")
+	logger.MainLog.Infoln("WebUI-AF Terminated")
 }