{"id":3010,"date":"2025-07-17T18:33:52","date_gmt":"2025-07-17T18:33:52","guid":{"rendered":"https:\/\/mar101xy.com\/blog\/?p=3010"},"modified":"2025-07-17T18:33:53","modified_gmt":"2025-07-17T18:33:53","slug":"self-hosting-nostr-live-stream","status":"publish","type":"post","link":"https:\/\/mar101xy.com\/blog\/?p=3010","title":{"rendered":"Self Hosting Nostr Live Stream"},"content":{"rendered":"\n<p>When Zap Stream went down for a couple days, I got bored and vibe-coded my own livestream page directly on my website.<\/p>\n\n\n\n<p>I set up my server to stream using the Nostr protocol NIP-53 event 30311, completely bypassing Zap Stream\u2019s infrastructure. The only thing missing now is a live chat that fully runs on Nostr.<\/p>\n\n\n\n<p>According to ChatGPT, it could help me build that \u2014 with proper Nostr login using browser extensions, so any npub could chat and zap me right from my site.<\/p>\n\n\n\n<p>What blew my mind was that during the DDoS attack on Zap Stream, my stream still showed up and worked \u2014 the only one live.<\/p>\n\n\n\n<p>Should I get ChatGPT to help me take it all the way? A fully self-hosted Nostr-powered stream and Nostr chat chat setup directly on my website?<\/p>\n\n\n\n<p>here&#8217;s a screenshot of our work. The chat sidebar for now is just php based with no zapping possible.<\/p>\n\n\n\n<!--more-->\n\n\n\n<br>\n<a href=\"https:\/\/media.letsfo.com\/image\/mar-live-nostr.VPa2\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/media.letsfo.com\/images\/2025\/07\/17\/mar-live-nostr.webp\" alt=\"mar live nostr\" border=\"0\"><\/a>\n<br>\n<br>\n\n\n\n<p>\n    Note ID:\n    <br>\n    <code id=\"nostrNote\" style=\"word-wrap: break-word; white-space: normal;\">note1fa6fcr2jap04nwv0tsp7hukca9hmz07x3r92llxmx5ktvj4z9gcspvye4d<\/code>\n    <br>\n    <button onclick=\"copyToClipboard('nostrNote')\">Copy<\/button>\n<\/p>\n\n\n\n<a href=\"https:\/\/btcpay.letsfo.com\/apps\/cyXxp1RKxQnN8bpQJjvwSEHjXbP\/pos\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/mar101xy.com\/images\/zapmar.png\"><\/a>Post#440\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>When Zap Stream went down for a couple days, I got bored and vibe-coded my own livestream page directly on my website. I set up<\/p>\n","protected":false},"author":1,"featured_media":3012,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.letsfo.com\/images\/2025\/07\/17\/mar-live-nostr.webp","fifu_image_alt":"","footnotes":""},"categories":[132],"tags":[543,105,454],"class_list":["post-3010","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-social-media","tag-nip53","tag-nostr","tag-streaming"],"_links":{"self":[{"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3010"}],"version-history":[{"count":1,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3010\/revisions"}],"predecessor-version":[{"id":3011,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3010\/revisions\/3011"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/3012"}],"wp:attachment":[{"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3010"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3010"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mar101xy.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}