You can use the MiKTeX Setup Utility to set up a local package repository:

miktexsetup --verbose --local-package-repository=/PATH/TO/REPOSITORY --package-set=complete download

In order to keep the repository up-to-date, you can run the command periodically (via a scheduled task). The utility is smart enough to download only updated packages.

To use the local package repository, you have to select in in MiKTeX Console.