ArtiFerrisProdukt

Was ArtiFerris heute kann

Alles auf dieser Seite existiert heute. Was geplant ist, steht in der Roadmap.

Die Oberfläche der Anwendung gibt es in fünf Sprachen; ihre Dokumentation ist auf Französisch.

Repositories

npm- und Docker-Repositories, nach Organisation oder unter Ihrem eigenen Namen abgelegt.

  • Drei Typen pro Format: gehostet, Proxy vor einer Upstream-Registry und Gruppe mehrerer Repositories hinter einer Adresse
  • Rechte read, write und admin, Benutzer für Benutzer vergeben
  • Ein Speicherkontingent und eine Aufbewahrung pro Repository; latest wird nie gelöscht
  • Öffentliche Repositories, ohne Konto lesbar, oder private
  • Ein persönliches Repository unter /@benutzer, neben den Repositories der Organisation

Pakete und Images

Eine Seite pro npm-Paket und pro Docker-Image.

  • npm: publish, install, unpublish und dist-tags, mit npm, pnpm oder yarn
  • Docker/OCI: push, pull und Löschen von Manifesten, mit docker oder podman
  • Das README eines npm-Pakets, serverseitig umgewandelt und bereinigt, und sein Installationsbefehl
  • Die Größe jedes Tags eines Images und die Downloads der letzten sieben Tage
  • Eine zurückgezogene npm-Version erneut zu veröffentlichen wird abgelehnt

Analyse der Artefakte

Was die Pakete und Images enthalten, die Sie verteilen.

  • Abhängigkeitsprüfung eines npm-Pakets bei jeder Veröffentlichung
  • Trivy-Scan jedes gepushten Docker-Images, von Hand neu startbar
  • Die Ergebnisse auf der Seite des Pakets oder Images, mit ihrem Schweregrad

Organisationen

Mehrere Teams oder mehrere Kunden auf derselben Instanz.

  • Eine Organisation pro Subdomain, mit ihren Repositories und Benutzern
  • Ihr Branding: Logo und Favicon
  • Ihr Identitätsanbieter: lokale Konten, LDAP oder Active Directory oder OIDC
  • Organisationsadministratoren, die nur in ihrer eigenen handeln; eine öffentliche Standardorganisation für eine Instanz mit einer Organisation

Öffentlicher Katalog

Personen ohne Konto Zugang zu Paketen geben.

  • Ein Katalog pro Format, eine Suche, die Tippfehler verzeiht, und Vorschläge während der Eingabe
  • Die Profile /@benutzer und /o/organisation und die Seite jedes öffentlichen Pakets
  • Indexierung durch Suchmaschinen, standardmäßig aus und pro Organisation einstellbar

Dokumentation

In die Anwendung integriert, unter /docs.

  • Für alle zugänglich, angemeldet oder nicht
  • Einstieg, Nutzung (Repositories, npm, Docker, Konto und Tokens, öffentlicher Katalog), Administration und öffentliche API
  • Auf Französisch, mit Suche

Konten, Administration, Sprachen und Deployment

Konten und Zugang

Die Zwei-Faktor-Authentifizierung ist verpflichtend.

  • Verpflichtend für jedes Konto: Authenticator-App (TOTP) oder Passkey, und Backup-Codes
  • Lokale Konten, LDAP oder Active Directory und OIDC
  • Einladungen per E-Mail: Der Administrator gibt nur die Adresse ein, die eingeladene Person wählt ihren Benutzernamen
  • Persönliche API-Tokens, die Administratoren auflisten und widerrufen können

Administration

Was ein Administrator sieht.

  • Ein Dashboard, Nutzungsmetriken und eine Statusseite
  • Ein Audit-Protokoll und ein Sicherheitsprotokoll
  • Die Benutzer, das Zurücksetzen ihres Passworts oder ihrer Zwei-Faktor-Authentifizierung, und SMTP mit einer Test-E-Mail
  • Export und Import der Konfiguration

Sprachen

Die Oberfläche in fünf Sprachen.

  • Französisch, Englisch, Spanisch, Italienisch und Deutsch; die Sprache des Kontos geht der des Browsers vor
  • E-Mails und die Titel öffentlicher Seiten folgen der Sprache der lesenden Person

Technische Aspekte

Was Sie bereitstellen und was es braucht.

  • Ein einziges Rust-Binary (Axum) liefert die API, beide Registries und die Angular-Webanwendung aus
  • PostgreSQL 18 für die Daten; Archive und Blobs auf einem Volume
  • Docker Compose oder ein Helm-Chart für Kubernetes; Image masmarino/artiferris, Trivy inklusive
  • Eine hexagonale Architektur, auf sechs Cargo-Crates verteilt

Noch nicht verfügbar

All das steht auf der Roadmap. Nichts davon existiert heute.

Zur Roadmap

  • Weitere Formate: Maven und Gradle, PyPI, NuGet, Cargo, Go, Helm und Raw-Repositories
  • S3-kompatibler Objektspeicher, um mehrere Replikas zu betreiben: heute ein Volume und ein Replikat
  • Hochverfügbarkeit und geografische Replikation
  • SAML
  • Signatur und Herkunftsnachweis von Paketen (Sigstore, npm provenance)

Testen Sie ArtiFerris, dann betreiben Sie Ihre eigene Instanz.

Die öffentliche Instanz dient zum Kennenlernen. Ihre eigene Instanz verwahrt Ihre Pakete.

Den Stack mit Docker Compose starten
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