Show HN: Artifact Keeper – Rust 기반의 오픈 소스 Artifactory/Nexus 대안
요약
Artifact Keeper는 JFrog Artifactory와 Sonatype Nexus를 대체할 수 있는 Rust 기반의 오픈 소스 엔터프라이즈급 아티팩트 레지스트리입니다. 기능 제한 없는 완전한 오픈 소스 모델을 지향하며, 45개 이상의 패키지 형식을 네이티브 프로토콜로 지원하고 보안 스캐닝, SSO, 복제 기능을 제공합니다.
핵심 포인트
- Rust 기반의 고성능 백엔드와 WASM 플러그인 런타임을 지원하는 오픈 소스 아티팩트 관리 도구
- npm, PyPI, Docker, Cargo 등 45개 이상의 패키지 형식을 네이티브 프로토콜로 지원
- 오픈 코어 방식이 아닌 완전한 오픈 소스 릴리스로 기능 제한이나 추가 비용 없음
- 프록시 캐싱 및 가상 저장소 기능을 통해 공용 레지스트리와의 효율적인 연동 지원
- Helm, Terraform, ArgoCD를 통한 프로덕션 환경의 IaC 지원
당신의 패키지. 당신의 서버. 당신의 자유.
Website · Docs · Live Demo · MIT License
몇 분 안에 셀프 호스팅(self-host)할 수 있는 모든 기능을 갖춘 엔터프라이즈급 아티팩트 레지스트리(artifact registry)입니다. 기능 제한(feature gates) 없이 JFrog Artifactory 및 Sonatype Nexus를 즉시 대체할 수 있습니다 — 보안 스캐닝(security scanning), SSO, 복제(replication), 45개 이상의 모든 패키지 형식 — 이 모든 것이 오픈 소스 릴리스에 포함되어 제공됩니다.
오픈 코어(open-core) 방식이 아닙니다. "엔터프라이즈 에디션"도 없습니다. 갑작스러운 청구서도 없습니다.
| Repository | Description | Stack | Quality |
|---|---|---|---|
artifact-keeper | 45개 이상의 형식 핸들러, WASM 플러그인 런타임, gRPC 및 메시 복제(mesh replication)를 갖춘 백엔드 API 서버 | Rust, Axum, SQLx, PostgreSQL, Wasmtime | |
artifact-keeper-web | 다크 모드 우선 디자인의 웹 대시보드 | Next.js 15, TypeScript, Tailwind CSS 4, shadcn/ui | |
artifact-keeper-ios | iOS & macOS 네이티브 앱 | SwiftUI, Swift 6, Alamofire | |
artifact-keeper-android | Android 네이티브 앱 | Jetpack Compose, Kotlin 2.1, Material 3 | |
artifact-keeper-cli | CLI/TUI 도구 | Rust (계획 중) | — |
| Repository | Description | Stack | Quality |
|---|---|---|---|
artifact-keeper-iac | 프로덕션용 Helm 차트, Terraform 모듈 (EKS/RDS/S3), ArgoCD GitOps, 모니터링 스택 | Helm, Terraform, ArgoCD, Prometheus, Grafana | |
artifact-keeper-api | 자동 생성된 SDK를 포함한 OpenAPI 3.1 명세 (277개 작업) | TypeScript, Kotlin, Swift, Rust, Python | |
artifact-keeper-swift-sdk | 생성된 클라이언트 SDK를 위한 Swift Package Manager 배포 | Swift, swift-openapi-generator | |
artifact-keeper-example-plugin | 예제 WASM 플러그인 템플릿 (Unity .unitypackage 형식) | Rust, WIT, wasm32-wasip1 | — |
artifact-keeper-site | artifactkeeper.com의 문서 및 랜딩 페이지 | Astro, Starlight, MDX | — |
45개 이상의 패키지 형식 — 네이티브 프로토콜 지원. 단순히 형식 라벨만 붙인 범용 블롭 스토어(blob store)가 아닙니다. 당신의 패키지 매니저(pip install, npm install, docker pull, cargo add, helm install, go get, buf push)를 지원합니다.
, 등)은 고유 프로토콜을 사용하여 Artifact Keeper와 직접 통신합니다.
프록시 및 가상 저장소 (Proxy & Virtual Repositories) — 프록시 (Proxy) 저장소는 첫 요청 시 공용 레지스트리(npmjs.com, PyPI, Maven Central, Docker Hub)로부터 아티팩트(Artifact)를 캐싱합니다. 가상 (Virtual) 저장소는 설정 가능한 해결 순서(resolution order)를 바탕으로 여러 로컬 및 프록시 저장소를 단일 URL 뒤로 통합합니다. 빌드 도구는 하나의 엔드포인트만 가리키며, Artifact Keeper는 먼저 사용자의 프라이빗 패키지에서 해결을 시도한 후, 실패할 경우 공용 레지스트리로 전환합니다.
보안 및 컴플라이언스 (Security & Compliance) — 모든 컨테이너 이미지는 DISA STIG 승인을 받은 Red Hat UBI 9 베이스 이미지 위에서 빌드되며, 비루트(non-root) 실행 및 최소한의 공격 표면(attack surface)을 유지합니다. Trivy를 통한 자동 취약점 탐지, OWASP Dependency-Track을 통한 SBOM 분석, 그리고 OpenSCAP를 통한 컴플라이언스 감사를 지원합니다. 품질 게이트(quality gates), 심각도 임계값, 격리 워크플로(quarantine workflows), 다운로드 전 스캔 강제 적용 기능을 갖춘 정책 엔진을 제공합니다.
아티팩트 서명 (Artifact Signing) — 키 관리 기능을 포함한 GPG 및 PGP 서명을 지원합니다. 업로드 시 아티팩트에 서명하고, 다운로드 시 서명을 검증합니다. 기존 서명 키를 가져오거나 API를 통해 새로운 키를 생성할 수 있습니다.
WASM 플러그인 시스템 (WASM Plugin System) — WebAssembly를 통해 커스텀 포맷 핸들러로 기능을 확장할 수 있습니다. 백엔드를 포크(fork)하지 않고도 자체적인 패키지 포맷 지원 기능을 배포할 수 있습니다. 시작하려면 예제 플러그인을 포크하세요.
피어 복제 (Peer Replication) — 레이블 기반 동기화 정책, 반응형 구독(reactive subscriptions), 피어 간 P2P 전송을 갖춘 메시(Mesh) 기반 아티팩트 배포를 지원합니다. 캐시를 빌드 에이전트와 가까운 곳에 배치할 수 있습니다.
SSO 및 다중 인증 (SSO & Multi-Auth) — OpenID Connect, LDAP, SAML 2.0, JWT 및 API 토큰을 지원합니다. 저장소별 권한 설정을 포함한 RBAC(역할 기반 액세스 제어)를 제공합니다.
관측성 (Observability) — Prometheus 메트릭(30개 이상의 ak_* 게이지, 카운터, 히스토그램), 선택적 OpenTelemetry 분산 트레이싱(Jaeger/Tempo/Datadog으로의 OTLP 내보내기), Kubernetes 네이티브 상태 프로브(/livez, /readyz, /healthz), 그리고 DB 커넥션 풀 모니터링을 지원합니다.
Artifactory 마이그레이션 (Artifactory Migration) — JFrog Artifactory로부터 저장소, 아티팩트, 사용자 및 권한을 마이그레이션할 수 있는 내장 도구를 제공합니다. 단 하나의 명령어로 가능합니다.
전체 텍스트 검색 (Full-Text Search) — Meilisearch를 기반으로 모든 저장소, 패키지 및 아티팩트 메타데이터에 대한 검색을 지원합니다.
어디서든 레지스트리 (Registries)를 관리하세요. 빌드를 모니터링하고, 저장소를 탐색하며, 보안 스캔을 트리거하고, 사용자를 관리할 수 있습니다. 이 모든 기능은 적응형 레이아웃 (Adaptive layouts)을 갖춘 네이티브 모바일 앱을 통해 제공됩니다.
Android |
iOS |
저장소, 패키지, 보안 정책, 사용자 관리, SSO 설정, 복제 토폴로지 (Replication topology) 및 운영 분석을 위한 완전한 관리 인터페이스를 제공합니다.
git clone https://github.com/artifact-keeper/artifact-keeper.git
cd artifact-keeper
docker compose up -d
...
git clone https://github.com/artifact-keeper/artifact-keeper-iac.git
cd artifact-keeper-iac
helm install ak helm/ \
...
외부 PostgreSQL, TLS, 오토스케일링 (Autoscaling) 및 모니터링을 포함한 프로덕션 환경 설정을 보려면 Helm 배포 가이드를 참조하세요.
docker pull ghcr.io/artifact-keeper/artifact-keeper-backend:latest
docker pull ghcr.io/artifact-keeper/artifact-keeper-web:latest
전체 배포 가이드: Docker · Helm · AWS
Artifact Keeper는 JFrog Artifactory 및 Sonatype Nexus에서 사용하는 것과 동일한 모델인 세 가지 저장소 유형을 지원합니다:
| 유형 | 용도 | 예시 |
|---|---|---|
| 로컬 (Local) | 자체 패키지를 호스팅합니다. 직접 빌드한 아티팩트를 게시하고 다운로드합니다. | my-npm-private |
| 프록시 (Proxy) | 공개 레지스트리로부터 패키지를 캐싱합니다. 첫 번째 요청은 업스트림 (Upstream)에서 가져오며, 이후 요청은 캐시에서 제공됩니다. | npm-proxy -> npmjs.com |
| 가상 (Virtual) | 단일 URL 뒤에 여러 저장소를 통합합니다. 로컬 저장소를 먼저, 그 다음 프록시 저장소 순으로 순차적으로 해결합니다. | npm-all = my-npm-private + npm-proxy |
# npm: npmjs.com으로의 프록시
npm install react --registry http://localhost:8080/api/v1/npm/npm-proxy/
# pip: pypi.org로의 프록시
...
graph TB
subgraph Clients["Clients"]
CLI["CLI & Package Managers<br/><sub>pip · npm · docker · cargo<br/>helm · go · maven · buf · ...</sub>"]
...
graph LR
subgraph DEV["Development"]
D1["Docker Compose<br/><sub>Single machine</sub>"]
...
| 경로 (Path) | 최적 용도 (Best For) | 가이드 (Guide) |
|---|---|---|
| Docker Compose | 로컬 개발 (Local development), 데모, 소규모 팀 | [Docs] |
| Helm Chart | Kubernetes 배포, 모든 환경 | [Docs] |
| Terraform + Helm | AWS 기반 프로덕션 (EKS, RDS, S3) | [IaC Repo] |
| AWS EC2 | 단일 인스턴스 프로덕션 | [Docs] |
기여(Contributions)를 환영합니다. 이슈(Issue)를 선택하거나, PR(Pull Request)을 생성하거나, 토론(Discussion)을 시작해 주세요. 백엔드(Backend)는 Rust로, 프론트엔드(Frontend)는 TypeScript/React로 작성되었으며, 모바일 앱(Mobile apps)은 네이티브 Swift 및 Kotlin으로 구현되었습니다.
- 문서 (Documentation): artifactkeeper.com/docs
- 이메일 (Email): support@artifactkeeper.com
- 이슈 (Issues): GitHub Issues
보안 스캐닝(Security scanning)은 Trivy (Aqua Security), OWASP Dependency-Track, 그리고 OpenSCAP을 통해 제공됩니다. 분산 트레이싱(Distributed tracing)은 OpenTelemetry를 사용하며, 검색(Search) 기능은 Meilisearch를 통해 작동합니다. PostgreSQL을 기반으로 구축되었습니다.
MIT 라이선스. 모든 기능에 적용됩니다. 예외는 없습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기