展示HN:Artifact Keeper – Rust编写的开源Artifactory/Nexus替代方案
Show HN: Artifact Keeper – Open-Source Artifactory/Nexus Alternative in Rust

原始链接: https://github.com/artifact-keeper

## Artifact Keeper:你的自托管制品库 Artifact Keeper 是一款功能齐全的开源制品库,旨在作为 JFrog Artifactory 和 Sonatype Nexus 等解决方案的直接替代品。它提供企业级功能——包括安全扫描(Trivy & Grype)、SSO、复制以及对 45 种以上软件包格式的支持——*无需*功能门禁或单独的“企业版”。 Artifact Keeper 使用 Rust、TypeScript 和原生移动应用程序(iOS 和 Android)构建,允许你自托管并完全控制你的软件包和服务器。主要功能包括用于可扩展性的 WASM 插件系统、用于更快访问的边缘复制以及从 Artifactory 迁移的内置工具。 它支持原生包管理器协议(pip、npm、docker 等),并提供具有全文搜索功能的综合管理界面,该搜索功能由 Meilisearch 提供支持。部署通过 Docker Compose 简单明了,并提供 Docker、Kubernetes 和 AWS 的指南。它采用 MIT 许可,并欢迎社区贡献。

## Artifact Keeper:开源 Artifactory 替代方案 Artifact Keeper 是一款全新的、完全开源(MIT 许可)的制品仓库,使用 Rust 构建,旨在为 Artifactory 和 Nexus 等商业解决方案提供一个强大的替代方案。它由一位对付费功能感到沮丧的 DevOps 工程师创建,支持 45 多种软件包格式(pip、npm、docker 等),并具有安全扫描(Trivy、Grype、OpenSCAP)和策略引擎,以及灵活的 WASM 插件系统等功能。 主要区别在于其真正开源的方法——*没有*企业版或功能门禁——以及创新的设计选择,例如使用 Meilisearch 实现快速搜索,以及点对点网状复制系统。该项目在 AI(Claude Code)的协助下快速开发,生成了一个令人惊讶的健壮代码库,并进行了广泛的测试。 开发者正在寻求反馈和更广泛的测试,尤其是在大规模情况下。提供了一个在线演示,以及文档和通过 Docker 进行本地部署的说明。该项目解决了现有解决方案中常见的痛点,旨在为用户提供一个免费、功能丰富且可自托管的制品管理解决方案。 [https://github.com/artifact-keeper/artifact-keeper](https://github.com/artifact-keeper/artifact-keeper)
相关文章

原文

Artifact Keeper - Your packages. Your servers. Your freedom.

Your packages. Your servers. Your freedom.

Website · Docs · Live Demo · MIT Licensed

GitHub Stars License 45+ Formats Rust


A full-featured, enterprise-grade artifact registry you can self-host in minutes. Drop-in replacement for JFrog Artifactory and Sonatype Nexus with zero feature gates — security scanning, SSO, replication, all 45+ package formats — everything ships in the open-source release.

No open-core. No "enterprise edition." No surprise invoices.

Artifact Keeper Web Dashboard

Repository Description Stack
artifact-keeper Backend server, CLI, and Docker deployment Rust, Axum, PostgreSQL, Meilisearch
artifact-keeper-web Web frontend Next.js 15, TypeScript, Tailwind CSS, shadcn/ui
artifact-keeper-ios iOS & macOS app SwiftUI, Swift 6, Alamofire
artifact-keeper-android Android app Jetpack Compose, Kotlin, Material 3
artifact-keeper-api OpenAPI 3.1 spec (165 endpoints) TypeScript + Rust SDK generation
artifact-keeper-example-plugin Example WASM plugin (Unity .unitypackage) Rust, WIT, Wasmtime

45+ Package Formats — Native protocol support. Not a generic blob store with format labels. Your package managers (pip install, npm install, docker pull, cargo add, helm install, go get, etc.) talk directly to Artifact Keeper using their native protocols.

Security Scanning — Automated vulnerability detection with Trivy and Grype. Policy engine with severity thresholds, quarantine workflows, and scan-before-download enforcement.

WASM Plugin System — Extend with custom format handlers via WebAssembly. Ship your own package format support without forking the backend.

Edge Replication — Mesh-based artifact distribution with swarm sync and P2P transfers between nodes. Put caches close to your build agents.

SSO & Multi-Auth — OpenID Connect, LDAP, SAML 2.0, JWT, and API tokens. RBAC with per-repository permissions.

Artifactory Migration — Built-in tooling to migrate repositories, artifacts, users, and permissions from JFrog Artifactory. One command.

Full-Text Search — Meilisearch-powered search across all repositories, packages, and artifact metadata.

Manage your registries from anywhere. Monitor builds, browse repositories, trigger security scans, and administer users — all from native mobile apps with adaptive layouts.

Artifact Keeper macOS App

