Verdaccio私服搭建

前言

Verdaccio是一个轻量级的私有npm注册表,由Node.js创建,并且是sinopia@1.4.0的衍生版本,与其100%向后兼容。Verdaccio的名称来源于意大利中世纪晚期fresco绘画中流行的一种绿色。
Verdaccio的主要功能是在本地环境中管理和共享npm软件包。它可以在本地机器上搭建一个私有的npm注册表,用于存储和分发自己的npm包或来自公共npm注册表(如npmjs)的软件包。它的工作原理可以简单地概括为,作为一个中间层位于npm客户端和真实的npm注册表之间。
Verdaccio有一个内置的数据库来存放所有的npm包,除此之外它还有一套默认的鉴权机制:htpasswdhtpasswd鉴权是通过htpasswd文件来存放所有的npm用户,鉴权、添加/删除的时候通过对文件的读写来实现。此外,Verdaccio还提供了强大的身份认证系统。

步骤

拉取verdaccio镜像

docker pull verdaccio/verdaccio

启动verdaccio容器

docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio

复制config.yaml到宿主主机

docker cp verdaccio:verdaccio/conf /opt/verdaccio/conf/

修改config.yaml配置

#我们可以联系的其他已知存储库列表
uplinks:
  npmjs:
    url: https://registry.npmjs.org/
packages:
  've-**':
    # scoped packages
    access: $authenticated #可以访问的用户,$authenticated授权后的,@all表示所有用户(包括未授权的),还可以指定用户,例如:zhangsan lisi
    publish: liuhuiwen #可以发布的用户,格式同access一样
    unpublish: liuhuiwen #可以取消发布的用户,格式同access一样
    proxy: npmjs # 代理地址
# 通过https域名访问,则需要配置下面的证书
https:
  key: /verdaccio/conf/npm.liulingfengyu.cn.key
  cert: /verdaccio/conf/npm.liulingfengyu.cn.pem
i18n:
  web: zh-CN # 汉化

创建htpasswd文件

该文件对应config.yaml中配置的htpasswd地址

修改宿主主机verdaccio文件夹的权限为777

发布时会出现权限问题,这里提前设置

sudo chmod -R 777 /opt/verdaccio

持久化启动容器

删除之前启动的容器,改为持久化启动,并且通过https访问

docker run -it -d --name verdaccio -p 4873:4873 -e VERDACCIO_PROTOCOL=https -v /opt/verdaccio/storage:/verdaccio/storage -v /opt/verdaccio/conf:/verdaccio/conf -v /opt/verdaccio/plugins:/verdaccio/plugins verdaccio/verdaccio

配置nginx代理地址

server {
  listen 443 ssl;

  server_name custom.cn; # 改为自己的域名
  root html;
  index index.html index.htm;
  # 配置证书
  ssl_certificate /usr/share/nginx/html/cert/custom.cn.pem;
  ssl_certificate_key /usr/share/nginx/html/cert/custom.cn.key;

  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

  ssl_prefer_server_ciphers on;

  location / {
    # 转发地址(这里必须写https)
    proxy_pass https://127.0.0.1:4873;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

启动nginx

docker run --name nginx-test -p 8080:80 -d nginx 

总结

完成上述步骤我们就完成了Verdaccio的搭建,下面是展示效果
image.png


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘凌枫羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值