Verdaccio私服搭建

news2025/1/23 14:52:46

前言

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1681399.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于区块链的Web 3.0关键技术研讨会顺利召开

基于区块链的Web3.0关键技术研讨会 2024年4月23日,由国家区块链技术创新中心主办的“基于区块链的web3.0关键技术研讨会”召开。Web3.0被用来描述一个运行在“区块链”技术之上的“去中心化”的互联网,该网络上的主体掌握自己数据所有权和使用权&#xf…

减肥健身个人总结

个人一直没有健身运动的习惯,工作久了体重超标,体检报告各种指标也不太“美丽”,开始学习一些减肥健身知识,持续更新。目标是每周减1~2斤,用几个月时间持续到体重恢复正常。 文章目录 一、减脂原理---制造热量缺口控制…

位拆分与运算

描述 题目描述: 现在输入了一个压缩的16位数据,其实际上包含了四个数据[3:0][7:4][11:8][15:12], 现在请按照sel选择输出四个数据的相加结果,并输出valid_out信号(在不输出时候拉低) 0: 不输出且只有此时的输入有…

LeetCode-2589. 完成所有任务的最少时间【栈 贪心 数组 二分查找 排序】

LeetCode-2589. 完成所有任务的最少时间【栈 贪心 数组 二分查找 排序】 题目描述:解题思路一:贪心暴力解题思路二:栈二分查找解题思路三:简化版 题目描述: 你有一台电脑,它可以 同时 运行无数个任务。给你…

Java面试八股之Collection和Collections的区别

Java中Collection和Collections的区别 Collection 是一个接口,位于 java.util 包中,它是 Java 集合框架的顶层接口之一,代表了一组对象的集合。Collection 接口定义了所有集合类型(如 List、Set、Queue 等)所共有的基…

electron的Remote模块

03 【electron的Remote模块】 在渲染进程里(比如index.html里面加载了一些js文件,那里面的js如果要使用到 BrowserWindow 这些属性的话就必须使用 remote) 使用 remote 模块, 你可以调用 main 进程对象的方法 1.electron14.0之前版本使用 …

2024年NOC大赛创客智慧(西瓜创客)图形化复赛编程真题模拟试卷包含答案

NOC 复赛图形化模拟题 【题目要求】 1、添加角色小猫和“Balloon1”角色气球(大小 70) 2、添加背景“Boardwalk” 3、点击绿旗,角色初始位置如图,小猫从舞台左侧出发,向舞台右 侧移动,移动过程中不断切换造型 4、当小猫碰到气球角色,小猫停止移动,气球逐渐向舞台上方…

redis7基础篇2 redis的3种模式(主从,哨兵,集群)模式

一 主从复制模式 1.1 主从模式 主从模式: 主机可以读,写,重机只能写操作。 主机shutdown后,从机上位还是原地待命:从机不动,原地待命,数据正常使用,等待主机重启归来。 主机shu…

华为OD机试 - 山峰个数(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

指标体系建设方案(36页PPT)

一、资料介绍 《指标体系建设方案》这份36页的PPT资料包,是针对当前组织发展需求而精心设计的一套全面、系统的指标构建方案。本资料包从理论到实践,深入浅出地阐述了指标体系建设的必要性、原则、步骤及实施要点,旨在帮助组织建立起科学、合…

【案例】根据商品的颜色进行分组,同一种颜色的商品可以对应多种尺寸、价格以及库存

效果展示 效果说明 输入商品的颜色、尺寸后点击添加按钮,即可将对应的商品信息添加到下方的表格当中,表格中除了会显示商品的颜色和尺寸之外,还会显示商品的价格和库存,并且可以对商品的价格和库存进行修改,并且根据颜…

外贸客户采集软件有哪些?

外贸客户采集软件可以帮助企业收集潜在客户的信息,以便进行市场分析和客户开发。以下是一些常用的外贸客户采集软件: 易谷歌地图数据采集大师:基于谷歌地图数据采集的软件,能够采集任意国家、地区的企业地址、电话号码、邮件地址等…

Visual Studio Code 扩展程序Text Edits

需求 比如把Scarzombie_Monster全部转换为大写或者小写 安装 Text Edits 直接搜索安装即可 使用 假如要把Scarzombie_Monster全部转为大写,选中右键选中 To Upper Case或者直接快捷键shiftAltU即可

2A 150KHz 40V Buck DC to DC 转换器XL1509

前言: 该器件仅做介绍,不推荐在新设计中使用。 新设计应尽量使用MHZ开关频率,以降低电感量,从而降低成本。 新设计应使用同步DCDC降压转换器。 XL1509丝印和封装 引脚定义 XL1509管脚描述 管脚编号 管脚名称 管脚描述 1 电压输入…

未授权访问:Rsync 未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用rsync下载任意文件 5、利用rsync反弹shell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c…

linux系统查看服务器硬件信息

1、查看服务器型号、序列号 # dmidecode|grep "System Information" -A9 | egrep "Manufacturer|Product|Serial" 2、查看主板型号 # dmidecode |grep -A16 "System Information$" 或 dmidecode -t1 3、查看BIOS信息 # dmidecode -t bios 4、…

服务器防火墙有什么用防护策略

随着互联网的飞速发展,服务器的安全问题日益凸显。为了保护服务器免受网络攻击和恶意入侵的威胁,人们引入了防火墙的概念。服务器防火墙作为保护服务器的第一道防线,具有重要的作用。那么服务器防火墙有什么用? 首先,服…

用docker命令行操作远程的Dockerd daemon服务

本地安装 Dockerd 服务太耗本机磁盘空间了,共用已有的Dockerd服务能够节省一部分空间 修改 Dockerd 服务启动文件,增加TCP监听方式 Dockerd 服务默认监听方式为 Unix Domain Socket ,只允许本机连接,想要能够远程连接&#xff0…

java入门详细教程之集合的理解与应用

一、Collenction集合 数组和集合的区别 长度 数组的长度是不可变的,集合的长度是可变的 数据类型 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 Collection 集合概述和使用 Collection集合概述​: 是单…

【C++】基础知识

文章目录 一、VS2022创建C项目 1. 相关工具安装 2. 测试 二、【快速】面向对象 1. 标准C代码 2. 简单的面向对象示例 3. 类与对象 4. 访问成员 5. this指针 6. 构造函数 7. 析构函数 8. 函数重载 9. 应用:老王装枪 三、【快速】封装 1. 三种权限 2.…