intial commit
This commit is contained in:
66
main.go
Normal file
66
main.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"nearle/config"
|
||||
"nearle/db"
|
||||
"nearle/middlewares"
|
||||
"nearle/routes"
|
||||
"nearle/utils"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||
"github.com/joho/godotenv"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
_ = godotenv.Load()
|
||||
cfg := config.Load()
|
||||
|
||||
app := fiber.New()
|
||||
|
||||
app.Use(cors.New(cors.Config{
|
||||
AllowHeaders: "Origin,Content-Type,Accept,Authorization",
|
||||
AllowOrigins: "http://localhost:3000,http://localhost:3001,http://localhost:3002,http://localhost:3003,http://localhost:3004,http://localhost:3005,https://console.nearlexpress.com,https://app.nearlexpress.com,https://admin.nearlexpress.com,https://developer.nearlexpress.com", // 🔥 simplify (or keep your domains)
|
||||
AllowCredentials: true,
|
||||
AllowMethods: "GET,POST,PUT,DELETE,PATCH,OPTIONS",
|
||||
}))
|
||||
|
||||
app.Use(middlewares.ZapLogger())
|
||||
|
||||
utils.Info("Connecting to database...")
|
||||
|
||||
db.Connect()
|
||||
db.InitRedis()
|
||||
|
||||
utils.Info("All connections established!")
|
||||
|
||||
routes.LiveSetup(app)
|
||||
|
||||
go func() {
|
||||
utils.Info("Server starting", "port", cfg.Port)
|
||||
if err := app.Listen(":" + cfg.Port); err != nil {
|
||||
utils.Logger.Fatalf("Server failed: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
gracefulShutdown()
|
||||
}
|
||||
|
||||
func gracefulShutdown() {
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
|
||||
|
||||
<-c
|
||||
utils.Info("Shutting down...")
|
||||
|
||||
db.CloseDB()
|
||||
|
||||
time.Sleep(2 * time.Second)
|
||||
utils.Info("Shutdown complete")
|
||||
}
|
||||
Reference in New Issue
Block a user