Zum Inhalt springen

Überblick ​

ProAnima Arkvory ist ein selbst gehostetes Repository für Build-Artefakte und Dateien. Sie installieren es auf Ihrem eigenen Server. Es speichert die Dateien, die Ihre Builds erzeugen, und liefert sie an die Personen und Systeme aus, die sie brauchen: Deployment-Agents, CI/CD-Pipelines, Testrechner und Entwickler.

Arkvory ist für alle kostenlos, auch für Unternehmen. Der Quellcode ist zum Lesen offen, aber es ist kein Open Source. Sie dürfen es innerhalb Ihrer Organisation verwenden und ändern. Sie dürfen keine Kopien verbreiten, es nicht verkaufen und nicht als Dienst anbieten. Siehe die Lizenz.

Für wen es gedacht ist ​

  • CI/CD-Engineers, die einen zentralen Ort brauchen, um Builds zu veröffentlichen, einen Build nach Version oder Stufe zu finden und ihn in einem Deployment-Job herunterzuladen.
  • Administratoren, die einen Speicherdienst wollen, der auf einem Server läuft, sich selbst neu startet, eigene Backups erstellt und sich selbst aktualisiert.
  • Spielestudios, die mit Unity oder Unreal Engine arbeiten. Arkvory speichert große Binär-Assets über Git LFS, Unity-Pakete über eine npm-Registry und Build-Ausgaben von mehreren zehn Gigabyte.
  • Teams mit mehreren Standorten, die eine schreibgeschützte Kopie eines Repositorys in der Nähe der Personen wollen, die daraus herunterladen.

Was es speichert ​

Alles liegt in Repositorys. Ein Repository kann gleichzeitig mehrere Arten von Inhalt enthalten:

InhaltSo arbeiten Sie damit
Artefakte (beliebige Datei)Upload mit der Konsole, dem Kommandozeilen-Client, dem SDK oder der HTTP-API
UPack-PaketeVersionierte Pakete mit Gruppe, Name und SemVer-Version. Siehe Pakete.
Dateien nach PfadEin Pfad wie builds/game/1.4/Setup.exe, der jede frühere Version behält. Siehe Dateien und Pfade und Raw-Dateien.
Container-ImagesEine OCI-Registry für Docker, Podman, Helm und ORAS. Siehe Container-Images.
Git-LFS-ObjekteEin Git-LFS-Server mit Dateisperren. Siehe Git LFS.
npm- und Unity-PaketeEine npm-Registry, die der Unity Package Manager nutzen kann. Siehe Unity und npm.

Jede gespeicherte Datei ist ein unveränderliches Artefakt mit einer SHA-256-Prüfsumme. Neuer Inhalt ersetzt nie alte Bytes, sondern erzeugt ein neues Artefakt. Siehe Konzepte.

Die wichtigsten Funktionen ​

  • Große Dateien. Uploads werden in Teilen gesendet und können nach einem Netzwerkausfall oder einem Neustart fortgesetzt werden. Ein Objekt kann bis zu rund 10 TiB groß sein. Downloads unterstützen HTTP-Bereichsanfragen (Ranges) und lassen sich daher ebenfalls fortsetzen.
  • Zugriffssteuerung. Benutzerkonten, Gruppen, persönliche Zugriffstoken und Dienstkonten mit Schlüsseln. Jeder Schlüssel erhält nur die Repository-Aktionen, die er braucht.
  • Stufen und Hochstufung. Markieren Sie einen Build als qa, release oder prod oder veröffentlichen Sie ihn ohne erneuten Upload in einem anderen Repository. Ein Deployment-Agent kann „den neuesten release-Build im Bereich ^1.4“ anfordern.
  • Metadaten. Labels, Textmetadaten, Sammlungen und angehängte Dateien wie Manifeste, SBOMs und Signaturen.
  • Aufbewahrung. Behalten Sie die letzten N Builds jedes Pakets, legen Sie Kontingente fest und entfernen Sie alte Inhalte im Hintergrund.
  • Backups. Ein Backup-Agent kopiert die Datenbank und alle Inhalte in einen Backup-Speicher auf einem anderen Datenträger oder NAS, nach einem täglichen Zeitplan, den ein Administrator einschaltet, und prüft die Kopien.
  • Spiegel. Eine zweite Installation kann eine schreibgeschützte Kopie eines Repositorys führen und sie ausliefern, wenn der Hauptserver nicht verfügbar ist.
  • Lese-Gateways. Zusätzliche Download-Prozesse auf demselben gemeinsamen Speicher teilen sich ein Download-Budget.
  • Selbstheilung. Die Dienste starten nach einem Absturz oder Stillstand neu. Lange Übertragungen können nach dem Neustart fortgesetzt werden.
  • Updates. Der Server sucht nach signierten stabilen Releases, die ProAnimaStudio in seinem Hub freigibt. Sie lassen sich manuell oder automatisch in einer Wartungsstunde installieren; ein Zurücksetzen auf die vorherige Version ist möglich.
  • Webkonsole. Helles und dunkles Design, in elf Sprachen: Englisch, Russisch, Spanisch, Französisch, Deutsch, Portugiesisch, Chinesisch, Japanisch, Koreanisch, Hindi und Arabisch (von rechts nach links). Diese Dokumentation gibt es in denselben Sprachen. Siehe Die Webkonsole.

So läuft es ​

Arkvory läuft auf einem Server. Es nutzt PostgreSQL für den Katalog und ein lokales Verzeichnis für die Inhalte. Drei Dienste arbeiten zusammen:

DienstZweck
APIDer HTTP-Server: die API, die Konsole und die Registrys. Er führt auch Aufbewahrung und physische Bereinigung aus.
WorkerHintergrundaufgaben: große Uploads abschließen und Spiegel synchronisieren
Backup-AgentGeplante Backups in den Backup-Speicher

Sie können es auf drei Arten installieren:

PlattformInstallerDetails
Windows 10/11, Windows ServerArkvory-Setup-x64.exeEin Setup-Assistent. Er enthält Node.js und PostgreSQL und funktioniert ohne Internet. Die Dienste laufen ohne angemeldeten Benutzer. Siehe Windows.
LinuxArkvory-amd64.deb, Arkvory-x86_64.rpmPakete für apt und dnf mit systemd-Diensten. Siehe Linux.
DockerDocker ComposeAPI, Worker, Backup-Agent und PostgreSQL in Containern. Siehe Docker.

Standardmäßig lauscht der Server nur auf 127.0.0.1:8080. Richten Sie HTTPS ein, bevor sich andere Rechner verbinden.

Eine Installation ist ein Server: Fällt er aus, warten die Clients, bis er wieder erreichbar ist. Unter Linux übernimmt ein Hochverfügbarkeits-Cluster aus zwei oder drei Servern, wenn einer ausfällt. Nutzen Sie Backups und bei Bedarf Spiegel an einem zweiten Standort.

Wie es weitergeht ​

  1. Schnellstart: Installieren Sie Arkvory und laden Sie Ihre erste Datei hoch.
  2. Konzepte: die Begriffe, die der Rest der Dokumentation verwendet.
  3. Installation: Anforderungen und Optionen für jede Plattform.
  4. Kommandozeilen-Client: Arkvory aus Skripten und CI verwenden.
  5. Backups: Sichern Sie Ihre Daten, bevor Sie in Produktion gehen.

Arkvory · ProAnimaStudio