live-sfu-demo/cmd/server/main.go

34 lines
893 B
Go

package main
import (
"log"
"net/http"
"sync-live/internal/config"
"sync-live/internal/server"
)
func main() {
cfg := config.Load()
if err := cfg.Validate(); err != nil {
log.Fatalf("config invalid: %v", err)
}
srv := server.New(cfg)
defer func() {
if err := srv.Close(); err != nil {
log.Printf("[warn] db close: %v", err)
}
}()
if err := srv.StartGRPC(); err != nil {
log.Printf("[warn] grpc control plane failed to start: %v", err)
}
addr := ":" + cfg.HTTPPort
log.Printf("sync-live 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 != "")
log.Printf("embedded db: %s", cfg.DatabaseURL)
if err := http.ListenAndServe(addr, srv.Handler()); err != nil {
log.Fatalf("http server error: %v", err)
}
}