package main import ( "embed" "fitra-backend/application" "fitra-backend/controllers" "fmt" "html/template" "log" "os" "github.com/gin-gonic/gin" "github.com/joho/godotenv" ) //go:embed views/* var viewsFS embed.FS func main() { if err := godotenv.Load(); err != nil { log.Println("No .env file found") } go application.StartCleanupRoutine() r := gin.Default() tmpl := template.Must(template.New("").ParseFS(viewsFS, "views/*.html")) r.SetHTMLTemplate(tmpl) r.GET("/", controllers.HandleIndex) r.POST("/upload", controllers.HandleFileUpload) r.GET("/uploads/:fileID/:filename", controllers.HandleFileDownload) r.GET("/storage", controllers.HandleStorageInfo) r.GET("/health", func(c *gin.Context) { c.JSON(200, gin.H{"status": "ok"}) }) if port := os.Getenv("PORT"); port != "" { fmt.Printf("FITRA Backend starting on port %s\n", port) r.Run(":" + port) } else { fmt.Println("FITRA Backend starting on port 8080") r.Run(":8080") } }