ArtiFerrisProducto

Lo que ArtiFerris hace hoy

Todo lo que figura en esta página existe hoy. Lo que está previsto se encuentra en la hoja de ruta.

La interfaz de la aplicación existe en cinco idiomas; su documentación está en francés.

Repositorios

Repositorios npm y Docker, ordenados por organización o bajo su propio nombre.

  • Tres tipos por formato: alojado, proxy delante de un registro de origen, y grupo de varios repositorios tras una sola dirección
  • Permisos read, write y admin, concedidos usuario por usuario
  • Una cuota de almacenamiento y una retención por repositorio; latest nunca se purga
  • Repositorios públicos, legibles sin cuenta, o privados
  • Un repositorio personal bajo /@usuario, junto a los repositorios de la organización

Paquetes e imágenes

Una página por paquete npm y por imagen Docker.

  • npm: publish, install, unpublish y dist-tags, con npm, pnpm o yarn
  • Docker/OCI: push, pull y borrado de manifiestos, con docker o podman
  • El README de un paquete npm, convertido y saneado en el servidor, y su comando de instalación
  • El tamaño de cada etiqueta de una imagen, y las descargas de los últimos siete días
  • Volver a publicar una versión npm retirada se rechaza

Análisis de artefactos

Lo que contienen los paquetes y las imágenes que distribuye.

  • Auditoría de las dependencias de un paquete npm en cada publicación
  • Análisis Trivy de cada imagen Docker subida, que se puede relanzar a mano
  • Los resultados en la página del paquete o de la imagen, con su gravedad

Organizaciones

Varios equipos o varios clientes en una misma instancia.

  • Una organización por subdominio, con sus repositorios y sus usuarios
  • Su marca: logotipo y favicon
  • Su proveedor de identidad: cuentas locales, LDAP o Active Directory, u OIDC
  • Administradores de organización que solo actúan sobre la suya; una organización pública por defecto para una instancia de una sola organización

Catálogo público

Dé acceso a paquetes a personas que no tienen cuenta.

  • Un catálogo por formato, una búsqueda que tolera las erratas y sugerencias mientras se escribe
  • Los perfiles /@usuario y /o/organizacion, y la página de cada paquete público
  • Indexación por los buscadores, desactivada por defecto y ajustable por organización

Documentación

Integrada en la aplicación, en la dirección /docs.

  • Abierta a todos, con sesión o sin ella
  • Primeros pasos, uso (repositorios, npm, Docker, cuenta y tokens, catálogo público), administración y API pública
  • En francés, con búsqueda

Cuentas, administración, idiomas y despliegue

Cuentas y acceso

La autenticación en dos pasos es obligatoria.

  • Obligatoria para todas las cuentas: aplicación de autenticación (TOTP) o clave de acceso, y códigos de respaldo
  • Cuentas locales, LDAP o Active Directory, y OIDC
  • Invitaciones por correo: el administrador solo introduce la dirección, la persona invitada elige su nombre de usuario
  • Tokens de API personales, que los administradores pueden listar y revocar

Administración

Lo que ve un administrador.

  • Un panel, métricas de uso y una página de estado
  • Un registro de auditoría y un registro de seguridad
  • Los usuarios, el restablecimiento de su contraseña o de su autenticación en dos pasos, y el SMTP con un correo de prueba
  • La exportación y la importación de la configuración

Idiomas

La interfaz en cinco idiomas.

  • Francés, inglés, español, italiano y alemán; el idioma de la cuenta prevalece sobre el del navegador
  • Los correos y los títulos de las páginas públicas siguen el idioma del lector

Aspectos técnicos

Lo que despliega y lo que necesita.

  • Un único binario Rust (Axum) sirve la API, los dos registros y la aplicación web Angular
  • PostgreSQL 18 para los datos; los archivos y los blobs en un volumen
  • Docker Compose o un chart de Helm para Kubernetes; imagen masmarino/artiferris, Trivy incluido
  • Una arquitectura hexagonal, repartida en seis crates de Cargo

Lo que aún no está disponible

Todo esto figura en la hoja de ruta. Nada de ello existe hoy.

Ver la hoja de ruta

  • Más formatos: Maven y Gradle, PyPI, NuGet, Cargo, Go, Helm y los repositorios en bruto
  • Almacenamiento de objetos compatible con S3, para ejecutar varias réplicas: hoy, un volumen y una réplica
  • La alta disponibilidad y la replicación geográfica
  • SAML
  • La firma y la procedencia de los paquetes (Sigstore, npm provenance)

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