{"id":28718637,"url":"https://github.com/lianpeter/dnslog_for_go","last_synced_at":"2025-06-15T05:02:06.372Z","repository":{"id":290571011,"uuid":"964523903","full_name":"LianPeter/dnslog_for_go","owner":"LianPeter","description":"a dnslog for go","archived":false,"fork":false,"pushed_at":"2025-06-14T11:50:03.000Z","size":39434,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-14T12:34:52.866Z","etag":null,"topics":["dns","gin","golang","mac","windows"],"latest_commit_sha":null,"homepage":"localhost:8080/dnslog","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LianPeter.png","metadata":{"files":{"readme":"README.CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-11T10:53:18.000Z","updated_at":"2025-06-14T11:50:08.000Z","dependencies_parsed_at":"2025-06-14T12:37:57.398Z","dependency_job_id":null,"html_url":"https://github.com/LianPeter/dnslog_for_go","commit_stats":null,"previous_names":["lianpeter/dnslog_for_go"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/LianPeter/dnslog_for_go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LianPeter%2Fdnslog_for_go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LianPeter%2Fdnslog_for_go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LianPeter%2Fdnslog_for_go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LianPeter%2Fdnslog_for_go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LianPeter","download_url":"https://codeload.github.com/LianPeter/dnslog_for_go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LianPeter%2Fdnslog_for_go/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259924667,"owners_count":22932781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns","gin","golang","mac","windows"],"created_at":"2025-06-15T05:01:56.486Z","updated_at":"2025-06-15T05:02:06.356Z","avatar_url":"https://github.com/LianPeter.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dnslog_for_go\n\n---\n中文 | [English](README.md)\n\n---\n\n## 特性\n- 轻量级部署\n- 支持 Docker 部署\n- 自动校验域名合法性\n- 简洁实用的 Web 界面交互\n\n--- \n## 目录结构\n```\ndnslog_for_go/\n├── build/\n│   └──docker/                  // dockerfile\n├── cmd/\n│   └── app/\n│       └── main.go             // 主程序\n├── internal/\n│   └── config/                 // 配置文件\n│   └── domain/                 // 域名解析\n│   └── log/                    // 日志相关\n│   └── router/                 // 路由\n│   └── web/\n│       ├── templates/          // 模板文件\n│       ├── static/             // 静态资源\n│       └──resources.go        // embed.FS 资源\n├── pkg/                        // 公共包\n│   └── utils/                  \n│\n│\n├── test/                       // 测试\n│   └── utils/\n│\n├── go.mod                      // go mod 文件\n├── LICENSE                     // 许可证\n├── README.CN.md\n├── README.md\n```\n\n---\n\n## 项目介绍\n`dnslog_for_go` 是一个简单的 DNSLog 工具，使用 Go 语言编写，支持 Docker 部署。它可以用于测试和调试 DNS 相关的应用程序，帮助开发者快速进行 DNS 请求的日志记录与分析。\n\n### 使用的技术栈\n- [gin 框架](https://github.com/gin-gonic/gin)\n- [viper 配置管理](https://github.com/spf13/viper)\n- [miekg/dns 库](https://github.com/miekg/dns)\n- [zap](https://github.com/uber-go/zap)\n- [uuid 自动生成域名](https://github.com/google/uuid)\n- [go embed 嵌入静态资源](https://pkg.go.dev/embed) \n- [ini配置管理](https://github.com/go-ini/ini/tree/v1.67.0)\n\n---\n\n## 使用说明\n- Go 1.20+ 环境\n- Docker 1.12+ 环境\n\n### 贡献指南\n欢迎大家参与贡献！为了保证项目的质量和协作效率，请遵循以下规范提交 Issue 与 Pull Request。\n\n#### Issue 提交规范\n\u003e 仅用于报告 Bug、建议 Feature 或提交设计相关内容。\n\n- 请勿提交无关内容（如“感谢作者”、“求问某环境配置”等），这些 Issue 会被关闭。\n- 提交前请先 **搜索** 是否已有相关内容，避免重复提问。\n- Bug 提交时，请尽量提供以下信息：\n    - 操作系统与版本\n    - Go 版本\n    - 运行命令与日志输出\n    - 若涉及前端，提供截图或视频辅助\n\n##### 示例标题：\n```markdown\n🐞 dnslog 页面加载报错：WebSocket 无法连接\n✨ 支持将 DNS 请求结果导出为 CSV\n```\n\n#### Pull Request 提交规范\n\u003e 所有 PR 请遵循以下流程提交：\n\n1. **Fork 仓库**：请不要直接在主仓库上创建分支。\n2. 在你的仓库中创建新的分支进行开发。\n3. 提交前请确保本地代码已通过构建与测试。\n4. 每个 PR **仅包含一个功能/问题修复**，避免混杂。\n5. **Commit 信息规范**：\n\n格式：\n```markdown\n[文件/模块名]: 描述信息\n```\n\n##### 示例：\n```markdown\nREADME.md: 修复示例命令中的端口错误\ndnslog.go: 新增导出 CSV 功能\nDockerfile: 更新为多阶段构建，减少镜像体积\n```\n\n6. **PR 描述清晰**：\n    - 该变更的目的\n    - 涉及的文件和模块\n    - 是否修复了某个 Issue（建议在描述中引用）\n\n---\n\n### 联系我：\n- 可以在 Issue 中附上你的问题和邮箱，或通过邮箱直接联系我。\n- 邮箱：\n---\n\n## 快速开始\n\n### Docker 部署\n\n```bash\ndocker run --rm -p 8080:8080 \u003c你的用户名\u003e/dnslog-for-go:latest\n```\n\n运行后，打开浏览器访问：\n```\nhttp://localhost:8080/dnslog\n```\n\n### 本地部署\n\n#### 环境要求：\n- Go 1.20+，如果没有，请参考 [Go 安装指南](https://golang.org/doc/install/source)\n- Git 环境，若没有，请参考 [Git 安装指南](https://git-scm.com/)\n\n#### 部署步骤：\n1. 克隆项目：\n   ```bash\n   git clone https://github.com/LianPeter/dnslog_for_go.git\n   ```\n\n2. 进入项目目录：\n   ```bash\n   cd dnslog_for_go\n   ```\n\n3. 下载依赖：\n   ```bash\n   go mod download\n   ```\n\n4. 运行项目：\n   ```bash\n   go run main.go\n   ```\n\n5. 访问 Web 界面：\n   ```\n   http://localhost:8080/dnslog\n   ```\n\n### Docker 🐳 构建\n\n如果你想构建自己的镜像：\n\n```bash\ndocker build -t dnslog-for-go .\n```\n\n运行测试：\n\n```bash\ndocker run --rm -p 8080:8080 dnslog-for-go\n```\n\n---\n\n## TODO\n- [x] 自动生成dnslog 域名\n- [x] 支持更换dns服务器\n- [ ] 连接数据库，持久化存储（暂定）\n- [ ] 美化前端界面\n- [ ] 拥有客户端界面，不依赖于浏览器\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flianpeter%2Fdnslog_for_go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flianpeter%2Fdnslog_for_go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flianpeter%2Fdnslog_for_go/lists"}