45 lines
976 B
Go
45 lines
976 B
Go
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")
|
|
}
|
|
}
|