package main import ( "flag" "log" "net/http" "vpnem/internal/api" "vpnem/internal/rules" ) func main() { addr := flag.String("addr", ":8090", "listen address") dataDir := flag.String("data", "./data", "path to data directory") flag.Parse() store := rules.NewStore(*dataDir) // Verify data loads on startup if _, err := store.LoadServers(); err != nil { log.Fatalf("failed to load servers.json: %v", err) } if _, err := store.LoadRuleSets(); err != nil { log.Fatalf("failed to load rulesets.json: %v", err) } if _, err := store.LoadVersion(); err != nil { log.Fatalf("failed to load version.json: %v", err) } router := api.NewRouter(store) log.Printf("vpnem server listening on %s", *addr) if err := http.ListenAndServe(*addr, router); err != nil { log.Fatal(err) } }