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.
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
origen
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.
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
readsobre 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
latestnunca 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 audittambién funciona contra ArtiFerris; los nombres y versiones auditados se envían entonces aregistry.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.
Evalúe ArtiFerris y luego despliegue su propia instancia.
La instancia pública permite descubrir el producto. Su instancia conserva sus paquetes.
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