فهرست منبع

docs: update docs regarding to settings v2

Jacky 6 ماه پیش
والد
کامیت
80cb8e1151
39فایلهای تغییر یافته به همراه1063 افزوده شده و 304 حذف شده
  1. 1 1
      api/system/install.go
  2. 10 4
      docs/.vitepress/config/en.ts
  3. 13 7
      docs/.vitepress/config/zh_CN.ts
  4. 13 7
      docs/.vitepress/config/zh_TW.ts
  5. 20 0
      docs/guide/config-app.md
  6. 43 0
      docs/guide/config-cert.md
  7. 8 0
      docs/guide/config-database.md
  8. 18 0
      docs/guide/config-http.md
  9. 16 0
      docs/guide/config-node.md
  10. 98 11
      docs/guide/config-server.md
  11. 15 0
      docs/guide/config-terminal.md
  12. 75 44
      docs/guide/env.md
  13. 19 0
      docs/zh_CN/guide/config-app.md
  14. 2 2
      docs/zh_CN/guide/config-auth.md
  15. 37 0
      docs/zh_CN/guide/config-cert.md
  16. 1 1
      docs/zh_CN/guide/config-crypto.md
  17. 8 0
      docs/zh_CN/guide/config-database.md
  18. 15 0
      docs/zh_CN/guide/config-http.md
  19. 16 0
      docs/zh_CN/guide/config-node.md
  20. 101 17
      docs/zh_CN/guide/config-server.md
  21. 14 0
      docs/zh_CN/guide/config-terminal.md
  22. 105 61
      docs/zh_CN/guide/env.md
  23. 1 1
      docs/zh_CN/guide/nginx-ui-template.md
  24. 20 0
      docs/zh_TW/guide/config-app.md
  25. 35 0
      docs/zh_TW/guide/config-cert.md
  26. 8 0
      docs/zh_TW/guide/config-database.md
  27. 20 0
      docs/zh_TW/guide/config-http.md
  28. 16 0
      docs/zh_TW/guide/config-node.md
  29. 141 61
      docs/zh_TW/guide/config-server.md
  30. 14 0
      docs/zh_TW/guide/config-terminal.md
  31. 107 63
      docs/zh_TW/guide/env.md
  32. 10 10
      go.mod
  33. 23 0
      go.sum
  34. 5 2
      install.sh
  35. 1 1
      internal/kernal/boot.go
  36. 0 8
      model/model.go
  37. 11 0
      settings/database.go
  38. 2 2
      settings/server_v1.go
  39. 1 1
      settings/settings.go

+ 1 - 1
api/system/install.go

