侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Verdaccio 安装与配置文档(CentOS 8)

君
2024-12-27 / 0 评论 / 0 点赞 / 17 阅读 / 9713 字

Verdaccio 安装与配置文档(CentOS 8)

本指南介绍了如何在 CentOS 8 上安装 Node.js LTS(版本 18 及以上),安装并配置 Verdaccio 作为本地私有 npm 仓库,允许所有人推送包,同时配置服务自启动。

目录

  1. 安装 Node.js LTS
  2. 安装 Verdaccio
  3. 配置 Verdaccio
  4. 配置 Verdaccio 服务自启动
  5. 验证安装与配置
  6. 故障排除

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: $allaccess: $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 loginnpm adduser 命令登录到 Verdaccio:

npm login --registry=http://<你的服务器IP>:4873

确保使用在 Verdaccio 中创建的用户名和密码。

5.3 验证权限和发布包

登录后,测试推送一个包:

npm publish --registry=http://<你的服务器IP>:4873

如果配置正确,所有人都应该能发布包到该仓库。


6. 故障排除

6.1 Verdaccio 服务未启动

  • 检查 verdaccio.service 配置是否正确,确保 ExecStartWorkingDirectory 路径正确无误。
  • 查看 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 服务的自动启动和配置允许所有人推送包。如果有任何问题,可以参考日志文件或者根据错误提示进行故障排除。

0

评论区