Verdaccio 安装与配置文档(CentOS 8)
本指南介绍了如何在 CentOS 8 上安装 Node.js LTS(版本 18 及以上),安装并配置 Verdaccio 作为本地私有 npm 仓库,允许所有人推送包,同时配置服务自启动。
目录
1. 安装 Node.js LTS(版本 18 及以上)
1.1 安装 Node.js
首先,更新系统并安装 Node.js LTS 版本。可以通过 NodeSource 来安装最新版的 Node.js。
# 更新系统
sudo yum update -y
# 安装 Node.js LTS 版本 (18.x)
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
1.2 验证安装
确保 Node.js 和 npm 安装成功:
node -v # 应显示 Node.js 版本号 (18.x)
npm -v # 应显示 npm 版本号
2. 安装 Verdaccio
2.1 使用 npm 安装 Verdaccio
使用 npm 全局安装 Verdaccio:
sudo npm install -g verdaccio
2.2 验证 Verdaccio 安装
检查 Verdaccio 是否安装成功:
verdaccio --version
如果显示版本号,说明 Verdaccio 安装成功。
3. 配置 Verdaccio
3.1 编辑 config.yaml
配置文件
默认情况下,config.yaml
文件位于 ~/verdaccio
目录下。你可以编辑该文件来修改存储路径、日志路径、权限控制等设置。
nano ~/verdaccio/config.yaml
3.1.1 配置示例
以下是一个配置示例,允许所有人推送包,并设置相关路径和权限。
# ~/verdaccio/config.yaml
# 存储路径
storage: ~/verdaccio/storage # 设置存储路径
# 日志配置
logs:
- { level: info, path: ~/verdaccio/logs/verdaccio.log } # 设置日志路径
# 启用 HTTP 服务
listen:
- 0.0.0.0:4873 # 监听所有IP地址和端口 4873
# 包管理配置
packages:
'@*/*': # 针对 Scoped Packages
access: $all
publish: $all
unpublish: $authenticated
proxy: npmjs
'**': # 针对所有包
access: $all # 允许所有用户访问
publish: $all # 允许所有用户发布包
unpublish: $authenticated # 只有认证用户可以删除包
3.1.2 配置说明
- storage:设置 Verdaccio 存储包的位置。修改为
~/verdaccio/storage
以使用自定义存储路径。 - logs:配置日志文件存储路径,修改为
~/verdaccio/logs/verdaccio.log
。 - listen:配置 Verdaccio 服务监听的 IP 地址和端口。
0.0.0.0:4873
表示允许从所有 IP 地址连接。 - packages:
@*/*
:允许所有以@
开头的包(scoped packages)访问和发布。**
:允许所有包的访问和发布,$all
代表所有用户都可以访问、发布。
3.2 配置认证
在上述配置中,publish: $all
和 access: $all
允许所有用户发布和访问包。你还可以通过修改认证方式来进一步控制访问。
如果你希望启用认证(比如只有注册用户能够发布包),你需要配置相应的 auth
插件。
4. 配置 Verdaccio 服务自启动
为了确保 Verdaccio 在系统启动时自动启动,你可以通过 systemd
来管理服务。
4.1 创建 systemd 服务文件
创建一个 verdaccio.service
文件,放置于 /etc/systemd/system/
目录:
sudo nano /etc/systemd/system/verdaccio.service
4.2 配置服务文件
在服务文件中,设置正确的工作目录和启动命令。
[Unit]
Description=Verdaccio
After=network.target
[Service]
Type=simple
User=verdaccio_user # 根据需要设置用户
ExecStart=/usr/bin/verdaccio -c ~/verdaccio/config.yaml
WorkingDirectory=~/verdaccio # 设置工作目录为 ~/verdaccio
Restart=always
RestartSec=3
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
说明:
ExecStart
:指定 Verdaccio 启动时使用的配置文件路径。WorkingDirectory
:指定 Verdaccio 的工作目录。Restart=always
:确保 Verdaccio 在崩溃或停止时自动重启。
4.3 重新加载 systemd 并启动 Verdaccio 服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 启动 Verdaccio 服务
sudo systemctl start verdaccio
# 设置 Verdaccio 服务开机自启
sudo systemctl enable verdaccio
4.4 检查服务状态
使用以下命令检查 Verdaccio 服务是否正在运行:
sudo systemctl status verdaccio
如果服务正在运行,你将看到 Active: active (running)
状态。
5. 验证安装与配置
5.1 访问 Verdaccio
你可以通过浏览器访问 Verdaccio 提供的 npm 仓库界面:
http://<你的服务器IP>:4873
5.2 使用 npm 登录到 Verdaccio
你可以通过 npm login
或 npm adduser
命令登录到 Verdaccio:
npm login --registry=http://<你的服务器IP>:4873
确保使用在 Verdaccio 中创建的用户名和密码。
5.3 验证权限和发布包
登录后,测试推送一个包:
npm publish --registry=http://<你的服务器IP>:4873
如果配置正确,所有人都应该能发布包到该仓库。
6. 故障排除
6.1 Verdaccio 服务未启动
- 检查
verdaccio.service
配置是否正确,确保ExecStart
和WorkingDirectory
路径正确无误。 - 查看 Verdaccio 的日志文件,定位问题。
journalctl -u verdaccio
6.2 访问问题
- 确保防火墙已允许端口 4873 访问:
sudo firewall-cmd --zone=public --add-port=4873/tcp --permanent
sudo firewall-cmd --reload
- 确保 Verdaccio 配置中的
listen
设置为0.0.0.0:4873
,以允许来自所有 IP 的连接。
结语
通过上述步骤,你已经成功在 CentOS 8 上安装并配置了 Verdaccio,同时设置了 Verdaccio 服务的自动启动和配置允许所有人推送包。如果有任何问题,可以参考日志文件或者根据错误提示进行故障排除。
评论区