setup the project structure

This commit is contained in:
FabricSoul 2025-07-16 01:06:39 -04:00
parent 279efc8817
commit ed3854f542
10 changed files with 257 additions and 80 deletions

51
cmd/server/main.go Normal file
View file

@ -0,0 +1,51 @@
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))
}
}