# Context We want to upgrade our existing Satis repository. We currently use it to proxy packagist.org as a public proxy and to host some internal packages. Due to the very long time it takes to reindex all packages (~30min), we worked around Satis by using GitLab to host some packages (Centrifuge, Heap, Tycoon among others). It works well but has a limitation: it can only store the latest revision of a branch: https://gitlab.com/gitlab-org/gitlab/-/issues/288033 # Options ## Update Satis https://github.com/composer/satis We need to evaluate if we can use "partial updates" to reduce build time when building a single dependency: https://getcomposer.org/doc/articles/handling-private-packages.md#partial-updates We would probably need to use a webhook to trigger the partial update: https://github.com/adanlobato/satis-webhook :::success **Pros** * Tool we already know * Popular & Supported * Free ::: :::danger **Cons:** * Long build times, could be mitigated by using partial updates? ::: ## Use Private Packagist https://packagist.com/ :::success **Pros** * Written by Composer authors * Many features * Blazing fast build times ::: :::danger **Cons:** * Expensive to use or self-host ::: ## Repman https://repman.io/ :::success **Pros** * Free * GitLab integration * API support ::: :::danger **Cons:** * Relatively new ::: ## Packeton https://github.com/vtsykun/packeton :::success **Pros** * Free * Packagist fork ::: :::danger **Cons:** * Relatively new ::: ## Sonatype Nexus Repository OSS https://www.sonatype.com/products/sonatype-nexus-oss-download https://github.com/sonatype-nexus-community/nexus-repository-composer/blob/master/docs/COMPOSER_USER_DOCUMENTATION.md :::success **Pros** * Free * Can replace Satis, Verdaccio & Harbor ::: :::danger **Cons:** * Heavy * "Experimental" Composer support :::