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