docs: update docs regarding to settings v2

This commit is contained in:
Jacky 2024-10-22 23:56:56 +08:00
parent 60034145fa
commit 80cb8e1151
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
39 changed files with 1080 additions and 321 deletions

View file

@ -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()

View file

@ -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: 'Casdoor', link: '/guide/config-casdoor'},
{text: 'Logrotate', link: '/guide/config-logrotate'},
{text: 'Cluster', link: '/guide/config-cluster'},
{text: 'Database', link: '/guide/config-database'},
{text: 'Auth', link: '/guide/config-auth'},
{text: 'Casdoor', link: '/guide/config-casdoor'},
{text: 'Cert', link: '/guide/config-cert'},
{text: 'Cluster', link: '/guide/config-cluster'},
{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'}
]
},

View file

@ -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'}
]
},
{

View file

@ -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
docs/guide/config-app.md Normal file
View file

@ -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
docs/guide/config-cert.md Normal file
View file

@ -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.

View file

@ -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
docs/guide/config-http.md Normal file
View file

@ -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
docs/guide/config-node.md Normal file
View file

@ -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.

View file

@ -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.

View file

@ -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).
:::

View file

@ -1,31 +1,77 @@
# 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
| 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 |
## Database
| Configuration Setting | Environment Variable |
|-----------------------|----------------------|
| Name | NGINX_UI_DB_NAME |
## 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 |
| 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
| 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 |
## Nginx
| Configuration Setting | Environment Variable |
|-----------------------|-----------------------------------|
| AccessLogPath | NGINX_UI_NGINX_ACCESS_LOG_PATH |
@ -37,8 +83,14 @@ Applicable for version v2.0.0-beta.23 and above.
| RestartCmd | NGINX_UI_NGINX_RESTART_CMD |
| LogDirWhiteList | NGINX_UI_NGINX_LOG_DIR_WHITE_LIST |
## OpenAI
## 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 |
@ -46,31 +98,10 @@ Applicable for version v2.0.0-beta.23 and above.
| Proxy | NGINX_UI_OPENAI_PROXY |
| Token | NGINX_UI_OPENAI_TOKEN |
## 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 |
## Logrotate
| Configuration Setting | Environment Variable |
|-----------------------|-----------------------------|
| Enabled | NGINX_UI_LOGROTATE_ENABLED |
| CMD | NGINX_UI_LOGROTATE_CMD |
| Interval | NGINX_UI_LOGROTATE_INTERVAL |
## Auth
| Configuration Setting | Environment Variable |
|-----------------------|---------------------------|
| IPWhiteList | NGINX_UI_AUTH_IPWhiteList |
## Terminal
| Configuration Setting | Environment Variable |
|-----------------------|-------------------------------------|
| StartCmd | NGINX_UI_TERMINAL_START_CMD |
## Webauthn

View file

@ -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 值并将其设置为此选项的值。

View file

@ -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 次。

View file

@ -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 用于验证您控制请求证书的域的域验证方法。

View file

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

View file

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

View file

@ -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 连接时是否跳过证书验证。

View file

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

View file

@ -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 连接时是否跳过证书验证。

View file

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

View file

@ -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 |
## 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 |
## 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 |
## Logrotate
| Configuration Setting | Environment Variable |
|-----------------------|-----------------------------|
| Enabled | NGINX_UI_LOGROTATE_ENABLED |
| CMD | NGINX_UI_LOGROTATE_CMD |
| Interval | NGINX_UI_LOGROTATE_INTERVAL |
| 配置 | 环境变量 |
|------|------------------|
| Name | NGINX_UI_DB_NAME |
## Auth
| Configuration Setting | Environment Variable |
|-----------------------|---------------------------|
| IPWhiteList | NGINX_UI_AUTH_IPWhiteList |
| 配置 | 环境变量 |
|---------------------|-------------------------------------|
| IPWhiteList | NGINX_UI_AUTH_IP_WHITE_LIST |
| BanThresholdMinutes | NGINX_UI_AUTH_BAN_THRESHOLD_MINUTES |
| MaxAttempts | NGINX_UI_AUTH_MAX_ATTEMPTS |
## Casdoor
| 配置 | 环境变量 |
|-----------------|-----------------------------------|
| 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
| 配置 | 环境变量 |
|----------|-----------------------------|
| Enabled | NGINX_UI_LOGROTATE_ENABLED |
| CMD | NGINX_UI_LOGROTATE_CMD |
| Interval | NGINX_UI_LOGROTATE_INTERVAL |
## 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
| 配置 | 环境变量 |
|----------|-----------------------------|
| 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 |
## 预定义用户

