개요
ProAnima Arkvory는 빌드 아티팩트와 파일을 위한 자체 호스팅 리포지토리입니다. 사용자의 서버에 설치하며, 빌드가 만들어 내는 파일을 저장하고 이를 필요로 하는 사람과 시스템(배포 에이전트, CI/CD 파이프라인, 테스트 머신, 개발자)에 전달합니다.
Arkvory는 기업을 포함한 모든 사용자에게 무료입니다. 소스 코드는 읽을 수 있도록 공개되어 있지만 오픈 소스는 아닙니다. 조직 내부에서는 사용하고 수정할 수 있습니다. 사본을 배포하거나 판매하거나 서비스로 제공할 수는 없습니다. 라이선스를 참조하세요.
대상 독자
- CI/CD 엔지니어: 빌드를 게시하고, 버전이나 스테이지로 빌드를 찾고, 배포 작업에서 다운로드할 수 있는 단일 위치가 필요한 경우입니다.
- 관리자: 서버 한 대에서 실행되고, 스스로 다시 시작하며, 자체 백업을 만들고, 스스로 업데이트되는 스토리지 서비스를 원하는 경우입니다.
- 게임 스튜디오: Unity나 Unreal Engine으로 작업하는 팀입니다. Arkvory는 대용량 바이너리 에셋을 Git LFS로, Unity 패키지를 npm 레지스트리로 저장하며, 수십 GB에 이르는 빌드 결과물도 저장합니다.
- 여러 사이트를 운영하는 팀: 다운로드하는 사람들 가까이에 리포지토리의 읽기 전용 복사본을 두려는 경우입니다.
저장하는 콘텐츠
모든 것은 리포지토리에 보관됩니다. 하나의 리포지토리에 여러 종류의 콘텐츠를 동시에 둘 수 있습니다.
| 콘텐츠 | 사용 방법 |
|---|---|
| 아티팩트(모든 파일) | 콘솔, 명령줄 클라이언트, SDK, HTTP API로 업로드합니다 |
| UPack 패키지 | 그룹, 이름, SemVer 버전으로 구성되는 버전 관리 패키지입니다. 패키지를 참조하세요. |
| 경로 기반 파일 | builds/game/1.4/Setup.exe 같은 경로로, 이전 버전을 모두 보존합니다. 파일과 경로 및 원시 파일을 참조하세요. |
| 컨테이너 이미지 | Docker, Podman, Helm, ORAS용 OCI 레지스트리입니다. 컨테이너 이미지를 참조하세요. |
| Git LFS 객체 | 파일 잠금을 지원하는 Git LFS 서버입니다. Git LFS를 참조하세요. |
| npm 및 Unity 패키지 | Unity Package Manager에서 사용할 수 있는 npm 레지스트리입니다. Unity 및 npm을 참조하세요. |
저장된 각 파일은 SHA-256 체크섬을 가진 변경 불가능한 아티팩트입니다. 새 콘텐츠는 기존 바이트를 대체하지 않고 새 아티팩트를 만듭니다. 개념을 참조하세요.
주요 기능
- 대용량 파일. 업로드는 파트로 나누어 전송하며, 네트워크 장애나 재시작 후에도 이어서 진행할 수 있습니다. 객체 하나의 크기는 최대 약 10 TiB입니다. 다운로드는 HTTP Range를 지원하므로 마찬가지로 이어서 받을 수 있습니다.
- 액세스 제어. 사용자 계정, 그룹, 개인용 액세스 토큰, 키를 사용하는 서비스 계정을 제공합니다. 각 키에는 필요한 리포지토리 작업만 부여됩니다.
- 스테이지와 승격. 빌드를
qa,release,prod로 표시하거나, 다시 업로드하지 않고 다른 리포지토리에 게시할 수 있습니다. 배포 에이전트는 "^1.4범위에서 가장 최신인release빌드"를 요청할 수 있습니다. - 메타데이터. 레이블, 텍스트 메타데이터, 컬렉션, 매니페스트·SBOM·서명 같은 첨부 파일을 지원합니다.
- 보존. 패키지별로 최근 N개의 빌드를 유지하고, 할당량을 설정하고, 오래된 콘텐츠를 백그라운드에서 삭제합니다.
- 백업. 백업 에이전트가 매일 일정에 따라 데이터베이스와 모든 콘텐츠를 다른 디스크나 NAS의 백업 보관소로 복사하고, 복사본을 검증합니다.
- 미러. 두 번째 설치가 리포지토리의 읽기 전용 복사본을 유지하다가, 주 서버를 사용할 수 없을 때 대신 제공할 수 있습니다.
- 읽기 게이트웨이. 같은 공유 스토리지에서 실행되는 추가 다운로드 프로세스가 하나의 다운로드 예산을 공유합니다.
- 자가 복구. 서비스는 충돌이나 응답 중단 후 다시 시작됩니다. 긴 전송은 재시작 후에도 이어서 진행할 수 있습니다.
- 업데이트. 서버는 ProAnimaStudio가 허브에서 승인한 서명된 안정 릴리스가 있는지 확인합니다. 업데이트는 수동으로 또는 유지 관리 시간에 자동으로 설치할 수 있고, 이전 버전으로 되돌릴 수도 있습니다.
- 웹 콘솔. 밝은 테마와 어두운 테마를 지원하며, 영어, 러시아어, 스페인어, 프랑스어, 독일어, 포르투갈어, 중국어, 일본어, 한국어, 힌디어, 아랍어(오른쪽에서 왼쪽으로 표시)의 11개 언어로 제공됩니다. 이 문서도 같은 언어로 제공됩니다. 웹 콘솔을 참조하세요.
실행 구조
Arkvory는 서버 한 대에서 실행됩니다. 카탈로그에는 PostgreSQL을, 콘텐츠에는 로컬 디렉터리를 사용합니다. 세 가지 서비스가 함께 동작합니다.
| 서비스 | 역할 |
|---|---|
| API | HTTP 서버: API, 콘솔, 레지스트리를 제공합니다. 보존 규칙 적용과 물리적 정리도 실행합니다. |
| 워커 | 백그라운드 작업: 대용량 업로드 마무리와 미러 동기화 |
| 백업 에이전트 | 백업 보관소로의 예약 백업 |
설치 방법은 세 가지입니다.
| 플랫폼 | 설치 프로그램 | 세부 정보 |
|---|---|---|
| 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를 설정하세요.
설치 하나는 서버 하나입니다. 서버가 멈추면 클라이언트는 서버가 돌아올 때까지 기다립니다. Linux에서는 서버 두세 대로 이루어진 고가용성 클러스터가 한 대가 장애를 일으키면 이를 인계받습니다. 백업을 사용하고, 필요하면 두 번째 사이트에 미러를 구성하세요.