package main import ( "hightube/internal/api" "hightube/internal/chat" "hightube/internal/db" "hightube/internal/monitor" "hightube/internal/stream" ) func main() { monitor.Init(2000) monitor.Infof("Starting Hightube Server v1.0.0-Beta4.1") // Initialize Database and run auto-migrations db.InitDB() // Initialize Chat WebSocket Hub chat.InitChat() srv := stream.NewRTMPServer() // Start the API server in a goroutine so it doesn't block the RTMP server go func() { r := api.SetupRouter(srv) monitor.Infof("API server listening on :8080") monitor.Infof("Web console listening on :8080/admin") if err := r.Run(":8080"); err != nil { monitor.Errorf("Failed to start API server: %v", err) } }() // Setup and start the RTMP server monitor.Infof("Ready to receive RTMP streams from OBS") if err := srv.Start(":1935"); err != nil { monitor.Errorf("Failed to start RTMP server: %v", err) } }