View file

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

View file

@ -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 值並將其設置為此選項的值。

View file

@ -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 用於驗證您控制請求證書的域的域驗證方法。

View file

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

View file

@ -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 连接时是否跳过证书验证。

View file

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

View file

@ -1,89 +1,145 @@
# 服務端
# Server
Nginx UI 配置的服務端部分涉及控制 Nginx UI 服務器的各種設置。在頁面中,我們將討論可用的選項、它們的預設值以及它們的目的。
Nginx UI 配置的服務端部分涉及控制 Nginx UI 伺服器的各種設定。在頁面中,我們將討論可用的選項、它們的預設值以及它們的目的。
## HttpHost
## Host
- 類型: `string`
- 預設值:`0.0.0.0`
- 版本: `>= v2.0.0-beta.37`
- 預設值: `0.0.0.0`
Nginx UI 服器監聽的主機名。此選項用於配置 Nginx UI 服器監聽傳入 HTTP 請求的主機名。 更改預設主機名可能有助於提升安全性。
Nginx UI 服器監聽的主機名。此選項用於配置 Nginx UI 服器監聽傳入 HTTP 請求的主機名。更改預設主機名可能有助於提升安全性。
## HttpPort
## Port
- 類型: `uint`
- 版本: `>= v2.0.0-beta.37`
- 預設值: `9000`
- 類型:`int`
- 預設值:`9000`
Nginx UI 服務器監聽端口。此選項用於配置 Nginx UI 服務器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
## RunMode
- 類型`string`
- 支援的值`release``debug`
- 預設值`debug`
- 類型: `string`
- 支援的值: `release``debug`
- 預設值: `debug`
此選項用於配置 Nginx UI 服務器的運行模式,主要影響日誌打印的級別。
此選項用於配置 Nginx UI 伺服器的運行模式,主要影響日誌輸出的級別。
Nginx UI 的日誌分為 6 個級別,分別為 `Debug``Info``Warn``Error``Panic``Fatal`,這些日誌級別按照嚴重程度遞增
Nginx UI 的日誌分為 6 個級別,分別為 `Debug``Info``Warn``Error``Panic``Fatal`,這些日誌級別按照嚴重程度遞增
當使用 `debug` 模式時Nginx UI 將在控制台打印 SQL 及其執行的時間和調用者,`Debug` 級別或更高級的日誌也會被打印。
當使用 `debug` 模式時Nginx UI 將在控制台打印 SQL 及其執行的時間和調用者,`Debug` 級別或更高級的日誌也會被打印。
當使用 `release` 模式時Nginx UI 將不會在控制台打印 SQL 的執行時間和調用者, 只有 `Info` 級別或更高等級的日誌才會被打印。
當使用 `release` 模式時Nginx UI 將不會在控制台打印 SQL 的執行時間和調用者,只有 `Info` 級別或更高級別的日誌才會被打印。
## HttpHost
- 類型: `string`
- 預設值: `0.0.0.0`
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `Host` 取代。
:::
Nginx UI 伺服器監聽的主機名稱。此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的主機名稱。更改預設主機名稱可能有助於提升安全性。
## HttpPort
- 類型: `int`
- 預設值: `9000`
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `Port` 取代。
:::
此選項用於配置 Nginx UI 伺服器監聽傳入 HTTP 請求的端口。更改預設端口對於避免端口衝突或增強安全性可能很有用。
## JwtSecret
- 類型:`string`
- 類型: `string`
此選項用於配置 Nginx UI 服務器用於生成 JWT 的密鑰。
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `App.JwtSecret` 取代。
:::
JWT 是一種用於驗證用戶身份的標準,它可以在用戶登錄後生成一個 token然後在後續的請求中使用該 token 來驗證用戶身份。
此選項用於配置 Nginx UI 伺服器用於生成 JWT 的密鑰
如果您使用一鍵安裝腳本來部署 Nginx UI腳本將會生成一個 UUID 值並將它設置為此選項的值。
JWT 是一種用於驗證用戶身份的標準,它可以在用戶登入後生成一個 token然後在後續的請求中使用該 token 來驗證用戶身份。
如果您使用一鍵安裝腳本來部署 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`
- 類型: `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`
在獲取 Let's Encrypt 證書時此選項用於設置您的電子郵件地址。Let's Encrypt 會將您的電子郵件地址用於通知您證書的到期時間。
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `Cert.Email` 取代。
:::
在獲取 Let's Encrypt 證書時此選項用於設定您的電子郵件地址。Let's Encrypt 會將您的電子郵件地址用於通知您證書的到期時間。
## Database
- 類型:`string`
- 預設值`database`
- 類型: `string`
- 預設值: `database`
此選項用於設置 Nginx UI 用於存儲其數據的 sqlite 數據庫的名稱。
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `Database.Name` 取代。
:::
此選項用於設定 Nginx UI 用於存儲其數據的 sqlite 數據庫的名稱。
## StartCmd
- 類型:`string`
- 預設值:`login`
此選項用於設置 Web 終端的啟動命令。
- 類型: `string`
- 預設值: `login`
::: warning 警告
出於安全原因,我們將啟動命令設置為 `login`,因此您必須通過 Linux 的預設身份驗證方法登錄。如果您不想每次訪問 Web
終端時都輸入用戶名和密碼進行驗證,請將其設置為 `bash``zsh`(如果已安裝)。
已在 `v2.0.0-beta.37` 中廢棄,請使用 `Terminal.StartCmd` 取代。
:::
此選項用於設定 Web 終端的啟動命令。
::: warning 警告
出於安全原因,我們將啟動命令設置為 `login`,因此您必須通過 Linux 的預設身份驗證方法登入。如果您不想每次訪問 Web 終端時都輸入用戶名和密碼進行驗證,請將其設定為 `bash``zsh`(如果已安裝)。
:::
## PageSize
- 類型:`int`
- 預設值`10`
- 類型: `int`
- 預設值: `10`
此選項用於設置 Nginx UI 中列表分頁的頁面大小。調整頁面大小有助於更有效地管理大量數據,但是過大的數量可能會增加服務器的壓力。
::: warning 警告
已在 `v2.0.0-beta.37` 中廢棄,請使用 `App.PageSize` 取代。
:::
此選項用於設定 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 連接時是否跳過證書驗證。

View file

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

View file

@ -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 |
## 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 |
## 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 |
## Logrotate
| Configuration Setting | Environment Variable |
|-----------------------|-----------------------------|
| Enabled | NGINX_UI_LOGROTATE_ENABLED |
| CMD | NGINX_UI_LOGROTATE_CMD |
| Interval | NGINX_UI_LOGROTATE_INTERVAL |
| 配置 | 環境變量 |
|------|------------------|
| Name | NGINX_UI_DB_NAME |
## Auth
| Configuration Setting | Environment Variable |
|-----------------------|---------------------------|
| IPWhiteList | NGINX_UI_AUTH_IPWhiteList |
| 配置 | 環境變量 |
|---------------------|-------------------------------------|
| IPWhiteList | NGINX_UI_AUTH_IP_WHITE_LIST |
| BanThresholdMinutes | NGINX_UI_AUTH_BAN_THRESHOLD_MINUTES |
| MaxAttempts | NGINX_UI_AUTH_MAX_ATTEMPTS |
## Casdoor
| 配置 | 環境變量 |
|-----------------|-----------------------------------|
| 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
| 配置 | 環境變量 |
|----------|-----------------------------|
| Enabled | NGINX_UI_LOGROTATE_ENABLED |
| CMD | NGINX_UI_LOGROTATE_CMD |
| Interval | NGINX_UI_LOGROTATE_INTERVAL |
## 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
| 配置 | 環境變量 |
|----------|-----------------------------|
| 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

20
go.mod
View file

@ -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
go.sum
View file

@ -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=

View file

@ -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

View file

@ -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)

View file

@ -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
settings/database.go Normal file
View file

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

View file

@ -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{}

View file

@ -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,