this repo has no description
1package main 2 3import ( 4 "context" 5 "fmt" 6 "net/http" 7 8 "github.com/sotangled/tangled/knotserver" 9 "github.com/sotangled/tangled/knotserver/config" 10 "github.com/sotangled/tangled/knotserver/db" 11 "github.com/sotangled/tangled/log" 12 "github.com/sotangled/tangled/rbac" 13) 14 15func main() { 16 ctx := context.Background() 17 // ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) 18 // defer stop() 19 20 l := log.New("knotserver") 21 22 c, err := config.Load(ctx) 23 if err != nil { 24 l.Error("failed to load config", "error", err) 25 return 26 } 27 28 if c.Server.Dev { 29 l.Info("running in dev mode, signature verification is disabled") 30 } 31 32 db, err := db.Setup(c.Server.DBPath) 33 if err != nil { 34 l.Error("failed to setup db", "error", err) 35 return 36 } 37 38 e, err := rbac.NewEnforcer(c.Server.DBPath) 39 if err != nil { 40 l.Error("failed to setup rbac enforcer", "error", err) 41 return 42 } 43 44 mux, err := knotserver.Setup(ctx, c, db, e, l) 45 if err != nil { 46 l.Error("failed to setup server", "error", err) 47 return 48 } 49 50 addr := fmt.Sprintf("%s:%d", c.Server.Host, c.Server.Port) 51 52 l.Info("starting main server", "address", addr) 53 l.Error("server error", "error", http.ListenAndServe(addr, mux)) 54 return 55}