Where does IPFS keep the data in a Node.js application?

A couple of days ago I asked this question. It was about where does IPFS keep data in the browser, and one person responded that the data might get stored in the browser’s indexed db. The other answer was that browsers are not reliable for this kind of stuff. Both answers helped me. To summarize, I want to make a streaming/sharing music platform. I have decided to move my app from the browser to desktop with Electron, and ran ipfs-core there. From my knowledge, if I create an IPFS node in a Node.js environment with ipfs.create(), then add a song with ipfs.add(), the song will be stored in my local IPFS node, and if someone wants that song, they get it from me. But here are my questions:

  1. I create my node inside a Node.js environment, I don’t create it on my PC. Where is the data that i add stored? I know that if I create the node with the command line on my PC, I run “ipfs daemon” to activate it, and then if I add something to ipfs it stores the data in a ipfs designated folder in my file system. But if I create the node in my Node.js app, where does the data get stored?

  2. Let’s say that I finish my app and I distribute the executable to other people, and they don’t have an ipfs deamon running on their PC or anything like that. When they run the app (when the app opens I create the node with ipfs.create()), an ipfs node will be created inside the app? How does this work behind the scenes? And in this case with the executable, we are coming back to 1), where does the data get stored if a user just runs the executable.

  3. To test some things, I have added through my app, to ipfs with ipfs.add(), a simple buffer that resembles a simple text, I got back successfully the CID of the added content, and I kept the app running. Then I tried to retrieve the content with some public ipfs gateways like ipfs.io or dweb.link or others: I got a 504 gateway timeout. Then I tried to retrieve it locally with the ipfs daemon running on my machine, I got back the same thing: nothing. The “ipfs cat” command was stuck. This told me that the content I just added though my app is unreachable, even if the app was still running. Why is that? The whole point to my app is people to add songs to ipfs through it, and other people to retrieve them so they can play them.