> 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-tw/welcome.md).

# 歡迎

MyIP（IPCheck.ing）的開發者文件——部署你自己的實例、了解程式碼庫，並為專案做出貢獻。

**MyIP** 是一個開源的 IP 工具箱：可從多個來源查詢 IP、連線測試、WebRTC 與 DNS 洩漏偵測、速度測試、全球延遲與 MTR 測試、Whois、DNS 解析器、審查檢查、瀏覽器指紋辨識、IP 計算器等等——全部整合在一個可自行託管的應用中，並以單一 Docker 映像檔提供。

<button type="button" class="button primary" data-action="ask" data-icon="gitbook-assistant">提出問題…</button>

<button type="button" class="button secondary" data-action="ask" data-query="How do I deploy MyIP with Docker?" data-icon="docker">使用 Docker 部署</button><button type="button" class="button secondary" data-action="ask" data-query="How do I set up MaxMind GeoLite2 for MyIP?" data-icon="database">設定 MaxMind</button><button type="button" class="button secondary" data-action="ask" data-query="How do I add a new tool to MyIP?" data-icon="wand-magic-sparkles">新增工具</button><button type="button" class="button secondary" data-action="ask" data-query="How do I contribute to MyIP?" data-icon="code-pull-request">貢獻</button>

{% hint style="success" icon="globe" %}
**查看線上示範** ——官方實例運行於 [ipcheck.ing](https://ipcheck.ing)。你在那裡看到的一切，就是你自行託管時會得到的內容。
{% endhint %}

## 從哪裡開始

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h3><i class="fa-rocket-launch" style="color:$primary;">:rocket-launch:</i></h3></td><td><h4><strong>入門指南</strong></h4></td><td>使用 Docker 或 Node.js 部署你自己的實例。</td><td><a href="/developer/zh-tw/getting-started/quickstart.md">快速入門</a></td></tr><tr><td><h3><i class="fa-sliders" style="color:$success;">:sliders:</i></h3></td><td><h4><strong>設定</strong></h4></td><td>API 金鑰、安全性、日誌、監控——全部都是選用的。</td><td><a href="/developer/zh-tw/configuration/optional-api-keys.md">選用 API 金鑰</a></td></tr><tr><td><h3><i class="fa-sitemap" style="color:$warning;">:sitemap:</i></h3></td><td><h4><strong>架構</strong></h4></td><td>前端、後端與資料層如何彼此配合。</td><td><a href="/developer/zh-tw/architecture/project-structure.md">專案結構</a></td></tr><tr><td><h3><i class="fa-code" style="color:$info;">:code:</i></h3></td><td><h4><strong>開發</strong></h4></td><td>慣例、i18n、測試，以及新增你自己的工具。</td><td><a href="/developer/zh-tw/development/dev-environment.md">開發環境</a></td></tr><tr><td><h3><i class="fa-code-pull-request" style="color:$danger;">:code-pull-request:</i></h3></td><td><h4><strong>貢獻</strong></h4></td><td>分支規範、PR 指南、提交風格，以及翻譯。</td><td><a href="/developer/zh-tw/contributing/how-to-contribute.md">如何貢獻</a></td></tr><tr><td><h3><i class="fa-book-open" style="color:$primary;">:book-open:</i></h3></td><td><h4><strong>參考資料</strong></h4></td><td>每個環境變數、每個 API 端點，以及常見問題。</td><td><a href="/developer/zh-tw/reference/environment-variables.md">環境變數</a></td></tr></tbody></table>

{% columns %}
{% column width="50%" %}

## 幾分鐘內完成部署

MyIP 以單一 Docker 映像檔提供，內含應用的兩個部分： **Vue 3** 單頁式前端，以及 **Express 5** 後端 API。

唯一的硬性需求是一組免費的 **MaxMind GeoLite2** 憑證——它們為整個應用中的 IP 地理定位與 ASN 查詢提供支援。

{% hint style="warning" icon="triangle-exclamation" %}
**千萬別略過 MaxMind。** 沒有 MaxMind 憑證的新容器可以正常啟動，但 IP 地理定位和國家徽章仍會無法運作。這只需五分鐘、零成本設定——請參閱 [MaxMind 設定](/developer/zh-tw/getting-started/maxmind-setup.md).
{% endhint %}

{% hint style="info" icon="server" %}
**偏好裸機部署？** 你可以直接使用 Node.js 與 pnpm 執行 MyIP，並可選用 pm2 進程管理——請參閱 [使用 Node.js 部署](/developer/zh-tw/getting-started/deploy-with-nodejs.md).
{% endhint %}

<a href="/developer/zh-tw/getting-started/quickstart.md" class="button primary" data-icon="rocket-launch">快速入門</a> <a href="/developer/zh-tw/reference/environment-variables.md" class="button secondary" data-icon="gear">環境變數</a>
{% endcolumn %}

{% column width="50%" %}
{% stepper %}
{% step %}

#### 取得 MaxMind 憑證

建立一個免費的 [GeoLite2 帳號](https://www.maxmind.com/en/geolite2/signup) 並產生一組授權金鑰。
{% endstep %}

{% step %}

#### 執行容器

{% code overflow="wrap" %}

```bash
docker run -d -p 18966:18966 \
  -e MAXMIND_ACCOUNT_ID="YOUR_ACCOUNT_ID" \
  -e MAXMIND_LICENSE_KEY="YOUR_LICENSE_KEY" \
  -e MAXMIND_AUTO_UPDATE="true" \
  --name myip --restart always \
  jason5ng32/myip:latest
```

{% endcode %}
{% endstep %}

{% step %}

#### 開啟你的實例

前往 `http://localhost:18966` ——GeoLite2 資料庫會在首次啟動後約一分鐘內自動下載。
{% endstep %}
{% endstepper %}
{% endcolumn %}
{% endcolumns %}

## 熱門頁面

{% columns %}
{% column %}

### 給部署者

{% content-ref url="/pages/d45b76e24d8bd58b54a27a5c16c75f919b072c6d" %}
[使用 Docker 部署](/developer/zh-tw/getting-started/deploy-with-docker.md)
{% endcontent-ref %}

{% content-ref url="/pages/56aae36eac1701b41ddae040fddd7896cae61884" %}
[MaxMind 設定（必需）](/developer/zh-tw/getting-started/maxmind-setup.md)
{% endcontent-ref %}

{% content-ref url="/pages/d38eb9c243163194e80a92f2c7c1dcf3ae74b6da" %}
[反向代理與網域](/developer/zh-tw/getting-started/reverse-proxy-and-domains.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}

### 給開發者

{% content-ref url="/pages/fef31e000587b8267e0707b3fdcf1f451c108c9c" %}
[新增工具](/developer/zh-tw/development/adding-a-new-tool.md)
{% endcontent-ref %}

{% content-ref url="/pages/9b40eea9901dbe41cff90396e728b6bb182af8cf" %}
[IP 資料來源](/developer/zh-tw/architecture/ip-data-sources.md)
{% endcontent-ref %}

{% content-ref url="/pages/a92d7cd5509257b298f04d991a52a4efdf5cc782" %}
[API 端點](/developer/zh-tw/reference/api-endpoints.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}

### 遇到卡關時

{% content-ref url="/pages/2ef1fdca7437c48120207145c0d699f67f67d66a" %}
[常見問題](/developer/zh-tw/reference/faq.md)
{% endcontent-ref %}

{% content-ref url="/pages/cfe171ae5c5445a63e42c030df06deb1d6f968bd" %}
[與 IPCheck.ing 綁定的功能](/developer/zh-tw/configuration/features-tied-to-ipcheck-ing.md)
{% endcontent-ref %}

{% content-ref url="/pages/508e486dda596406b856acd46d874a896f2cd0b3" %}
[回報問題](/developer/zh-tw/contributing/reporting-issues.md)
{% endcontent-ref %}
{% endcolumn %}
{% endcolumns %}

<h2 align="center">一個在公開環境中打造的開源專案</h2>

<p align="center">MyIP 採用 MIT 授權，託管於 GitHub。給它一顆星、fork 它，或送出你的第一個 PR。</p>

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h4><i class="fa-github">:github:</i></h4></td><td><strong>GitHub</strong></td><td>原始碼、問題回報與拉取請求。歡迎各種規模的貢獻。</td><td><a href="https://github.com/jason5ng32/MyIP" class="button secondary">開啟儲存庫</a></td><td><a href="https://github.com/jason5ng32/MyIP">https://github.com/jason5ng32/MyIP</a></td></tr><tr><td><h4><i class="fa-docker">:docker:</i></h4></td><td><strong>Docker Hub</strong></td><td>官方映像檔，每次發布都會重新建置。一次拉取，應用兩個部分都到位。</td><td><a href="https://hub.docker.com/r/jason5ng32/myip" class="button secondary">拉取映像檔</a></td><td><a href="https://hub.docker.com/r/jason5ng32/myip">https://hub.docker.com/r/jason5ng32/myip</a></td></tr></tbody></table>

***

如果你正在尋找協助 **使用** 這個應用——每個工具做什麼、如何診斷網路問題、網路概念？請前往 **知識庫** ；這些頁面是給部署、fork 或為 MyIP 做出貢獻的人使用的。


---

# 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-tw/welcome.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.
