Files
backend_jupiter/main.go
2026-05-25 11:45:56 +05:30

67 lines
1.4 KiB
Go

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")
}