34 lines
893 B
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)
|
|
}
|
|
}
|