Hello! I want to make a serverless video hosting. I know that IPFS is not a free file hosting, so I have a Go-IPFS node with large disk and good bandwidth. However, it doesn’t have static IP and it’s behind NAT (port forwarding with UPnP is possible). Also I don’t want to abuse public gateways. Is it possible to create web application with good user experience using JS-IPFS in such environment?
I am not sure how often go-ipfs checks if its public ip changed but if you restart ipfs after your public ip changed its okay. There is difference how fast your IP changes, with most providers it does only if connection goes down. I seen such cases and on DSL its about once per week. Setup monitoring.
This guy streams own videos from ipfs http://cahlen.org/ and with ipfs browser companion connected to go-ipfs external node performance is good after bit slow start.
I did few experiments with ipfs only video streaming (no http gateway for videos, people needed install go-ipfs to view movies) and I learned that:
- run in dhtclient mode. Keep other nodes out to save you CPU.
- do not run one big ipfs node. smallers are much better.
- Use ipfs nodes around world for helping seeding new content. Rent pin services for 3 days. You do not pay for bw, just for GB storage, its very cheap.
- ipfs cuts down bandwith requirements for streaming A LOT.
- dont do full HD. 720p max.
- HLS helps to get smooth user experience but its not must have. Manual bitrate switch 720/480/360 is enough.
- Remove or cycle old content. Content with less concurent viewers will have not have optimal experience.
- people dont watch entire movies. it leads to movie starts fast because lot of nodes in ipfs have it then slow downs. No problem with music videos.
Thank you for reply! As I understand it, your recommendations are client-specific. The problem is that I want to deliver video to those who don’t have an IPFS Companion and Go-IPFS node. I want to include JS-IPFS node in web page. Docs say that this requires running libp2p signalling/rendezvous server because DHT is not available yet. Is it possible without static IP?
you could try a dynamic DNS account with plenty of free services. or dyn.com not sure what they charge.
I know about dynamic DNS. But is it possible to solve the problem without DNS or static IP at all? I don’t want to use such centralized technologies.
here this is even better was setting up something similar myself you need to secure your own. No-IP Free - Dynamic DNS - Create a Free DDNS Account Now - No-IP
yes its still Centralized until someone wants to use multiple ips in different data centers in aa cluster.