tebakaja's picture
deployment
03c0050
raw
history blame
1.44 kB
package main
import (
"fmt"
"log"
"os"
"os/signal"
"syscall"
"github.com/joho/godotenv"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/template/html/v2"
"github.com/gofiber/fiber/v2/middleware/helmet"
helpers "thesis_forecasting_website/helpers"
handlers "thesis_forecasting_website/handlers"
middlewares "thesis_forecasting_website/middlewares"
)
func main() {
_ = godotenv.Load()
frontend_engine := html.New("./views", ".html")
frontend_engine.AddFunc("toJSON", helpers.ToJSON)
forecasting_service := fiber.New(fiber.Config{
Views: frontend_engine,
})
forecasting_service.Use(middlewares.LoggingMiddleware)
forecasting_service.Use(helmet.New())
forecasting_service.Use(middlewares.NoCacheMiddleware)
forecasting_service.Static("/public", "./public_dist")
forecasting_service.Get("/", handlers.IssuerHandler)
forecasting_service.Get("/infographic", handlers.InfographicHandler)
host := os.Getenv("FORECASTING_SERVICE_HOST")
port := os.Getenv("FORECASTING_SERVICE_PORT")
go func() {
if err := forecasting_service.Listen(fmt.Sprintf("%s:%s", host, port))
err != nil {
log.Fatalf("server error: %v", err)
}
}()
quit := make(chan os.Signal, 1)
signal.Notify(quit, os.Interrupt, syscall.SIGTERM)
<-quit
log.Println("shutting down gracefully...")
if err := forecasting_service.Shutdown()
err != nil {
log.Fatalf("error shutting down: %v", err)
}
}