概要
ProAnima Arkvoryは、ビルドアーティファクトとファイルのためのセルフホスト型リポジトリです。自分のサーバーにインストールして使います。ビルドが生成したファイルを保存し、それを必要とする人やシステム(デプロイエージェント、CI/CDパイプライン、テストマシン、開発者)に配信します。
Arkvoryは、企業を含むすべての方が無料で利用できます。ソースコードは閲覧できますが、オープンソースではありません。組織内での使用と変更は可能です。コピーの再配布、販売、サービスとしての提供はできません。詳しくはライセンスをご覧ください。
対象読者
- CI/CDエンジニア:ビルドの公開先を1か所にまとめ、バージョンやステージでビルドを探し、デプロイジョブでダウンロードしたい方。
- 管理者:1台のサーバーで動作し、自動で再起動し、自らバックアップを取り、自分で更新するストレージサービスを求める方。
- ゲームスタジオ:UnityやUnreal Engineを使うスタジオ。ArkvoryはGit LFSで大容量のバイナリアセットを、npmレジストリでUnityパッケージを、数十ギガバイトに及ぶビルド成果物を保存します。
- 複数の拠点を持つチーム:リポジトリの読み取り専用コピーを、ダウンロードする人の近くに置きたいチーム。
保存できるもの
すべてのデータはリポジトリに保存されます。1つのリポジトリに、複数の種類のコンテンツを同時に置けます。
| コンテンツ | 使い方 |
|---|---|
| アーティファクト(任意のファイル) | コンソール、コマンドラインクライアント、SDK、HTTP APIでアップロードします |
| UPackパッケージ | グループ、名前、SemVerバージョンを持つ、バージョン管理されたパッケージ。パッケージを参照してください。 |
| パス指定ファイル | builds/game/1.4/Setup.exeのようなパスで、過去のすべてのバージョンが保持されます。ファイルとパスとRawファイルを参照してください。 |
| コンテナーイメージ | Docker、Podman、Helm、ORAS向けのOCIレジストリ。コンテナーイメージを参照してください。 |
| Git LFSオブジェクト | ファイルロックに対応したGit LFSサーバー。Git LFSを参照してください。 |
| npmパッケージとUnityパッケージ | Unity Package Managerから使えるnpmレジストリ。Unityとnpmのパッケージを参照してください。 |
保存された各ファイルは、SHA-256チェックサムを持つ不変のアーティファクトです。新しいコンテンツが古いバイト列を置き換えることはなく、新しいアーティファクトが作られます。基本概念を参照してください。
主な機能
- 大容量ファイル:アップロードはパートに分けて送信され、ネットワーク障害や再起動の後も再開できます。1つのオブジェクトは最大で約10 TiBです。ダウンロードはHTTPのRangeリクエストに対応しているため、こちらも再開できます。
- アクセス制御:ユーザーアカウント、グループ、個人用アクセストークン、キーを持つサービスアカウントを使えます。各キーには、必要なリポジトリ操作だけが付与されます。
- ステージとプロモーション:ビルドに
qa、release、prodのマークを付けたり、再アップロードなしで別のリポジトリに公開したりできます。デプロイエージェントは「範囲^1.4で最新のreleaseビルド」を要求できます。 - メタデータ:ラベル、テキストのメタデータ、コレクション、およびマニフェスト、SBOM、署名などの添付ファイル。
- 保持:パッケージごとに直近N件のビルドを残す、クォータを設定する、古いコンテンツをバックグラウンドで削除する、といった運用ができます。
- バックアップ:バックアップエージェントが毎日のスケジュールで、データベースとすべてのコンテンツを別のディスクまたはNASの保管庫にコピーし、そのコピーを検証します。
- ミラー:2つ目のインストールにリポジトリの読み取り専用コピーを保持させ、メインサーバーが利用できないときにそのコピーから配信できます。
- 読み取りゲートウェイ:同じ共有ストレージ上で動作する、追加のダウンロード用プロセスです。ダウンロード速度の上限を共有します。
- 自己修復:クラッシュやハングの後にサービスが再起動します。長時間の転送は、再起動後に続行できます。
- 更新:サーバーは、ProAnimaStudioがハブで承認した署名付きの安定版リリースを確認します。手動で、またはメンテナンス時間帯に自動でインストールでき、以前のバージョンへロールバックすることもできます。
- Webコンソール:ライトテーマとダークテーマに対応し、11の言語で利用できます。英語、ロシア語、スペイン語、フランス語、ドイツ語、ポルトガル語、中国語、日本語、韓国語、ヒンディー語、アラビア語(右から左へ表示)です。このドキュメントも同じ言語で提供されています。Webコンソールを参照してください。
動作の仕組み
Arkvoryは1台のサーバーで動作します。カタログにはPostgreSQLを、コンテンツにはローカルディレクトリを使います。3つのサービスが連携して動作します。
| サービス | 役割 |
|---|---|
| API | HTTPサーバー。API、コンソール、レジストリを提供します。保持ルールの適用と物理クリーンアップも実行します。 |
| ワーカー | バックグラウンドジョブ。大容量アップロードの完了処理と、ミラーの同期を行います |
| バックアップエージェント | 保管庫へのスケジュールバックアップ |
インストール方法は3つあります。
| プラットフォーム | インストーラー | 詳細 |
|---|---|---|
| Windows 10/11、Windows Server | Arkvory-Setup-x64.exe | セットアップウィザード。Node.jsとPostgreSQLが同梱されており、インターネット接続なしで動作します。サービスは、サインインしているユーザーがいなくても実行されます。Windowsを参照してください。 |
| Linux | Arkvory-amd64.deb、Arkvory-x86_64.rpm | aptとdnf用のパッケージで、systemdサービスが付属します。Linuxを参照してください。 |
| Docker | Docker Compose | API、ワーカー、バックアップエージェント、PostgreSQLがコンテナーで動作します。Dockerを参照してください。 |
既定では、サーバーは127.0.0.1:8080のみで待ち受けます。他のマシンから接続する前に、HTTPSを設定してください。
1つのインストールは1台のサーバーです。停止すると、クライアントは復旧するまで待機します。Linuxでは、2台または3台のサーバーからなる高可用性クラスターが、1台の障害時に引き継ぎます。バックアップを使い、必要に応じて2つ目のサイトにミラーを置いてください。
次に読むページ
- クイックスタート:Arkvoryをインストールして、最初のファイルをアップロードします。
- 基本概念:以降のドキュメントで使う用語です。
- インストール:各プラットフォームの要件とオプションです。
- コマンドラインクライアント:スクリプトやCIからArkvoryを使います。
- バックアップ:本番運用の前にデータを保護します。