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