# 📋 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 服务器!** 🚀