···
7
-
"tangled.sh/tangled.sh/core/api/tangled"
8
-
"tangled.sh/tangled.sh/core/jetstream"
9
-
"tangled.sh/tangled.sh/core/knotserver"
10
-
"tangled.sh/tangled.sh/core/knotserver/config"
11
-
"tangled.sh/tangled.sh/core/knotserver/db"
12
-
"tangled.sh/tangled.sh/core/log"
13
-
"tangled.sh/tangled.sh/core/rbac"
19
-
ctx := context.Background()
20
-
// ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
23
-
l := log.New("knotserver")
25
-
c, err := config.Load(ctx)
27
-
l.Error("failed to load config", "error", err)
32
-
l.Info("running in dev mode, signature verification is disabled")
35
-
db, err := db.Setup(c.Server.DBPath)
37
-
l.Error("failed to setup db", "error", err)
41
-
e, err := rbac.NewEnforcer(c.Server.DBPath)
43
-
l.Error("failed to setup rbac enforcer", "error", err)
47
-
e.E.EnableAutoSave(true)
49
-
jc, err := jetstream.NewJetstreamClient(c.Server.JetstreamEndpoint, "knotserver", []string{
50
-
tangled.PublicKeyNSID,
51
-
tangled.KnotMemberNSID,
52
-
}, nil, l, db, true)
54
-
l.Error("failed to setup jetstream", "error", err)
57
-
mux, err := knotserver.Setup(ctx, c, db, e, jc, l)
59
-
l.Error("failed to setup server", "error", err)
62
-
imux := knotserver.Internal(ctx, db, e)
64
-
l.Info("starting internal server", "address", c.Server.InternalListenAddr)
65
-
go http.ListenAndServe(c.Server.InternalListenAddr, imux)
67
-
l.Info("starting main server", "address", c.Server.ListenAddr)
68
-
l.Error("server error", "error", http.ListenAndServe(c.Server.ListenAddr, mux))