summaryrefslogtreecommitdiff
path: root/cmd/server
diff options
context:
space:
mode:
authorSergeiEU <39683682+SergeiEU@users.noreply.github.com>2026-04-01 10:17:15 +0400
committerSergeiEU <39683682+SergeiEU@users.noreply.github.com>2026-04-01 10:17:15 +0400
commit1bd203c5555046b7ee4fbfe2f822eb3d03571ad7 (patch)
treed8c85273ede547e03a5727bf185f5d07e87b4a08 /cmd/server
downloadvpnem-main.tar.gz
vpnem-main.tar.bz2
vpnem-main.zip
Initial importHEADmain
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)
+ }
+}