Files
ai-media-hub/backend/main.go
AI Assistant d030e737cb
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
Initial commit for AI Media Hub
2026-03-12 14:13:05 +09:00

60 lines
1.2 KiB
Go

package main
import (
"log"
"os"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/websocket/v2"
"github.com/savethenurse/ai-media-hub/backend/handlers"
"github.com/savethenurse/ai-media-hub/backend/models"
)
func main() {
dbDir := os.Getenv("DB_DIR")
if dbDir == "" {
dbDir = "/app/db"
}
dbPath := dbDir + "/media_hub.db"
// Ensure DB directory exists
os.MkdirAll(dbDir, os.ModePerm)
// Initialize Database
models.InitDB(dbPath)
app := fiber.New()
app.Use(logger.New())
app.Use(cors.New())
// Static files (Frontend)
app.Static("/", "./frontend")
// API Routes
api := app.Group("/api")
api.Get("/search", handlers.SearchAndFilter)
api.Post("/upload", handlers.UploadMedia)
api.Post("/download", handlers.DownloadMedia)
// WebSocket Route
app.Use("/ws", func(c *fiber.Ctx) error {
if websocket.IsWebSocketUpgrade(c) {
c.Locals("allowed", true)
return c.Next()
}
return fiber.ErrUpgradeRequired
})
app.Get("/ws", websocket.New(handlers.WsHandler))
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
log.Printf("Starting Server on port %s", port)
app.Listen(":" + port)
}