package main import ( "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "log" "os" "os/signal" "relynolli-server/handlers" "relynolli-server/internal" "syscall" ) func main() { loadEnvironment() server := gin.Default() crs := cors.New(cors.Config{ AllowHeaders: []string{"*"}, AllowAllOrigins: true, AllowMethods: []string{"GET, POST, PATCH, DELETE"}, }) server.Use(crs) db := internal.InitDatabase() rdb := internal.InitRedis() handlers.InitializeRouter(server) defer db.Close() defer rdb.Close() gracefullyShutDown := make(chan os.Signal, 1) signal.Notify(gracefullyShutDown, syscall.SIGINT, syscall.SIGTERM) go server.Run("0.0.0.0:8000") <-gracefullyShutDown } func loadEnvironment() { err := godotenv.Load(".env") if err != nil { log.Fatal("Error loading .env file") } }