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)
15
16func main() {
17 ctx := context.Background()
18 // ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
19 // defer stop()
20
21 slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, nil)))
22
23 c, err := config.Load(ctx)
24 if err != nil {
25 log.Fatal(err)
26 }
27
28 if c.Server.Dev {
29 log.Println("running in dev mode, signature verification is disabled")
30 }
31
32 db, err := db.Setup(c.Server.DBPath)
33 if err != nil {
34 log.Fatalf("failed to setup db: %s", err)
35 }
36
37 mux, err := knotserver.Setup(ctx, c, db)
38 if err != nil {
39 log.Fatal(err)
40 }
41
42 addr := fmt.Sprintf("%s:%d", c.Server.Host, c.Server.Port)
43
44 log.Println("starting main server on", addr)
45 log.Fatal(http.ListenAndServe(addr, mux))
46}