setup the project structure
This commit is contained in:
parent
279efc8817
commit
ed3854f542
10 changed files with 257 additions and 80 deletions
51
cmd/server/main.go
Normal file
51
cmd/server/main.go
Normal 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))
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue