Files
oc-discovery/main.go

61 lines
1.8 KiB
Go
Raw Normal View History

2023-03-07 13:29:08 +01:00
package main
import (
2026-01-28 17:22:29 +01:00
"context"
"oc-discovery/conf"
"oc-discovery/daemons/dht"
"oc-discovery/daemons/pubsub"
2023-03-07 13:29:08 +01:00
_ "oc-discovery/routers"
2024-09-02 17:52:12 +02:00
oclib "cloud.o-forge.io/core/oc-lib"
2023-03-07 13:29:08 +01:00
beego "github.com/beego/beego/v2/server/web"
2025-01-15 16:32:12 +01:00
"github.com/beego/beego/v2/server/web/filter/cors"
2026-01-28 17:22:29 +01:00
pss "github.com/libp2p/go-libp2p-pubsub"
2023-03-07 13:29:08 +01:00
)
2024-09-02 17:52:12 +02:00
const appname = "oc-discovery"
2023-03-09 11:45:29 +01:00
2023-03-07 13:29:08 +01:00
func main() {
2026-01-28 17:22:29 +01:00
logger := oclib.GetLogger()
2024-09-02 17:52:12 +02:00
// Init the oc-lib
2025-01-15 16:32:12 +01:00
oclib.Init(appname)
2024-09-02 17:52:12 +02:00
// get the right config file
2025-01-15 16:32:12 +01:00
o := oclib.GetConfLoader()
2023-03-09 11:45:29 +01:00
2026-01-28 17:22:29 +01:00
conf.GetConfig().PSKPath = o.GetStringDefault("PSK_PATH", "./psk/psk")
conf.GetConfig().DHTEndpointPort = o.GetInt64Default("DHT_ENDPOINT_PORT", 4001)
conf.GetConfig().PublicKeyPath = o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.pem")
conf.GetConfig().PrivateKeyPath = o.GetStringDefault("PRIVATE_KEY_PATH", "./pem/private.pem")
conf.GetConfig().BootstrapAddresses = o.GetStringDefault("BOOTSTRAP_ADDRESSES", "")
2024-09-02 17:52:12 +02:00
2023-03-09 11:45:29 +01:00
// Normal beego init
2024-09-02 17:52:12 +02:00
beego.BConfig.AppName = appname
beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080)
2023-10-18 15:24:57 +02:00
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
2025-01-15 16:32:12 +01:00
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Authorization", "Content-Type"},
ExposeHeaders: []string{"Content-Length", "Content-Type"},
AllowCredentials: true,
}))
2026-01-28 17:22:29 +01:00
ctx := context.Background()
DHT, err := dht.Init(ctx)
if err == nil {
logger.Err(err)
} else {
ps, err := pss.NewGossipSub(
ctx, DHT.Host,
pss.WithMessageSigning(true),
pss.WithStrictSignatureVerification(true),
)
pubsub.Init(ctx, ps)
if err != nil {
logger.Err(err)
}
}
2023-03-07 13:29:08 +01:00
beego.Run()
}