A full management interface for repositories, packages, security policies, user administration, SSO configuration, replication topology, and operational analytics.

Artifact Keeper Web Dashboard

# Clone and start with Docker Compose
git clone https://github.com/artifact-keeper/artifact-keeper.git
cd artifact-keeper
docker compose up -d

# That's it. Visit http://localhost:9080

Or pull the pre-built images directly:

# Backend (required)
docker pull ghcr.io/artifact-keeper/artifact-keeper-backend:latest

# Web dashboard (recommended)
docker pull ghcr.io/artifact-keeper/artifact-keeper-web:latest

Full deployment guides for Docker, Kubernetes, and AWS are in the docs.

graph TB
    subgraph Clients["Clients"]
        CLI["CLI & Package Managers<br/><sub>pip · npm · docker · cargo<br/>helm · go · maven · ...</sub>"]
        WebApp["Web Dashboard<br/><sub>Next.js 15 · Desktop Browser</sub>"]
        iOS["iPhone · iPad · Mac<br/><sub>SwiftUI · Swift 6</sub>"]
        Android["Android Phone · Tablet<br/><sub>Jetpack Compose · Kotlin</sub>"]
    end

    subgraph Core["Artifact Keeper Backend"]
        API["REST API Gateway<br/><sub>Rust · Axum</sub>"]
        Handlers["45+ Format Handlers<br/><sub>Native protocol support</sub>"]
        WASM["WASM Plugin Runtime<br/><sub>Wasmtime · WIT</sub>"]
        Auth["Auth Engine<br/><sub>OIDC · LDAP · SAML · JWT</sub>"]
        Policy["Policy Engine<br/><sub>Severity gates · Quarantine</sub>"]
    end

    subgraph Data["Data Layer"]
        PG[("PostgreSQL 16<br/><sub>Metadata & config</sub>")]
        Storage[("Storage<br/><sub>S3 / Filesystem</sub>")]
        Meili[("Meilisearch<br/><sub>Full-text search</sub>")]
    end

    subgraph Security["Security Scanning"]
        Trivy["Trivy<br/><sub>Container & FS scanning</sub>"]
        Grype["Grype<br/><sub>Dependency scanning</sub>"]
    end

    subgraph Edge["Edge Replication"]
        Peer1["Edge Node"]
        Peer2["Edge Node"]
        Peer3["Edge Node"]
    end

    CLI -->|"Native protocols"| API
    WebApp --> API
    iOS --> API
    Android --> API

    API --> Handlers
    API --> Auth
    Handlers --> WASM
    Handlers --> Policy

    API --> PG
    Handlers --> Storage
    API --> Meili

    Policy --> Trivy
    Policy --> Grype

    API <-->|"Borg Replication"| Peer1
    API <-->|"Borg Replication"| Peer2
    API <-->|"Borg Replication"| Peer3
    Peer1 <-->|"P2P Mesh"| Peer2
    Peer2 <-->|"P2P Mesh"| Peer3
    Peer1 <-->|"P2P Mesh"| Peer3

    style Core fill:#1a1a2e,stroke:#e94560,color:#fff
    style Data fill:#16213e,stroke:#0f3460,color:#fff
    style Security fill:#1a1a2e,stroke:#e94560,color:#fff
    style Edge fill:#0f3460,stroke:#533483,color:#fff
    style Clients fill:#16213e,stroke:#0f3460,color:#fff

    style API fill:#e94560,stroke:#e94560,color:#fff
    style Handlers fill:#e94560,stroke:#e94560,color:#fff
    style WASM fill:#533483,stroke:#533483,color:#fff
    style Auth fill:#e94560,stroke:#e94560,color:#fff
    style Policy fill:#e94560,stroke:#e94560,color:#fff

    style PG fill:#0f3460,stroke:#0f3460,color:#fff
    style Storage fill:#0f3460,stroke:#0f3460,color:#fff
    style Meili fill:#0f3460,stroke:#0f3460,color:#fff

    style Trivy fill:#533483,stroke:#533483,color:#fff
    style Grype fill:#533483,stroke:#533483,color:#fff

    style Peer1 fill:#533483,stroke:#533483,color:#fff
    style Peer2 fill:#533483,stroke:#533483,color:#fff
    style Peer3 fill:#533483,stroke:#533483,color:#fff

    style CLI fill:#0f3460,stroke:#0f3460,color:#fff
    style WebApp fill:#0f3460,stroke:#0f3460,color:#fff
    style iOS fill:#0f3460,stroke:#0f3460,color:#fff
    style Android fill:#0f3460,stroke:#0f3460,color:#fff
Loading

Contributions are welcome. Pick an issue, open a PR, or start a discussion. The backend is Rust, the frontend is TypeScript/React, and the mobile apps are native Swift and Kotlin.

MIT. Every feature. No exceptions.

联系我们 contact @ memedata.com