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

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 - #8 by leerspace 2019/04