51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"git.eveutil.org/fabric/everate/internal/logger"
|
|
"git.eveutil.org/fabric/everate/internal/middleware"
|
|
"go.uber.org/zap"
|
|
|
|
"github.com/gorilla/sessions"
|
|
"github.com/joho/godotenv"
|
|
"github.com/labstack/echo-contrib/session"
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func main() {
|
|
// 1. Load config
|
|
if err := godotenv.Load(); err != nil {
|
|
log.Println("Warning: .env file not found")
|
|
}
|
|
|
|
// 2. Create the logger instance
|
|
isDev := os.Getenv("DEV") == "true"
|
|
appLogger, err := logger.New(isDev)
|
|
if err != nil {
|
|
log.Fatalf("failed to create logger: %v", err)
|
|
}
|
|
defer appLogger.Sync() // This is still important!
|
|
|
|
// 3. Create Echo instance
|
|
e := echo.New()
|
|
|
|
// 4. Register your custom Zap logger middleware
|
|
// This replaces `e.Use(echomiddleware.Logger())`
|
|
e.Use(middleware.ZapRequestLogger(appLogger))
|
|
|
|
// 5. Register other middleware
|
|
sessionSecret := os.Getenv("SESSION_SECRET")
|
|
e.Use(session.Middleware(sessions.NewCookieStore([]byte(sessionSecret))))
|
|
|
|
// 6. Routes
|
|
|
|
|
|
// Start the server
|
|
appLogger.Info("Starting the server...", zap.String("address", ":1323"))
|
|
if err := e.Start(":1323"); err != nil {
|
|
appLogger.Fatal("Server failed to start", zap.Error(err))
|
|
|
|
}
|
|
}
|