package main import ( "fmt" "log" "net/http" "os" "VerifactuMidAPI/api" "VerifactuMidAPI/internal/cert" "VerifactuMidAPI/internal/config" "VerifactuMidAPI/internal/crypto" ) func main() { cfg, err := config.Load("config.yml") if err != nil { log.Fatalf("loading config: %v", err) } certStorage := cert.NewStorage(cfg.Certificates.StoragePath) if err := certStorage.Init(); err != nil { log.Fatalf("initializing cert storage: %v", err) } keyPair, err := crypto.LoadOrCreateKeyPair(cfg.Crypto.KeysPath) if err != nil { log.Fatalf("loading/creating key pair: %v", err) } handler := api.New(cfg, certStorage, keyPair) mux := http.NewServeMux() handler.RegisterRoutes(mux) addr := fmt.Sprintf(":%d", cfg.Server.Port) log.Printf("Starting server on %s", addr) if err := http.ListenAndServe(addr, mux); err != nil { log.Fatalf("server error: %v", err) } } func init() { if _, err := os.Stat("config.yml"); os.IsNotExist(err) { log.Println("Warning: config.yml not found, using defaults") } }