简化 CI 配置:统一使用 stable Debian 发行版
All checks were successful
Build and Release / build-and-test (arm64, alpine) (push) Successful in -12s
Build and Release / build-and-test (amd64, alpine) (push) Successful in -5s
Build and Release / build-and-test (arm64, ubuntu) (push) Successful in 0s
Build and Release / build-and-test (amd64, ubuntu) (push) Successful in 9s
Build and Release / release (push) Successful in 38s
All checks were successful
Build and Release / build-and-test (arm64, alpine) (push) Successful in -12s
Build and Release / build-and-test (amd64, alpine) (push) Successful in -5s
Build and Release / build-and-test (arm64, ubuntu) (push) Successful in 0s
Build and Release / build-and-test (amd64, ubuntu) (push) Successful in 9s
Build and Release / release (push) Successful in 38s
- 移除多发行版 Debian Package Registry 上传(bookworm、trixie) - 统一上传到 stable 发行版池,简化维护和用户体验 - 更新 README 和文档系统的安装指南 - 新增 CI 工作流程概述文档 - 保持 ubuntu 和 alpine 双发行版构建支持
This commit is contained in:
@@ -1,58 +1,45 @@
|
||||
# Debian 包配置管理架构
|
||||
# Debian 打包架构
|
||||
|
||||
## 1. 配置文件管理机制
|
||||
## 1. 身份
|
||||
|
||||
### 配置文件位置和格式
|
||||
- **文件路径:** `/var/lib/p2pool/params.conf`
|
||||
- **文件权限:** `640` (所有者: `p2pool:p2pool`)
|
||||
- **格式:** 基于命令行参数的 key-value 配置文件
|
||||
- **目的**:为 p2pool 构建跨架构的 Debian 软件包
|
||||
- **关键功能**:多架构支持、自动化构建和发布
|
||||
|
||||
### 配置文件生命周期
|
||||
## 2. 核心组件
|
||||
|
||||
#### 创建时机
|
||||
- **首次安装:** `postinst` 脚本自动创建示例配置文件
|
||||
- **升级场景:** 现有配置文件被完全保留,不会被覆盖
|
||||
关键文件:
|
||||
- `.gitea/workflows/ci.yaml`:CI/CD 流程
|
||||
- `debian/build-deb.sh`:Debian 打包脚本
|
||||
- `debian/control`:软件包元数据
|
||||
- `debian/postinst`:安装后脚本
|
||||
- `debian/postrm`:卸载后脚本
|
||||
|
||||
#### 配置文件生成策略
|
||||
```bash
|
||||
# 配置文件初始化伪代码
|
||||
if [ ! -f /var/lib/p2pool/params.conf ]; then
|
||||
cp /usr/share/p2pool/params.conf.example /var/lib/p2pool/params.conf
|
||||
chown p2pool:p2pool /var/lib/p2pool/params.conf
|
||||
chmod 640 /var/lib/p2pool/params.conf
|
||||
fi
|
||||
```
|
||||
## 3. 构建流程
|
||||
|
||||
### 配置加载机制
|
||||
- systemd 服务使用 `--params-file /var/lib/p2pool/params.conf` 加载配置
|
||||
- 配置文件支持所有原命令行参数
|
||||
- 配置文件优先级高于硬编码的默认值
|
||||
1. **架构选择**:
|
||||
- `amd64`: 64位 x86 架构
|
||||
- `arm64`: ARM 64位架构
|
||||
|
||||
## 2. 安全与管理特性
|
||||
2. **发行版目标**:
|
||||
- `stable`:统一的稳定发行版仓库
|
||||
|
||||
### 权限控制
|
||||
- 仅 `p2pool` 系统用户可读写配置文件
|
||||
- 组权限限制,防止非授权访问敏感配置
|
||||
- 文件权限 `640` 确保最小权限原则
|
||||
3. **Package Registry**:
|
||||
- Generic Package Registry:存储 `.tar.gz`
|
||||
- Debian Package Registry:存储 `.deb`
|
||||
|
||||
### 升级保护
|
||||
- 配置文件在包升级过程中保持不变
|
||||
- 新版本兼容旧配置文件格式
|
||||
- 升级后可通过比较 `params.conf.example` 检查新增配置项
|
||||
## 4. 配置管理
|
||||
|
||||
## 3. 配置示例
|
||||
- 配置文件:`/var/lib/p2pool/params.conf`
|
||||
- 安全原则:
|
||||
- 配置与二进制包分离
|
||||
- 升级时保留用户配置
|
||||
- 最小权限原则
|
||||
|
||||
```conf
|
||||
# /var/lib/p2pool/params.conf 示例
|
||||
wallet=YOUR_MONERO_WALLET_ADDRESS
|
||||
host=0.0.0.0
|
||||
rpc-port=3333
|
||||
log-level=1
|
||||
```
|
||||
## 5. 发布策略
|
||||
|
||||
## 4. 设计考量
|
||||
|
||||
### 动机
|
||||
- 简化复杂的命令行参数管理
|
||||
- 提供更好的配置持久化方案
|
||||
- 增强系统配置的可读性和可维护性
|
||||
- 自动化版本发布
|
||||
- 标签触发(`refs/tags/*`)
|
||||
- 多渠道发布:
|
||||
1. Generic Package Registry
|
||||
2. Debian Package Registry
|
||||
3. GitHub/Gitea Releases
|
||||
@@ -11,7 +11,7 @@ sudo curl https://GITEA_URL/api/packages/OWNER/debian/repository.key \
|
||||
|
||||
# 添加仓库源(以 Debian 12 为例)
|
||||
echo "deb [signed-by=/etc/apt/keyrings/gitea-OWNER.asc] \
|
||||
https://GITEA_URL/api/packages/OWNER/debian bookworm main" | \
|
||||
https://GITEA_URL/api/packages/OWNER/debian stable main" | \
|
||||
sudo tee /etc/apt/sources.list.d/OWNER.list
|
||||
|
||||
# 更新包列表并安装
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# P2Pool Debian 打包与配置系统文档
|
||||
# p2pool 文档系统
|
||||
|
||||
## 文档导航
|
||||
## 概述 (Overview)
|
||||
- [CI 工作流程](/llmdoc/overview/ci-workflow.md)
|
||||
|
||||
### 总览
|
||||
- [架构:Debian 包管理](/llmdoc/architecture/debian-packaging.md)
|
||||
## 指南 (Guides)
|
||||
- [Debian 包安装](/llmdoc/guides/debian-package.md)
|
||||
|
||||
### 指南
|
||||
- [Debian 包安装与配置](/llmdoc/guides/debian-package.md)
|
||||
## 架构 (Architecture)
|
||||
- [Debian 打包架构](/llmdoc/architecture/debian-packaging.md)
|
||||
|
||||
### 参考资料
|
||||
- 待添加
|
||||
## 参考 (Reference)
|
||||
(暂无)
|
||||
24
llmdoc/overview/ci-workflow.md
Normal file
24
llmdoc/overview/ci-workflow.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# CI 工作流程概述
|
||||
|
||||
## 1. 身份
|
||||
|
||||
- **目的**:自动化构建、测试和发布 p2pool 软件包
|
||||
- **关键功能**:支持多架构、多发行版的软件包构建和发布
|
||||
|
||||
## 2. 高层描述
|
||||
|
||||
CI 工作流程通过 Gitea 工作流实现自动化构建和发布:
|
||||
|
||||
- 支持架构:`amd64`、`arm64`
|
||||
- 支持发行版:`ubuntu`、`alpine`
|
||||
- 发布目标:
|
||||
1. Generic Package Registry
|
||||
2. Debian Package Registry (stable)
|
||||
3. GitHub/Gitea Releases
|
||||
|
||||
## 3. 关键文件
|
||||
|
||||
- `.gitea/workflows/ci.yaml`:主要工作流配置
|
||||
- `debian/build-deb.sh`:Debian 打包脚本
|
||||
- `docker/Dockerfile.ubuntu`:Ubuntu 构建镜像
|
||||
- `docker/Dockerfile.alpine`:Alpine 构建镜像
|
||||
Reference in New Issue
Block a user