Satis essentially creates a local mirror of packagist and it can download copies of all the packages you need to keep them cached.
The problem is that you have to specify all your dependencies up front. With several projects with ever-changing dependencies, keeping Satis up to date is a nightmare.
How I envisioned Satis working is that when I run composer install
on my project it would ask Satis for a copy of each of my dependencies. If Satis didn't already have it cached, it would query Packagist, download a copy, and then serve it to me. The next time I install it would be cached. If Pacakgist then goes down, or the project maintainer deletes his repo off Github, it won't matter because Satis has kept a copy.
Is there a way to make Satis behave this way? Or is there an alternative Packagist mirror that does this?