package main import ( "log" "net/http" "gospeak-live-sfu-demo/internal/config" "gospeak-live-sfu-demo/internal/server" ) func main() { cfg := config.Load() srv := server.New(cfg) if err := srv.StartGRPC(); err != nil { log.Printf("[warn] grpc control plane failed to start: %v", err) } addr := ":" + cfg.HTTPPort log.Printf("live-sfu demo ready: http://localhost:%s (grpc :%s)", cfg.HTTPPort, cfg.GRPCPort) log.Printf("backends (primary first): %v", cfg.ProviderList()) log.Printf("cloudflare configured: %v", cfg.CFAppID != "" && cfg.CFAppSecret != "") if err := http.ListenAndServe(addr, srv.Handler()); err != nil { log.Fatalf("http server error: %v", err) } }