FILE / Unmei/Backend

main.go

Исходный файл и его история в репозитории.
FILE main
Files
2025-03-12 16:30:40 +03:00

65 lines
1.4 KiB
Go

package main
import (
"backend/database"
"backend/routes"
"backend/utils"
"fmt"
"github.com/getsentry/sentry-go"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
"github.com/joho/godotenv"
"log"
"net/http"
"os"
"time"
)
var router chi.Router
func init() {
err := godotenv.Load(".env", ".private.env", ".db.env", ".email.env")
if err != nil {
log.Fatal("Error loading .env file")
}
log.Println(".env files loaded")
log.Println(fmt.Sprintf("Initizalized CDN path at %v", os.Getenv("CDN_PATH")))
log.Println(fmt.Sprintf("Initizalized CDN URL at %v", os.Getenv("CDN_URL")))
err = sentry.Init(sentry.ClientOptions{
Dsn: os.Getenv("SENTRY_DSN"),
})
if err != nil {
fmt.Printf("Sentry initialization failed: %v\n", err)
}
router = chi.NewRouter()
router.Use(middleware.RequestID)
router.Use(middleware.RealIP)
router.Use(middleware.Logger)
router.Use(middleware.Recoverer)
router.Route("/v1", routes.RegisterRouters)
database.ConnectToDB()
}
func main() {
server := http.Server{
Addr: fmt.Sprintf("%v:%v", os.Getenv("ADDRESS"), os.Getenv("PORT")),
Handler: router,
IdleTimeout: 120 * time.Second,
ReadTimeout: 30 * time.Second,
WriteTimeout: 30 * time.Second,
}
log.Println(fmt.Sprintf("Staring on %v:%v", os.Getenv("ADDRESS"), utils.Getenv("PORT", "8080")))
err := server.ListenAndServe()
if err != nil {
log.Println(err)
sentry.CaptureException(err)
}
}