From 0b492ad7a59d62aab8282e3f981c9b74ac894c1b Mon Sep 17 00:00:00 2001
From: UUBulb <35923940+uubulb@users.noreply.github.com>
Date: Fri, 18 Oct 2024 00:03:16 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0DDNS=E5=8F=8A=E5=85=AC?=
=?UTF-8?q?=E5=BC=80=E5=A4=87=E6=B3=A8=E6=96=87=E6=A1=A3=EF=BC=8C=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89=E4=B8=BB=E9=A2=98=E8=AF=B4?=
=?UTF-8?q?=E6=98=8E=20(#103)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 更新DDNS及公开备注文档
* 增加自定义主题说明
---
docs/.vitepress/config.mts | 2 +
docs/en_US/guide/ddns.md | 77 ++++++++++++++++
docs/en_US/guide/servers.md | 119 ++-----------------------
docs/en_US/guide/settings.md | 7 +-
docs/guide/ddns.md | 77 ++++++++++++++++
docs/guide/servers.md | 167 +++++++++++++++--------------------
docs/guide/settings.md | 7 +-
7 files changed, 245 insertions(+), 211 deletions(-)
create mode 100644 docs/en_US/guide/ddns.md
create mode 100644 docs/guide/ddns.md
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 0d528424..9dcbf089 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -173,6 +173,7 @@ function getGuideSidebarZhCN() {
{ text: '服务', link: '/guide/services.html' },
{ text: '任务', link: '/guide/tasks.html' },
{ text: '告警', link: '/guide/notifications.html' },
+ { text: 'DDNS', link: '/guide/ddns.html' },
{ text: '内网穿透', link: '/guide/nat.html' },
{ text: '设置', link: '/guide/settings.html' },
{ text: 'API', link: '/guide/api.html' }
@@ -250,6 +251,7 @@ function getGuideSidebarEnUS() {
{ text: 'Services', link: '/en_US/guide/services.html' },
{ text: 'Tasks', link: '/en_US/guide/tasks.html' },
{ text: 'Notifications', link: '/en_US/guide/notifications.html' },
+ { text: 'DDNS', link: '/en_US/guide/ddns.html' },
{ text: 'NAT traversal', link: '/en_US/guide/nat.html' },
{ text: 'Settings', link: '/en_US/guide/settings.html' },
{ text: 'API', link: '/en_US/guide/api.html' }
diff --git a/docs/en_US/guide/ddns.md b/docs/en_US/guide/ddns.md
new file mode 100644
index 00000000..df21f307
--- /dev/null
+++ b/docs/en_US/guide/ddns.md
@@ -0,0 +1,77 @@
+---
+outline: deep
+---
+
+# DDNS
+
+The DDNS functionality is designed for servers with dynamic IP addresses. When the Agent server reports a new IP (every 10 minutes), Dashboard will automatically update the DNS record based on the configuration.
+
+### Why should I use Nezha's DDNS functionality?
+
+- Convenient centralized management of DDNS settings, instead of deploying a DDNS service on every server.
+- Your confidential information is only stored on the Dashboard server, preventing leaks.
+
+### Configuration
+
+You can directly add DDNS configurations in the Dashboard management page.
+
+1. Click on the "Dynamic DNS" option in the menu bar to enter the configuration page.
+2. Click the "New Profile" button and fill in the required information in the pop-up window. Option details:
+ - **Name**: The name of the configuration.
+ - **DDNS Provider**: The type of provider, determining the method used to update DNS records.
+ - **Domains (separate with comma)**: The domain(s), if you enter multiple domains, they should be separated by commas. IDNs (Internationalized Domain Names) are supported.
+ - **Maximum retry attempts**: The number of attempts for updating DDNS, default is 3, and the range is between 1 and 10.
+ - **DDNS Credential 1** and **DDNS Credential 2** are optional. Typically, at least one needs to be provided. The [table](#provider-list) below lists the options for all providers.
+3. If using the `webhook` provider, the corresponding options need to be filled out as required. For detailed instructions, see [Webhook Configuration](#webhook-configuration).
+4. You need to check at least one of **IPv4 Enabled** and **IPv6 Enabled**; otherwise, no update operations will be performed.
+5. After adding a new configuration, you also need to modify the server settings to activate DDNS. Server-related options include:
+ - **Enable DDNS**: Enable DDNS functionality for this server.
+ - **DDNS Profiles**: The list of DDNS configuration IDs to use, searchable by configuration name.
+
+## Webhook Configuration
+
+Webhook requires manually constructing HTTP requests, suitable for using other provider services when operations are simple.
+
+Webhook option descriptions:
+- **Webhook URL**: The URL for the HTTP request, where parameters can use placeholders.
+- **Webhook Request Method**: The HTTP request method. Supported methods include `GET`, `POST`, `PATCH`, `DELETE`, and `PUT`.
+- **Webhook Request Type**: The format of the HTTP request body, either `JSON` or `Form`.
+- **Webhook Request Headers**: HTTP request headers, filled in JSON format, but nesting is not supported.
+- **Webhook Request Body**: The HTTP request body. It won't be used for `GET` and `DELETE`. If you need to use a nested format, you must choose `JSON` as the request type.
+
+Supported Webhook placeholders:
+- `#ip#`: Host IP.
+- `#domain#`: DDNS domain. Each request is made separately for each domain, so this value will be a single domain string.
+- `#type#`: IP type, either `"ipv4"` or `"ipv6"`.
+- `#record#`: Record type, either `"A"` or `"AAAA"`.
+- `#access_id#`: DDNS Credential 1.
+- `#access_secret#`: DDNS Credential 2.
+
+### Oray Webhook Example
+
+ Click to expand/collapse
+
+- URL:`http://ddns.oray.com/ph/update?hostname=#domain#&myip=#ip#`
+- Request Method: `GET`
+- Request Header:`{"Authorization": "Basic pass"}`, replace `pass` with the Base64-encoded userpass (e.g., `user:pass` becomes `dXNlcjpwYXNzCg==`).
+- Oray only supports A records, so only enable IPv4. Other Webhook options are not required.
+
+
+
+## Provider List
+
+| Provider | Credential 1 (ID) | Credential 2 (Secret) |
+| ------------ | ----------- | --------------- |
+| `dummy` | ❌️ | ❌️ |
+| `webhook` | Optional | Optional |
+| `cloudflare` | ❌️ | ✅ |
+| `tencentcloud`| ✅ | ✅ |
+
+## Viewing Logs
+
+In the Dashboard logs, you can see the relevant logs for the DDNS functionality. When configured correctly, there will be corresponding log entries when updating DNS records.
+
+```shell
+dashboard_1 | 2024/03/16 23:16:25 NEZHA>> 正在尝试更新域名(ddns.example.com)DDNS(1/3)
+dashboard_1 | 2024/03/16 23:16:28 NEZHA>> 尝试更新域名(ddns.example.com)DDNS成功
+```
diff --git a/docs/en_US/guide/servers.md b/docs/en_US/guide/servers.md
index c1b37abb..ee5aa66e 100644
--- a/docs/en_US/guide/servers.md
+++ b/docs/en_US/guide/servers.md
@@ -31,7 +31,9 @@ The forced update will not work if `disable-force-update` is enabled.
* Enable DDNS: When true, if the server IP changes, the Dashboard will automatically update the DNS records.
* DDNS Domain: The DDNS domain configured for this server.
* Secret: The secret/key used for configuring the Agent, which is used to verify communication between the Agent and the Dashboard.
-* One-Click Install: Click the corresponding system button to copy the command and execute it on the server for a one-click installation.
+* Note: Server notes, visible only after verification.
+* Public Note: Server public notes, visible on the frontend. You can customize frontend theme based on this field; see [Public Note Example](#public-note-example) for details.
+* Installation commands: Click the corresponding system button to copy the command and execute it on the server for an instant installation.
* Management: Connects to WebShell, modifies server configuration, or deletes the server.
## WebSSH Terminal
@@ -44,114 +46,11 @@ If the connection fails, refer to [Real-Time Channel Disconnection/Online Termin
Added in Dashboard v0.19.1 / Agent v0.19.0. A pseudo file manager embedded in WebShell, supports file download/upload, directory navigation and copying current path. Access it by clicking the blue button in the bottom-right corner of the WebShell.
-## DDNS Functionality
+## Public Note Example
-The DDNS functionality is suitable for servers with dynamic IPs. When the Agent reports a new IP (every 10 minutes), the Dashboard will automatically update the DNS records based on the configuration.
+### ServerStatus Theme Agent Billing Information Display
+
+ Click to expand/collapse
-### Why Use Nezha Monitoring's DDNS Functionality?
-
-- Centralized management of DDNS settings instead of deploying a DDNS service on each server.
-- Confidential information is only stored on the Dashboard server, preventing leakage.
-
-### Configuration Instructions
-
-You can choose to use profiles or not; If no profile is set, all Agent servers will use the same configuration to update DDNS. If profiles are used, each server can have a specific configuration for updating DDNS, providing greater flexibility.
-
-#### Without Profiles
-::: warning
-This configuration is deprecated and will be removed in a future release. Please switch to using profiles instead.
-:::
-
-```yaml
-DDNS:
- Enable: true
- Provider: "webhook"
- AccessID: ""
- AccessSecret: ""
- WebhookMethod: ""
- WebhookURL: ""
- WebhookRequestBody: ""
- WebhookHeaders: ""
- MaxRetries: 3
- Profiles: null
-```
-
-- `Enable`: Boolean value to enable or disable the DDNS functionality.
-- `Provider`: The name of the DDNS provider; currently supports `webhook`, `cloudflare`, and `tencentcloud`.
-- `AccessID`: Token ID for the DDNS provider; only applicable to the `tencentcloud` provider.
-- `AccessSecret`: Token Secret for the DDNS provider; only applicable to the `cloudflare` and `tencentcloud` providers.
-- `WebhookMethod`: The request method for the webhook, such as `GET` or `POST`; only applicable to the `webhook` provider.
-- `WebhookURL`: The request URL for the webhook; only applicable to the `webhook` provider.
-- `WebhookRequestBody`: The request body for the webhook; only applicable to the `webhook` provider.
-- `WebhookHeaders`: The request headers for the webhook; only applicable to the `webhook` provider.
-- `MaxRetries`: The number of retry attempts when a request fails.
-- `Profiles`: Multi-configuration settings; ignored in single configuration settings.
-
-The `WebhookURL`, `WebhookRequestBody`, and `WebhookHeaders` can include the following placeholders:
-
-- `{ip}`: The current IP of the server.
-- `{domain}`: The DDNS domain. If used with `WebhookURL`, only query values will be replaced.
-- `{type}`: The IP type, either "ipv4" or "ipv6".
-- `{access_id}`: Credential 1.
-- `{access_secret}`: Credential 2.
-
-Example Configuration:
-
-```yaml
-WebhookHeaders: |
- a:{access_id}
- b:{access_secret}
-WebhookRequestBody: '{"domain": "{domain}", "ip": "{ip}", "type": "{type}"}'
-```
-
-#### With Profiles
-
-When using profiles, leave the `DDNS.Provider` value empty. If `DDNS.Provider` is not empty, this configuration will be ignored.
-
-```yaml
-DDNS:
- Enable: true
- MaxRetries: 3
- Profiles:
- example:
- Provider: ""
- AccessID: ""
- AccessSecret: ""
- WebhookMethod: ""
- WebhookURL: ""
- WebhookRequestBody: ""
- WebhookHeaders: ""
-```
-
-- `Profiles`: Profile field.
-- `example`: Can be replaced with any string as the DDNS configuration name.
-
-Other options can be referenced from the [Without Profiles](#Without-Profiles) section.
-
-#### Dashboard Configuration
-
-After modifying the configuration file, you also need to modify the server settings in the Dashboard for the DDNS to take effect.
-
-DDNS related options:
-
-- `Enable DDNS`: Enable the DDNS functionality for this server.
-- `Enable DDNS IPv4`: Enable IPv4 resolution when updating DDNS records.
-- `Enable DDNS IPv6`: Enable IPv6 resolution when updating DDNS records.
-- `DDNS Domain`: The domain the record points to.
-- `DDNS Configuration`: The DDNS configuration name to use in multiple configurations.
-
-::: warning
-When you modify the configuration and save it in the Dashboard settings, it will populate the default configuration options in `config.yaml`, and all options in the DDNS field will be set with a default value (see [Without Profiles](#Without-Profiles)).
-
-- If not using profiles, configure `DDNS.Provider` and ignore the `Profiles` options.
-- To use profiles, leave `DDNS.Provider` empty. If `DDNS.Provider` is not empty, the `Profiles` field will be ignored.
-:::
-
-#### Viewing Logs
-
-In the Dashboard logs, you can see the relevant logs for the DDNS functionality. When configured correctly, there will be corresponding log entries when updating DNS records.
-
-```shell
-dashboard_1 | 2024/03/16 23:16:25 NEZHA>> 正在尝试更新域名(ddns.example.com)DDNS(1/3) # Attempting to update domain (ddns.example.com) DDNS (1/3)
-dashboard_1 | 2024/03/16 23:16:28 NEZHA>> 尝试更新域名(ddns.example.com)DDNS成功 # Successfully updated domain (ddns.example.com) DDNS
-```
\ No newline at end of file
+See https://github.com/naiba/nezha/pull/425.
+
\ No newline at end of file
diff --git a/docs/en_US/guide/settings.md b/docs/en_US/guide/settings.md
index 7c7a4414..97d99883 100644
--- a/docs/en_US/guide/settings.md
+++ b/docs/en_US/guide/settings.md
@@ -15,8 +15,11 @@ You can customize the site title in this section.
## Theme
-Select the theme for the homepage and admin panel here. If a theme that already exists is not in the options, update the Dashboard.
-Before enabling the Custom theme, ensure you have installed the custom theme; otherwise, the Dashboard will not display correctly after enabling this option.
+Select the theme for the frontend and dashboard here. If a theme that already exists is not in the options, update the Dashboard.
+
+To use a custom frontend theme, you need to create a theme description file. For more information on custom themes, please refer to [Nezha Theme Development Environment](/en_US/developer/theme.html).
+
+Before enabling the dashboard Custom theme, ensure you have installed the custom theme; otherwise, the Dashboard will not display correctly after enabling this option.
## Language
diff --git a/docs/guide/ddns.md b/docs/guide/ddns.md
new file mode 100644
index 00000000..c2fa1dd4
--- /dev/null
+++ b/docs/guide/ddns.md
@@ -0,0 +1,77 @@
+---
+outline: deep
+---
+
+# DDNS
+
+DDNS 功能适用于使用动态 IP 的服务器,当 Agent 上报了一个新的 IP(10分钟一次),Dashboard 会根据配置自动更新 DNS 记录。
+
+## 为什么我要使用哪吒监控的 DDNS 功能?
+
+- 方便集中管理 DDNS 设置,而不是在每台服务器上都部署一个 DDNS 服务。
+- 仅在面板服务器上保存您的机密信息,防止外泄。
+
+## 配置说明
+
+可以直接在 Dashboard 管理页面中添加 DDNS 配置。
+
+1. 点击菜单栏中的“动态 DNS”选项,进入配置页面。
+2. 点击“新配置”按钮,在弹出窗口中按需填写信息。选项说明:
+ - **名称**:配置名称。
+ - **DDNS供应商**:供应商类型,决定了使用何种方法更新 DNS 记录。
+ - **域名(逗号分隔)**:域名,如填写多个域名需要用 `,` 分隔。支持 IDN(国际化域名)。
+ - **最大重试次数**:DDNS 更新尝试次数,默认为 3,范围为 1 到 10 的整数。
+ - **DDNS 凭据 1** 以及 **DDNS 凭据 2** 为选填,通常需要至少填 1 个。下面的[表格](#供应商列表)列出了所有供应商的对应选项。
+3. 如果使用 `webhook` 供应商,那么需要按需填写 Webhook 的对应选项。具体的说明请见 [Webhook 配置说明](#webhook-配置说明)。
+4. 需要至少勾选 **启用DDNS IPv4** 和 **启用DDNS IPv6** 中的一个,否则不会进行任何更新操作。
+5. 在添加了新的配置后,还需要修改服务器配置才能使 DDNS 生效。服务器相关选项说明:
+ - **启用 DDNS**:为此服务器启用 DDNS 功能。
+ - **DDNS 配置**:要使用的 DDNS 配置 ID 列表,可以根据配置名称进行搜索。
+
+## Webhook 配置说明
+
+Webhook 需要自行构建 HTTP 请求,适用于需要使用其它供应商的服务且操作较为简单的情况。
+
+Webhook 相关选项说明:
+- **Webhook 地址**:HTTP 请求 URL。其中只有参数可以使用占位符。
+- **Webhook 请求方式**:HTTP 请求方式。支持 `GET`、`POST`、`PATCH`、`DELETE` 以及 `PUT`。
+- **Webhook 请求类型**:HTTP 请求体格式,为 `JSON` 或者 `Form`。
+- **Webhook 请求头**:HTTP 请求头,用 JSON 填写,注意不支持嵌套。
+- **Webhook 请求体**:HTTP 请求体,`GET` 和 `DELETE` 不会使用。如需使用嵌套格式,必须选择 `JSON` 作为请求类型。
+
+Webhook 支持的占位符:
+- `#ip#`:主机 IP。
+- `#domain#`:DDNS 域名。每个域名的请求是分别进行的,所以此项的值只会是单个域名字符串。
+- `#type#`:IP 类型,值为 `"ipv4"` 或 `"ipv6"`。
+- `#record#`:记录类型,值为 `"A"` 或 `"AAAA"`。
+- `#access_id#`:DDNS 凭据 1。
+- `#access_secret#`:DDNS 凭据 2。
+
+### 花生壳 Webhook 示例
+
+ 点击展开/收起
+
+- URL:`http://ddns.oray.com/ph/update?hostname=#domain#&myip=#ip#`
+- 请求方式: `GET`
+- 请求头:`{"Authorization": "Basic pass"}`,把 `pass` 替换成你的用户名:密码的 Base64 编码(例如,`user:pass` 为 `dXNlcjpwYXNzCg==`)。
+- 花生壳只支持 A 记录,所以只勾选启用 IPv4。其它 Webhook 选项不需要填。
+
+
+
+## 供应商列表
+
+| 供应商 | 凭据1(ID) | 凭据2(Secret) |
+| ------------ | ----------- | --------------- |
+| `dummy` | ❌️ | ❌️ |
+| `webhook` | 可选 | 可选 |
+| `cloudflare` | ❌️ | ✅ |
+| `tencentcloud`| ✅ | ✅ |
+
+## 查看日志
+
+在 Dashboard 的日志中,可以看到 DDNS 功能的相关日志,配置正确时,更新 DNS 记录时会有相应的日志记录。
+
+```shell
+dashboard_1 | 2024/03/16 23:16:25 NEZHA>> 正在尝试更新域名(ddns.example.com)DDNS(1/3)
+dashboard_1 | 2024/03/16 23:16:28 NEZHA>> 尝试更新域名(ddns.example.com)DDNS成功
+```
diff --git a/docs/guide/servers.md b/docs/guide/servers.md
index 5e31ddfe..ac4a2c40 100644
--- a/docs/guide/servers.md
+++ b/docs/guide/servers.md
@@ -32,6 +32,8 @@ Agent 更新相关的参数是 [自定义 Agent 监控项目](/guide/q7.html)
* DDNS 域名:为该服务器配置的 DDNS 域名。
* 密钥:即 secret/key,配置 Agent 时会用到,用于验证 Agent 与 Dashboard 的通信。
* 一键安装:点击相应的系统按钮,复制命令到服务器执行即可一键安装。
+* 备注:服务器备注,仅验证后可见。
+* 公开备注:服务器公开备注,前台可见。可以根据此字段做一些自定义,具体见[公开备注示例](#公开备注示例)。
* 管理:分别为连接 WebShell,修改服务器配置,删除服务器。
## 在线终端
@@ -44,114 +46,85 @@ Linux 和 Windows 均可用,可使用 Ctrl+Shift+V 粘贴。
Dashboard v0.19.1 / Agent v0.19.0 加入的新功能,是嵌入 WebShell 的一个伪文件管理器,提供文件下载和上传功能,也可以进行目录跳转或者复制路径。点击 WebShell 右下角的蓝色按钮就可以打开。
-## DDNS 功能
+## 公开备注示例
-DDNS 功能适用于使用动态 IP 的服务器,当 Agent 上报了一个新的 IP(10分钟一次),Dashboard 会根据配置自动更新 DNS 记录。
+### ServerStatus主题agent账单信息展示
+
+ 点击展开/收起
-### 为什么我要使用哪吒监控的 DDNS 功能?
+配置位置:后台-> 服务器 -> 编辑服务器 -> 公开备注
-- 方便集中管理 DDNS 设置,而不是在每台服务器上都部署一个 DDNS 服务。
-- 仅在面板服务器上保存您的机密信息,防止外泄。
-
-### 配置说明
-
-目前 DDNS 功能支持两种形式的配置:**单配置** 和 **多配置**。如使用 **单配置**,则所有 Agent 服务器都使用相同的信息更新 DDNS;如使用 **多配置**,则可为每台服务器指定一个配置更新 DDNS,灵活性更强。
-
-#### 单配置
-::: warning
-此功能已废弃,并将在之后的版本中删除,请尽快迁移至 **多配置** 方式。
-:::
-
-```yaml
-DDNS:
- Enable: true
- Provider: "webhook"
- AccessID: ""
- AccessSecret: ""
- WebhookMethod: ""
- WebhookURL: ""
- WebhookRequestBody: ""
- WebhookHeaders: ""
- MaxRetries: 3
- Profiles: null
+完整配置,包含过期时间和价格展示
+```json
+{
+ "billingDataMod": {
+ "startDate": "2024-10-01T00:00:00+08:00",
+ "endDate": "2024-11-01T00:00:00+08:00",
+ "autoRenewal": "1",
+ "cycle": "月",
+ "amount": "$3.99"
+ }
+}
```
-- `Enable`:布尔值,选择是否开启 DDNS 功能。
-- `Provider`:DDNS 供应商的名称;目前支持 `webhook`、`cloudflare` 以及 `tencentcloud`。
-- `AccessID`:DDNS 供应商的令牌 ID;仅适用于供应商 `tencentcloud`。
-- `AccessSecret`:DDNS 供应商的令牌 Secret;仅适用于供应商 `cloudflare` 及 `tencentcloud`。
-- `WebhookMethod`:Webhook 的请求方法。例如 `GET`、`POST` 等;仅适用于供应商 `webhook`。
-- `WebhookURL`:Webhook 的请求地址;仅适用于供应商 `webhook`。
-- `WebhookRequestBody`:Webhook 的请求体;仅适用于供应商 `webhook`。
-- `WebhookHeaders`:Webhook 的请求头;仅适用于供应商 `webhook`。
-- `MaxRetries`:当请求失败时,重试请求的次数。
-- `Profiles`:多配置设定;在单配置设定中,此项忽略。
-
-`WebhookURL`(仅对参数生效)、`WebhookRequestBody` 以及 `WebhookHeaders` 可以包含以下占位符:
-
-- `{ip}`:主机当前 IP,开启 IPv4 则为 IPv4 地址,开启 IPv6 则为 IPv6 地址。
-- `{domain}`:ddns 域名。
-- `{type}`:IP 类型,可能为 "ipv4" 和 "ipv6"。
-- `{access_id}`:凭据 1。
-- `{access_secret}`:凭据 2。
-
-配置示例:
-
-```yaml
-WebhookHeaders: |
- a:{access_id}
- b:{access_secret}
-WebhookRequestBody: '{"domain": "{domain}", "ip": "{ip}", "type": "{type}"}'
+单独配置过期时间
+```json
+{
+ "billingDataMod": {
+ "startDate": "2024-10-01T00:00:00+08:00",
+ "endDate": "2024-11-01T00:00:00+08:00",
+ "autoRenewal": "1",
+ "cycle": "月"
+ }
+}
```
-#### 多配置
+配置详细说明:
-当使用 **多配置** 时,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,**多配置** 设定将被忽略。
-
-```yaml
-DDNS:
- Enable: true
- MaxRetries: 3
- Profiles:
- example:
- Provider: ""
- AccessID: ""
- AccessSecret: ""
- WebhookMethod: ""
- WebhookURL: ""
- WebhookRequestBody: ""
- WebhookHeaders: ""
+startDate 账单开始时间
+```
+格式如 2022-04-01T23:59:59+08:00
```
-- `Profiles`:配置字段。
-- `example`:可替换为 DDNS 配置名,可填任意字符串。
+endDate 账单到期时间
+```
+格式如 2022-05-01T23:59:59+08:00
+当以0000-00-00开头时,表示账单无期限,适用于永久免费的vps,如0000-00-00T23:59:59+08:00
+```
-其它选项请参考[单配置](#单配置)段。
+Date格式说明
+```
+分3部分
+1. 日期:2022-04-01
+2. 时间:T23:59:59
+3. 时区:+08:00
+例如:
+2024-10-01T23:59:59+05:00
+2024-09-21T12:00:00-05:00
+2024-03-15T23:59:59+00:00
+```
-#### Dashboard 配置
+autoRenewal 自动续期
+```
+支持值
+1:自动续期
+0:不自动续期
+当设置 "autoRenewal": 1 时,程序会根据当前时间自动判断,vps账单到期后无需手动更改startDate和endDate
+```
-修改配置文件后,还需要在 Dashboard 中修改服务器设置才能使 DDNS 生效。
+amount 价格
+```
+格式如 $9.99 、€19.92 、¥199、19.99HKD、9.99USD、49.99CNY
+如果vps是免费的,请设置为"0" , 如 "amount": "0", 前台展示为 FREE
+如果vps是按量收费,请设置为"-1" , 如 "amount": "-1", 前台展示为PAYG
+```
-DDNS 相关选项说明:
-
-- `启用 DDNS`:为此服务器启用 DDNS 功能。
-- `启用 DDNS IPv4`:更新 DDNS 记录时,启用 IPv4 解析。
-- `启用 DDNS IPv6`:更新 DDNS 记录时,启用 IPv6 解析。
-- `DDNS 域名`:记录指向的域名。
-- `DDNS 配置`:在 **多配置** 情况下,要使用的 DDNS 配置名。
-
-::: warning
-在 Dashboard 设置中修改配置并保存时,会在 `config.yaml` 中填入默认配置选项,此时 DDNS 段中会同时存在 **单配置** 和 **多配置** 字段。
-
-- 如使用 **单配置**,请配置 `DDNS.Provider`,并忽略 `Profiles` 选项相关内容。
-- 如使用 **多配置**,请将 `DDNS.Provider` 留空。如 `DDNS.Provider` 的值不为空,多配置设定将被忽略。
-:::
-
-#### 查看日志
-
-在 Dashboard 的日志中,可以看到 DDNS 功能的相关日志,配置正确时,更新 DNS 记录时会有相应的日志记录。
-
-```shell
-dashboard_1 | 2024/03/16 23:16:25 NEZHA>> 正在尝试更新域名(ddns.example.com)DDNS(1/3)
-dashboard_1 | 2024/03/16 23:16:28 NEZHA>> 尝试更新域名(ddns.example.com)DDNS成功
-```
\ No newline at end of file
+cycle 付费周期
+```
+支持格式(英文大小写字母都支持,大小写字母混用也支持)
+1. 月、month、monthly、m、mo
+2. 季、quarterly、q
+3. 半年、半、half、semi-annually、h
+4. 年、year、annually、y、yr
+```
+
diff --git a/docs/guide/settings.md b/docs/guide/settings.md
index f11c46f1..1e3c08cf 100644
--- a/docs/guide/settings.md
+++ b/docs/guide/settings.md
@@ -15,8 +15,11 @@ outline: deep
## 界面主题
-在这里选择主页和管理界面主题,如果选项中没有某个已存在的主题,请更新面板。
-启用 Custom 主题前,你需要提前安装自定义主题,否则启用该项后,面板将无法正常显示。
+在这里选择主页和管理界面主题,如果选项中没有某个已存在的主题,请更新面板。
+
+使用自定义主页主题需要创建主题描述文件,关于自定义主题更多信息请参考[哪吒主题开发环境](/developer/theme.html)。
+
+启用管理界面 Custom 主题前,你需要提前安装自定义主题,否则启用该项后,面板将无法正常显示。
## Language