服务器构建私有npm库(Docker + Verdaccio)

npm官网有时候因为网络原因包推不上去,那就简单构建个私有库

私有库不会被共享,且配置不需要太高1h2G就行

1.需要安装Docker,这个跳过了

2.生成配置文件

js 复制代码
mkdir /home/verdaccio
cd /home/verdaccio
mkdir conf && mkdir storage && mkdir plugins
cd conf
touch htpasswd
vi config.yaml

3.在config.yaml中写入配置

js 复制代码
# 存放软件所有软件包的目录
storage: ../storage
# 存放所有插件的目录
plugins: ../plugins

web:
  # 网站Title
  title: Verdaccio
  # 禁用Gravatar头像
  # gravatar: false
  # 排序方式 asc|desc
  # sort_packages: asc
  # 是否启用暗黑模式
  # darkMode: true
  # logo地址
  # logo: http://somedomain/somelogo.png
  # favicon地址
  # favicon: http://somedomain/favicon.ico | /path/favicon.ico

# i18n翻译配置
# i18n:
# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations
#   web: en-US

auth:
  htpasswd:
    file: ./htpasswd
    # 最大注册用户数,默认为 "+inf".
    # 可用通过设置为-1禁止注册
    # max_users: 1000

# 上游npm库,这里可用设置为淘宝
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
	# 作用域包
  '@*/*':  
    # 允许所有人访问
    access: $all
    # 注册用户可访问
    publish: $authenticated
    # 注册用户可访问
    unpublish: $authenticated
    proxy: npmjs

  '**':
    # 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包
    # 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd)
    # 访问权限有三个关键词: "$all", "$anonymous", "$authenticated"
    # $all 表示不限制,任何人可访问;
    # $anonymous 表示未注册用户可访问;
    # $authenticated 表示只有注册用户可访问
    access: $all

    # 允许所有注册用户发布/撤销已发布的软件包
    # (注意:默认情况下任何人都可以注册)
    publish: $authenticated
    unpublish: $authenticated

    # 如果私有包服务不可用在本地,则会代理请求到'npmjs'
    proxy: npmjs

# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。
# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。
# 解决方法:通过给定的配置可以解决以下问题
server:
  keepAliveTimeout: 60
publish: 
  true
# 中间件
middlewares:
  audit:
    enabled: true

# 日志设置
logs: { type: stdout, format: pretty, level: http }

# 开放远程访问,允许所有IP
listen:
  - 0.0.0.0:4873

4.安装运行 verdaccio

js 复制代码
V_PATH=/home/verdaccio;
docker run -d -it --name verdaccio \
  -p 4873:4873 \
  -v $V_PATH/conf:/verdaccio/conf \
  -v $V_PATH/storage:/verdaccio/storage \
  -v $V_PATH/plugins:/verdaccio/plugins \
  verdaccio/verdaccio

容器安装完毕后就可以运行 http://服务器ip:4873 访问私有服

5.给软件包目录和用户记录文件目录授予权限

必须做,不然无法新增用户和上传软件包

js 复制代码
chown 10001:65533 /home/verdaccio/conf/htpasswd
chown 10001:65533 /home/verdaccio/storage
chown 10001:65533 /home/verdaccio/plugins

6.npm 源替换为私有库源

js 复制代码
npm config set registry http://服务器ip:4873

7.注册私有库用户,登录,查看,发包

js 复制代码
npm adduser
npm login
npm who am i
npm publish

引用自原作者

8.docker可能没法拉镜像,要么科学上网,要么加几个源
阿里加速器

不过还是遇到个问题,重启容器,包没了

相关推荐
kkce25 分钟前
快快科技 MTR 路由检测全面支持 IPv6,多节点覆盖赋能全协议网络诊断
服务器·网络·科技
qq_401700412 小时前
Linux磁盘配置与管理
linux·运维·服务器
恒创科技HK2 小时前
香港大带宽服务器能降低ping值吗 ?
运维·服务器
爱代码的小黄人2 小时前
华硕主板BIOS设置台式机电脑“Restore AC Power Loss”(断电后恢复状态)设置
运维·服务器·电脑
打码人的日常分享2 小时前
基于信创体系政务服务信息化建设方案(PPT)
大数据·服务器·人工智能·信息可视化·架构·政务
G31135422732 小时前
判断 IP 地址纯净度
服务器·网络
北京盛世宏博3 小时前
如何利用技术手段来甄选一套档案馆库房安全温湿度监控系统
服务器·网络·人工智能·选择·档案温湿度
ringking1233 小时前
docker源文件配置以及密钥文件
运维·docker·容器
编织幻境的妖3 小时前
Docker和Kubernetes 常用命令
docker·容器·kubernetes
伊卡洛斯az5 小时前
Linux veth
linux·服务器