package main import ( "net/http" "git.devvul.com/asara/gologger" "git.devvul.com/asara/well-goknown/alby" "git.devvul.com/asara/well-goknown/config" "git.devvul.com/asara/well-goknown/db" "git.devvul.com/asara/well-goknown/matrix" "git.devvul.com/asara/well-goknown/nostr" "github.com/fiatjaf/eventstore/postgresql" ) var ( version string ) func main() { l := gologger.Get(config.GetConfig().LogLevel).With().Caller().Logger() l.Debug().Msgf("starting well-goknown v%s", version) db, _ := db.NewDB() defer db.Close() nostr.DB = db nostr.RelayDb = postgresql.PostgresBackend{DatabaseURL: config.GetConfig().DbUrl} if err := nostr.RelayDb.Init(); err != nil { l.Panic().Msgf("unable to connect to relay db: %s", err.Error()) } relay := nostr.NewRelay(version) alby.DB = db // matrix endpoints l.Debug().Msg("enabling matrix well-known endpoints") http.HandleFunc("/.well-known/matrix/server", matrix.MatrixServer) http.HandleFunc("/.well-known/matrix/client", matrix.MatrixClient) // nostr endpoints l.Debug().Msg("enabling nostr well-known endpoints") http.HandleFunc("/.well-known/nostr.json", nostr.GetNostrAddr) http.Handle("/relay", relay) // lnurlp endpoint l.Debug().Msg("enabling lnurlp well-known endpoint") http.HandleFunc("/.well-known/lnurlp/{name}", alby.GetLnurlp) http.HandleFunc("/.well-known/lnurlp/{name}/callback", alby.GetLnurlpCallback) // start server port := config.GetConfig().ListenAddr l.Info().Msgf("starting server on %s", port) http.ListenAndServe(port, nil) }