Greetings. I am a developer hoping to delve into IPFS with a new project. I have read a lot of the docs and think I am heading down the correct rabbit hole, but I could use some affirmation on my thought process. I hope I have posted in the right forum and that these questions are sensible.
I generally would like to set up at least one (possibly three) nodes on Digital Ocean for my use. Based on my reading I think I will likely use GO-IPFS on Ubuntu VMs. I say three because I have read that retrieval will be faster, the closer my file is to the requestor. So my thought is the build a node on a NY server, a Europe server, and an Asia server with Digital Oceans tools. I would then pin any files for my projects onto all three nodes. Or is that totally unnecessary? Perhaps just one would suffice.
This is the general use case: I and a small group of friends make NFTs and would like to pin the content and metadata files without having the pay for a third-party pinning service (which I have been doing for too long because I haven’t yet just built my own - lol!). The files are mostly, JSON, images (PNG, JPG), and some single-page HTML websites with inline CSS and JS. I want the nodes to serve the content that I pin there and make that content available to the public, but I do not want my nodes to be abused with spam or junk. I am just not sure exactly what to build. I obviously want my content available to the public and am all about being part of the decentralization, but don’t want my nodes full of junk either. Is this possible and if so how do I set that up?
It seems like I need to build a pinning service that I can use to pin items (and perhaps one day offer up to a curated group of other people). I would like to be able to pin with JS code in addition to CLI so I have been looking at the API. I am thinking these three nodes (or maybe just one) with this pinning service should be behind a reverse proxy server with some kind of auth, so that I can cull the group that is able to pin. Does that sound right or is all of the overkill?
Another thing I am not really understanding is the gateway. Gateways are to resolve files locations, but I don’t think I need to build that since I typically offer up a url for a public gateway for retrieval of my content. And I understand that nodes have their own local gateway but I don’t want that open to the public. Its a little foggy here for me on whether I even need to bother with a gateway and if not how to I keep it from becoming some other problem for me.
Phew! Thanks for hanging in there to read this. I welcome any comments or feedback on these ideas. I am a competent developer but also do not know everything - especially in the IPFS space - Lol! So I could use any sound advice that anyone who has been down this road can offer. Please go easy on me if an of what I wrote doesn’t make sense. Lol!