feat: add nostr relay #4
5 changed files with 34 additions and 10 deletions
|
@ -17,3 +17,8 @@ GRANT ALL PRIVILEGES ON DATABASE wgk TO wgk;
|
||||||
ALTER DATABASE wgk OWNER TO wgk;
|
ALTER DATABASE wgk OWNER TO wgk;
|
||||||
EOF
|
EOF
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To build a release version, go to a tag and run:
|
||||||
|
```
|
||||||
|
go build -ldflags="-X main.Commit=$(git tag)"
|
||||||
|
```
|
||||||
|
|
|
@ -12,6 +12,11 @@ type (
|
||||||
MatrixIdentityServer string
|
MatrixIdentityServer string
|
||||||
MatrixMsc3575Address string
|
MatrixMsc3575Address string
|
||||||
MatrixWellKnownAddress string
|
MatrixWellKnownAddress string
|
||||||
|
RelayName string
|
||||||
|
RelayPubkey string
|
||||||
|
RelayDescription string
|
||||||
|
RelayIcon string
|
||||||
|
RelayContact string
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -23,6 +28,11 @@ func GetConfig() Config {
|
||||||
MatrixIdentityServer: getEnv("MATRIX_IDENTITY_SERVER", ""),
|
MatrixIdentityServer: getEnv("MATRIX_IDENTITY_SERVER", ""),
|
||||||
MatrixMsc3575Address: getEnv("MATRIX_MSC3575_ADDRESS", ""),
|
MatrixMsc3575Address: getEnv("MATRIX_MSC3575_ADDRESS", ""),
|
||||||
MatrixWellKnownAddress: getEnv("MATRIX_WELL_KNOWN_ADDRESS", ""),
|
MatrixWellKnownAddress: getEnv("MATRIX_WELL_KNOWN_ADDRESS", ""),
|
||||||
|
RelayName: getEnv("RELAY_NAME", ""),
|
||||||
|
RelayPubkey: getEnv("RELAY_PUBKEY", ""),
|
||||||
|
RelayDescription: getEnv("RELAY_DESCRIPTION", ""),
|
||||||
|
RelayIcon: getEnv("RELAY_ICON", ""),
|
||||||
|
RelayContact: getEnv("RELAY_CONTACT", ""),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
6
main.go
6
main.go
|
@ -11,6 +11,10 @@ import (
|
||||||
"github.com/fiatjaf/eventstore/postgresql"
|
"github.com/fiatjaf/eventstore/postgresql"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
Version string
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
l := gologger.Get(config.GetConfig().LogLevel).With().Str("context", "main").Logger()
|
l := gologger.Get(config.GetConfig().LogLevel).With().Str("context", "main").Logger()
|
||||||
db, _ := db.NewDB()
|
db, _ := db.NewDB()
|
||||||
|
@ -22,7 +26,7 @@ func main() {
|
||||||
l.Panic().Msgf("unable to connect to relay db: %s", err.Error())
|
l.Panic().Msgf("unable to connect to relay db: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
relay := nostr.NewRelay()
|
relay := nostr.NewRelay(Version)
|
||||||
|
|
||||||
// matrix endpoints
|
// matrix endpoints
|
||||||
l.Debug().Msg("enabling matrix well-known endpoints")
|
l.Debug().Msg("enabling matrix well-known endpoints")
|
||||||
|
|
|
@ -108,15 +108,15 @@ func GetNostrAddr(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewRelay() *khatru.Relay {
|
func NewRelay(version string) *khatru.Relay {
|
||||||
// relay configuration
|
// relay configuration
|
||||||
relay = khatru.NewRelay()
|
relay = khatru.NewRelay()
|
||||||
relay.Info.Name = "Devvul Nostr Relay"
|
relay.Info.Name = config.GetConfig().RelayName
|
||||||
relay.Info.PubKey = "ac7d66c7065e211b27759ffe2b333fde34e307cead79ce7c00f401d8fa6c08d1"
|
relay.Info.PubKey = config.GetConfig().RelayPubkey
|
||||||
relay.Info.Description = "nostr relay for devvul users"
|
relay.Info.Description = config.GetConfig().RelayDescription
|
||||||
relay.Info.Icon = "https://pfp.nostr.build/ee442b3c54143099fb483b5e3a6e1e41144df5c7457313a30586a082baa1babc.png"
|
relay.Info.Icon = config.GetConfig().RelayIcon
|
||||||
relay.Info.Version = "0.0.1"
|
relay.Info.Contact = config.GetConfig().RelayContact
|
||||||
relay.Info.Contact = "asara@devvul.com"
|
relay.Info.Version = version
|
||||||
relay.Info.Software = "https://git.devvul.com/asara/well-goknown"
|
relay.Info.Software = "https://git.devvul.com/asara/well-goknown"
|
||||||
// contact lists
|
// contact lists
|
||||||
relay.Info.SupportedNIPs = append(relay.Info.SupportedNIPs, 2)
|
relay.Info.SupportedNIPs = append(relay.Info.SupportedNIPs, 2)
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
|
export DATABASE_URL="postgres://user:password@127.0.0.1:5432/db?sslmode=disable"
|
||||||
export LISTEN_ADDR=":8090"
|
export LISTEN_ADDR=":8090"
|
||||||
export LOG_LEVEL=0
|
export LOG_LEVEL=0
|
||||||
export MATRIX_WELL_KNOWN_ADDRESS=matrix.example.com
|
|
||||||
export MATRIX_MSC3575_ADDRESS=https://matrix.example.com
|
export MATRIX_MSC3575_ADDRESS=https://matrix.example.com
|
||||||
export DATABASE_URL="postgres://user:password@127.0.0.1:5432/db?sslmode=disable"
|
export MATRIX_WELL_KNOWN_ADDRESS=matrix.example.com
|
||||||
|
export RELAY_CONTACT="matrix:u/asara:devvul.com"
|
||||||
|
export RELAY_DESCRIPTION="nostr relay running via git.devvul.com/asara/well-goknown"
|
||||||
|
export RELAY_ICON=""
|
||||||
|
export RELAY_NAME="Nostr Relay"
|
||||||
|
export RELAY_PUBKEY=""
|
||||||
|
|
Loading…
Reference in a new issue