package main import ( "fmt" "log" "os" "strings" "ginimageApi/app/middleware" "ginimageApi/configs" _ "ginimageApi/docs" "ginimageApi/routers" "github.com/gin-gonic/gin" "github.com/joho/godotenv" ) // @title Gin Image API // @version 1.0 // @description GinImage API dokumantasyonu. Legacy access token formatlari desteklenmez. // @host mcp.beyhano.net.tr // @schemes https // @securityDefinitions.apikey BearerAuth // @in header // @name Authorization func ensureRequiredEnv() error { if strings.TrimSpace(os.Getenv("JWT_SECRET")) == "" { return fmt.Errorf("JWT_SECRET zorunludur") } return nil } // TIP

To run your code, right-click the code and select Run.

Alternatively, click // the icon in the gutter and select the Run menu item from here.

func main() { if err := godotenv.Load(); err != nil { log.Println("no .env file found, relying on environment variables") } if err := ensureRequiredEnv(); err != nil { log.Fatalf("config: %v", err) } if err := configs.ConnectDB(); err != nil { log.Fatalf("database: %v", err) } if err := configs.RunAutoMigrate(); err != nil { log.Fatalf("migration: %v", err) } if err := configs.SeedSecurityDefaults(); err != nil { log.Fatalf("seed security defaults: %v", err) } if err := configs.ConnectRedis(); err != nil { log.Fatalf("redis: %v", err) } defer func() { if err := configs.CloseRedis(); err != nil { log.Printf("redis kapatılırken hata: %v", err) } }() r := gin.Default() r.Use(middleware.DynamicCORS()) r.Use(middleware.DynamicRateLimit()) routers.Setup(r) if err := r.SetTrustedProxies([]string{"127.0.0.1"}); err != nil { log.Fatalf("failed to set trusted proxies: %v", err) } port := os.Getenv("PORT") if port == "" { port = "8080" } if err := r.Run(":" + port); err != nil { log.Fatalf("server: %v", err) } }