feat: 优化 Debian 打包配置并初始化项目文档系统
All checks were successful
Build and Release Mond / build-and-test (arm64) (push) Successful in 4s
Build and Release Mond / build-and-test (amd64) (push) Successful in 14s
Build and Release Mond / release (push) Successful in 37s

- 简化 mond.service 配置,改为通过配置文件启动
- 优化 postinst 安装脚本,自动生成配置文件模板
- 优化 postrm 卸载脚本,正确清理数据目录
- 初始化 llmdoc 文档系统,包含项目概览、使用指南、架构说明和参考文档
- 更新 README.md 构建和配置说明
- 移除 .gitignore 中 llmdoc/ 的忽略规则
This commit is contained in:
2025-12-24 08:59:06 +08:00
parent 78f66b3c23
commit ff86a4e2bf
16 changed files with 651 additions and 39 deletions

View File

@@ -0,0 +1,38 @@
# Mond 构建系统架构
## 1. 构建环境支持
Mond 项目支持多平台构建:
- Ubuntu (amd64/arm64)
- Alpine Linux (amd64/arm64)
## 2. 关键构建组件
### 初始化脚本 (init.sh)
- 负责版本和配置预处理
- 使用 sed 进行文本替换
- 处理版本宏定义
### Dockerfile
- Alpine Linux: docker/Dockerfile.alpine
- 处理依赖安装
- 配置构建环境
## 3. 依赖管理
### Boost 库组件
必需的 Boost 库组件:
- filesystem
- thread
- date_time
- chrono
- serialization
- program_options
- locale
- system
- regex
## 4. CMake 构建流程
- 检查系统兼容性
- 链接必要库
- 生成可执行文件

View File

@@ -0,0 +1,41 @@
# Mond CI/CD 流水线架构
## 1. 身份标识
- **定义:** Gitea Actions 驱动的多架构持续集成与交付系统
- **目的:** 自动化构建、测试和发布 Mond 项目到多个平台和包管理系统
## 2. 核心组件
- `.gitea/workflows/ci.yaml` (CIWorkflow): 定义整个 CI/CD 流程
- `debian/build-deb.sh` (PackageBuilder): 处理 Debian 包构建逻辑
## 3. 执行流程LLM 检索路径)
### 持续集成流程
1. **代码推送触发:** 监听 master 分支和 PR 事件
2. **多架构构建:**
- 目标架构amd64, arm64
- 目标发行版Ubuntu, Alpine
3. **构建步骤:**
- 代码检出
- 依赖安装
- 单元测试
- 二进制编译
- 包构建
### 发布流程
1. **标签创建:** 手动或自动创建语义化版本标签
2. **构建制品:**
- 多架构 Docker 镜像
- Debian 包
- 二进制可执行文件
3. **发布到:**
- GitHub/Gitea Release
- 包管理仓库
## 4. 设计原理
- **可移植性:** 支持多架构和发行版
- **自动化:** 减少手动干预
- **一致性:** 标准化构建和发布流程

View File

@@ -0,0 +1,59 @@
# Mond 打包系统架构
## 1. 身份标识
- **定义:** 基于 Debian 打包规范的多平台软件分发系统
- **目的:** 提供标准化、可靠的软件安装和管理机制
## 2. 核心组件
- `debian/control.template` (PackageMetadata): 定义包元数据
- `debian/postinst` (PostInstallScript): 安装后配置脚本
- `debian/mond.service` (SystemdService): systemd 服务配置
- `debian/build-deb.sh` (BuildScript): 构建 Debian 包的脚本
## 3. 打包系统设计
### Debian 包结构
- **元数据:** 版本、依赖、描述
- **文件布局:**
- 二进制文件:`/opt/mond/mond`
- 配置文件:`/var/lib/mond/params.conf`(首次安装时自动创建)
- 数据目录:`/var/lib/mond/data/`
- 日志目录:`/var/log/mond/`
- systemd 服务:`/lib/systemd/system/mond.service`
### 安装后脚本逻辑
1. 创建必要的系统用户和组(`mond:mond`
2. 创建日志目录和数据目录(包括 `/var/lib/mond/data` 子目录)
3. **生成默认配置文件**(如果不存在)
- 位置:`/var/lib/mond/params.conf`
- 包含所有默认运行参数
- 使用 INI 格式
- 设置正确的权限640, mond:mond
4. 设置文件和目录权限
5. 重载 systemd 配置
6. 显示安装后说明(包括配置文件位置和使用指引)
**重要特性:** 配置文件只在首次安装时创建,升级时不会覆盖用户修改。
### systemd 集成
- 支持标准服务管理命令
- 使用配置文件方式启动(`--config-file=/var/lib/mond/params.conf --non-interactive`
- 配置服务依赖和启动行为
- 提供日志和状态监控
- 安全沙箱设置NoNewPrivileges, ProtectSystem, ProtectHome
- 允许写入配置目录、数据目录和日志目录ReadWritePaths
- 自动重启策略Restart=always
**配置管理优势:**
- 用户修改配置文件后,`apt upgrade` 不会覆盖
- systemd 服务文件可以安全更新,不影响用户配置
- 配置集中管理,易于维护
- 数据与配置分离,便于管理
## 4. 设计原理
- **标准合规:** 遵循 Debian 打包最佳实践
- **可配置性:** 灵活的服务和安装配置
- **可靠性:** 通过 systemd 提供健壮的服务管理