371 lines
7.6 KiB
Markdown
371 lines
7.6 KiB
Markdown
# 📋 Gitea 发布指南
|
||
|
||
## 🎯 推送到 Gitea 的步骤
|
||
|
||
### 1. 准备工作
|
||
|
||
#### 替换文档中的链接
|
||
|
||
```bash
|
||
# 替换为你的 Gitea 地址和仓库
|
||
GITEA_URL="https://你的Gitea地址"
|
||
GITEA_USER="你的用户名"
|
||
GITEA_REPO="mosdns"
|
||
|
||
# 批量替换
|
||
sed -i "s|https://github.com/your-repo/mosdns|${GITEA_URL}/${GITEA_USER}/${GITEA_REPO}|g" README.md CHANGELOG.md 发布前检查清单.md
|
||
```
|
||
|
||
或者手动替换为你的实际地址,例如:
|
||
- `https://git.example.com/username/mosdns`
|
||
- `http://192.168.1.100:3000/username/mosdns`
|
||
|
||
### 2. 清理和准备
|
||
|
||
```bash
|
||
# 清理不需要的文件
|
||
rm -rf dist/
|
||
rm -rf web-ui/node_modules/
|
||
rm -rf web-ui/dist/
|
||
rm -f *.log
|
||
rm -f cache.dump
|
||
|
||
# 确保 .gitignore 已配置
|
||
cat .gitignore
|
||
```
|
||
|
||
### 3. 初始化 Git 仓库
|
||
|
||
```bash
|
||
# 如果还没有初始化
|
||
git init
|
||
|
||
# 配置用户信息(首次使用)
|
||
git config user.name "你的名字"
|
||
git config user.email "your.email@example.com"
|
||
|
||
# 查看状态
|
||
git status
|
||
```
|
||
|
||
### 4. 添加和提交
|
||
|
||
```bash
|
||
# 添加所有文件
|
||
git add .
|
||
|
||
# 查看将要提交的文件
|
||
git status
|
||
|
||
# 提交
|
||
git commit -m "Initial commit: YLTX-MosDNS v1.0.0
|
||
|
||
核心功能:
|
||
- 智能防污染系统
|
||
- Web 管理界面
|
||
- 配置热加载
|
||
- 一键部署 (init 命令)
|
||
- 智能拓扑排序
|
||
- MikroTik 集成
|
||
- 完整的 RESTful API
|
||
|
||
详见 CHANGELOG.md"
|
||
```
|
||
|
||
### 5. 在 Gitea 创建仓库
|
||
|
||
1. 登录你的 Gitea 实例
|
||
2. 点击右上角 "+" → "新建仓库"
|
||
3. 填写仓库信息:
|
||
- **仓库名称**: `mosdns` 或 `yltx-mosdns`
|
||
- **描述**: `YLTX-MosDNS - 智能防污染 DNS 服务器`
|
||
- **可见性**: 公开/私有(根据需求)
|
||
- **初始化**: 不要勾选任何初始化选项
|
||
|
||
4. 点击 "创建仓库"
|
||
|
||
### 6. 关联远程仓库并推送
|
||
|
||
```bash
|
||
# 添加远程仓库(替换为你的实际地址)
|
||
git remote add origin https://你的Gitea地址/你的用户名/mosdns.git
|
||
|
||
# 或者使用 SSH(推荐)
|
||
git remote add origin git@你的Gitea地址:你的用户名/mosdns.git
|
||
|
||
# 查看远程仓库
|
||
git remote -v
|
||
|
||
# 推送到主分支
|
||
git branch -M main
|
||
git push -u origin main
|
||
```
|
||
|
||
### 7. 创建 Release(可选)
|
||
|
||
Gitea 也支持 Release 功能:
|
||
|
||
1. 在仓库页面点击 "发行版" 或 "Releases"
|
||
2. 点击 "新建发行版"
|
||
3. 填写信息:
|
||
- **标签名称**: `v1.0.0`
|
||
- **目标分支**: `main`
|
||
- **发行版标题**: `YLTX-MosDNS v1.0.0`
|
||
- **描述**: 粘贴 Release Notes(见下文)
|
||
|
||
4. 上传编译好的二进制文件:
|
||
```bash
|
||
# 先编译所有平台
|
||
bash build-all-platforms.sh <<< "A"
|
||
|
||
# 打包
|
||
cd dist/
|
||
tar -czf mosdns-linux-amd64-v1.0.0.tar.gz mosdns-linux-amd64
|
||
tar -czf mosdns-linux-arm64-v1.0.0.tar.gz mosdns-linux-arm64
|
||
zip mosdns-windows-amd64-v1.0.0.zip mosdns-windows-amd64.exe
|
||
tar -czf mosdns-darwin-amd64-v1.0.0.tar.gz mosdns-darwin-amd64
|
||
tar -czf mosdns-darwin-arm64-v1.0.0.tar.gz mosdns-darwin-arm64
|
||
```
|
||
|
||
5. 点击 "发布发行版"
|
||
|
||
---
|
||
|
||
## 📝 Release Notes 模板
|
||
|
||
```markdown
|
||
## YLTX-MosDNS v1.0.0
|
||
|
||
基于 MosDNS v5 的增强版本,专注于智能防污染和易用性。
|
||
|
||
### 🌟 核心功能
|
||
|
||
- **🛡️ 智能防污染系统** - 自动检测 DNS 污染并切换上游
|
||
- **🎨 Web 管理界面** - Vue 3 可视化管理,无需编辑配置
|
||
- **🔄 配置热加载** - 零停机更新配置
|
||
- **⚡ 一键部署** - `init` 命令 3 步快速启动
|
||
- **🧠 智能拓扑排序** - 支持任意插件配置顺序
|
||
- **📡 MikroTik 集成** - 自动同步到路由器地址列表
|
||
|
||
### 📦 下载
|
||
|
||
| 平台 | 架构 | 文件名 |
|
||
|------|------|--------|
|
||
| Linux | AMD64 | mosdns-linux-amd64-v1.0.0.tar.gz |
|
||
| Linux | ARM64 | mosdns-linux-arm64-v1.0.0.tar.gz |
|
||
| Windows | AMD64 | mosdns-windows-amd64-v1.0.0.zip |
|
||
| macOS | Intel | mosdns-darwin-amd64-v1.0.0.tar.gz |
|
||
| macOS | Apple Silicon | mosdns-darwin-arm64-v1.0.0.tar.gz |
|
||
|
||
### 🚀 快速开始
|
||
|
||
bash
|
||
# Linux/macOS
|
||
tar -xzf mosdns-linux-amd64-v1.0.0.tar.gz
|
||
./mosdns-linux-amd64 init
|
||
sed -i 's/:53/:5310/g' config.yaml
|
||
./mosdns-linux-amd64 start -c config.yaml
|
||
|
||
# Windows
|
||
# 解压 zip 文件
|
||
mosdns-windows-amd64.exe init
|
||
# 编辑 config.yaml,修改端口为 5310
|
||
mosdns-windows-amd64.exe start -c config.yaml
|
||
|
||
|
||
访问 http://localhost:5555 进入 Web 管理界面
|
||
|
||
### 📚 文档
|
||
|
||
- [README](./README.md) - 项目文档
|
||
- [快速部署指南](./快速部署指南.md)
|
||
- [一键部署说明](./README-一键部署.md)
|
||
- [架构设计文档](./yltx-dns-智能防污染系统-架构设计文档.md)
|
||
- [更新日志](./CHANGELOG.md)
|
||
|
||
### ⚠️ 注意事项
|
||
|
||
1. 默认端口 53 需要 root/管理员权限
|
||
2. 建议下载完整的 CN IP 和域名数据文件
|
||
3. Web UI 默认监听 0.0.0.0:5555,生产环境建议配置反向代理
|
||
|
||
### 🙏 致谢
|
||
|
||
感谢 [@IrineSistiana](https://github.com/IrineSistiana) 创建的原始 MosDNS 项目。
|
||
|
||
### 📄 许可证
|
||
|
||
GPL v3
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 常用 Git 命令
|
||
|
||
### 日常更新
|
||
|
||
```bash
|
||
# 查看状态
|
||
git status
|
||
|
||
# 添加修改的文件
|
||
git add .
|
||
|
||
# 提交
|
||
git commit -m "描述修改内容"
|
||
|
||
# 推送
|
||
git push
|
||
```
|
||
|
||
### 创建新版本
|
||
|
||
```bash
|
||
# 创建标签
|
||
git tag -a v1.1.0 -m "Release v1.1.0"
|
||
|
||
# 推送标签
|
||
git push origin v1.1.0
|
||
|
||
# 推送所有标签
|
||
git push --tags
|
||
```
|
||
|
||
### 查看历史
|
||
|
||
```bash
|
||
# 查看提交历史
|
||
git log --oneline
|
||
|
||
# 查看标签
|
||
git tag
|
||
```
|
||
|
||
---
|
||
|
||
## 🌐 Gitea 特色功能
|
||
|
||
### 1. Wiki
|
||
如果你的 Gitea 启用了 Wiki 功能,可以创建详细的文档:
|
||
- 安装指南
|
||
- 配置说明
|
||
- 故障排查
|
||
- API 文档
|
||
|
||
### 2. Issues
|
||
用户可以通过 Issues 报告问题和提建议
|
||
|
||
### 3. Pull Requests
|
||
接受社区贡献
|
||
|
||
### 4. Actions (CI/CD)
|
||
如果启用了 Gitea Actions,可以配置自动构建:
|
||
|
||
```yaml
|
||
# .gitea/workflows/build.yml
|
||
name: Build
|
||
|
||
on:
|
||
push:
|
||
tags:
|
||
- 'v*'
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v3
|
||
- uses: actions/setup-go@v4
|
||
with:
|
||
go-version: '1.20'
|
||
- name: Build
|
||
run: bash build-all-platforms.sh <<< "A"
|
||
- name: Upload artifacts
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: mosdns-binaries
|
||
path: dist/*
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 仓库设置建议
|
||
|
||
### 仓库描述
|
||
```
|
||
YLTX-MosDNS - 智能防污染 DNS 服务器 | 基于 MosDNS v5 | Web 管理界面 | 配置热加载 | 一键部署
|
||
```
|
||
|
||
### 主题标签 (Topics)
|
||
如果 Gitea 支持标签:
|
||
- `dns`
|
||
- `dns-server`
|
||
- `smart-dns`
|
||
- `anti-pollution`
|
||
- `golang`
|
||
- `vue`
|
||
- `mikrotik`
|
||
- `mosdns`
|
||
|
||
### 网站链接
|
||
如果部署了在线演示或文档站点,可以在仓库设置中添加
|
||
|
||
---
|
||
|
||
## 🔐 SSH 密钥配置(推荐)
|
||
|
||
使用 SSH 更安全且无需每次输入密码:
|
||
|
||
```bash
|
||
# 1. 生成 SSH 密钥(如果还没有)
|
||
ssh-keygen -t ed25519 -C "your.email@example.com"
|
||
|
||
# 2. 查看公钥
|
||
cat ~/.ssh/id_ed25519.pub
|
||
|
||
# 3. 在 Gitea 添加 SSH 公钥
|
||
# - 登录 Gitea
|
||
# - 用户设置 → SSH/GPG 密钥
|
||
# - 添加密钥 → 粘贴公钥内容
|
||
|
||
# 4. 测试连接
|
||
ssh -T git@你的Gitea地址
|
||
|
||
# 5. 使用 SSH URL
|
||
git remote set-url origin git@你的Gitea地址:你的用户名/mosdns.git
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 快速检查清单
|
||
|
||
发布前确认:
|
||
|
||
- [ ] 替换所有链接为实际的 Gitea 地址
|
||
- [ ] 清理临时文件和编译产物
|
||
- [ ] 测试编译所有平台
|
||
- [ ] 测试 init 和启动功能
|
||
- [ ] 检查敏感信息已删除
|
||
- [ ] Git 仓库已初始化
|
||
- [ ] 远程仓库已创建
|
||
- [ ] 代码已推送成功
|
||
- [ ] Release 已创建(可选)
|
||
- [ ] 二进制文件已上传(可选)
|
||
|
||
---
|
||
|
||
## 🎉 完成!
|
||
|
||
推送到 Gitea 后,你的团队成员可以通过以下方式获取:
|
||
|
||
```bash
|
||
# 克隆仓库
|
||
git clone https://你的Gitea地址/你的用户名/mosdns.git
|
||
|
||
# 或使用 SSH
|
||
git clone git@你的Gitea地址:你的用户名/mosdns.git
|
||
```
|
||
|
||
**享受你的私有 Git 服务器!** 🚀
|
||
|