By default, Guix downloads substitutes from hydra (its build farm). If the pre-build binary is not available, Guix tries to download the source from its caches or upstream. But things won’t always be that easy. There are some cases that guix couldn’t carry out the download by itself. For instance, you might need a http proxy to download some source packages from upstream website, or you just happen to have the tarball and don’t want Guix to download it from the internet again.
With the introduction of fedora 25, I need to install the nvidia driver with negativo17’s repo. But sadly it doesn’t have any mirror around me so the connection always fail and the download speed is what we call a catastrophe. Creating a local repo should be helpful and doing it with dnf is mostly the same with yum. But the procedure is quite straightforward.