If you are accessing the cloud in the same way (always using same components - and not bypass any device) there is no good reason for different speed.
I tried uploading 300MB ISO file to your cloud - the speed a was 20-30 MBit/s which is about 30% of my possible upload and 15% of your DL…
but I have to admit I have bad connection to you… tracert time out after 13 hops but the last hops already had >30ms response time…looks like *.sfr.net is the most bad part of the connection…
from such bad response times I would say transfer speed is not such bad…
your docker-compose looks good, the only thing I’m wondering - you mount multiple volumes into container do you happen to user “external storage” app? this is known to cause system slowdown in some situations
but if this would be a reason it should be bad from internal network as well…