> For the complete documentation index, see [llms.txt](https://docs.ipcheck.ing/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipcheck.ing/developer/zh/contributing/reporting-issues.md).

# 报告问题

所有漏洞和功能请求都提交到 [GitHub Issues](https://github.com/jason5ng32/MyIP/issues)。该仓库提供两个模板——漏洞报告和功能请求——选择正确的模板能让大家少走一趟弯路。

## 在提交之前

{% hint style="info" %}
关于自托管部署的大多数报告最终都被证明是配置问题，而不是漏洞。先检查这些。
{% endhint %}

1. **搜索现有 issue**，无论已打开还是已关闭。你的问题可能已经在……上被报告、回答或修复。 `dev`.
2. **阅读** [**FAQ**](/developer/zh/reference/faq.md)**.** 其中涵盖了常见的部署和配置问题。
3. **确认你的设置。** 需要 MaxMind——参见 [MaxMind 设置](/developer/zh/getting-started/maxmind-setup.md)。某些功能依赖可选的 API 密钥；参见 [可选 API 密钥](/developer/zh/configuration/optional-api-keys.md).
4. **尝试最新版本。** 这个漏洞可能已经不存在了。

## 提交漏洞报告

使用 **漏洞报告** 模板。它会被自动标记为 `bug` 。该模板会要求填写以下内容。

### 环境

* 操作系统
* 浏览器（如适用）
* Node 版本
* Vite 版本
* Vue 3 版本
* Docker 版本（如适用）
* 部署方式——Vercel、Docker 或 Node
* 环境变量， **并移除所有密钥**
* 任何其他相关软件版本

{% hint style="danger" %}
切勿将 API 密钥、令牌或 MaxMind 凭据粘贴到 issue 中。请将其打码。若你已经泄露了其中之一，请立即轮换。
{% endhint %}

### 描述和复现步骤

清晰描述漏洞，然后列出可复现它的编号步骤。复现步骤是报告中最有用的部分。

### 预期行为与实际行为

你预期会发生什么，以及实际发生了什么。对于任何可视内容，截图或简短录屏都会有帮助。

### 终端和控制台日志

模板将其标为重要，而它确实重要。只要适用，请同时提供以下两种日志：

* **终端日志** 来自后端——错误信息和堆栈跟踪。
* **浏览器控制台日志** 用于前端中任何失败的内容。

<details>

<summary>从后端获取更多细节</summary>

后端通过共享的 `pino` 日志记录器输出日志。在复现前将级别提高以捕获更多信息：

```bash
LOG_LEVEL=debug pnpm dev
```

参见 [日志](/developer/zh/configuration/logging.md) 了解其他开关，包括 `LOG_FORMAT` 和 `LOG_HTTP`.

</details>

### 可选补充

* **补充上下文** ——相关 issue 链接，以及其他任何相关信息。
* **可能的解决方案** ——如果你已经有修复思路，请描述出来。如果你想自己实现它，请说明并先阅读 [如何贡献](/developer/zh/contributing/how-to-contribute.md) 。

## 提交功能请求

使用 **功能请求** 模板。它会被自动标记为 `enhancement` 会被自动标记，并要求填写四件事：

| 字段          | 要写什么           |
| ----------- | -------------- |
| 它是否与某个问题有关？ | 该请求背后的具体困扰     |
| 描述你希望的解决方案  | 从用户角度看，应该发生什么  |
| 描述你考虑过的替代方案 | 其他做法，以及它们为何不足  |
| 补充上下文       | 截图、原型图、之前实现的链接 |

请说明面向用户的收益，而不仅仅是实现方式。从真实问题出发的请求，比从拟议 API 出发的请求更容易评估。

{% hint style="info" %}
打算自己实现这个功能吗？仍然先开 issue，并等待维护者确认方向后再写代码。参见 [如何贡献](/developer/zh/contributing/how-to-contribute.md).
{% endhint %}

## 安全问题不同

不要为漏洞提交普通的 bug 报告。请遵循 [安全政策](/developer/zh/contributing/security-policy.md) 。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ipcheck.ing/developer/zh/contributing/reporting-issues.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
