summaryrefslogtreecommitdiffstats
path: root/cmd/relay/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/relay/main.go')
-rw-r--r--cmd/relay/main.go23
1 files changed, 19 insertions, 4 deletions
diff --git a/cmd/relay/main.go b/cmd/relay/main.go
index 56668fc..a7daa50 100644
--- a/cmd/relay/main.go
+++ b/cmd/relay/main.go
@@ -27,9 +27,10 @@ import (
27 27
28func main() { 28func main() {
29 var ( 29 var (
30 grpcAddr = flag.String("grpc-addr", ":50051", "gRPC server address") 30 grpcAddr = flag.String("grpc-addr", ":50051", "gRPC server address")
31 wsAddr = flag.String("ws-addr", ":8080", "WebSocket server address") 31 wsAddr = flag.String("ws-addr", ":8080", "WebSocket server address")
32 dbPath = flag.String("db", "relay.db", "SQLite database path") 32 dbPath = flag.String("db", "relay.db", "SQLite database path")
33 publicURL = flag.String("public-url", "", "Public URL for relay (e.g., nostr-grpc.x.bdw.to)")
33 ) 34 )
34 flag.Parse() 35 flag.Parse()
35 36
@@ -51,7 +52,21 @@ func main() {
51 mux.Handle(path, handler) 52 mux.Handle(path, handler)
52 53
53 wsHandler := wshandler.NewHandler(store, subManager) 54 wsHandler := wshandler.NewHandler(store, subManager)
54 wsHandler.SetIndexData(*grpcAddr, *wsAddr, *wsAddr) 55
56 // Set public URLs for index page
57 var grpcDisplay, httpDisplay, wsDisplay string
58 if *publicURL != "" {
59 // Use public URLs when behind reverse proxy
60 grpcDisplay = *publicURL + ":50051" // gRPC typically on different port
61 httpDisplay = "https://" + *publicURL
62 wsDisplay = "wss://" + *publicURL
63 } else {
64 // Use local addresses for development
65 grpcDisplay = *grpcAddr
66 httpDisplay = *wsAddr
67 wsDisplay = *wsAddr
68 }
69 wsHandler.SetIndexData(grpcDisplay, httpDisplay, wsDisplay)
55 mux.Handle("/", wsHandler) 70 mux.Handle("/", wsHandler)
56 71
57 grpcLis, err := net.Listen("tcp", *grpcAddr) 72 grpcLis, err := net.Listen("tcp", *grpcAddr)