@@ -48,7 +48,7 @@ func InstallNginxUI(c *gin.Context) {
 	settings.NodeSettings.Secret = uuid.New().String()
 	settings.CertSettings.Email = json.Email
 	if "" != json.Database {
-		cSettings.DataBaseSettings.Name = json.Database
+		settings.DatabaseSettings.Name = json.Database
 	}
 
 	err := settings.Save()

+ 10 - 4
docs/.vitepress/config/en.ts

@@ -34,14 +34,20 @@ export const enConfig: LocaleSpecificConfig<DefaultTheme.Config> = {
           text: 'Configuration',
           collapsed: false,
           items: [
+            {text: 'App', link: '/guide/config-app'},
             {text: 'Server', link: '/guide/config-server'},
-            {text: 'Nginx', link: '/guide/config-nginx'},
-            {text: 'Open AI', link: '/guide/config-openai'},
+            {text: 'Database', link: '/guide/config-database'},
+            {text: 'Auth', link: '/guide/config-auth'},
             {text: 'Casdoor', link: '/guide/config-casdoor'},
-            {text: 'Logrotate', link: '/guide/config-logrotate'},
+            {text: 'Cert', link: '/guide/config-cert'},
             {text: 'Cluster', link: '/guide/config-cluster'},
-            {text: 'Auth', link: '/guide/config-auth'},
             {text: 'Crypto', link: '/guide/config-crypto'},
+            {text: 'Http', link: '/guide/config-http'},
+            {text: 'Logrotate', link: '/guide/config-logrotate'},
+            {text: 'Nginx', link: '/guide/config-nginx'},
+            {text: 'Node', link: '/guide/config-node'},
+            {text: 'Open AI', link: '/guide/config-openai'},
+            {text: 'Terminal', link: '/guide/config-terminal'},
             {text: 'Webauthn', link: '/guide/config-webauthn'}
           ]
         },

+ 13 - 7
docs/.vitepress/config/zh_CN.ts

@@ -39,15 +39,21 @@ export const zhCNConfig: LocaleSpecificConfig<DefaultTheme.Config> = {
           text: '配置',
           collapsed: false,
           items: [
-            {text: '服务端', link: '/zh_CN/guide/config-server'},
-            {text: 'Nginx', link: '/zh_CN/guide/config-nginx'},
-            {text: 'Open AI', link: '/zh_CN/guide/config-openai'},
+            {text: 'App', link: '/zh_CN/guide/config-app'},
+            {text: 'Server', link: '/zh_CN/guide/config-server'},
+            {text: 'Database', link: '/zh_CN/guide/config-database'},
+            {text: 'Auth', link: '/zh_CN/guide/config-auth'},
             {text: 'Casdoor', link: '/zh_CN/guide/config-casdoor'},
+            {text: 'Cert', link: '/zh_CN/guide/config-cert'},
+            {text: 'Cluster', link: '/zh_CN/guide/config-cluster'},
+            {text: 'Crypto', link: '/zh_CN/guide/config-crypto'},
+            {text: 'Http', link: '/zh_CN/guide/config-http'},
             {text: 'Logrotate', link: '/zh_CN/guide/config-logrotate'},
-            {text: '集群', link: '/zh_CN/guide/config-cluster'},
-            {text: '认证', link: '/zh_CN/guide/config-auth'},
-            {text: '加密', link: '/zh_CN/guide/config-crypto'},
-            {text: 'Webauthn', link: '/zh_CN/guide/config-webauthn'},
+            {text: 'Nginx', link: '/zh_CN/guide/config-nginx'},
+            {text: 'Node', link: '/zh_CN/guide/config-node'},
+            {text: 'Open AI', link: '/zh_CN/guide/config-openai'},
+            {text: 'Terminal', link: '/zh_CN/guide/config-terminal'},
+            {text: 'Webauthn', link: '/zh_CN/guide/config-webauthn'}
           ]
         },
         {

+ 13 - 7
docs/.vitepress/config/zh_TW.ts

@@ -39,15 +39,21 @@ export const zhTWConfig: LocaleSpecificConfig<DefaultTheme.Config> = {
           text: '配置',
           collapsed: false,
           items: [
-            {text: '服務端', link: '/zh_TW/guide/config-server'},
-            {text: 'Nginx', link: '/zh_TW/guide/config-nginx'},
-            {text: 'Open AI', link: '/zh_TW/guide/config-openai'},
+            {text: 'App', link: '/zh_TW/guide/config-app'},
+            {text: 'Server', link: '/zh_TW/guide/config-server'},
+            {text: 'Database', link: '/zh_TW/guide/config-database'},
+            {text: 'Auth', link: '/zh_TW/guide/config-auth'},
             {text: 'Casdoor', link: '/zh_TW/guide/config-casdoor'},
+            {text: 'Cert', link: '/zh_TW/guide/config-cert'},
+            {text: 'Cluster', link: '/zh_TW/guide/config-cluster'},
+            {text: 'Crypto', link: '/zh_TW/guide/config-crypto'},
+            {text: 'Http', link: '/zh_TW/guide/config-http'},
             {text: 'Logrotate', link: '/zh_TW/guide/config-logrotate'},
-            {text: '集群', link: '/zh_TW/guide/config-cluster'},
-            {text: '認證', link: '/zh_TW/guide/config-auth'},
-            {text: '加密', link: '/zh_TW/guide/config-crypto'},
-            {text: 'Webauthn', link: '/zh_TW/guide/config-webauthn'},
+            {text: 'Nginx', link: '/zh_TW/guide/config-nginx'},
+            {text: 'Node', link: '/zh_TW/guide/config-node'},
+            {text: 'Open AI', link: '/zh_TW/guide/config-openai'},
+            {text: 'Terminal', link: '/zh_TW/guide/config-terminal'},
+            {text: 'Webauthn', link: '/zh_TW/guide/config-webauthn'}
           ]
         },
         {

+ 20 - 0
docs/guide/config-app.md

@@ -0,0 +1,20 @@
+# App
+
+## PageSize
+
+- Type: `int`
+- Default: 10
+- Version: `>=v2.0.0-beta.37`
+
+This option is used to set the page size of list pagination in the Nginx UI. Adjusting the page size can help in
+managing large amounts of data more effectively, but a too large number can increase the load on the server.
+
+## JwtSecret
+- Type: `string`
+- Version: `>=v2.0.0-beta.37`
+
+This option is used to configure the key used by the Nginx UI server to generate JWT.
+
+JWT is a standard for verifying user identity. It can generate a token after the user logs in, and then use the token to verify the user's identity in subsequent requests.
+
+If you use the one-click installation script to deploy Nginx UI, the script will generate a UUID value and set it as the value of this option.

+ 43 - 0
docs/guide/config-cert.md

@@ -0,0 +1,43 @@
+# Cert
+
+## CADir
+- Type: `string`
+- Version:`>= v2.0.0-beta.37`
+
+When applying for a Let's Encrypt certificate, we use the default CA address of Let's Encrypt. If you need to debug or
+obtain certificates from other providers, you can set CADir to their address.
+
+::: tip
+Please note that the address provided by
+CADir needs to comply with the `RFC 8555` standard.
+:::
+
+## RecursiveNameservers
+
+- Version:`>= v2.0.0-beta.37`
+- Type: `[]string`
+- Example: `8.8.8.8:53,1.1.1.1:53`
+
+This option is used to set the recursive nameservers used by
+Nginx UI in the DNS challenge step of applying for a certificate.
+If this option is not configured, Nginx UI will use the nameservers settings of the operating system.
+
+
+## CertRenewalInterval
+
+- Version:`>= v2.0.0-beta.37`
+- Type: `int`
+- Default value: `7`
+
+This option is used to set the automatic renewal interval of the Let's Encrypt certificate.
+By default, Nginx UI will automatically renew the certificate every 7 days.
+
+## HTTPChallengePort
+
+- Version:`>= v2.0.0-beta.37`
+- Type: `int`
+- Default: `9180`
+
+This option is used to set the port for backend listening in the HTTP01 challenge mode when obtaining Let's Encrypt
+certificates. The HTTP01 challenge is a domain validation method used by Let's Encrypt to verify that you control the
+domain for which you're requesting a certificate.

+ 8 - 0
docs/guide/config-database.md

@@ -0,0 +1,8 @@
+# Database
+
+## Name
+- Type: `string`
+- Default: `database`
+- Version: `>=v2.0.0-beta.37`
+
+This option is used to set the name of the sqlite database used by Nginx UI to store its data.

+ 18 - 0
docs/guide/config-http.md

@@ -0,0 +1,18 @@
+# Http
+
+## GithubProxy
+
+- Type: `string`
+- Version: `>= v2.0.0-beta.37`
+- Suggestion: `https://mirror.ghproxy.com/`
+
+For users who may experience difficulties downloading resources from GitHub (such as in mainland China), this option
+allows them to set a proxy for github.com to improve accessibility.
+
+## InsecureSkipVerify
+
+- Version:`>= v2.0.0-beta.37`
+- Type: `bool`
+
+This option is used to skip the verification of the certificate of servers when Nginx UI sends requests to them.
+

+ 16 - 0
docs/guide/config-node.md

@@ -0,0 +1,16 @@
+# Node
+
+## Name
+
+- Version:`>= v2.0.0-beta.37`
+- Type: `string`
+
+Use this option to customize the name of local server to be displayed in the environment indicator.
+
+
+## Secret
+- Type: `string`
+- Version: `>= v2.0.0-beta.37`
+
+This secret is used to authenticate the communication between the Nginx UI servers.
+Also, you can use this secret to access the Nginx UI API without a password.

+ 98 - 11
docs/guide/config-server.md

@@ -3,19 +3,20 @@
 The server section of the Nginx UI configuration deals with various settings that control the behavior and operation of
 the Nginx UI server. In this section, we will discuss the available options, their default values, and their purpose.
 
-## HttpHost
+## Host
 - Type: `string`
+- Version: `>= v2.0.0-beta.37`
 - Default:`0.0.0.0`
 
 The hostname on which the Nginx UI server listens for incoming HTTP requests.
 Changing the default hostname can be useful for improving the security of Nginx UI.
 
-## HttpPort
-
-- Type: `int`
+## Port
+- Type: `uint`
+- Version: `>= v2.0.0-beta.37`
 - Default: `9000`
 
-Nginx UI server listen port. This option is used to configure the port on which the Nginx UI server listens for incoming
+This option is used to configure the port on which the Nginx UI server listens for incoming
 HTTP requests. Changing the default port can be useful for avoiding port conflicts or enhancing security.
 
 ## RunMode
@@ -32,20 +33,62 @@ When using the `debug` mode, Nginx UI will print SQL and its execution time and
 
 When using the `release` mode, Nginx UI will not print the execution time and caller of SQL on the console, and only the log of `Info` level or higher will be printed.
 
+## HttpHost
+- Type: `string`
+- Default:`0.0.0.0`
+
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Host` instead.
+:::
+
+The hostname on which the Nginx UI server listens for incoming HTTP requests.
+Changing the default hostname can be useful for improving the security of Nginx UI.
+
+## HttpPort
+- Type: `int`
+- Default: `9000`
+
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Port` instead.
+:::
+
+This option is used to configure the port on which the Nginx UI server listens for incoming
+HTTP requests. Changing the default port can be useful for avoiding port conflicts or enhancing security.
+
+
 ## JwtSecret
 - Type: `string`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `App.JwtSecret` instead.
+:::
+
 This option is used to configure the key used by the Nginx UI server to generate JWT.
 
 JWT is a standard for verifying user identity. It can generate a token after the user logs in, and then use the token to verify the user's identity in subsequent requests.
 
 If you use the one-click installation script to deploy Nginx UI, the script will generate a UUID value and set it as the value of this option.
 
+## NodeSecret
+- Type: `string`
+- Version: `>= v2.0.0-beta.24, <= 2.0.0-beta.36`
+
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Node.Secret` instead.
+:::
+
+This secret is used to authenticate the communication between the Nginx UI servers.
+Also, you can use this secret to access the Nginx UI API without a password.
+
 ## HTTPChallengePort
 
 - Type: `int`
 - Default: `9180`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Cert.HTTPChallengePort` instead.
+:::
+
 This option is used to set the port for backend listening in the HTTP01 challenge mode when obtaining Let's Encrypt
 certificates. The HTTP01 challenge is a domain validation method used by Let's Encrypt to verify that you control the
 domain for which you're requesting a certificate.
@@ -53,6 +96,10 @@ domain for which you're requesting a certificate.
 ## Email
 - Type: `string`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Cert.Email` instead.
+:::
+
 When obtaining a Let's Encrypt certificate, this option is used to set your email address.
 Let's Encrypt will use your email address to notify you of the expiration date of your certificate.
 
@@ -61,6 +108,10 @@ Let's Encrypt will use your email address to notify you of the expiration date o
 - Type: `string`
 - Default: `database`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Database.Name` instead.
+:::
+
 This option is used to set the name of the sqlite database used by Nginx UI to store its data.
 
 ## StartCmd
@@ -68,6 +119,10 @@ This option is used to set the name of the sqlite database used by Nginx UI to s
 - Type: `string`
 - Default: `login`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Terminal.StartCmd` instead.
+:::
+
 This option is used to set the start command of the web terminal.
 
 ::: warning
@@ -81,6 +136,10 @@ terminal, please set it to `bash` or `zsh` (if installed).
 - Type: `int`
 - Default: 10
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `App.PageSize` instead.
+:::
+
 This option is used to set the page size of list pagination in the Nginx UI. Adjusting the page size can help in
 managing large amounts of data more effectively, but a too large number can increase the load on the server.
 
@@ -88,6 +147,10 @@ managing large amounts of data more effectively, but a too large number can incr
 
 - Type: `string`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Cert.CADir` instead.
+:::
+
 When applying for a Let's Encrypt certificate, we use the default CA address of Let's Encrypt. If you need to debug or
 obtain certificates from other providers, you can set CADir to their address.
 
@@ -101,37 +164,53 @@ CADir needs to comply with the `RFC 8555` standard.
 - Type: `string`
 - Suggestion: `https://mirror.ghproxy.com/`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Http.GithubProxy` instead.
+:::
+
 For users who may experience difficulties downloading resources from GitHub (such as in mainland China), this option
 allows them to set a proxy for github.com to improve accessibility.
 
 ## CertRenewalInterval
 
-- Version:`>= v2.0.0-beta.22`
+- Version:`>= v2.0.0-beta.22, <= 2.0.0-beta.36`
 - Type: `int`
 - Default value: `7`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Cert.CertRenewalInterval` instead.
+:::
+
 This option is used to set the automatic renewal interval of the Let's Encrypt certificate.
 By default, Nginx UI will automatically renew the certificate every 7 days.
 
 ## RecursiveNameservers
 
-- Version:`>= v2.0.0-beta.22`
+- Version:`>= v2.0.0-beta.22, <= 2.0.0-beta.36`
 - Type: `[]string`
 - Example: `8.8.8.8:53,1.1.1.1:53`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Cert.RecursiveNameservers` instead.
+:::
+
 This option is used to set the recursive nameservers used by
 Nginx UI in the DNS challenge step of applying for a certificate.
 If this option is not configured, Nginx UI will use the nameservers settings of the operating system.
 
 ## SkipInstallation
 
-- Version:`>= v2.0.0-beta.23`
+- Version:`>= v2.0.0-beta.23, <= 2.0.0-beta.36`
 - Type: `bool`
 - Default value: `false`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Node.SkipInstallation` instead.
+:::
+
 You can skip the installation of the Nginx UI server by setting this option to `true`.
 This is useful when you want to deploy Nginx UI to multiple servers with
-a same configuration file or environment variables.
+the same configuration file or environment variables.
 
 By default, if you enabled the skip installation mode without setting the `JWTSecret` and `NodeSecret` options
 in the server section, Nginx UI will generate a random UUID value for these two options.
@@ -141,14 +220,22 @@ Nginx UI will not create a system initial acme user, this means you can't apply
 
 ## Name
 
-- Version:`>= v2.0.0-beta.23`
+- Version:`>= v2.0.0-beta.23, <= 2.0.0-beta.36`
 - Type: `string`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Http.InsecureSkipVerify` instead.
+:::
+
 Use this option to customize the name of local server to be displayed in the environment indicator.
 
 ## InsecureSkipVerify
 
-- Version:`>= v2.0.0-beta.30`
+- Version:`>= v2.0.0-beta.30, <= 2.0.0-beta.36`
 - Type: `bool`
 
+::: warning
+Deprecated in `v2.0.0-beta.37`, please use `Http.InsecureSkipVerify` instead.
+:::
+
 This option is used to skip the verification of the certificate of servers when Nginx UI sends requests to them.

+ 15 - 0
docs/guide/config-terminal.md

@@ -0,0 +1,15 @@
+# Terminal
+
+## StartCmd
+
+- Type: `string`
+- Default: `login`
+- Version: `>= v2.0.0-beta.37`
+
+This option is used to set the start command of the web terminal.
+
+::: warning
+For security reason, we use `login` as the start command, so you have to log in via the default authentication method of
+the Linux. If you don't want to enter your username and password for verification every time you access the web
+terminal, please set it to `bash` or `zsh` (if installed).
+:::

+ 75 - 44
docs/guide/env.md

@@ -1,53 +1,34 @@
 # Environment Variables
 
-Applicable for version v2.0.0-beta.23 and above.
+Applicable for version v2.0.0-beta.37 and above.
+
+## App
+| Configuration Setting | Environment Variable    |
+|-----------------------|-------------------------|
+| PageSize              | NGINX_UI_APP_PAGE_SIZE  |
+| JwtSecret             | NGINX_UI_APP_JWT_SECRET |
 
-## Server
 
+## Server
 | Configuration Setting | Environment Variable                  |
 |-----------------------|---------------------------------------|
-| HttpPort              | NGINX_UI_SERVER_HTTP_PORT             |
+| Host                  | NGINX_UI_SERVER_HOST                  |
+| Port                  | NGINX_UI_SERVER_PORT                  |
 | RunMode               | NGINX_UI_SERVER_RUN_MODE              |
-| JwtSecret             | NGINX_UI_SERVER_JWT_SECRET            |
-| HTTPChallengePort     | NGINX_UI_SERVER_HTTP_CHALLENGE_PORT   |
-| StartCmd              | NGINX_UI_SERVER_START_CMD             |
-| Database              | NGINX_UI_SERVER_DATABASE              |
-| CADir                 | NGINX_UI_SERVER_CA_DIR                |
-| GithubProxy           | NGINX_UI_SERVER_GITHUB_PROXY          |
-| NodeSecret            | NGINX_UI_SERVER_NODE_SECRET           |
-| Demo                  | NGINX_UI_SERVER_DEMO                  |
-| PageSize              | NGINX_UI_SERVER_PAGE_SIZE             |
-| HttpHost              | NGINX_UI_SERVER_HTTP_HOST             |
-| CertRenewalInterval   | NGINX_UI_SERVER_CERT_RENEWAL_INTERVAL |
-| RecursiveNameservers  | NGINX_UI_SERVER_RECURSIVE_NAMESERVERS |
-| SkipInstallation      | NGINX_UI_SERVER_SKIP_INSTALLATION     |
-| Name                  | NGINX_UI_SERVER_NAME                  |
-| InsecureSkipVerify    | NGINX_UI_SERVER_INSECURE_SKIP_VERIFY  |
-
-## Nginx
-
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| AccessLogPath         | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
-| ErrorLogPath          | NGINX_UI_NGINX_ERROR_LOG_PATH     |
-| ConfigDir             | NGINX_UI_NGINX_CONFIG_DIR         |
-| PIDPath               | NGINX_UI_NGINX_PID_PATH           |
-| TestConfigCmd         | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
-| ReloadCmd             | NGINX_UI_NGINX_RELOAD_CMD         |
-| RestartCmd            | NGINX_UI_NGINX_RESTART_CMD        |
-| LogDirWhiteList       | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
 
-## OpenAI
+## Database
+| Configuration Setting | Environment Variable |
+|-----------------------|----------------------|
+| Name                  | NGINX_UI_DB_NAME     |
 
-| Configuration Setting | Environment Variable     |
-|-----------------------|--------------------------|
-| Model                 | NGINX_UI_OPENAI_MODEL    |
-| BaseUrl               | NGINX_UI_OPENAI_BASE_URL |
-| Proxy                 | NGINX_UI_OPENAI_PROXY    |
-| Token                 | NGINX_UI_OPENAI_TOKEN    |
+## Auth
+| Configuration Setting | Environment Variable                |
+|-----------------------|-------------------------------------|
+| IPWhiteList           | NGINX_UI_AUTH_IP_WHITE_LIST         |
+| BanThresholdMinutes   | NGINX_UI_AUTH_BAN_THRESHOLD_MINUTES |
+| MaxAttempts           | NGINX_UI_AUTH_MAX_ATTEMPTS          |
 
 ## Casdoor
-
 | Configuration Setting | Environment Variable              |
 |-----------------------|-----------------------------------|
 | Endpoint              | NGINX_UI_CASDOOR_ENDPOINT         |
@@ -58,19 +39,69 @@ Applicable for version v2.0.0-beta.23 and above.
 | Application           | NGINX_UI_CASDOOR_APPLICATION      |
 | RedirectUri           | NGINX_UI_CASDOOR_REDIRECT_URI     |
 
-## Logrotate
+## Cert
+| Configuration Setting | Environment Variable                |
+|-----------------------|-------------------------------------|
+| Email                 | NGINX_UI_CERT_EMAIL                 |
+| CADir                 | NGINX_UI_CERT_CA_DIR                |
+| RenewalInterval       | NGINX_UI_CERT_RENEWAL_INTERVAL      |
+| RecursiveNameservers  | NGINX_UI_CERT_RECURSIVE_NAMESERVERS |
+| HTTPChallengePort     | NGINX_UI_CERT_HTTP_CHALLENGE_PORT   |
+
+## Cluster
+| Configuration Setting | Environment Variable  |
+|-----------------------|-----------------------|
+| Node                  | NGINX_UI_CLUSTER_NODE |
+
+## Crypto
+| Configuration Setting | Environment Variable    |
+|-----------------------|-------------------------|
+| Secret                | NGINX_UI_CRYPTO_SECRET  |
+
+## Http
+| Configuration Setting | Environment Variable               |
+|-----------------------|------------------------------------|
+| GithubProxy           | NGINX_UI_HTTP_GITHUB_PROXY         |
+| InsecureSkipVerify    | NGINX_UI_HTTP_INSECURE_SKIP_VERIFY |
 
+## Logrotate
 | Configuration Setting | Environment Variable        |
 |-----------------------|-----------------------------|
 | Enabled               | NGINX_UI_LOGROTATE_ENABLED  |
 | CMD                   | NGINX_UI_LOGROTATE_CMD      |
 | Interval              | NGINX_UI_LOGROTATE_INTERVAL |
 
-## Auth
+## Nginx
+| Configuration Setting | Environment Variable              |
+|-----------------------|-----------------------------------|
+| AccessLogPath         | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
+| ErrorLogPath          | NGINX_UI_NGINX_ERROR_LOG_PATH     |
+| ConfigDir             | NGINX_UI_NGINX_CONFIG_DIR         |
+| PIDPath               | NGINX_UI_NGINX_PID_PATH           |
+| TestConfigCmd         | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
+| ReloadCmd             | NGINX_UI_NGINX_RELOAD_CMD         |
+| RestartCmd            | NGINX_UI_NGINX_RESTART_CMD        |
+| LogDirWhiteList       | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
+
+## Node
+| Configuration Setting | Environment Variable            |
+|-----------------------|---------------------------------|
+| Name                  | NGINX_UI_NODE_NAME              |
+| Secret                | NGINX_UI_NODE_SECRET            |
+| SkipInstallation      | NGINX_UI_NODE_SKIP_INSTALLATION |
+
+## OpenAI
+| Configuration Setting | Environment Variable     |
+|-----------------------|--------------------------|
+| Model                 | NGINX_UI_OPENAI_MODEL    |
+| BaseUrl               | NGINX_UI_OPENAI_BASE_URL |
+| Proxy                 | NGINX_UI_OPENAI_PROXY    |
+| Token                 | NGINX_UI_OPENAI_TOKEN    |
 
-| Configuration Setting | Environment Variable      |
-|-----------------------|---------------------------|
-| IPWhiteList           | NGINX_UI_AUTH_IPWhiteList |
+## Terminal
+| Configuration Setting | Environment Variable                |
+|-----------------------|-------------------------------------|
+| StartCmd              | NGINX_UI_TERMINAL_START_CMD         |
 
 ## Webauthn
 

+ 19 - 0
docs/zh_CN/guide/config-app.md

@@ -0,0 +1,19 @@
+# App
+
+## PageSize
+
+- 类型: `int`
+- 默认值: 10
+- 版本: `>=v2.0.0-beta.37`
+
+此选项用于设置 Nginx UI 中列表分页的页面大小。调整页面大小可以更有效地管理大量数据,但过大的数字会增加服务器的负载。
+
+## JwtSecret
+- 类型: `string`
+- 版本: `>=v2.0.0-beta.37`
+
+此选项用于配置 Nginx UI 服务器生成 JWT 的密钥。
+
+JWT 是一种验证用户身份的标准。用户登录后可以生成一个令牌,然后在后续请求中使用该令牌验证用户身份。
+
+如果您使用一键安装脚本部署 Nginx UI,脚本将生成一个 UUID 值并将其设置为此选项的值。

+ 2 - 2
docs/zh_CN/guide/config-auth.md

@@ -19,12 +19,12 @@ IPWhiteList = 2001:0000:130F:0000:0000:09C0:876A:130B
 
 ## BanThresholdMinutes
 - Type: `int`
-- Default: `10`
+- 默认值:`10`
 
 默认情况下,如果用户在 10 分钟内登录失败 10 次,用户将被禁止登录 10 分钟。
 
 ## MaxAttempts
 - Type: `int`
-- Default: `10`
+- 默认值:`10`
 
 默认情况下,用户可以在 10 分钟内尝试登录 10 次。

+ 37 - 0
docs/zh_CN/guide/config-cert.md

@@ -0,0 +1,37 @@
+# Cert
+
+## CADir
+- 类型: `string`
+- 版本:`>= v2.0.0-beta.37`
+
+在申请 Let's Encrypt 证书时,我们使用 Let's Encrypt 的默认 CA 地址。
+如果您需要调试或从其他提供商获取证书,您可以将 CADir 设置为他们的地址。
+
+::: tip 提示
+请注意,CADir 提供的地址需要符合 `RFC 8555` 标准。
+:::
+
+## RecursiveNameservers
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型: `[]string`
+- 示例: `8.8.8.8:53,1.1.1.1:53`
+
+此选项用于设置 Nginx UI 在申请证书的 DNS 挑战步骤所使用的递归域名服务器。在不配置此项目的情况下,Nginx UI 使用操作系统的域名服务器设置。
+
+## CertRenewalInterval
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型: `int`
+- 默认值: `7`
+
+此选项用于设置 Let's Encrypt 证书的自动续签间隔。默认情况下,Nginx UI 每隔 7 天会自动续签证书。
+
+## HTTPChallengePort
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型: `int`
+- 默认值: `9180`
+
+在获取 Let's Encrypt 证书时,此选项用于在 HTTP01 挑战模式中设置后端监听端口。
+HTTP01 挑战是 Let's Encrypt 用于验证您控制请求证书的域的域验证方法。

+ 1 - 1
docs/zh_CN/guide/config-crypto.md

@@ -1,6 +1,6 @@
 # Crypto
 
 ## Secret
-- Type: `string`
+- 类型: `string`
 
 如果这个值为空,Nginx UI 将会自动生成一个随机的密钥。这个密钥用于加密存储在数据库中的敏感数据。

+ 8 - 0
docs/zh_CN/guide/config-database.md

@@ -0,0 +1,8 @@
+# Database
+
+## Name
+- 类型: `string`
+- 默认值: `database`
+- 版本: `>=v2.0.0-beta.37`
+
+此选项用于设置 Nginx UI 用于存储其数据的 sqlite 数据库的名称。

+ 15 - 0
docs/zh_CN/guide/config-http.md

@@ -0,0 +1,15 @@
+# Http
+
+## GithubProxy
+- 版本: `>= v2.0.0-beta.37`
+- 类型:`string`
+- 建议:`https://mirror.ghproxy.com/`
+
+- 对于可能在从 Github 下载资源时遇到困难的用户(如在中国大陆),此选项允许他们为 github.com 设置代理,以提高可访问性。
+
+## InsecureSkipVerify
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型: `bool`
+
+此选项用于配置 Nginx UI 服务器在与其他服务器建立 TLS 连接时是否跳过证书验证。

+ 16 - 0
docs/zh_CN/guide/config-node.md

@@ -0,0 +1,16 @@
+# Node
+
+## Name
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型:`string`
+
+使用此选项自定义本地服务器的名称,以在环境指示器中显示。
+
+
+## Secret
+- 类型: `string`
+- 版本: `>= v2.0.0-beta.37`
+
+此密钥用于验证 Nginx UI 服务器之间的通信。
+此外,您可以使用此密钥在不使用密码的情况下访问 Nginx UI API。

+ 101 - 17
docs/zh_CN/guide/config-server.md

@@ -1,19 +1,20 @@
-# 服务端
+# Server
 
 Nginx UI 配置的服务端部分涉及控制 Nginx UI 服务器的各种设置。在页面中,我们将讨论可用的选项、它们的默认值以及它们的目的。
 
-## HttpHost
+## Host
 - 类型: `string`
-- 默认值:`0.0.0.0`
+- 版本: `>= v2.0.0-beta.37`
+- Default:`0.0.0.0`
 
 Nginx UI 服务器监听的主机名。此选项用于配置 Nginx UI 服务器监听传入 HTTP 请求的主机名。 更改默认主机名可能有助于提升安全性。
 
-## HttpPort
-
-- 类型:`int`
+## Port
+- Type: `uint`
+- 版本: `>= v2.0.0-beta.37`
 - 默认值:`9000`
 
-Nginx UI 服务器监听端口。此选项用于配置 Nginx UI 服务器监听传入 HTTP 请求的端口。更改默认端口对于避免端口冲突或增强安全性可能很有用。
+此选项用于配置 Nginx UI 服务器监听传入 HTTP 请求的端口。更改默认端口对于避免端口冲突或增强安全性可能很有用。
 
 ## RunMode
 
@@ -29,8 +30,32 @@ Nginx UI 的日志分为 6 个级别,分别为 `Debug`、`Info`、`Warn`、`Er
 
 当使用 `release` 模式时,Nginx UI 将不会在控制台打印 SQL 的执行时间和调用者, 只有 `Info` 级别或更高等级的日志才会被打印。
 
+## HttpHost
+- 类型: `string`
+- Default:`0.0.0.0`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Host` 替代。
+:::
+
+Nginx UI 服务器监听的主机名。此选项用于配置 Nginx UI 服务器监听传入 HTTP 请求的主机名。 更改默认主机名可能有助于提升安全性。
+
+## HttpPort
+- Type: `int`
+- 默认值:`9000`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Port` 替代。
+:::
+
+此选项用于配置 Nginx UI 服务器监听传入 HTTP 请求的端口。更改默认端口对于避免端口冲突或增强安全性可能很有用。
+
 ## JwtSecret
-- 类型:`string`
+- 类型: `string`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `App.JwtSecret` 替代。
+:::
 
 此选项用于配置 Nginx UI 服务器用于生成 JWT 的密钥。
 
@@ -38,17 +63,36 @@ JWT 是一种用于验证用户身份的标准,它可以在用户登录后生
 
 如果您使用一键安装脚本来部署 Nginx UI,脚本将会生成一个 UUID 值并将它设置为此选项的值。
 
+## NodeSecret
+- 类型: `string`
+- 版本: `>= v2.0.0-beta.24, <= 2.0.0-beta.36`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Node.Secret` 替代。
+:::
+
+此密钥用于验证 Nginx UI 服务器之间的通信。
+此外,您可以使用此密钥在不使用密码的情况下访问 Nginx UI API。
+
 ## HTTPChallengePort
 
 - 类型:`int`
 - 默认值:`9180`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Cert.HTTPChallengePort` 替代。
+:::
+
 在获取 Let's Encrypt 证书时,此选项用于在 HTTP01 挑战模式中设置后端监听端口。HTTP01 挑战是 Let's Encrypt
 用于验证您控制请求证书的域的域验证方法。
 
 ## Email
 - 类型:`string`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Cert.Email` 替代。
+:::
+
 在获取 Let's Encrypt 证书时,此选项用于设置您的电子邮件地址。Let's Encrypt 会将您的电子邮件地址用于通知您证书的到期时间。
 
 ## Database
@@ -56,6 +100,10 @@ JWT 是一种用于验证用户身份的标准,它可以在用户登录后生
 - 类型:`string`
 - 默认值:`database`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Database.Name` 替代。
+:::
+
 此选项用于设置 Nginx UI 用于存储其数据的 sqlite 数据库的名称。
 
 ## StartCmd
@@ -63,6 +111,10 @@ JWT 是一种用于验证用户身份的标准,它可以在用户登录后生
 - 类型:`string`
 - 默认值:`login`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Terminal.StartCmd` 替代。
+:::
+
 此选项用于设置 Web 终端的启动命令。
 
 ::: warning 警告
@@ -75,11 +127,19 @@ JWT 是一种用于验证用户身份的标准,它可以在用户登录后生
 - 类型:`int`
 - 默认值:`10`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `App.PageSize` 替代。
+:::
+
 此选项用于设置 Nginx UI 中列表分页的页面大小。调整页面大小有助于更有效地管理大量数据,但是过大的数量可能会增加服务器的压力。
 
 ## CADir
 
-- 类型:`string`
+- 类型: `string`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Cert.CADir` 替代。
+:::
 
 在申请 Let's Encrypt 证书时,我们使用 Let's Encrypt 的默认 CA 地址。如果您需要调试或从其他提供商获取证书,您可以将 CADir
 设置为他们的地址。
@@ -93,29 +153,45 @@ JWT 是一种用于验证用户身份的标准,它可以在用户登录后生
 - 类型:`string`
 - 建议:`https://mirror.ghproxy.com/`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Http.GithubProxy` 替代。
+:::
+
 对于可能在从 Github 下载资源时遇到困难的用户(如在中国大陆),此选项允许他们为 github.com 设置代理,以提高可访问性。
 
 ## CertRenewalInterval
 
-- 版本:`>= v2.0.0-beta.22`
+- 版本:`>= v2.0.0-beta.22, <= 2.0.0-beta.36`
 - 类型:`int`
 - 默认值: `7`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Cert.CertRenewalInterval` 替代。
+:::
+
 此选项用于设置 Let's Encrypt 证书的自动续签间隔。默认情况下,Nginx UI 每隔 7 天会自动续签证书。
 
 ## RecursiveNameservers
 
-- 版本:`>= v2.0.0-beta.22`
+- 版本:`>= v2.0.0-beta.22, <= 2.0.0-beta.36`
 - 类型: `[]string`
 - 示例: `8.8.8.8:53,1.1.1.1:53`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Cert.RecursiveNameservers` 替代。
+:::
+
 此选项用于设置 Nginx UI 在申请证书的 DNS 挑战步骤所使用的递归域名服务器。在不配置此项目的情况下,Nginx UI 使用操作系统的域名服务器设置。
 
 ## SkipInstallation
 
-- 版本:`>= v2.0.0-beta.23`
-- 类型:`bool`
-- 默认值:`false`
+- 版本:`>= v2.0.0-beta.23, <= 2.0.0-beta.36`
+- 类型: `bool`
+- 默认值: `false`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Node.SkipInstallation` 替代。
+:::
 
 通过将此选项设置为 `true`,您可以跳过 Nginx UI 服务器的安装。
 当您希望使用相同的配置文件或环境变量将 Nginx UI 部署到多个服务器时,这非常有用。
@@ -128,14 +204,22 @@ Nginx UI 将不会创建系统初始的 acme 用户,这意味着您无法在
 
 ## Name
 
-- 版本:`>= v2.0.0-beta.23`
-- 类型:`string`
+- 版本:`>= v2.0.0-beta.23, <= 2.0.0-beta.36`
+- 类型: `string`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Http.InsecureSkipVerify` 替代。
+:::
 
 使用此选项自定义本地服务器的名称,以在环境指示器中显示。
 
 ## InsecureSkipVerify
 
-- 版本:`>= v2.0.0-beta.30`
+- 版本:`>= v2.0.0-beta.30, <= 2.0.0-beta.36`
 - 类型: `bool`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中废弃,请使用 `Http.InsecureSkipVerify` 替代。
+:::
+
 此选项用于配置 Nginx UI 服务器在与其他服务器建立 TLS 连接时是否跳过证书验证。

+ 14 - 0
docs/zh_CN/guide/config-terminal.md

@@ -0,0 +1,14 @@
+# Terminal
+
+## StartCmd
+
+- 类型: `string`
+- 默认值: `login`
+- 版本: `>= v2.0.0-beta.37`
+
+此选项用于设置 Web 终端的启动命令。
+
+::: warning 警告
+出于安全原因,我们将启动命令设置为 `login`,因此您必须通过 Linux 的默认身份验证方法登录。
+如果您不想每次访问 Web 终端时都输入用户名和密码进行验证,请将其设置为 `bash` 或 `zsh`(如果已安装)。
+:::

+ 105 - 61
docs/zh_CN/guide/env.md

@@ -1,84 +1,128 @@
 # 环境变量
 
-适用于 v2.0.0-beta.23 及以上版本
+适用于 v2.0.0-beta.37 及以上版本。
+
+## App
+
+| 配置        | 环境变量                    |
+|-----------|-------------------------|
+| PageSize  | NGINX_UI_APP_PAGE_SIZE  |
+| JwtSecret | NGINX_UI_APP_JWT_SECRET |
 
 ## Server
 
-| Configuration Setting | Environment Variable                  |
-|-----------------------|---------------------------------------|
-| HttpPort              | NGINX_UI_SERVER_HTTP_PORT             |
-| RunMode               | NGINX_UI_SERVER_RUN_MODE              |
-| JwtSecret             | NGINX_UI_SERVER_JWT_SECRET            |
-| HTTPChallengePort     | NGINX_UI_SERVER_HTTP_CHALLENGE_PORT   |
-| StartCmd              | NGINX_UI_SERVER_START_CMD             |
-| Database              | NGINX_UI_SERVER_DATABASE              |
-| CADir                 | NGINX_UI_SERVER_CA_DIR                |
-| GithubProxy           | NGINX_UI_SERVER_GITHUB_PROXY          |
-| NodeSecret            | NGINX_UI_SERVER_NODE_SECRET           |
-| Demo                  | NGINX_UI_SERVER_DEMO                  |
-| PageSize              | NGINX_UI_SERVER_PAGE_SIZE             |
-| HttpHost              | NGINX_UI_SERVER_HTTP_HOST             |
-| CertRenewalInterval   | NGINX_UI_SERVER_CERT_RENEWAL_INTERVAL |
-| RecursiveNameservers  | NGINX_UI_SERVER_RECURSIVE_NAMESERVERS |
-| SkipInstallation      | NGINX_UI_SERVER_SKIP_INSTALLATION     |
-| Name                  | NGINX_UI_SERVER_NAME                  |
-| InsecureSkipVerify    | NGINX_UI_SERVER_INSECURE_SKIP_VERIFY  |
+| 配置      | 环境变量                     |
+|---------|--------------------------|
+| Host    | NGINX_UI_SERVER_HOST     |
+| Port    | NGINX_UI_SERVER_PORT     |
+| RunMode | NGINX_UI_SERVER_RUN_MODE |
 
-## Nginx
+## Database
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| AccessLogPath         | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
-| ErrorLogPath          | NGINX_UI_NGINX_ERROR_LOG_PATH     |
-| ConfigDir             | NGINX_UI_NGINX_CONFIG_DIR         |
-| PIDPath               | NGINX_UI_NGINX_PID_PATH           |
-| TestConfigCmd         | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
-| ReloadCmd             | NGINX_UI_NGINX_RELOAD_CMD         |
-| RestartCmd            | NGINX_UI_NGINX_RESTART_CMD        |
-| LogDirWhiteList       | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
+| 配置   | 环境变量             |
+|------|------------------|
+| Name | NGINX_UI_DB_NAME |
 
-## OpenAI
+## Auth
 
-| Configuration Setting | Environment Variable     |
-|-----------------------|--------------------------|
-| Model                 | NGINX_UI_OPENAI_MODEL    |
-| BaseUrl               | NGINX_UI_OPENAI_BASE_URL |
-| Proxy                 | NGINX_UI_OPENAI_PROXY    |
-| Token                 | NGINX_UI_OPENAI_TOKEN    |
+| 配置                  | 环境变量                                |
+|---------------------|-------------------------------------|
+| IPWhiteList         | NGINX_UI_AUTH_IP_WHITE_LIST         |
+| BanThresholdMinutes | NGINX_UI_AUTH_BAN_THRESHOLD_MINUTES |
+| MaxAttempts         | NGINX_UI_AUTH_MAX_ATTEMPTS          |
 
 ## Casdoor
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| Endpoint              | NGINX_UI_CASDOOR_ENDPOINT         |
-| ClientId              | NGINX_UI_CASDOOR_CLIENT_ID        |
-| ClientSecret          | NGINX_UI_CASDOOR_CLIENT_SECRET    |
-| CertificatePath       | NGINX_UI_CASDOOR_CERTIFICATE_PATH |
-| Organization          | NGINX_UI_CASDOOR_ORGANIZATION     |
-| Application           | NGINX_UI_CASDOOR_APPLICATION      |
-| RedirectUri           | NGINX_UI_CASDOOR_REDIRECT_URI     |
+| 配置              | 环境变量                              |
+|-----------------|-----------------------------------|
+| Endpoint        | NGINX_UI_CASDOOR_ENDPOINT         |
+| ClientId        | NGINX_UI_CASDOOR_CLIENT_ID        |
+| ClientSecret    | NGINX_UI_CASDOOR_CLIENT_SECRET    |
+| CertificatePath | NGINX_UI_CASDOOR_CERTIFICATE_PATH |
+| Organization    | NGINX_UI_CASDOOR_ORGANIZATION     |
+| Application     | NGINX_UI_CASDOOR_APPLICATION      |
+| RedirectUri     | NGINX_UI_CASDOOR_REDIRECT_URI     |
+
+## Cert
+
+| 配置                   | 环境变量                                |
+|----------------------|-------------------------------------|
+| Email                | NGINX_UI_CERT_EMAIL                 |
+| CADir                | NGINX_UI_CERT_CA_DIR                |
+| RenewalInterval      | NGINX_UI_CERT_RENEWAL_INTERVAL      |
+| RecursiveNameservers | NGINX_UI_CERT_RECURSIVE_NAMESERVERS |
+| HTTPChallengePort    | NGINX_UI_CERT_HTTP_CHALLENGE_PORT   |
+
+## Cluster
+
+| 配置   | 环境变量                  |
+|------|-----------------------|
+| Node | NGINX_UI_CLUSTER_NODE |
+
+## Crypto
+
+| 配置     | 环境变量                   |
+|--------|------------------------|
+| Secret | NGINX_UI_CRYPTO_SECRET |
+
+## Http
+
+| 配置                 | 环境变量                               |
+|--------------------|------------------------------------|
+| GithubProxy        | NGINX_UI_HTTP_GITHUB_PROXY         |
+| InsecureSkipVerify | NGINX_UI_HTTP_INSECURE_SKIP_VERIFY |
 
 ## Logrotate
 
-| Configuration Setting | Environment Variable        |
-|-----------------------|-----------------------------|
-| Enabled               | NGINX_UI_LOGROTATE_ENABLED  |
-| CMD                   | NGINX_UI_LOGROTATE_CMD      |
-| Interval              | NGINX_UI_LOGROTATE_INTERVAL |
+| 配置       | 环境变量                        |
+|----------|-----------------------------|
+| Enabled  | NGINX_UI_LOGROTATE_ENABLED  |
+| CMD      | NGINX_UI_LOGROTATE_CMD      |
+| Interval | NGINX_UI_LOGROTATE_INTERVAL |
 
-## Auth
+## Nginx
+
+| 配置              | 环境变量                              |
+|-----------------|-----------------------------------|
+| AccessLogPath   | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
+| ErrorLogPath    | NGINX_UI_NGINX_ERROR_LOG_PATH     |
+| ConfigDir       | NGINX_UI_NGINX_CONFIG_DIR         |
+| PIDPath         | NGINX_UI_NGINX_PID_PATH           |
+| TestConfigCmd   | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
+| ReloadCmd       | NGINX_UI_NGINX_RELOAD_CMD         |
+| RestartCmd      | NGINX_UI_NGINX_RESTART_CMD        |
+| LogDirWhiteList | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
+
+## Node
+
+| 配置               | 环境变量                            |
+|------------------|---------------------------------|
+| Name             | NGINX_UI_NODE_NAME              |
+| Secret           | NGINX_UI_NODE_SECRET            |
+| SkipInstallation | NGINX_UI_NODE_SKIP_INSTALLATION |
+
+## OpenAI
+
+| 配置      | 环境变量                     |
+|---------|--------------------------|
+| Model   | NGINX_UI_OPENAI_MODEL    |
+| BaseUrl | NGINX_UI_OPENAI_BASE_URL |
+| Proxy   | NGINX_UI_OPENAI_PROXY    |
+| Token   | NGINX_UI_OPENAI_TOKEN    |
+
+## Terminal
 
-| Configuration Setting | Environment Variable      |
-|-----------------------|---------------------------|
-| IPWhiteList           | NGINX_UI_AUTH_IPWhiteList |
+| 配置       | 环境变量                        |
+|----------|-----------------------------|
+| StartCmd | NGINX_UI_TERMINAL_START_CMD |
 
 ## Webauthn
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| RPDisplayName         | NGINX_UI_WEBAUTHN_RP_DISPLAY_NAME |
-| RPID                  | NGINX_UI_WEBAUTHN_RPID            |
-| RPOrigins             | NGINX_UI_WEBAUTHN_RP_ORIGINS      |
+| 配置            | 环境变量                              |
+|---------------|-----------------------------------|
+| RPDisplayName | NGINX_UI_WEBAUTHN_RP_DISPLAY_NAME |
+| RPID          | NGINX_UI_WEBAUTHN_RPID            |
+| RPOrigins     | NGINX_UI_WEBAUTHN_RP_ORIGINS      |
 
 ## 预定义用户
 

+ 1 - 1
docs/zh_CN/guide/nginx-ui-template.md

@@ -4,7 +4,7 @@ Nginx UI Template 提供了一种开箱即用的配置模板机制。在 NgxConf
 在本篇指南中,我们将绍这种配置模板的文件格式和语法规则。
 配置模板文件存储在 `template/block` 目录中,我们欢迎并期待您通过提交 [PR](https://github.com/0xJacky/nginx-ui/pulls) 的形式分享您编写的配置模板。
 
-::: tip
+::: tip 提示
 请注意,每次修改或添加新的配置文件后,需要重新编译后端以生效。
 :::
 

+ 20 - 0
docs/zh_TW/guide/config-app.md

@@ -0,0 +1,20 @@
+# App
+
+## PageSize
+
+- 類型: `int`
+- 預設值: 10
+- 版本: `>=v2.0.0-beta.37`
+
+此選項用於設置 Nginx UI 中列表分頁的頁面大小。調整頁面大小可以更有效地管理大量數據,但過大的數字會增加伺服器的負載。
+
+## JwtSecret
+
+- 類型: `string`
+- 版本: `>=v2.0.0-beta.37`
+
+此選項用於配置 Nginx UI 伺服器生成 JWT 的密鑰。
+
+JWT 是一種驗證用戶身份的標準。用戶登錄後可以生成一個令牌,然後在後續請求中使用該令牌驗證用戶身份。
+
+如果您使用一鍵安裝腳本部署 Nginx UI,腳本將生成一個 UUID 值並將其設置為此選項的值。

+ 35 - 0
docs/zh_TW/guide/config-cert.md

@@ -0,0 +1,35 @@
+## CADir
+- 類型: `string`
+- 版本:`>= v2.0.0-beta.37`
+
+在申請 Let's Encrypt 證書時,我們使用 Let's Encrypt 的默認 CA 地址。
+如果您需要調試或從其他提供商獲取證書,您可以將 CADir 設置為他們的地址。
+
+::: tip 提示
+請注意,CADir 提供的地址需要符合 `RFC 8555` 標準。
+:::
+
+## RecursiveNameservers
+
+- 版本:`>= v2.0.0-beta.37`
+- 類型: `[]string`
+- 示例: `8.8.8.8:53,1.1.1.1:53`
+
+此選項用於設置 Nginx UI 在申請證書的 DNS 挑戰步驟所使用的遞歸域名伺服器。在不配置此項目的情況下,Nginx UI 使用操作系統的域名伺服器設置。
+
+## CertRenewalInterval
+
+- 版本:`>= v2.0.0-beta.37`
+- 類型: `int`
+- 默認值: `7`
+
+此選項用於設置 Let's Encrypt 證書的自動續簽間隔。默認情況下,Nginx UI 每隔 7 天會自動續簽證書。
+
+## HTTPChallengePort
+
+- 版本:`>= v2.0.0-beta.37`
+- 類型: `int`
+- 默認值: `9180`
+
+在獲取 Let's Encrypt 證書時,此選項用於在 HTTP01 挑戰模式中設置後端監聽端口。
+HTTP01 挑戰是 Let's Encrypt 用於驗證您控制請求證書的域的域驗證方法。

+ 8 - 0
docs/zh_TW/guide/config-database.md

@@ -0,0 +1,8 @@
+# Database
+
+## Name
+- 類型: `string`
+- 預設值: `database`
+- 版本: `>=v2.0.0-beta.37`
+
+此選項用於設置 Nginx UI 用於存儲其數據的 sqlite 數據庫的名稱。

+ 20 - 0
docs/zh_TW/guide/config-http.md

@@ -0,0 +1,20 @@
+# Http
+
+## GithubProxy
+- 版本:`>= v2.0.0-beta.37`
+- 類型:`string`
+- 建議:`https://mirror.ghproxy.com/`
+
+對於可能在從 Github 下載資源時遇到困難的用戶(如在中國大陸),此選項允許他們為 github.com 設置代理,以提高可訪問性。
+
+## InsecureSkipVerify
+
+- 版本:`>= v2.0.0-beta.37`
+- 類型:`bool`
+
+此選項用於配置 Nginx UI 伺服器在與其他伺服器建立 TLS 連接時是否跳過證書驗證。
+
+- 版本:`>= v2.0.0-beta.37`
+- 类型: `bool`
+
+此选项用于配置 Nginx UI 服务器在与其他服务器建立 TLS 连接时是否跳过证书验证。

+ 16 - 0
docs/zh_TW/guide/config-node.md

@@ -0,0 +1,16 @@
+# Node
+
+## Name
+
+- 版本:`>= v2.0.0-beta.37`
+- 類型:`string`
+
+使用此選項自定義本地伺服器的名稱,以在環境指示器中顯示。
+
+## Secret
+
+- 類型: `string`
+- 版本: `>= v2.0.0-beta.37`
+
+此密鑰用於驗證 Nginx UI 伺服器之間的通信。
+此外,您可以使用此密鑰在不使用密碼的情況下訪問 Nginx UI API。

+ 141 - 61
docs/zh_TW/guide/config-server.md

@@ -1,89 +1,145 @@
-# 服務端
+# Server
 
-Nginx UI 配置的服務端部分涉及控制 Nginx UI 服務器的各種設置。在頁面中,我們將討論可用的選項、它們的預設值以及它們的目的。
+Nginx UI 配置的服務端部分涉及控制 Nginx UI 伺服器的各種設定。在頁面中,我們將討論可用的選項、它們的預設值以及它們的目的。
 
-## HttpHost
+## Host
 - 類型: `string`
-- 預設值:`0.0.0.0`
-
-Nginx UI 服務器監聽的主機名。此選項用於配置 Nginx UI 服務器監聽傳入 HTTP 請求的主機名。 更改預設主機名可能有助於提升安全性。
+- 版本: `>= v2.0.0-beta.37`
+- 預設值: `0.0.0.0`
 
-## HttpPort
+Nginx UI 伺服器監聽的主機名稱。此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的主機名稱。更改預設主機名稱可能有助於提升安全性。
 
-- 類型:`int`
-- 預設值:`9000`
+## Port
+- 類型: `uint`
+- 版本: `>= v2.0.0-beta.37`
+- 預設值: `9000`
 
-Nginx UI 服務器監聽端口。此選項用於配置 Nginx UI 服務器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
+此選項用於配置 Nginx UI 服器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
 
 ## RunMode
 
-- 類型:`string`
-- 支援的值:`release`,`debug`
-- 預設值:`debug`
+- 類型: `string`
+- 支援的值: `release`,`debug`
+- 預設值: `debug`
+
+此選項用於配置 Nginx UI 伺服器的運行模式,主要影響日誌輸出的級別。
+
+Nginx UI 的日誌分為 6 個級別,分別為 `Debug`、`Info`、`Warn`、`Error`、`Panic` 和 `Fatal`,這些日誌級別按照嚴重程度遞增。
+
+當使用 `debug` 模式時,Nginx UI 將在控制台打印 SQL 及其執行的時間和調用者,`Debug` 級別或更高級別的日誌也會被打印。
+
+當使用 `release` 模式時,Nginx UI 將不會在控制台打印 SQL 的執行時間和調用者,只有 `Info` 級別或更高級別的日誌才會被打印。
+
+## HttpHost
+- 類型: `string`
+- 預設值: `0.0.0.0`
 
-此選項用於配置 Nginx UI 服務器的運行模式,主要影響日誌打印的級別。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Host` 取代。
+:::
 
-Nginx UI 的日誌分為 6 個級別,分別為 `Debug`、`Info`、`Warn`、`Error`、`Panic` 和 `Fatal`,這些日誌級別按照嚴重程度遞增,
+Nginx UI 伺服器監聽的主機名稱。此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的主機名稱。更改預設主機名稱可能有助於提升安全性。
 
-當使用 `debug` 模式時,Nginx UI 將在控制台打印 SQL 及其執行的時間和調用者,`Debug` 級別或更高等級的日誌也會被打印。
+## HttpPort
+- 類型: `int`
+- 預設值: `9000`
 
-當使用 `release` 模式時,Nginx UI 將不會在控制台打印 SQL 的執行時間和調用者, 只有 `Info` 級別或更高等級的日誌才會被打印。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Port` 取代。
+:::
+
+此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
 
 ## JwtSecret
-- 類型:`string`
+- 類型: `string`
 
-此選項用於配置 Nginx UI 服務器用於生成 JWT 的密鑰。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `App.JwtSecret` 取代。
+:::
+
+此選項用於配置 Nginx UI 伺服器用於生成 JWT 的密鑰。
+
+JWT 是一種用於驗證用戶身份的標準,它可以在用戶登入後生成一個 token,然後在後續的請求中使用該 token 來驗證用戶身份。
+
+如果您使用一鍵安裝腳本來部署 Nginx UI,腳本將會生成一個 UUID 值並將它設定為此選項的值。
 
-JWT 是一種用於驗證用戶身份的標準,它可以在用戶登錄後生成一個 token,然後在後續的請求中使用該 token 來驗證用戶身份。
+## NodeSecret
+- 類型: `string`
+- 版本: `>= v2.0.0-beta.24, <= 2.0.0-beta.36`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Node.Secret` 取代。
+:::
 
-如果您使用一鍵安裝腳本來部署 Nginx UI,腳本將會生成一個 UUID 值並將它設置為此選項的值。
+此密鑰用於驗證 Nginx UI 伺服器之間的通信。
+此外,您可以使用此密鑰在不使用密碼的情況下訪問 Nginx UI API。
 
 ## HTTPChallengePort
 
-- 類型:`int`
-- 預設值`9180`
+- 類型: `int`
+- 預設值: `9180`
 
-在獲取 Let's Encrypt 證書時,此選項用於在 HTTP01
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Cert.HTTPChallengePort` 取代。
+:::
 
-挑戰模式中設置後端監聽端口。HTTP01 挑戰是 Let's Encrypt 用於驗證您控制請求證書的域的域驗證方法。
+在獲取 Let's Encrypt 證書時,此選項用於在 HTTP01 挑戰模式中設定後端監聽端口。HTTP01 挑戰是 Let's Encrypt 用於驗證您控制請求證書的域的域驗證方法。
 
 ## Email
-- 類型:`string`
+- 類型: `string`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Cert.Email` 取代。
+:::
 
-在獲取 Let's Encrypt 證書時,此選項用於設置您的電子郵件地址。Let's Encrypt 會將您的電子郵件地址用於通知您證書的到期時間。
+在獲取 Let's Encrypt 證書時,此選項用於設您的電子郵件地址。Let's Encrypt 會將您的電子郵件地址用於通知您證書的到期時間。
 
 ## Database
 
-- 類型:`string`
-- 預設值:`database`
+- 類型: `string`
+- 預設值: `database`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Database.Name` 取代。
+:::
 
-此選項用於設置 Nginx UI 用於存儲其數據的 sqlite 數據庫的名稱。
+此選項用於設 Nginx UI 用於存儲其數據的 sqlite 數據庫的名稱。
 
 ## StartCmd
 
-- 類型`string`
-- 預設值`login`
+- 類型: `string`
+- 預設值: `login`
 
-此選項用於設置 Web 終端的啟動命令。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Terminal.StartCmd` 取代。
+:::
+
+此選項用於設定 Web 終端的啟動命令。
 
 ::: warning 警告
-出於安全原因,我們將啟動命令設置為 `login`,因此您必須通過 Linux 的預設身份驗證方法登錄。如果您不想每次訪問 Web
-終端時都輸入用戶名和密碼進行驗證,請將其設置為 `bash` 或 `zsh`(如果已安裝)。
+出於安全原因,我們將啟動命令設置為 `login`,因此您必須通過 Linux 的預設身份驗證方法登入。如果您不想每次訪問 Web 終端時都輸入用戶名和密碼進行驗證,請將其設定為 `bash` 或 `zsh`(如果已安裝)。
 :::
 
 ## PageSize
 
-- 類型:`int`
-- 預設值:`10`
+- 類型: `int`
+- 預設值: `10`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `App.PageSize` 取代。
+:::
 
-此選項用於設置 Nginx UI 中列表分頁的頁面大小。調整頁面大小有助於更有效地管理大量數據,但是過大的數量可能會增加服務器的壓力。
+此選項用於設 Nginx UI 中列表分頁的頁面大小。調整頁面大小有助於更有效地管理大量數據,但是過大的數量可能會增加服器的壓力。
 
 ## CADir
 
-- 類型`string`
+- 類型: `string`
 
-在申請 Let's Encrypt 證書時,我們使用 Let's Encrypt 的預設 CA 地址。如果您需要調試或從其他提供商獲取證書,您可以將 CADir
-設置為他們的地址。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Cert.CADir` 取代。
+:::
+
+在申請 Let's Encrypt 證書時,我們使用 Let's Encrypt 的預設 CA 地址。如果您需要調試或從其他提供商獲取證書,您可以將 CADir 設定為他們的地址。
 
 ::: tip 提示
 請注意,CADir 提供的地址需要符合 `RFC 8555` 標準。
@@ -91,52 +147,76 @@ JWT 是一種用於驗證用戶身份的標準,它可以在用戶登錄後生
 
 ## GithubProxy
 
-- 類型`string`
-- 建議`https://mirror.ghproxy.com/`
+- 類型: `string`
+- 建議: `https://mirror.ghproxy.com/`
 
-對於可能在從 Github 下載資源時遇到困難的用戶(如在中國大陸),此選項允許他們為 github.com 設置代理,以提高可訪問性。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Http.GithubProxy` 取代。
+:::
+
+對於可能在從 Github 下載資源時遇到困難的用戶(如在中國大陸),此選項允許他們為 github.com 設定代理,以提高可訪問性。
 
 ## CertRenewalInterval
 
-- 版本:`>= v2.0.0-beta.22`
-- 類型`int`
+- 版本: `>= v2.0.0-beta.22, <= 2.0.0-beta.36`
+- 類型: `int`
 - 預設值: `7`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Cert.CertRenewalInterval` 取代。
+:::
+
 此選項用於設定 Let's Encrypt 證書的自動續簽間隔。預設情況下,Nginx UI 每隔 7 天會自動續簽證書。
 
 ## RecursiveNameservers
 
-- 版本:`>= v2.0.0-beta.22`
+- 版本: `>= v2.0.0-beta.22, <= 2.0.0-beta.36`
 - 類型: `[]string`
-- 例: `8.8.8.8:53,1.1.1.1:53`
+- 例: `8.8.8.8:53,1.1.1.1:53`
 
-此選項用於設定 Nginx UI 在申請證書的 DNS 挑戰步驟所使用的遞迴域名伺服器。在不配置此項目的情況下,Nginx UI 使用作業系統的域名伺服器設定。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用
+
+`Cert.RecursiveNameservers` 取代。
+:::
+
+此選項用於設定 Nginx UI 在申請證書的 DNS 挑戰步驟中所使用的遞歸域名伺服器。在不配置此項目的情況下,Nginx UI 使用操作系統的域名伺服器設置。
 
 ## SkipInstallation
 
-- 版本:`>= v2.0.0-beta.23`
-- 類型:`bool`
-- 預設值:`false`
+- 版本: `>= v2.0.0-beta.23, <= 2.0.0-beta.36`
+- 類型: `bool`
+- 預設值: `false`
 
-透過將此選項設定為 `true`,您可以跳過 Nginx UI 伺服器的安裝。
-當您希望使用相同的配置文件或環境變數將 Nginx UI 部署到多個伺服器時,這非常有用。
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Node.SkipInstallation` 取代。
+:::
 
-預設情況下,如果您啟用了跳過安裝模式,而沒有在伺服器部分設定 `JWTSecret` 和 `NodeSecret` 選項,
-Nginx UI 將為這兩個選項生成一個隨機的 UUID 值
+通過將此選項設置為 `true`,您可以跳過 Nginx UI 伺服器的安裝。
+當您希望使用相同的配置文件或環境變量將 Nginx UI 部署到多個伺服器時,這非常有用
 
-此外,如果您也沒有在伺服器部分設定 `Email` 選項,
-Nginx UI 將不會創建系統初始的 acme 使用者,這意味著您無法在此伺服器上申請 SSL 證書。
+預設情況下,如果您啟用了跳過安裝模式,而沒有在伺服器部分設置 `JWTSecret` 和 `NodeSecret` 選項,Nginx UI 將為這兩個選項生成一個隨機的 UUID 值。
+
+此外,如果您也沒有在伺服器部分設置 `Email` 選項,Nginx UI 將不會創建系統初始的 acme 用戶,這意味著您無法在此伺服器上申請 SSL 證書。
 
 ## Name
 
-- 版本:`>= v2.0.0-beta.23`
-- 類型:`string`
+- 版本: `>= v2.0.0-beta.23, <= 2.0.0-beta.36`
+- 類型: `string`
+
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Http.InsecureSkipVerify` 取代。
+:::
 
 使用此選項自定義本地伺服器的名稱,以在環境指示器中顯示。
 
 ## InsecureSkipVerify
 
-- 版本:`>= v2.0.0-beta.30`
+- 版本: `>= v2.0.0-beta.30, <= 2.0.0-beta.36`
 - 類型: `bool`
 
+::: warning 警告
+已在 `v2.0.0-beta.37` 中廢棄,請使用 `Http.InsecureSkipVerify` 取代。
+:::
+
 此選項用於配置 Nginx UI 伺服器在與其他伺服器建立 TLS 連接時是否跳過證書驗證。

+ 14 - 0
docs/zh_TW/guide/config-terminal.md

@@ -0,0 +1,14 @@
+# Terminal
+
+## StartCmd
+
+- 類型: `string`
+- 預設值: `login`
+- 版本: `>= v2.0.0-beta.37`
+
+此選項用於設置 Web 終端的啟動命令。
+
+::: warning 警告
+出於安全原因,我們將啟動命令設置為 `login`,因此您必須通過 Linux 的預設身份驗證方法登錄。
+如果您不想每次訪問 Web 終端時都輸入用戶名和密碼進行驗證,請將其設置為 `bash` 或 `zsh`(如果已安裝)。
+:::

+ 107 - 63
docs/zh_TW/guide/env.md

@@ -1,88 +1,132 @@
 # 環境變量
 
-適用於 v2.0.0-beta.23 及以上版本
+適用於 v2.0.0-beta.37 及以上版本。
+
+## App
+
+| 配置        | 環境變量                    |
+|-----------|-------------------------|
+| PageSize  | NGINX_UI_APP_PAGE_SIZE  |
+| JwtSecret | NGINX_UI_APP_JWT_SECRET |
 
 ## Server
 
-| Configuration Setting | Environment Variable                  |
-|-----------------------|---------------------------------------|
-| HttpPort              | NGINX_UI_SERVER_HTTP_PORT             |
-| RunMode               | NGINX_UI_SERVER_RUN_MODE              |
-| JwtSecret             | NGINX_UI_SERVER_JWT_SECRET            |
-| HTTPChallengePort     | NGINX_UI_SERVER_HTTP_CHALLENGE_PORT   |
-| StartCmd              | NGINX_UI_SERVER_START_CMD             |
-| Database              | NGINX_UI_SERVER_DATABASE              |
-| CADir                 | NGINX_UI_SERVER_CA_DIR                |
-| GithubProxy           | NGINX_UI_SERVER_GITHUB_PROXY          |
-| NodeSecret            | NGINX_UI_SERVER_NODE_SECRET           |
-| Demo                  | NGINX_UI_SERVER_DEMO                  |
-| PageSize              | NGINX_UI_SERVER_PAGE_SIZE             |
-| HttpHost              | NGINX_UI_SERVER_HTTP_HOST             |
-| CertRenewalInterval   | NGINX_UI_SERVER_CERT_RENEWAL_INTERVAL |
-| RecursiveNameservers  | NGINX_UI_SERVER_RECURSIVE_NAMESERVERS |
-| SkipInstallation      | NGINX_UI_SERVER_SKIP_INSTALLATION     |
-| Name                  | NGINX_UI_SERVER_NAME                  |
-| InsecureSkipVerify    | NGINX_UI_SERVER_INSECURE_SKIP_VERIFY  |
+| 配置      | 環境變量                     |
+|---------|--------------------------|
+| Host    | NGINX_UI_SERVER_HOST     |
+| Port    | NGINX_UI_SERVER_PORT     |
+| RunMode | NGINX_UI_SERVER_RUN_MODE |
 
-## Nginx
+## Database
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| AccessLogPath         | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
-| ErrorLogPath          | NGINX_UI_NGINX_ERROR_LOG_PATH     |
-| ConfigDir             | NGINX_UI_NGINX_CONFIG_DIR         |
-| PIDPath               | NGINX_UI_NGINX_PID_PATH           |
-| TestConfigCmd         | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
-| ReloadCmd             | NGINX_UI_NGINX_RELOAD_CMD         |
-| RestartCmd            | NGINX_UI_NGINX_RESTART_CMD        |
-| LogDirWhiteList       | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
+| 配置   | 環境變量             |
+|------|------------------|
+| Name | NGINX_UI_DB_NAME |
 
-## OpenAI
+## Auth
 
-| Configuration Setting | Environment Variable     |
-|-----------------------|--------------------------|
-| Model                 | NGINX_UI_OPENAI_MODEL    |
-| BaseUrl               | NGINX_UI_OPENAI_BASE_URL |
-| Proxy                 | NGINX_UI_OPENAI_PROXY    |
-| Token                 | NGINX_UI_OPENAI_TOKEN    |
+| 配置                  | 環境變量                                |
+|---------------------|-------------------------------------|
+| IPWhiteList         | NGINX_UI_AUTH_IP_WHITE_LIST         |
+| BanThresholdMinutes | NGINX_UI_AUTH_BAN_THRESHOLD_MINUTES |
+| MaxAttempts         | NGINX_UI_AUTH_MAX_ATTEMPTS          |
 
 ## Casdoor
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| Endpoint              | NGINX_UI_CASDOOR_ENDPOINT         |
-| ClientId              | NGINX_UI_CASDOOR_CLIENT_ID        |
-| ClientSecret          | NGINX_UI_CASDOOR_CLIENT_SECRET    |
-| CertificatePath       | NGINX_UI_CASDOOR_CERTIFICATE_PATH |
-| Organization          | NGINX_UI_CASDOOR_ORGANIZATION     |
-| Application           | NGINX_UI_CASDOOR_APPLICATION      |
-| RedirectUri           | NGINX_UI_CASDOOR_REDIRECT_URI     |
+| 配置              | 環境變量                              |
+|-----------------|-----------------------------------|
+| Endpoint        | NGINX_UI_CASDOOR_ENDPOINT         |
+| ClientId        | NGINX_UI_CASDOOR_CLIENT_ID        |
+| ClientSecret    | NGINX_UI_CASDOOR_CLIENT_SECRET    |
+| CertificatePath | NGINX_UI_CASDOOR_CERTIFICATE_PATH |
+| Organization    | NGINX_UI_CASDOOR_ORGANIZATION     |
+| Application     | NGINX_UI_CASDOOR_APPLICATION      |
+| RedirectUri     | NGINX_UI_CASDOOR_REDIRECT_URI     |
+
+## Cert
+
+| 配置                   | 環境變量                                |
+|----------------------|-------------------------------------|
+| Email                | NGINX_UI_CERT_EMAIL                 |
+| CADir                | NGINX_UI_CERT_CA_DIR                |
+| RenewalInterval      | NGINX_UI_CERT_RENEWAL_INTERVAL      |
+| RecursiveNameservers | NGINX_UI_CERT_RECURSIVE_NAMESERVERS |
+| HTTPChallengePort    | NGINX_UI_CERT_HTTP_CHALLENGE_PORT   |
+
+## Cluster
+
+| 配置   | 環境變量                  |
+|------|-----------------------|
+| Node | NGINX_UI_CLUSTER_NODE |
+
+## Crypto
+
+| 配置     | 環境變量                   |
+|--------|------------------------|
+| Secret | NGINX_UI_CRYPTO_SECRET |
+
+## Http
+
+| 配置                 | 環境變量                               |
+|--------------------|------------------------------------|
+| GithubProxy        | NGINX_UI_HTTP_GITHUB_PROXY         |
+| InsecureSkipVerify | NGINX_UI_HTTP_INSECURE_SKIP_VERIFY |
 
 ## Logrotate
 
-| Configuration Setting | Environment Variable        |
-|-----------------------|-----------------------------|
-| Enabled               | NGINX_UI_LOGROTATE_ENABLED  |
-| CMD                   | NGINX_UI_LOGROTATE_CMD      |
-| Interval              | NGINX_UI_LOGROTATE_INTERVAL |
+| 配置       | 環境變量                        |
+|----------|-----------------------------|
+| Enabled  | NGINX_UI_LOGROTATE_ENABLED  |
+| CMD      | NGINX_UI_LOGROTATE_CMD      |
+| Interval | NGINX_UI_LOGROTATE_INTERVAL |
 
-## Auth
+## Nginx
+
+| 配置              | 環境變量                              |
+|-----------------|-----------------------------------|
+| AccessLogPath   | NGINX_UI_NGINX_ACCESS_LOG_PATH    |
+| ErrorLogPath    | NGINX_UI_NGINX_ERROR_LOG_PATH     |
+| ConfigDir       | NGINX_UI_NGINX_CONFIG_DIR         |
+| PIDPath         | NGINX_UI_NGINX_PID_PATH           |
+| TestConfigCmd   | NGINX_UI_NGINX_TEST_CONFIG_CMD    |
+| ReloadCmd       | NGINX_UI_NGINX_RELOAD_CMD         |
+| RestartCmd      | NGINX_UI_NGINX_RESTART_CMD        |
+| LogDirWhiteList | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
+
+## Node
+
+| 配置               | 環境變量                            |
+|------------------|---------------------------------|
+| Name             | NGINX_UI_NODE_NAME              |
+| Secret           | NGINX_UI_NODE_SECRET            |
+| SkipInstallation | NGINX_UI_NODE_SKIP_INSTALLATION |
+
+## OpenAI
+
+| 配置      | 環境變量                     |
+|---------|--------------------------|
+| Model   | NGINX_UI_OPENAI_MODEL    |
+| BaseUrl | NGINX_UI_OPENAI_BASE_URL |
+| Proxy   | NGINX_UI_OPENAI_PROXY    |
+| Token   | NGINX_UI_OPENAI_TOKEN    |
+
+## Terminal
 
-| Configuration Setting | Environment Variable      |
-|-----------------------|---------------------------|
-| IPWhiteList           | NGINX_UI_AUTH_IPWhiteList |
+| 配置       | 環境變量                        |
+|----------|-----------------------------|
+| StartCmd | NGINX_UI_TERMINAL_START_CMD |
 
 ## Webauthn
 
-| Configuration Setting | Environment Variable              |
-|-----------------------|-----------------------------------|
-| RPDisplayName         | NGINX_UI_WEBAUTHN_RP_DISPLAY_NAME |
-| RPID                  | NGINX_UI_WEBAUTHN_RPID            |
-| RPOrigins             | NGINX_UI_WEBAUTHN_RP_ORIGINS      |
+| 配置            | 環境變量                              |
+|---------------|-----------------------------------|
+| RPDisplayName | NGINX_UI_WEBAUTHN_RP_DISPLAY_NAME |
+| RPID          | NGINX_UI_WEBAUTHN_RPID            |
+| RPOrigins     | NGINX_UI_WEBAUTHN_RP_ORIGINS      |
 
-## 預定義使用者
+## 預定義用戶
 
-在跳過安裝模式下,您可以設置以下環境變量以創建預定義使用者:
+在跳過安裝模式下,您可以設定以下環境變量以創建預定義用戶
 
 - NGINX_UI_PREDEFINED_USER_NAME
 - NGINX_UI_PREDEFINED_USER_PASSWORD

+ 10 - 10
go.mod

@@ -11,7 +11,7 @@ require (
 	github.com/dgraph-io/ristretto v1.0.0
 	github.com/dustin/go-humanize v1.0.1
 	github.com/elliotchance/orderedmap/v2 v2.4.0
-	github.com/fatih/color v1.17.0
+	github.com/fatih/color v1.18.0
 	github.com/gin-contrib/static v1.1.2
 	github.com/gin-gonic/gin v1.10.0
 	github.com/go-acme/lego/v4 v4.19.2
@@ -29,7 +29,7 @@ require (
 	github.com/pquerna/otp v1.4.0
 	github.com/pretty66/websocketproxy v0.0.0-20220507015215-930b3a686308
 	github.com/samber/lo v1.47.0
-	github.com/sashabaranov/go-openai v1.32.2
+	github.com/sashabaranov/go-openai v1.32.3
 	github.com/shirou/gopsutil/v3 v3.24.5
 	github.com/spf13/cast v1.7.0
 	github.com/stretchr/testify v1.9.0
@@ -72,7 +72,7 @@ require (
 	github.com/OpenDNS/vegadns2client v0.0.0-20180418235048-a3fa4a771d87 // indirect
 	github.com/StackExchange/wmi v1.2.1 // indirect
 	github.com/akamai/AkamaiOPEN-edgegrid-golang v1.2.2 // indirect
-	github.com/aliyun/alibaba-cloud-sdk-go v1.63.32 // indirect
+	github.com/aliyun/alibaba-cloud-sdk-go v1.63.34 // indirect
 	github.com/aws/aws-sdk-go-v2 v1.32.2 // indirect
 	github.com/aws/aws-sdk-go-v2/config v1.28.0 // indirect
 	github.com/aws/aws-sdk-go-v2/credentials v1.17.41 // indirect
@@ -221,8 +221,8 @@ require (
 	github.com/spf13/pflag v1.0.5 // indirect
 	github.com/spf13/viper v1.19.0 // indirect
 	github.com/subosito/gotenv v1.6.0 // indirect
-	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1026 // indirect
-	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1026 // indirect
+	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1028 // indirect
+	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1028 // indirect
 	github.com/tjfoc/gmsm v1.4.1 // indirect
 	github.com/tklauser/go-sysconf v0.3.14 // indirect
 	github.com/tklauser/numcpus v0.9.0 // indirect
@@ -233,8 +233,8 @@ require (
 	github.com/vinyldns/go-vinyldns v0.9.16 // indirect
 	github.com/vultr/govultr/v3 v3.10.0 // indirect
 	github.com/x448/float16 v0.8.4 // indirect
-	github.com/yandex-cloud/go-genproto v0.0.0-20241018072940-69706eaae3be // indirect
-	github.com/yandex-cloud/go-sdk v0.0.0-20241018073342-0142f4806660 // indirect
+	github.com/yandex-cloud/go-genproto v0.0.0-20241021132621-28bb61d00c2f // indirect
+	github.com/yandex-cloud/go-sdk v0.0.0-20241021153520-213d4c625eca // indirect
 	github.com/yusufpapurcu/wmi v1.2.4 // indirect
 	go.mongodb.org/mongo-driver v1.17.1 // indirect
 	go.opencensus.io v0.24.0 // indirect
@@ -256,9 +256,9 @@ require (
 	golang.org/x/time v0.7.0 // indirect
 	golang.org/x/tools v0.26.0 // indirect
 	google.golang.org/api v0.201.0 // indirect
-	google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 // indirect
-	google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 // indirect
+	google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 // indirect
+	google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect
 	google.golang.org/grpc v1.67.1 // indirect
 	google.golang.org/protobuf v1.35.1 // indirect
 	gopkg.in/fsnotify.v1 v1.4.7 // indirect

+ 23 - 0
go.sum

@@ -39,6 +39,7 @@ cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRY
 cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM=
 cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
 cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY=
+cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE=
 cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4=
 cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw=
 cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E=
@@ -178,6 +179,7 @@ cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvj
 cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA=
 cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
 cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU=
+cloud.google.com/go/compute v1.28.1 h1:XwPcZjgMCnU2tkwY10VleUjSAfpTj9RDn+kGrbYsi8o=
 cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU=
 cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
 cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
@@ -685,6 +687,8 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/aliyun/alibaba-cloud-sdk-go v1.63.32 h1:aBtZr6N7HXVpJCMybTSBuinHauehf/R0LNMB03TkrE0=
 github.com/aliyun/alibaba-cloud-sdk-go v1.63.32/go.mod h1:SOSDHfe1kX91v3W5QiBsWSLqeLxImobbMX1mxrFHsVQ=
+github.com/aliyun/alibaba-cloud-sdk-go v1.63.34 h1:eZM2MHY/p4TFO1pGf9O5HiuYE59hwrrkf3HvCtkL5Ok=
+github.com/aliyun/alibaba-cloud-sdk-go v1.63.34/go.mod h1:SOSDHfe1kX91v3W5QiBsWSLqeLxImobbMX1mxrFHsVQ=
 github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
 github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0=
@@ -760,6 +764,7 @@ github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyY
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
+github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
 github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
 github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -852,6 +857,8 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL
 github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
 github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
 github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
 github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
 github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
 github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
@@ -1554,6 +1561,8 @@ github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
 github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
 github.com/sashabaranov/go-openai v1.32.2 h1:8z9PfYaLPbRzmJIYpwcWu6z3XU8F+RwVMF1QRSeSF2M=
 github.com/sashabaranov/go-openai v1.32.2/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg=
+github.com/sashabaranov/go-openai v1.32.3 h1:6xZ393PbZFoJrgwveBXVZggmyH7zdp4joUdnCy7FFD8=
+github.com/sashabaranov/go-openai v1.32.3/go.mod h1:lj5b/K+zjTSFxVLijLSTDZuP7adOgerWeFyZLUhAKRg=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30 h1:yoKAVkEVwAqbGbR8n87rHQ1dulL25rKloGadb3vm770=
 github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30/go.mod h1:sH0u6fq6x4R5M7WxkoQFY/o7UaiItec0o1LinLCJNq8=
@@ -1653,8 +1662,12 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8
 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1026 h1:6iBtl1CunsfWcT6IyCuRdgefJ/Zmsp5MTDujnolyuQs=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1026/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1028 h1:3rMKraYsxf5bQ4KglyzQ91vXZUXpUhn2Cdz9HkL125o=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1028/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1026 h1:W6wPKS41uNKs7RBcJP5iB0HrcglXNSFUmnQaBEorVpg=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1026/go.mod h1:aqLJU0aRU1k7l+TPyYCao+KQHrFEF6lNQqK04FIiLJw=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1028 h1:brTlgS0nWHFzw8aI67OEqEwpXhyeT781FDXV3bIEj/w=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1028/go.mod h1:7dV6qKKfZ+x2iNcq4Drb5Pb1P/gNHg12R4xPy6+bo0M=
 github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
 github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
 github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
@@ -1700,8 +1713,12 @@ github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQ
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/yandex-cloud/go-genproto v0.0.0-20241018072940-69706eaae3be h1:jGNL9PedKrHWl1WCRdlBEFo7nDl589LKvkulZRf7ZTA=
 github.com/yandex-cloud/go-genproto v0.0.0-20241018072940-69706eaae3be/go.mod h1:0LDD/IZLIUIV4iPH+YcF+jysO3jkSvADFGm4dCAuwQo=
+github.com/yandex-cloud/go-genproto v0.0.0-20241021132621-28bb61d00c2f h1:u7ETK40lM4ygnDzYtGFLk36fWARftvU+I0zwTYrOVwE=
+github.com/yandex-cloud/go-genproto v0.0.0-20241021132621-28bb61d00c2f/go.mod h1:0LDD/IZLIUIV4iPH+YcF+jysO3jkSvADFGm4dCAuwQo=
 github.com/yandex-cloud/go-sdk v0.0.0-20241018073342-0142f4806660 h1:/XDcP3XiGxwW6GGYzjHtQ82ZEEdpCuDQlmmsmx6Zyuc=
 github.com/yandex-cloud/go-sdk v0.0.0-20241018073342-0142f4806660/go.mod h1:7Ru6CfLQ1pfa5WcWdzdr8UY7xRsvVTykxBh5dzjx+Ic=
+github.com/yandex-cloud/go-sdk v0.0.0-20241021153520-213d4c625eca h1:m3Hne9w8jnfiPPDw9KqSLtRa7Et+gzCIub2ky5uUGGM=
+github.com/yandex-cloud/go-sdk v0.0.0-20241021153520-213d4c625eca/go.mod h1:id1/mPjMDlqamdsay74AJLVVLGCRTnjMIKuXpNzVN08=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -2457,10 +2474,16 @@ google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOl
 google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
 google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53 h1:Df6WuGvthPzc+JiQ/G+m+sNX24kc0aTBqoDN/0yyykE=
 google.golang.org/genproto v0.0.0-20241015192408-796eee8c2d53/go.mod h1:fheguH3Am2dGp1LfXkrvwqC/KlFq8F0nLq3LryOMrrE=
+google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38 h1:Q3nlH8iSQSRUwOskjbcSMcF2jiYMNiQYZ0c2KEJLKKU=
+google.golang.org/genproto v0.0.0-20241021214115-324edc3d5d38/go.mod h1:xBI+tzfqGGN2JBeSebfKXFSdBpWVQ7sLW40PTupVRm4=
 google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U=
 google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53/go.mod h1:riSXTwQ4+nqmPGtobMFyW5FqVAmIs0St6VPp4Ug7CE4=
+google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 h1:2oV8dfuIkM1Ti7DwXc0BJfnwr9csz4TDXI9EmiI+Rbw=
+google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38/go.mod h1:vuAjtvlwkDKF6L1GQ0SokiRLCGFfeBUXWr/aFFkHACc=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 h1:zciRKQ4kBpFgpfC5QQCVtnnNAcLIqweL7plyZRQHVpI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=

+ 5 - 2
install.sh

@@ -290,12 +290,15 @@ install_config() {
     if [[ ! -f "$DataPath/app.ini" ]]; then
 cat > "$DataPath/app.ini" << EOF
 [server]
-HOST = 127.0.0.1
+HOST = 0.0.0.0
 PORT = 9000
 RunMode = release
 
 [cert]
-HTTPChallengePort    = 9180
+HTTPChallengePort = 9180
+
+[terminal]
+StartCmd = login
 EOF
         echo "info: The default configuration file was installed to '$DataPath/app.ini' successfully!"
     fi

+ 1 - 1
internal/kernal/boot.go

@@ -80,7 +80,7 @@ func InitDatabase() {
 	}
 
 	if "" != cSettings.AppSettings.JwtSecret {
-		db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), cSettings.DataBaseSettings))
+		db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), settings.DatabaseSettings))
 		model.Use(db)
 		query.Init(db)
 

+ 0 - 8
model/model.go

@@ -55,14 +55,6 @@ type DataList struct {
 	Pagination Pagination  `json:"pagination,omitempty"`
 }
 
-func TotalPage(total int64, pageSize int) int64 {
-	n := total / int64(pageSize)
-	if total%int64(pageSize) > 0 {
-		n++
-	}
-	return n
-}
-
 type Method interface {
 	// FirstByID Where("id=@id")
 	FirstByID(id int) (*gen.T, error)

+ 11 - 0
settings/database.go

@@ -0,0 +1,11 @@
+package settings
+
+type Database struct {
+	Name string
+}
+
+var DatabaseSettings = &Database{}
+
+func (d *Database) GetName() string {
+	return d.Name
+}

+ 2 - 2
settings/server_v1.go

@@ -37,7 +37,7 @@ type settingsV2 struct {
 	// Cosy
 	App      settings.App
 	Server   settings.Server
-	DataBase settings.DataBase
+	DataBase Database
 	// Nginx UI
 	Auth      Auth
 	Casdoor   Casdoor
@@ -121,7 +121,7 @@ func Migrate(confPath string) {
 	// Cosy
 	app := &settings.App{}
 	server := &settings.Server{}
-	database := &settings.DataBase{}
+	database := &Database{}
 	// Nginx UI
 	auth := &Auth{}
 	casdoor := &Casdoor{}

+ 1 - 1
settings/settings.go

@@ -23,8 +23,8 @@ var envPrefixMap = map[string]interface{}{
 	// Cosy
 	"APP":    settings.AppSettings,
 	"SERVER": settings.ServerSettings,
-	"DB":     settings.DataBaseSettings,
 	// Nginx UI
+	"DB":        DatabaseSettings,
 	"AUTH":      AuthSettings,
 	"CASDOOR":   CasdoorSettings,
 	"CERT":      CertSettings,