Looking for suggestions or guidance for testing IPNS pinning service


I am looking for any suggestions or guidance for how to make this scenario possible? Without a ton of experience in this, I feel like my solutions will not be the best practice or intuitive.


I am working on an IPNS pinning service and I have Codecov set up finally. I would consider the repo at an MVP stage. There are still some things to work on, but I’ll do that along with the test framework.
So I want to test all the functions with the integrated Go framework as opposed to just having bash scripts for example requests. I want to get that Codecov percentage up from 0% to 80-90%+.

What I have done so far

I set up two docker containers, one with an IPFS node and one of my API, but doing a curl request like curl --request POST http://localhost:8082/addFile -F "file=@Hello" does not add the file to IPFS and says:

{"error":{"Op":"Post","URL":"http://localhost:5001/api/v0/add?","Err":{"Op":"dial","Net":"tcp","Source":null,"Addr":{"IP":"","Port":5001,"Zone":""},"Err":{"Syscall":"connect","Err":111}}},"message":"Error in addToIPFS"}

So my conlcusion is that the docker container running the API server can’t see the docker container running the IPFS node. Maybe it was something in my set up, but also I may be missing some important information.

I found online that one way to make a gateway, which is roughly what I am doing, is to have a nginx reverse proxy server and some other stuff. But that would add much more complexity at this stage, that I am willing to implement, but I also don’t know if its over engineering the problem.

Expected result

I want to emulate having a remote API server and IPFS Node working together, so that I, the client, can make requests to it. Similar to the example requests linked above :point_up_2:. By emulating, I mean reproducing that environment like if its remote, but on my own machine. This is so that I can develop a test framework to emulate a real world scneario, and have an accurate code coverage (Codecov) evaluation on my repo.

Also I feel like after this stage I would be that much closer to accepting beta users!