ArtiFerrisRegistros

Dos registros, una consola

ArtiFerris habla el protocolo del registro npm y el de Docker/OCI: npm, pnpm, yarn, docker y podman lo usan como su registro habitual. Cada repositorio contiene paquetes npm o imágenes Docker, nunca ambos.

Un grupo, dos miembros

El .npmrc de un proyecto apunta a un grupo. El grupo consulta a sus miembros en el orden que usted fija, y responde el primero que contiene el paquete. Active el interruptor para ver qué cambia una segunda petición.

El registro npm en la documentación

.npmrc
registry=https://acme.artiferris.pro/npm/npm-all/
//acme.artiferris.pro/npm/npm-all/:_authToken=<jeton>

# then, in the project
npm install left-pad

Paquete servido por npmjs-proxy, desde el origen

npm-all

npm-hostedalojado, no lo tiene
npmjs-proxyproxy, ha respondido

origen

registry.npmjs.orgha respondido

npm-hosted no contiene left-pad, así que el grupo pasa al siguiente miembro. El proxy obtiene el paquete de registry.npmjs.org, lo conserva y lo sirve.

El registro Docker

La contraseña de docker login es un token de API. Cada push lanza un análisis Trivy de la imagen, cuyos resultados aparecen en su página.

El registro Docker en la documentación

Iniciar sesión, subir y descargar una imagen
echo <jeton> | docker login acme.artiferris.pro -u camille --password-stdin
docker tag api:1.4.0 acme.artiferris.pro/images/api:1.4.0
docker push acme.artiferris.pro/images/api:1.4.0
docker pull acme.artiferris.pro/images/api:1.4.0

Las reglas de un repositorio

Lo que cada repositorio conserva, rechaza y comprueba.

Tres tipos de repositorio
Alojado para sus propios paquetes, proxy para una caché delante de un registro de origen, grupo para varios repositorios del mismo formato tras una sola dirección. Leer a través de un grupo exige read sobre cada uno de sus miembros.
Una cuota por repositorio
El espacio que el repositorio puede ocupar. Una publicación que la superaría se rechaza.
Una retención por repositorio
Conservar solo las N últimas versiones o etiquetas. La purga pasa cada 6 horas, y latest nunca se purga. Volver a publicar una versión npm retirada se rechaza.
Dependencias auditadas
En cada publicación, ArtiFerris audita las dependencias del paquete. npm audit también funciona contra ArtiFerris; los nombres y versiones auditados se envían entonces a registry.npmjs.org.
Imágenes analizadas
Trivy, incluido en la imagen de ArtiFerris, analiza cada imagen subida. Un análisis se puede relanzar a mano desde la página de la imagen.
Repositorios públicos
Un repositorio público se lee sin cuenta y aparece en el catálogo público. Las lecturas anónimas tienen un presupuesto por cliente y por minuto, 1200 por defecto.

Los repositorios en la documentación

Evalúe ArtiFerris y luego despliegue su propia instancia.

La instancia pública permite descubrir el producto. Su instancia conserva sus paquetes.

Arrancar la pila con Docker Compose
git clone https://github.com/Masmarino/ArtiFerris.git
cd ArtiFerris
cp .env.example .env
# set POSTGRES_PASSWORD, JWT_SECRET, SECRETS_ENCRYPTION_KEY, PUBLIC_URL and the first admin in .env
docker compose up -d --build