After the past few weeks of building it's time to push this prototype out and get some feedback from users — Announcing Satellite CDN: Scalable media hosting for the nostr ecosystem! - Upload video and other large files, up to 5 GB each - Simple flat-rate pricing, buy storage with sats - Fast, free and unlimited data transfer - Integrated NIP-94 censorship resistance - Developer-friendly API I feel like a "native" nostr solution for hosting and streaming large videos could really help with adoption and I'm curious about how Satellite can support specific use cases. API docs coming soon.

Replies (43)

Trying to test it. Tx fails when I try to pay the invoice. Zeus gives me an inbound capacity error. By curiosity, where is the media stored? Am I indirectly funding Amazon? 🤣
Upload was fast. I like the interface so far, however I have no idea what my storage cap is, only what I have used.
It will automatically send you a message when you have less than 10 days remaining so you can top it up (if you want to) otherwise you can let it expire and after an additional 10 day grace period the storage space gets recycled.
There is no storage cap! There is only "time remaining". You pay for storage in terms of "GB Months". So, for example, if you buy 1 GB Month and you upload 1 GB, your time will run out after a month. If you upload half a gig, your time will last for 2 months. If you upload 100MB (1/10 GB) then you time will last for 10 months. You can top up your storage at any time (or delete stuff to make it last longer!)
Ok, got it. Interesting model! I am trying to see the notes from my profile from within Satellite and it is really taking a loooong time to fetch my notes. (Safari, iOS)
Ok, can finally see this note in Satellite. Video took a loooong time to load. Bullet fast upload, slooow download.
read could be improved - I’d simply up the words a bit - keeping them really clesr -
Correct. The link file is the SHA256 hash + extension, just like nostr.build. There's no public "list" function, so unless someone already knows the hash, it's private unless you share the link.
There’s no good solution when it comes to centralized providers. Fortunately NIP-94 + BitTorrent mitigates this issue, and in fact my next step with this project is to implement a “fallback to webtorrent” capability when viewing videos on Satellite (the current implementation “torrentifys” every file that’s uploaded). Cloudflare R2 is actually great from an economic standpoint because they don’t charge for data transfer - only storage (unlike S3). That’s what’s makes it possible to have flat rate per-GB-stored-per-month pricing at all. It could never work if a person uploads a video that goes viral and now they have a 10,000 dollar hosting bill :D
Very cool and will be a positive for the space. Any chance of using NIP07 or lightning Auth rather then entering a secret key? I’ll generate a new one and I just don’t like the risk of putting in my Nostr nsec in there for authentication. I am doing this from mobile maybe it’s different on desktop?
It’s priced at the BTC equivalent (live exchange rate at time of payment) of $0.05 USD per GB per month. So it costs 5 cents to store 1 GB for 1 month. Or 60 cents to store 1 GB for one year. It’s like one of those pay as you go phones - there’s no automatically recurring charges. You just top it up with sats whenever you need to keep your balance positive. And you only get charged for whatever is currently hosted, so if you delete stuff that you don’t need to be hosted anymore that will extend your credit. Data transfer is free. The reason it works like this is because it made the most sense to replicate the pricing structure of the underlying object storage (Cloudflare R2)
This is a really nice feature giving the user control of their media. I will continue to use 💯. Would be nice to integrate into Damus as a default selection for uploads, if this is even possible #[3]​ 🤔
Default avatar
nobody 2 years ago
I’ve been looking at R2. I’ll be a customer starting tomorrow.
If this were a default selection it would, for the sake of UX, need to come with some way of handling the fact that this is a paid service. Also clients would need to handle signing an NIP-42 auth event because that's how Satellite authenticates each uploads (that's a big difference from nostr.build) Otherwise it should be no problem to integrate with other clients. The server handles all the necessary NIP-94 hashing and returns those params to the client (sha256 hash, infohash, etc) which the client can *optionally* verify and sign. Working right now to get the API docs ready.
Default avatar
nobody 2 years ago
Been using it off and on today, and it’s nice. I’d like to be able to upload folders and organize into them at some point, but hey, it’s a beta ❤️