summaryrefslogtreecommitdiff
path: root/cmd/server
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/server')
-rw-r--r--cmd/server/main.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/cmd/server/main.go b/cmd/server/main.go
new file mode 100644
index 0000000..4382c70
--- /dev/null
+++ b/cmd/server/main.go
@@ -0,0 +1,36 @@
+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)
+ }
+}