forked from tangled.org/core
this repo has no description
1package main 2 3import ( 4 "context" 5 "net/http" 6 7 "github.com/sotangled/tangled/api/tangled" 8 "github.com/sotangled/tangled/jetstream" 9 "github.com/sotangled/tangled/knotserver" 10 "github.com/sotangled/tangled/knotserver/config" 11 "github.com/sotangled/tangled/knotserver/db" 12 "github.com/sotangled/tangled/log" 13 "github.com/sotangled/tangled/rbac" 14) 15 16func main() { 17 ctx := context.Background() 18 // ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) 19 // defer stop() 20 21 l := log.New("knotserver") 22 23 c, err := config.Load(ctx) 24 if err != nil { 25 l.Error("failed to load config", "error", err) 26 return 27 } 28 29 if c.Server.Dev { 30 l.Info("running in dev mode, signature verification is disabled") 31 } 32 33 db, err := db.Setup(c.Server.DBPath) 34 if err != nil { 35 l.Error("failed to setup db", "error", err) 36 return 37 } 38 39 e, err := rbac.NewEnforcer(c.Server.DBPath) 40 if err != nil { 41 l.Error("failed to setup rbac enforcer", "error", err) 42 return 43 } 44 45 jc, err := jetstream.NewJetstreamClient("knotserver", []string{ 46 tangled.PublicKeyNSID, 47 tangled.KnotMemberNSID, 48 }, nil, l, db, true) 49 if err != nil { 50 l.Error("failed to setup jetstream", "error", err) 51 } 52 53 mux, err := knotserver.Setup(ctx, c, db, e, jc, l) 54 if err != nil { 55 l.Error("failed to setup server", "error", err) 56 return 57 } 58 imux := knotserver.Internal(ctx, db, e) 59 60 l.Info("starting internal server", "address", c.Server.InternalListenAddr) 61 go http.ListenAndServe(c.Server.InternalListenAddr, imux) 62 63 l.Info("starting main server", "address", c.Server.ListenAddr) 64 l.Error("server error", "error", http.ListenAndServe(c.Server.ListenAddr, mux)) 65 66 return 67}