OSSパッケージレジストリ比較:Verdaccio vs Gitea Packages vs Nexus でプライベートnpmを構築する
オープンソースラボ編集部 ・ 2026年6月14日
OSSパッケージレジストリ比較:Verdaccio vs Gitea Packages vs Nexus でプライベートnpmを構築する
📦 社内パッケージの管理・配布にはプライベートレジストリが不可欠。Verdaccio・Gitea Packages・Nexusを比較して最適解を見つけましょう。
プライベートパッケージレジストリとは
社内ライブラリや非公開パッケージをnpm/PyPI/Maven等の形式で配布するための自社ホストサーバーです。セキュリティ・バージョン管理・キャッシュ機能が主な役割を担います。
主要ツール比較表
| 項目 | Verdaccio | Gitea Packages | Nexus Repository |
|---|---|---|---|
| ライセンス | MIT | MIT | OSS版はAPL 2.0 |
| 対応形式 | npm/yarn中心 | npm/pip/gem/docker等 | npm/Maven/PyPI/Docker等 |
| セットアップ | ◎ 超簡単 | ○ Git連携 | △ 重め |
| UI | ○ シンプル | ◎ Git統合UI | ○ 機能的 |
| キャッシュ | ◎(npmプロキシ) | △ | ◎ |
| 認証 | LDAP/htpasswd | Git認証統合 | LDAP/SAML等 |
| スケール | 小〜中 | 中 | 大規模向け |
| メモリ使用 | 軽量 | 中 | 重め |
各ツールの特徴
Verdaccio
npmレジストリのプロキシ兼プライベートレジストリとして圧倒的な人気を誇る軽量ツール。Dockerイメージ1つで即座に使えます。
主な特徴:
- npmjsへのプロキシキャッシュで帯域節約
- YAML一つで設定完結
- プラグインによる拡張(S3バックエンド等)
- Zero-config Docker運用
# config.yaml
storage: /verdaccio/storage
auth:
htpasswd:
file: /verdaccio/conf/htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@mycompany/*':
access: $authenticated
publish: $authenticated
'**':
access: $all
proxy: npmjs
# Docker起動
docker run -d -p 4873:4873 -v /opt/verdaccio:/verdaccio/storage verdaccio/verdaccio
# 使い方
npm set registry http://localhost:4873
npm publish
向いているケース: npm専用・小〜中規模チーム
Gitea Packages
GiteaのビルトインパッケージレジストリはGitリポジトリと完全統合。コードとパッケージを1つのUIで管理できます。
主な特徴:
- Git + Issue + CI/CD + パッケージを1ツールで統合
- npm・PyPI・gem・Docker・Helmに対応
- Gitea Actionsと連携した自動公開
- 既存Gitea環境ならゼロ追加コスト
# .gitea/workflows/publish.yml
name: Publish Package
on:
push:
tags: ['v*']
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Publish to Gitea
run: |
npm config set registry ${{ gitea.server_url }}/api/packages/${{ gitea.repository_owner }}/npm/
npm publish
向いているケース: 既にGiteaを使っているチーム
Nexus Repository Manager
Sonatype製の多機能レジストリ。Mavenをはじめとするエンタープライズ向けの用途で長い実績があります。
主な特徴:
- Maven/npm/PyPI/Docker/Helmなど幅広い対応
- 脆弱性スキャン(IQ Server連携)
- 高度なアクセス制御とロールベース管理
- クラスタリングによる高可用性(Pro版)
# Docker Composeで起動
version: '3'
services:
nexus:
image: sonatype/nexus3
ports:
- "8081:8081"
- "8082:8082" # Docker registry
volumes:
- nexus-data:/nexus-data
volumes:
nexus-data:
向いているケース: 大規模・多言語・エンタープライズ
ユースケース別推奨
| 状況 | 推奨ツール |
|---|---|
| npmのみ・超手軽に | Verdaccio |
| Gitea導入済み | Gitea Packages |
| Maven/多言語混在 | Nexus |
| セキュリティスキャン必須 | Nexus(+IQ Server) |
内部リンク
外部リソース
FAQ
Q. Verdaccioはnpm以外にも使えますか?
主にnpm/yarn向けです。PyPIやDockerには対応していないため、多言語プロジェクトではGiteaかNexusを検討してください。
Q. Verdaccioのストレージはどこに保存されますか?
デフォルトはローカルファイルシステムですが、S3やGoogle Cloud Storageプラグインも公式提供されています。
Q. GitHub PackagesやAWS CodeArtifactとの違いは?
これらはマネージドサービスでクラウド費用が発生します。セルフホストはコスト削減・プライバシー確保が主なメリットです。
Q. 認証をSSO(SAML/OAuth)にするには?
VerdaccioはプラグインでSSO対応可能。NexusはSAML対応あり。GiteaはOAuth 2.0をネイティブサポートしています。