diff --git a/.env.example b/.env.example index 9a017b3ac..50c3bf01c 100644 --- a/.env.example +++ b/.env.example @@ -71,6 +71,8 @@ SLACK_SIGNING_SECRET="" MASTODON_URL="https://mastodon.social" MASTODON_CLIENT_ID="" MASTODON_CLIENT_SECRET="" +# These are the default values, override or extend with your own relays +NOSTR_RELAYS_OVERRIDE="wss://relay.primal.net,wss://relay.damus.io,wss://relay.snort.social,wss://nostr.wine,wss://nos.lol" # Misc Settings OPENAI_API_KEY="" diff --git a/libraries/nestjs-libraries/src/integrations/social/nostr.provider.ts b/libraries/nestjs-libraries/src/integrations/social/nostr.provider.ts index ccfd2871e..1aa2a8477 100644 --- a/libraries/nestjs-libraries/src/integrations/social/nostr.provider.ts +++ b/libraries/nestjs-libraries/src/integrations/social/nostr.provider.ts @@ -14,15 +14,23 @@ import { AuthService } from '@gitroom/helpers/auth/auth.service'; // @ts-ignore global.WebSocket = WebSocket; -const list = [ +const defaultRelays: string[] = [ 'wss://relay.primal.net', 'wss://relay.damus.io', 'wss://relay.snort.social', 'wss://nostr.wine', 'wss://nos.lol', - 'wss://relay.primal.net', ]; +const relaysOverrideEnv = process.env.NOSTR_RELAYS_OVERRIDE; +let list: string[]; + +if (relaysOverrideEnv) { + list = Array.from(new Set(relaysOverrideEnv.split(',').map((url: string) => url.trim()).filter((url: string) => url))); +} else { + list = Array.from(new Set(defaultRelays)); // Ensure default list is also unique +} + export class NostrProvider extends SocialAbstract implements SocialProvider { override maxConcurrentJob = 5; // Nostr relays typically have generous limits identifier = 'nostr';