---
# System prepended metadata

title: Satis Refactoring

---

# 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
:::