Do I need a static IP to run an IPFS server to mirror data?

I’d like to run an IPFS server on Windows 10 to get copies of data to help distribute it and decrease network response time. I did a test of grabbing the Corbett Report website on IPFS and it was really slow.

By “run an IPFS server” I mean I want to not just make my info available, I want to mirror other files other people have to help the network as a whole. Please correct me if I use the wrong terms.

Question 1: I have a dynamic IP as part of my home internet package. Can I still mirror data for distribution to help out?

Question 2: Can I easily add an external 4TB USB drive after I install IPFS? Would that be easy for a beginner? I know computers but not networking that well.

Question 3: Is there a minimum amount of space I have to mirror (that is not my own data) to run an IPFS server?

Thank you.

enable auto relay

As you are using dynamic IP behind NAT, maybe your nodes are not reachable, and a relay is needed. The method is to configure EnableAutoRelay to true.

Swarm.EnableAutoRelay = true;

But it seems that it doesn’t work that well, currently.
Lastest version have some improvement, but I have not test it.

In one test it took maybe 30 minutes for me to get a public relay address to start getting advertised for my node. It looks like there might be some AutoNat/AutoRelay improvements coming in v0.4.20 , so perhaps this experimental feature will see some improvement in the next release.
refer: Getting auto-relay to work 2019/04

config directory

First, you need to set the $IPFS_PATH environment variable to your external disk:

ipfs uses a repository in the local file system. By default, the repo is
located at ~/.ipfs. To change the repo location, set the $IPFS_PATH
environment variable:

export IPFS_PATH=/path/to/ipfsrepo

you can get this info with ipfs --help command.

config max storage

Second, you should configure the Datastore.StorageMax parameter, setting the upper limit for the size of the ipfs repository’s datastore.

The full description about configuration:

configuration file

The configuration file is located in $IPFS_PATH/config, which is default to ~/.ipfs/config, if you have not set $IPFS_PATH environment variable.

It is in json format.

Such as you need to set Swarm.EnableAutoRelay = true, you can add "EnableAutoRelay": true in the end.

  "Swarm": {
    "AddrFilters": null,
    "ConnMgr": {
      "GracePeriod": "20s",
      "HighWater": 900,
      "LowWater": 600,
      "Type": "basic"
    "DisableBandwidthMetrics": false,
    "DisableNatPortMap": false,
    "DisableRelay": false,
    "EnableRelayHop": false,
    "EnableAutoRelay": true