package main import ( "context" "log" "os" "os/signal" "strconv" "syscall" "time" "github.com/gooseek/backend/internal/computer/browser" ) func main() { port := 3050 if p := os.Getenv("PORT"); p != "" { if parsed, err := strconv.Atoi(p); err == nil { port = parsed } } if p := os.Getenv("BROWSER_SVC_PORT"); p != "" { if parsed, err := strconv.Atoi(p); err == nil { port = parsed } } cfg := browser.ServerConfig{ Port: port, MaxSessions: 20, SessionTimeout: 30 * time.Minute, CleanupInterval: 5 * time.Minute, } server := browser.NewBrowserServer(cfg) ctx, cancel := context.WithCancel(context.Background()) defer cancel() sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) go func() { <-sigCh log.Println("[browser-svc] Shutting down...") cancel() }() log.Printf("[browser-svc] Starting browser service on port %d", port) if err := server.Start(ctx); err != nil { log.Fatalf("[browser-svc] Server error: %v", err) } }