Browse Source

feat: support https

Jacky 1 month ago
parent
commit
1ca802d829
40 changed files with 1833 additions and 724 deletions
  1. 47 1
      .vscode/tasks.json
  2. 28 0
      api/settings/settings.go
  3. 1 1
      app/package.json
  4. 7 0
      app/src/api/settings.ts
  5. 1 1
      app/src/components/Chart/UsageProgressLine.vue
  6. 1 0
      app/src/constants/errors/middleware.ts
  7. 6 0
      app/src/constants/errors/system.ts
  8. 122 55
      app/src/language/ar/app.po
  9. 117 52
      app/src/language/de_DE/app.po
  10. 115 52
      app/src/language/en/app.po
  11. 122 55
      app/src/language/es/app.po
  12. 123 55
      app/src/language/fr_FR/app.po
  13. 122 55
      app/src/language/ko_KR/app.po
  14. 107 51
      app/src/language/messages.pot
  15. 123 55
      app/src/language/ru_RU/app.po
  16. 122 55
      app/src/language/tr_TR/app.po
  17. 115 52
      app/src/language/vi_VN/app.po
  18. 113 57
      app/src/language/zh_CN/app.po
  19. 123 55
      app/src/language/zh_TW/app.po
  20. 1 1
      app/src/version.json
  21. 20 0
      app/src/views/preference/AppSettings.vue
  22. 1 1
      app/src/views/preference/AuthSettings.vue
  23. 4 1
      app/src/views/preference/CertSettings.vue
  24. 31 0
      app/src/views/preference/HTTPSettings.vue
  25. 1 1
      app/src/views/preference/LogrotateSettings.vue
  26. 7 1
      app/src/views/preference/NginxSettings.vue
  27. 10 28
      app/src/views/preference/NodeSettings.vue
  28. 1 1
      app/src/views/preference/OpenAISettings.vue
  29. 42 8
      app/src/views/preference/Preference.vue
  30. 47 0
      app/src/views/preference/ServerSettings.vue
  31. 17 0
      app/src/views/preference/TerminalSettings.vue
  32. 27 0
      app/src/views/site/cert/Cert.vue
  33. 24 23
      app/src/views/site/cert/components/ChangeCert/ChangeCert.vue
  34. 1 1
      app/src/views/site/ngx_conf/NgxConfigEditor.vue
  35. 2 1
      app/src/views/site/ngx_conf/NgxServer.vue
  36. 4 4
      go.mod
  37. 9 0
      go.sum
  38. 8 0
      internal/system/errors.go
  39. 47 0
      internal/system/ssl.go
  40. 14 1
      main.go

+ 47 - 1
.vscode/tasks.json

@@ -43,6 +43,52 @@
         "isDefault": true
         "isDefault": true
       },
       },
       "problemMatcher": []
       "problemMatcher": []
+    },
+    {
+      "label": "[App] Gettext Extract",
+      "type": "shell",
+      "command": "cd app && pnpm gettext:extract",
+      "isBackground": true,
+      "presentation": {
+        "panel": "new"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "[App] ESLint Fix",
+      "type": "shell",
+      "command": "cd app && pnpm lint --fix",
+      "presentation": {
+        "panel": "new"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "[App] Typecheck",
+      "type": "shell",
+      "command": "cd app && pnpm typecheck",
+      "presentation": {
+        "panel": "new"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "Go Generate",
+      "type": "shell",
+      "command": "./gen.sh",
+      "presentation": {
+        "panel": "new"
+      },
+      "problemMatcher": []
+    },
+    {
+      "label": "Bump Version",
+      "type": "shell",
+      "command": "./version.sh",
+      "presentation": {
+        "panel": "new"
+      },
+      "problemMatcher": []
     }
     }
   ]
   ]
-}
+}

+ 28 - 0
api/settings/settings.go

@@ -3,11 +3,14 @@ package settings
 import (
 import (
 	"fmt"
 	"fmt"
 	"net/http"
 	"net/http"
+	"time"
 
 
 	"github.com/0xJacky/Nginx-UI/internal/cron"
 	"github.com/0xJacky/Nginx-UI/internal/cron"
 	"github.com/0xJacky/Nginx-UI/internal/nginx"
 	"github.com/0xJacky/Nginx-UI/internal/nginx"
+	"github.com/0xJacky/Nginx-UI/internal/system"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/gin-gonic/gin"
 	"github.com/gin-gonic/gin"
+	"github.com/jpillora/overseer"
 	"github.com/uozi-tech/cosy"
 	"github.com/uozi-tech/cosy"
 	cSettings "github.com/uozi-tech/cosy/settings"
 	cSettings "github.com/uozi-tech/cosy/settings"
 )
 )
@@ -61,6 +64,8 @@ func GetSettings(c *gin.Context) {
 
 
 func SaveSettings(c *gin.Context) {
 func SaveSettings(c *gin.Context) {
 	var json struct {
 	var json struct {
+		App       cSettings.App      `json:"app"`
+		Server    cSettings.Server   `json:"server"`
 		Auth      settings.Auth      `json:"auth"`
 		Auth      settings.Auth      `json:"auth"`
 		Cert      settings.Cert      `json:"cert"`
 		Cert      settings.Cert      `json:"cert"`
 		Http      settings.HTTP      `json:"http"`
 		Http      settings.HTTP      `json:"http"`
@@ -78,6 +83,22 @@ func SaveSettings(c *gin.Context) {
 		go cron.RestartLogrotate()
 		go cron.RestartLogrotate()
 	}
 	}
 
 
+	// Validate SSL certificates if HTTPS is enabled
+	needRestart := false
+	if json.Server.EnableHTTPS != cSettings.ServerSettings.EnableHTTPS {
+		needRestart = true
+	}
+
+	if json.Server.EnableHTTPS {
+		err := system.ValidateSSLCertificates(json.Server.SSLCert, json.Server.SSLKey)
+		if err != nil {
+			cosy.ErrHandler(c, err)
+			return
+		}
+	}
+
+	cSettings.ProtectedFill(cSettings.AppSettings, &json.App)
+	cSettings.ProtectedFill(cSettings.ServerSettings, &json.Server)
 	cSettings.ProtectedFill(settings.AuthSettings, &json.Auth)
 	cSettings.ProtectedFill(settings.AuthSettings, &json.Auth)
 	cSettings.ProtectedFill(settings.CertSettings, &json.Cert)
 	cSettings.ProtectedFill(settings.CertSettings, &json.Cert)
 	cSettings.ProtectedFill(settings.HTTPSettings, &json.Http)
 	cSettings.ProtectedFill(settings.HTTPSettings, &json.Http)
@@ -91,5 +112,12 @@ func SaveSettings(c *gin.Context) {
 		return
 		return
 	}
 	}
 
 
+	if needRestart {
+		go func() {
+			time.Sleep(2 * time.Second)
+			overseer.Restart()
+		}()
+	}
+
 	GetSettings(c)
 	GetSettings(c)
 }
 }

+ 1 - 1
app/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "nginx-ui-app-next",
   "name": "nginx-ui-app-next",
   "type": "module",
   "type": "module",
-  "version": "2.0.0-rc.4",
+  "version": "2.0.0-rc.5",
   "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6",
   "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6",
   "scripts": {
   "scripts": {
     "dev": "vite --host",
     "dev": "vite --host",

+ 7 - 0
app/src/api/settings.ts

@@ -9,6 +9,9 @@ export interface ServerSettings {
   host: string
   host: string
   port: number
   port: number
   run_mode: 'debug' | 'release'
   run_mode: 'debug' | 'release'
+  enable_https: boolean
+  ssl_cert: string
+  ssl_key: string
 }
 }
 
 
 export interface DatabaseSettings {
 export interface DatabaseSettings {
@@ -54,8 +57,10 @@ export interface NginxSettings {
   access_log_path: string
   access_log_path: string
   error_log_path: string
   error_log_path: string
   config_dir: string
   config_dir: string
+  config_path: string
   log_dir_white_list: string[]
   log_dir_white_list: string[]
   pid_path: string
   pid_path: string
+  test_config_cmd: string
   reload_cmd: string
   reload_cmd: string
   restart_cmd: string
   restart_cmd: string
 }
 }
@@ -63,6 +68,8 @@ export interface NginxSettings {
 export interface NodeSettings {
 export interface NodeSettings {
   name: string
   name: string
   secret: string
   secret: string
+  skip_installation: boolean
+  demo: boolean
   icp_number: string
   icp_number: string
   public_security_number: string
   public_security_number: string
 }
 }

+ 1 - 1
app/src/components/Chart/UsageProgressLine.vue

@@ -2,7 +2,7 @@
 import { computed } from 'vue'
 import { computed } from 'vue'
 
 
 const props = withDefaults(defineProps<{
 const props = withDefaults(defineProps<{
-  percent: number
+  percent?: number
 }>(), {
 }>(), {
   percent: 0,
   percent: 0,
 })
 })

+ 1 - 0
app/src/constants/errors/middleware.ts

@@ -1,4 +1,5 @@
 export default {
 export default {
   40000: () => $gettext('Invalid request format'),
   40000: () => $gettext('Invalid request format'),
   40001: () => $gettext('Decryption failed'),
   40001: () => $gettext('Decryption failed'),
+  40002: () => $gettext('Form parse failed'),
 }
 }

+ 6 - 0
app/src/constants/errors/system.ts

@@ -1,4 +1,10 @@
 export default {
 export default {
   40301: () => $gettext('Nginx UI already installed'),
   40301: () => $gettext('Nginx UI already installed'),
   40302: () => $gettext('Installation is not allowed after 10 minutes of system startup'),
   40302: () => $gettext('Installation is not allowed after 10 minutes of system startup'),
+  40303: () => $gettext('SSL certificate path is required when HTTPS is enabled'),
+  40304: () => $gettext('SSL key path is required when HTTPS is enabled'),
+  40305: () => $gettext('SSL certificate file not found'),
+  40306: () => $gettext('SSL key file not found'),
+  40307: () => $gettext('SSL certificate file must be under Nginx configuration directory: {0}'),
+  40308: () => $gettext('SSL key file must be under Nginx configuration directory: {0}'),
 }
 }

+ 122 - 55
app/src/language/ar/app.po

@@ -49,9 +49,9 @@ msgstr "إجراء"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -132,6 +132,10 @@ msgstr "رمز API"
 msgid "API Type"
 msgid "API Type"
 msgstr "رمز API"
 msgstr "رمز API"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -198,7 +202,7 @@ msgstr "هل أنت متأكد أنك تريد استرداد هذا العنص
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "هل أنت متأكد أنك تريد إزالة هذا التوجيه؟"
 msgstr "هل أنت متأكد أنك تريد إزالة هذا التوجيه؟"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "هل أنت متأكد أنك تريد إزالة هذا العنصر؟"
 msgstr "هل أنت متأكد أنك تريد إزالة هذا العنصر؟"
 
 
@@ -223,7 +227,7 @@ msgstr "محاولات"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "محاولات"
 msgstr "محاولات"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "مصادقة"
 msgstr "مصادقة"
 
 
@@ -308,7 +312,6 @@ msgid "Base information"
 msgstr "المعلومات الأساسية"
 msgstr "المعلومات الأساسية"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -349,7 +352,7 @@ msgstr "بناء مع"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "مجلد سلطة التصديق"
 msgstr "مجلد سلطة التصديق"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "مجلد سلطة التصديق"
 msgstr "مجلد سلطة التصديق"
 
 
@@ -382,7 +385,7 @@ msgstr "مستخدم النظام الأولي"
 msgid "Category"
 msgid "Category"
 msgstr "فئة"
 msgstr "فئة"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr "شهادة"
 msgstr "شهادة"
 
 
@@ -400,7 +403,7 @@ msgstr "خطأ في مزامنة الشهادة"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "خطأ في مزامنة الشهادة"
 msgstr "خطأ في مزامنة الشهادة"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "الفاصل الزمني لتجديد الشهادة"
 msgstr "الفاصل الزمني لتجديد الشهادة"
 
 
@@ -410,7 +413,7 @@ msgid "Certificate renewed successfully"
 msgstr "تم المسح بنجاح"
 msgstr "تم المسح بنجاح"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "صفر"
 msgstr[0] "صفر"
@@ -438,7 +441,7 @@ msgstr "طريقة التحدي"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "تغيير الشهادة"
 msgstr "تغيير الشهادة"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "صفر"
 msgstr[0] "صفر"
@@ -515,7 +518,7 @@ msgstr "أمر"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "تعليقات"
 msgstr "تعليقات"
 
 
@@ -657,7 +660,7 @@ msgstr "الإصدار الحالي"
 msgid "Custom"
 msgid "Custom"
 msgstr "مخصص"
 msgstr "مخصص"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -672,7 +675,7 @@ msgstr "لوحة المعلومات"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "قاعدة البيانات (اختياري، الافتراضي: قاعدة البيانات)"
 msgstr "قاعدة البيانات (اختياري، الافتراضي: قاعدة البيانات)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "أيام"
 msgstr "أيام"
 
 
@@ -745,6 +748,10 @@ msgstr "حذف البث: ‎%{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "تم الحذف بنجاح"
 msgstr "تم الحذف بنجاح"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "نشر"
 msgstr "نشر"
@@ -835,6 +842,9 @@ msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -978,6 +988,7 @@ msgid "Edit Stream"
 msgstr "تعديل البث"
 msgstr "تعديل البث"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "بريد إلكتروني"
 msgstr "بريد إلكتروني"
 
 
@@ -1002,6 +1013,11 @@ msgstr "فشل تفعيل التجديد التلقائي لـ %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "فشل التفعيل"
 msgstr "فشل التفعيل"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "تفعيل TOTP"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 msgstr "خطأ في تفعيل الموقع البعيد"
@@ -1050,7 +1066,10 @@ msgstr "تفعيل TOTP"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1409,12 +1428,12 @@ msgid ""
 "process."
 "process."
 msgstr "اتبع التعليمات في الحوار لإكمال عملية تسجيل مفتاح المرور."
 msgstr "اتبع التعليمات في الحوار لإكمال عملية تسجيل مفتاح المرور."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "للمستخدمين الصين: /https://mirror.ghproxy.com"
 msgstr "للمستخدمين الصين: /https://mirror.ghproxy.com"
 
 
@@ -1466,7 +1485,7 @@ msgstr "خطأ في الحصول على معلومات الإصدار"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "جارٍ الحصول على الشهادة، يرجى الانتظار..."
 msgstr "جارٍ الحصول على الشهادة، يرجى الانتظار..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "وكيل Github"
 msgstr "وكيل Github"
 
 
@@ -1482,23 +1501,25 @@ msgstr "إخفاء"
 msgid "Home"
 msgid "Home"
 msgstr "الصفحة الرئيسية"
 msgstr "الصفحة الرئيسية"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "منفذ تحدي HTTP"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "مضيف HTTP"
 msgstr "مضيف HTTP"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "منفذ HTTP"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "منفذ تحدي HTTP"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1556,6 +1577,10 @@ msgstr "أدخل الرمز من التطبيق:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "أدخل رمز الاسترداد:"
 msgstr "أدخل رمز الاسترداد:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "تثبيت"
 msgstr "تثبيت"
@@ -1659,7 +1684,7 @@ msgstr "تم إصدار الشهادة بنجاح"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "المُصدر: %{issuer}"
 msgstr "المُصدر: %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "سر JWT"
 msgstr "سر JWT"
 
 
@@ -1765,7 +1790,7 @@ msgstr "تم تسجيل الدخول بنجاح"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "تم تسجيل الخروج بنجاح"
 msgstr "تم تسجيل الخروج بنجاح"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "تدوير السجلات"
 msgstr "تدوير السجلات"
 
 
@@ -1917,7 +1942,7 @@ msgstr "تم إصدار نسخة جديدة"
 msgid "Next"
 msgid "Next"
 msgstr "التالي"
 msgstr "التالي"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1964,6 +1989,11 @@ msgstr "خطأ في تحليل تكوين Nginx"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "خطأ في تحليل تكوين Nginx"
 msgstr "خطأ في تحليل تكوين Nginx"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "خطأ في تحليل تكوين Nginx"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
 msgstr "مجلد تكوينات Nginx"
 msgstr "مجلد تكوينات Nginx"
@@ -1984,15 +2014,15 @@ msgstr "Nginx لا يعمل"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "سجل Nginx"
 msgstr "سجل Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "قائمة السماح لمجلد سجلات Nginx"
 msgstr "قائمة السماح لمجلد سجلات Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "مسار PID لـ Nginx"
 msgstr "مسار PID لـ Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "أمر إعادة تحميل Nginx"
 msgstr "أمر إعادة تحميل Nginx"
 
 
@@ -2000,7 +2030,7 @@ msgstr "أمر إعادة تحميل Nginx"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "تم إعادة تحميل Nginx بنجاح"
 msgstr "تم إعادة تحميل Nginx بنجاح"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "أمر إعادة تشغيل Nginx"
 msgstr "أمر إعادة تشغيل Nginx"
 
 
@@ -2008,6 +2038,11 @@ msgstr "أمر إعادة تشغيل Nginx"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "تم إعادة تشغيل Nginx بنجاح"
 msgstr "تم إعادة تشغيل Nginx بنجاح"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "أمر إعادة تشغيل Nginx"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 #, fuzzy
 #, fuzzy
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
@@ -2034,7 +2069,7 @@ msgstr "خطأ في تحليل تكوين Nginx"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2042,11 +2077,16 @@ msgstr "خطأ في تحليل تكوين Nginx"
 msgid "No"
 msgid "No"
 msgstr "لا"
 msgstr "لا"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "اسم العقدة"
+
+#: src/views/preference/NodeSettings.vue:15
 msgid "Node name"
 msgid "Node name"
 msgstr "اسم العقدة"
 msgstr "اسم العقدة"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "سر العقدة"
 msgstr "سر العقدة"
 
 
@@ -2149,7 +2189,7 @@ msgstr "متصل"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "أوبن أي آي"
 msgstr "أوبن أي آي"
 
 
@@ -2186,6 +2226,11 @@ msgstr "الكتابة فوق"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "الكتابة فوق الملف الموجود"
 msgstr "الكتابة فوق الملف الموجود"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "إدارة المواقع"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "عوامل"
 msgstr "عوامل"
@@ -2330,7 +2375,7 @@ msgstr "يرجى إدخال كلمة المرور الخاصة بك!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "يرجى إدخال اسم المستخدم الخاص بك!"
 msgstr "يرجى إدخال اسم المستخدم الخاص بك!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2352,13 +2397,18 @@ msgstr "يرجى اختيار عقدة واحدة على الأقل!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "يرجى اختيار عقدة واحدة على الأقل للترقية"
 msgstr "يرجى اختيار عقدة واحدة على الأقل للترقية"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "منفذ HTTP"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "ما قبل الإصدار"
 msgstr "ما قبل الإصدار"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "تفضيل"
 msgstr "تفضيل"
 
 
@@ -2386,7 +2436,7 @@ msgstr "مزود"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "وكيل"
 msgstr "وكيل"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2428,7 +2478,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "خوادم الأسماء التكرارية"
 msgstr "خوادم الأسماء التكرارية"
 
 
@@ -2654,7 +2704,7 @@ msgstr "أصول RP"
 msgid "RPID"
 msgid "RPID"
 msgstr "معرّف الجهاز عن بُعد"
 msgstr "معرّف الجهاز عن بُعد"
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "وضع التشغيل"
 msgstr "وضع التشغيل"
 
 
@@ -2669,7 +2719,7 @@ msgstr "يعمل"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2729,7 +2779,7 @@ msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "تم الحفظ بنجاح"
 msgstr "تم الحفظ بنجاح"
 
 
@@ -2776,6 +2826,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "إرسال"
 msgstr "إرسال"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "معلومات الخادم"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "معلومات الخادم"
 msgstr "معلومات الخادم"
@@ -2793,7 +2848,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "لم يتم العثور على الملف"
 msgstr "لم يتم العثور على الملف"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2880,6 +2935,11 @@ msgstr "مجلد"
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr "مجلد"
 msgstr "مجلد"
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "تثبيت"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "محتوى شهادة SSL"
 msgstr "محتوى شهادة SSL"
@@ -2893,9 +2953,15 @@ msgid "SSL Certificate Key Path"
 msgstr "مسار مفتاح شهادة SSL"
 msgstr "مسار مفتاح شهادة SSL"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "مسار شهادة SSL"
 msgstr "مسار شهادة SSL"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "مسار مفتاح شهادة SSL"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr "تسجيل الدخول عبر SSO"
 msgstr "تسجيل الدخول عبر SSO"
@@ -3061,7 +3127,7 @@ msgstr "مستخدم النظام الأولي"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "نظام"
 msgstr "نظام"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "تم إعادة تشغيل Nginx بنجاح"
 msgstr "تم إعادة تشغيل Nginx بنجاح"
@@ -3071,11 +3137,12 @@ msgstr "تم إعادة تشغيل Nginx بنجاح"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "غير موجود"
 msgstr "غير موجود"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "محطة"
 msgstr "محطة"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "أمر البدء في المحطة الطرفية"
 msgstr "أمر البدء في المحطة الطرفية"
 
 
@@ -3092,7 +3159,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "لا يمكن أن يحتوي اسم الملف على الأحرف التالية: %{c}"
 msgstr "لا يمكن أن يحتوي اسم الملف على الأحرف التالية: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
@@ -3121,7 +3188,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "يجب أن يحتوي اسم النموذج على حروف وأرقام ويونيكود وشرطات ونقاط فقط."
 msgstr "يجب أن يحتوي اسم النموذج على حروف وأرقام ويونيكود وشرطات ونقاط فقط."
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
@@ -3143,7 +3210,7 @@ msgstr "المسار موجود، لكن الملف ليس شهادة"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "المسار موجود، لكن الملف ليس مفتاحًا خاصًا"
 msgstr "المسار موجود، لكن الملف ليس مفتاحًا خاصًا"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
@@ -3169,8 +3236,8 @@ msgstr ""
 "اسم الخادم في التكوين الحالي يجب أن يكون اسم النطاق الذي تحتاج للحصول على "
 "اسم الخادم في التكوين الحالي يجب أن يكون اسم النطاق الذي تحتاج للحصول على "
 "الشهادة، ويدعم عدة نطاقات."
 "الشهادة، ويدعم عدة نطاقات."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "عنوان URL غير صالح"
 msgstr "عنوان URL غير صالح"
 
 
@@ -3539,7 +3606,7 @@ msgid "Writing certificate to disk"
 msgstr "كتابة الشهادة إلى القرص"
 msgstr "كتابة الشهادة إلى القرص"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 117 - 52
app/src/language/de_DE/app.po

@@ -46,9 +46,9 @@ msgstr "Aktion"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -134,6 +134,11 @@ msgstr "API-Token"
 msgid "API Type"
 msgid "API Type"
 msgstr "API-Typ"
 msgstr "API-Typ"
 
 
+#: src/views/preference/Preference.vue:162
+#, fuzzy
+msgid "App"
+msgstr "Anwenden"
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr "Anwenden"
 msgstr "Anwenden"
@@ -209,7 +214,7 @@ msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
@@ -236,7 +241,7 @@ msgstr "Versuche"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "Versuche"
 msgstr "Versuche"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "Authentifizierung"
 msgstr "Authentifizierung"
 
 
@@ -322,7 +327,6 @@ msgid "Base information"
 msgstr "Basisinformationen"
 msgstr "Basisinformationen"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 #, fuzzy
 #, fuzzy
@@ -366,7 +370,7 @@ msgstr "Build mit"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "CA-Verzeichnis"
 msgstr "CA-Verzeichnis"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "CA-Verzeichnis"
 msgstr "CA-Verzeichnis"
 
 
@@ -399,7 +403,7 @@ msgstr "System-Startbenutzer"
 msgid "Category"
 msgid "Category"
 msgstr "Kategorie"
 msgstr "Kategorie"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr "Zertifikat"
 msgstr "Zertifikat"
 
 
@@ -417,7 +421,7 @@ msgstr "Zertifikat ist gültig"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Certificate has expired"
 msgstr "Certificate has expired"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 #, fuzzy
 #, fuzzy
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Zeitifikat ist gültig"
 msgstr "Zeitifikat ist gültig"
@@ -428,7 +432,7 @@ msgid "Certificate renewed successfully"
 msgstr "Erfolgreich deaktiviert"
 msgstr "Erfolgreich deaktiviert"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 #, fuzzy
 #, fuzzy
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
@@ -456,7 +460,7 @@ msgstr "Challenge-Methode"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
@@ -533,7 +537,7 @@ msgstr "Kommando"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Kom"
 msgstr "Kom"
 
 
@@ -680,7 +684,7 @@ msgstr "Aktuelle Version"
 msgid "Custom"
 msgid "Custom"
 msgstr "Benutzerdefiniert"
 msgstr "Benutzerdefiniert"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -696,7 +700,7 @@ msgstr "Übersicht"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Datenbank (Optional, Standard: database)"
 msgstr "Datenbank (Optional, Standard: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "Tage"
 msgstr "Tage"
 
 
@@ -772,6 +776,10 @@ msgstr "Stream löschen: %{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Erfolgreich deaktiviert"
 msgstr "Erfolgreich deaktiviert"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Ausführen"
 msgstr "Ausführen"
@@ -865,6 +873,9 @@ msgstr "Speichern erfolgreich"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -1018,6 +1029,7 @@ msgid "Edit Stream"
 msgstr "Seite bearbeiten"
 msgstr "Seite bearbeiten"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 #, fuzzy
 #, fuzzy
 msgid "Email"
 msgid "Email"
 msgstr "Email (*)"
 msgstr "Email (*)"
@@ -1045,6 +1057,11 @@ msgstr "Aktiviere automatische Verlängerung fehlgeschlagen für %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Aktivieren fehlgeschlagen"
 msgstr "Aktivieren fehlgeschlagen"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Aktiviere TLS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1096,7 +1113,10 @@ msgstr "Aktiviere TLS"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1456,12 +1476,12 @@ msgstr ""
 "Folge den Anweisungen im Dialog, um den Passkey-Registrierungsprozess "
 "Folge den Anweisungen im Dialog, um den Passkey-Registrierungsprozess "
 "abzuschließen."
 "abzuschließen."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr "Für chinesische Benutzer"
 msgstr "Für chinesische Benutzer"
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Für chinesische Benutzer: https://mirror.ghproxy.com/"
 msgstr "Für chinesische Benutzer: https://mirror.ghproxy.com/"
 
 
@@ -1517,7 +1537,7 @@ msgstr "Basisinformationen"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Hole das Zertifikat, bitte warten..."
 msgstr "Hole das Zertifikat, bitte warten..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr ""
 msgstr ""
 
 
@@ -1533,23 +1553,23 @@ msgstr "Verstecken"
 msgid "Home"
 msgid "Home"
 msgstr "Startseite"
 msgstr "Startseite"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
+#: src/views/preference/ServerSettings.vue:18
+msgid "Host"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/Preference.vue:174
+msgid "HTTP"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr "ICP-Nummer"
 msgstr "ICP-Nummer"
 
 
@@ -1611,6 +1631,10 @@ msgstr "Füge den Code aus der App ein:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Füge den Wiederherstellungscode ein:"
 msgstr "Füge den Wiederherstellungscode ein:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Installieren"
 msgstr "Installieren"
@@ -1717,7 +1741,7 @@ msgstr "Aktivieren erfolgreich"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "Aussteller: %{issuer}"
 msgstr "Aussteller: %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt-Secret"
 msgstr "Jwt-Secret"
 
 
@@ -1832,7 +1856,7 @@ msgstr "Login erfolgreich"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Logout erfolgreich"
 msgstr "Logout erfolgreich"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Logrotate"
 msgstr "Logrotate"
 
 
@@ -1995,7 +2019,7 @@ msgstr "Neue Version veröffentlicht"
 msgid "Next"
 msgid "Next"
 msgstr "Nächster"
 msgstr "Nächster"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr ""
 msgstr ""
 
 
@@ -2043,6 +2067,11 @@ msgstr "Name der Konfiguration"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Name der Konfiguration"
 msgstr "Name der Konfiguration"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Name der Konfiguration"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2064,15 +2093,15 @@ msgstr "Nginx läuft nicht"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Nginx-Log"
 msgstr "Nginx-Log"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Nginx-Log-Verzeichnis-Whitelist"
 msgstr "Nginx-Log-Verzeichnis-Whitelist"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Nginx PID-Pfad"
 msgstr "Nginx PID-Pfad"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Befehl zum Neuladen von Nginx"
 msgstr "Befehl zum Neuladen von Nginx"
 
 
@@ -2081,7 +2110,7 @@ msgstr "Befehl zum Neuladen von Nginx"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Beffehl zum Neustarten von Nginx"
 msgstr "Beffehl zum Neustarten von Nginx"
 
 
@@ -2090,6 +2119,11 @@ msgstr "Beffehl zum Neustarten von Nginx"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Beffehl zum Neustarten von Nginx"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 #, fuzzy
 #, fuzzy
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
@@ -2116,7 +2150,7 @@ msgstr "Name der Konfiguration"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2124,12 +2158,17 @@ msgstr "Name der Konfiguration"
 msgid "No"
 msgid "No"
 msgstr "Nein"
 msgstr "Nein"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Benuztername"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Benuztername"
 msgstr "Benuztername"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Node-Secret"
 msgstr "Node-Secret"
 
 
@@ -2237,7 +2276,7 @@ msgstr ""
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr ""
 msgstr ""
 
 
@@ -2275,6 +2314,11 @@ msgstr "Überschreiben"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "Zu überschreibende Datei existiert"
 msgstr "Zu überschreibende Datei existiert"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Verwalte Seiten"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Parameter"
 msgstr "Parameter"
@@ -2429,7 +2473,7 @@ msgstr "Bitte gib dein Passwort ein!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Bitte gib deinen Benutzernamen ein!"
 msgstr "Bitte gib deinen Benutzernamen ein!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2453,13 +2497,17 @@ msgstr "Bitte wähle mindestens einen Knoten aus!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "Bitte wähle mindestens einen Knoten zum Upgrade aus"
 msgstr "Bitte wähle mindestens einen Knoten zum Upgrade aus"
 
 
+#: src/views/preference/ServerSettings.vue:21
+msgid "Port"
+msgstr ""
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "Vorabversion"
 msgstr "Vorabversion"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "Einstellungen"
 msgstr "Einstellungen"
 
 
@@ -2488,7 +2536,7 @@ msgstr "Anbieter"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr "Öffentliche Sicherheitsnummer"
 msgstr "Öffentliche Sicherheitsnummer"
 
 
@@ -2531,7 +2579,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "Rekursive Nameserver"
 msgstr "Rekursive Nameserver"
 
 
@@ -2777,7 +2825,7 @@ msgstr "RP-Ursprünge"
 msgid "RPID"
 msgid "RPID"
 msgstr "RPID"
 msgstr "RPID"
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 #, fuzzy
 #, fuzzy
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Erweiterter Modus"
 msgstr "Erweiterter Modus"
@@ -2793,7 +2841,7 @@ msgstr "Arbeite"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2855,7 +2903,7 @@ msgstr "Speichern erfolgreich"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 #, fuzzy
 #, fuzzy
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -2904,6 +2952,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Senden"
 msgstr "Senden"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Serverinformationen"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Serverinformationen"
 msgstr "Serverinformationen"
@@ -2921,7 +2974,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "File Not Found"
 msgstr "File Not Found"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -3007,6 +3060,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Installieren"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -3023,10 +3081,16 @@ msgid "SSL Certificate Key Path"
 msgstr "Zertifikatsstatus"
 msgstr "Zertifikatsstatus"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Zertifikatsstatus"
 msgstr "Zertifikatsstatus"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Zertifikatsstatus"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 #, fuzzy
 #, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
@@ -3199,7 +3263,7 @@ msgstr "System-Startbenutzer"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "System"
 msgstr "System"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -3209,11 +3273,12 @@ msgstr "Speichern erfolgreich"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "File Not Found"
 msgstr "File Not Found"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "Terminal-Startbefehl"
 msgstr "Terminal-Startbefehl"
 
 
@@ -3231,7 +3296,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Der Dateiname darf die folgenden Zeichen nicht enthalten: %{c}"
 msgstr "Der Dateiname darf die folgenden Zeichen nicht enthalten: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3261,7 +3326,7 @@ msgstr ""
 "Der Modellname sollte nur Buchstaben, Unicode, Zahlen, Bindestriche, "
 "Der Modellname sollte nur Buchstaben, Unicode, Zahlen, Bindestriche, "
 "Doppelpunkte und Punkte enthalten."
 "Doppelpunkte und Punkte enthalten."
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3283,7 +3348,7 @@ msgstr "Zertifikatsstatus"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "Der Pfad existiert, aber die Datei ist kein privater Schlüssel"
 msgstr "Der Pfad existiert, aber die Datei ist kein privater Schlüssel"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3310,8 +3375,8 @@ msgstr ""
 "Beachten: Der server_name in der aktuellen Konfiguration muss der Domainname "
 "Beachten: Der server_name in der aktuellen Konfiguration muss der Domainname "
 "sein, für den das Zertifikat benötigt wird."
 "sein, für den das Zertifikat benötigt wird."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "Die URL ist ungültig"
 msgstr "Die URL ist ungültig"
 
 
@@ -3689,7 +3754,7 @@ msgid "Writing certificate to disk"
 msgstr "Schreibe Zertifikat auf die Festplatte"
 msgstr "Schreibe Zertifikat auf die Festplatte"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 115 - 52
app/src/language/en/app.po

@@ -47,9 +47,9 @@ msgstr "Action"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -134,6 +134,10 @@ msgstr ""
 msgid "API Type"
 msgid "API Type"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -208,7 +212,7 @@ msgstr "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
@@ -234,7 +238,7 @@ msgstr ""
 msgid "Attempts"
 msgid "Attempts"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr ""
 msgstr ""
 
 
@@ -320,7 +324,6 @@ msgid "Base information"
 msgstr "Base information"
 msgstr "Base information"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 #, fuzzy
 #, fuzzy
@@ -363,7 +366,7 @@ msgstr "Build with"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
@@ -394,7 +397,7 @@ msgstr ""
 msgid "Category"
 msgid "Category"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr ""
 msgstr ""
 
 
@@ -412,7 +415,7 @@ msgstr "Certificate is valid"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Certificate has expired"
 msgstr "Certificate has expired"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 #, fuzzy
 #, fuzzy
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
@@ -423,7 +426,7 @@ msgid "Certificate renewed successfully"
 msgstr "Disabled successfully"
 msgstr "Disabled successfully"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 #, fuzzy
 #, fuzzy
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
@@ -451,7 +454,7 @@ msgstr ""
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
@@ -528,7 +531,7 @@ msgstr "Comments"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Comments"
 msgstr "Comments"
 
 
@@ -673,7 +676,7 @@ msgstr ""
 msgid "Custom"
 msgid "Custom"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -688,7 +691,7 @@ msgstr "Dashboard"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Database (Optional, default: database)"
 msgstr "Database (Optional, default: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr ""
 msgstr ""
 
 
@@ -764,6 +767,10 @@ msgstr ""
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Disabled successfully"
 msgstr "Disabled successfully"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr ""
 msgstr ""
@@ -857,6 +864,9 @@ msgstr "Saved successfully"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -1005,6 +1015,7 @@ msgid "Edit Stream"
 msgstr "Edit Site"
 msgstr "Edit Site"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 #, fuzzy
 #, fuzzy
 msgid "Email"
 msgid "Email"
 msgstr "Email (*)"
 msgstr "Email (*)"
@@ -1032,6 +1043,11 @@ msgstr "Enable auto-renewal failed for %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Enable failed"
 msgstr "Enable failed"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Enable TLS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1083,7 +1099,10 @@ msgstr "Enable TLS"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1446,12 +1465,12 @@ msgid ""
 "process."
 "process."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr ""
 msgstr ""
 
 
@@ -1506,7 +1525,7 @@ msgstr "Base information"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Getting the certificate, please wait..."
 msgstr "Getting the certificate, please wait..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr ""
 msgstr ""
 
 
@@ -1522,23 +1541,23 @@ msgstr ""
 msgid "Home"
 msgid "Home"
 msgstr "Home"
 msgstr "Home"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
+#: src/views/preference/ServerSettings.vue:18
+msgid "Host"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/Preference.vue:174
+msgid "HTTP"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1593,6 +1612,10 @@ msgstr ""
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Install"
 msgstr "Install"
@@ -1703,7 +1726,7 @@ msgstr "Enabled successfully"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr ""
 msgstr ""
 
 
@@ -1819,7 +1842,7 @@ msgstr "Login successful"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Logout successful"
 msgstr "Logout successful"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr ""
 msgstr ""
 
 
@@ -1975,7 +1998,7 @@ msgstr ""
 msgid "Next"
 msgid "Next"
 msgstr "Next"
 msgstr "Next"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr ""
 msgstr ""
 
 
@@ -2023,6 +2046,11 @@ msgstr "Configuration Name"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Configuration Name"
 msgstr "Configuration Name"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Configuration Name"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2044,16 +2072,16 @@ msgstr ""
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 #, fuzzy
 #, fuzzy
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Configuration Name"
 msgstr "Configuration Name"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr ""
 msgstr ""
 
 
@@ -2062,7 +2090,7 @@ msgstr ""
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr ""
 msgstr ""
 
 
@@ -2071,6 +2099,10 @@ msgstr ""
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
+#: src/views/preference/NginxSettings.vue:33
+msgid "Nginx Test Config Command"
+msgstr ""
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2096,7 +2128,7 @@ msgstr "Configuration Name"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2104,12 +2136,17 @@ msgstr "Configuration Name"
 msgid "No"
 msgid "No"
 msgstr "No"
 msgstr "No"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Username"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Username"
 msgstr "Username"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 #, fuzzy
 #, fuzzy
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Username"
 msgstr "Username"
@@ -2213,7 +2250,7 @@ msgstr ""
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr ""
 msgstr ""
 
 
@@ -2250,6 +2287,11 @@ msgstr ""
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Manage Sites"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Params"
 msgstr "Params"
@@ -2390,7 +2432,7 @@ msgstr "Please input your password!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Please input your username!"
 msgstr "Please input your username!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2412,13 +2454,17 @@ msgstr "Please input your username!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:21
+msgid "Port"
+msgstr ""
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr ""
 msgstr ""
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr ""
 msgstr ""
 
 
@@ -2447,7 +2493,7 @@ msgstr ""
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2490,7 +2536,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr ""
 msgstr ""
 
 
@@ -2736,7 +2782,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 #, fuzzy
 #, fuzzy
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Advance Mode"
 msgstr "Advance Mode"
@@ -2752,7 +2798,7 @@ msgstr ""
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2814,7 +2860,7 @@ msgstr "Saved successfully"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 #, fuzzy
 #, fuzzy
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -2863,6 +2909,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Send"
 msgstr "Send"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Server Info"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Server Info"
 msgstr "Server Info"
@@ -2880,7 +2931,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "File Not Found"
 msgstr "File Not Found"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2966,6 +3017,11 @@ msgstr "Directive"
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr "Directive"
 msgstr "Directive"
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Install"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -2982,10 +3038,16 @@ msgid "SSL Certificate Key Path"
 msgstr "Certificate Status"
 msgstr "Certificate Status"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Certificate Status"
 msgstr "Certificate Status"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Certificate Status"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 #, fuzzy
 #, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
@@ -3159,7 +3221,7 @@ msgstr ""
 msgid "System Restore"
 msgid "System Restore"
 msgstr ""
 msgstr ""
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -3169,11 +3231,12 @@ msgstr "Saved successfully"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "File Not Found"
 msgstr "File Not Found"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr ""
 msgstr ""
 
 
@@ -3191,7 +3254,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "The filename cannot contain the following characters: %{c}"
 msgstr "The filename cannot contain the following characters: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3218,7 +3281,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3239,7 +3302,7 @@ msgstr "Certificate Status"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "Certificate Status"
 msgstr "Certificate Status"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3261,8 +3324,8 @@ msgstr ""
 "Note: The server_name in the current configuration must be the domain name "
 "Note: The server_name in the current configuration must be the domain name "
 "you need to get the certificate."
 "you need to get the certificate."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr ""
 msgstr ""
 
 
@@ -3619,7 +3682,7 @@ msgid "Writing certificate to disk"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 122 - 55
app/src/language/es/app.po

@@ -52,9 +52,9 @@ msgstr "Acción"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -137,6 +137,10 @@ msgstr "Token de la API"
 msgid "API Type"
 msgid "API Type"
 msgstr "Token de la API"
 msgstr "Token de la API"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -203,7 +207,7 @@ msgstr "¿Está seguro de que quiere recuperar este elemento?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "¿Está seguro de que quiere borrar esta directiva?"
 msgstr "¿Está seguro de que quiere borrar esta directiva?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "¿Está seguro de que desea eliminar este elemento?"
 msgstr "¿Está seguro de que desea eliminar este elemento?"
 
 
@@ -228,7 +232,7 @@ msgstr "Intentos"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "Intentos"
 msgstr "Intentos"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "Autenticación"
 msgstr "Autenticación"
 
 
@@ -313,7 +317,6 @@ msgid "Base information"
 msgstr "Información general"
 msgstr "Información general"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -356,7 +359,7 @@ msgstr "Desarrollado con"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "Dir CA"
 msgstr "Dir CA"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "Directorio CA"
 msgstr "Directorio CA"
 
 
@@ -389,7 +392,7 @@ msgstr "Usuario inicial del sistema"
 msgid "Category"
 msgid "Category"
 msgstr "Categoría"
 msgstr "Categoría"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr "Certificado"
 msgstr "Certificado"
 
 
@@ -407,7 +410,7 @@ msgstr "Error de Certificado de Sincronización"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "El certificado expiró"
 msgstr "El certificado expiró"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Intervalo de renovación del Certificado"
 msgstr "Intervalo de renovación del Certificado"
 
 
@@ -417,7 +420,7 @@ msgid "Certificate renewed successfully"
 msgstr "Limpiado exitoso"
 msgstr "Limpiado exitoso"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Estado del Certificado"
 msgstr[0] "Estado del Certificado"
@@ -441,7 +444,7 @@ msgstr "Método de desafío"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Cambiar Certificado"
 msgstr "Cambiar Certificado"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "Cambiar Certificado"
 msgstr[0] "Cambiar Certificado"
@@ -514,7 +517,7 @@ msgstr "Comando"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Comentarios"
 msgstr "Comentarios"
 
 
@@ -656,7 +659,7 @@ msgstr "Versión actual"
 msgid "Custom"
 msgid "Custom"
 msgstr "Personalizado"
 msgstr "Personalizado"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -673,7 +676,7 @@ msgstr "Panel"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Base de datos (Opcional, default: database)"
 msgstr "Base de datos (Opcional, default: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "Días"
 msgstr "Días"
 
 
@@ -746,6 +749,10 @@ msgstr "Eliminar stream: %{site_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Borrado exitoso"
 msgstr "Borrado exitoso"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Desplegar"
 msgstr "Desplegar"
@@ -836,6 +843,9 @@ msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -978,6 +988,7 @@ msgid "Edit Stream"
 msgstr "Editar Transmisión"
 msgstr "Editar Transmisión"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "Correo"
 msgstr "Correo"
 
 
@@ -1002,6 +1013,11 @@ msgstr "No se pudo activar la renovación automática por %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Falló la habilitación"
 msgstr "Falló la habilitación"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Habilitar TLS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1053,7 +1069,10 @@ msgstr "Habilitar TLS"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1410,12 +1429,12 @@ msgstr ""
 "Siga las instrucciones del cuadro de diálogo para completar el proceso de "
 "Siga las instrucciones del cuadro de diálogo para completar el proceso de "
 "registro de la llave de acceso."
 "registro de la llave de acceso."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Para usuario chino: https://mirror.ghproxy.com/"
 msgstr "Para usuario chino: https://mirror.ghproxy.com/"
 
 
@@ -1467,7 +1486,7 @@ msgstr "Obtener error de información de versión"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Obteniendo el certificado, por favor espere..."
 msgstr "Obteniendo el certificado, por favor espere..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Proxy Github"
 msgstr "Proxy Github"
 
 
@@ -1483,23 +1502,25 @@ msgstr "Ocultar"
 msgid "Home"
 msgid "Home"
 msgstr "Inicio"
 msgstr "Inicio"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "Puerto de desafío HTTP"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "Host HTTP"
 msgstr "Host HTTP"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "Puerto HTTP"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "Puerto de desafío HTTP"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1559,6 +1580,10 @@ msgstr "Ingrese el código de la aplicación:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Ingrese el código de recuperación:"
 msgstr "Ingrese el código de recuperación:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Instalar"
 msgstr "Instalar"
@@ -1659,7 +1684,7 @@ msgstr "Certificado emitido con éxito"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "Emisor: %{issuer}"
 msgstr "Emisor: %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Secreto Jwt"
 msgstr "Secreto Jwt"
 
 
@@ -1767,7 +1792,7 @@ msgstr "Acceso exitoso"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Cierre de sesión exitoso"
 msgstr "Cierre de sesión exitoso"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Rotación de logs"
 msgstr "Rotación de logs"
 
 
@@ -1920,7 +1945,7 @@ msgstr "Se liberó una nueva versión"
 msgid "Next"
 msgid "Next"
 msgstr "Siguiente"
 msgstr "Siguiente"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1967,6 +1992,11 @@ msgstr "Error de análisis de configuración de Nginx"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Error de análisis de configuración de Nginx"
 msgstr "Error de análisis de configuración de Nginx"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Error de análisis de configuración de Nginx"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -1988,16 +2018,16 @@ msgstr "Nginx no se está ejecutando"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Registro Nginx"
 msgstr "Registro Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Lista blanca de directorios de registro de Nginx"
 msgstr "Lista blanca de directorios de registro de Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Ruta de registro de errores de Nginx"
 msgstr "Ruta de registro de errores de Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Comando de recarga de Nginx"
 msgstr "Comando de recarga de Nginx"
 
 
@@ -2005,7 +2035,7 @@ msgstr "Comando de recarga de Nginx"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx recargado con éxito"
 msgstr "Nginx recargado con éxito"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 #, fuzzy
 #, fuzzy
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Comando de inicio de terminal"
 msgstr "Comando de inicio de terminal"
@@ -2014,6 +2044,11 @@ msgstr "Comando de inicio de terminal"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx reiniciado con éxito"
 msgstr "Nginx reiniciado con éxito"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Comando de inicio de terminal"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 #, fuzzy
 #, fuzzy
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
@@ -2040,7 +2075,7 @@ msgstr "Error de análisis de configuración de Nginx"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2048,12 +2083,17 @@ msgstr "Error de análisis de configuración de Nginx"
 msgid "No"
 msgid "No"
 msgstr "No"
 msgstr "No"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Nuevo nombre"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Nuevo nombre"
 msgstr "Nuevo nombre"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Secreto del nodo"
 msgstr "Secreto del nodo"
 
 
@@ -2157,7 +2197,7 @@ msgstr "En línea"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
@@ -2194,6 +2234,11 @@ msgstr "Sobrescribir"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "Sobrescribir archivo existente"
 msgstr "Sobrescribir archivo existente"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Administrar sitios"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Parámetros"
 msgstr "Parámetros"
@@ -2348,7 +2393,7 @@ msgstr "¡Por favor ingrese su contraseña!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "¡Por favor ingrese su nombre de usuario!"
 msgstr "¡Por favor ingrese su nombre de usuario!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2372,13 +2417,18 @@ msgstr "¡Seleccione al menos un nodo!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "Seleccione al menos un nodo para actualizar"
 msgstr "Seleccione al menos un nodo para actualizar"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "Puerto HTTP"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "Prelanzamiento"
 msgstr "Prelanzamiento"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "Configuración"
 msgstr "Configuración"
 
 
@@ -2407,7 +2457,7 @@ msgstr "Proveedor"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy de la API"
 msgstr "Proxy de la API"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2449,7 +2499,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "Servidores de nombres recursivos"
 msgstr "Servidores de nombres recursivos"
 
 
@@ -2682,7 +2732,7 @@ msgstr "Orígenes RP"
 msgid "RPID"
 msgid "RPID"
 msgstr "RPID"
 msgstr "RPID"
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Modo de ejecución"
 msgstr "Modo de ejecución"
 
 
@@ -2697,7 +2747,7 @@ msgstr "Corriendo"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2759,7 +2809,7 @@ msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Guardado con éxito"
 msgstr "Guardado con éxito"
 
 
@@ -2808,6 +2858,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Enviado"
 msgstr "Enviado"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Información del servidor"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Información del servidor"
 msgstr "Información del servidor"
@@ -2825,7 +2880,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Archivo no Encontrado"
 msgstr "Archivo no Encontrado"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2910,6 +2965,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Instalar"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Contenido de certificado SSL"
 msgstr "Contenido de certificado SSL"
@@ -2923,9 +2983,15 @@ msgid "SSL Certificate Key Path"
 msgstr "Ruta de la llave del certificado SSL"
 msgstr "Ruta de la llave del certificado SSL"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Ruta del certificado SSL"
 msgstr "Ruta del certificado SSL"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Ruta de la llave del certificado SSL"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr "Acceso SSO"
 msgstr "Acceso SSO"
@@ -3092,7 +3158,7 @@ msgstr "Usuario inicial del sistema"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "Sistema"
 msgstr "Sistema"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx reiniciado con éxito"
 msgstr "Nginx reiniciado con éxito"
@@ -3102,11 +3168,12 @@ msgstr "Nginx reiniciado con éxito"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "Archivo no Encontrado"
 msgstr "Archivo no Encontrado"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "Comando de inicio de terminal"
 msgstr "Comando de inicio de terminal"
 
 
@@ -3125,7 +3192,7 @@ msgid "The filename cannot contain the following characters: %{c}"
 msgstr ""
 msgstr ""
 "El nombre del archivo no puede contener los siguientes caracteres: %{c}"
 "El nombre del archivo no puede contener los siguientes caracteres: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
@@ -3156,7 +3223,7 @@ msgstr ""
 "El nombre del modelo solo debe contener letras, unicode, números, guiones, "
 "El nombre del modelo solo debe contener letras, unicode, números, guiones, "
 "rayas y puntos."
 "rayas y puntos."
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
@@ -3178,7 +3245,7 @@ msgstr "La ruta existe, pero el archivo no es un certificado"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "La ruta existe, pero el archivo no es una clave privada"
 msgstr "La ruta existe, pero el archivo no es una clave privada"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
@@ -3205,8 +3272,8 @@ msgstr ""
 "El server_name en la configuración actual debe ser el nombre de dominio que "
 "El server_name en la configuración actual debe ser el nombre de dominio que "
 "necesita para obtener el certificado, soporta dominios múltiples."
 "necesita para obtener el certificado, soporta dominios múltiples."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "La URL es inválida"
 msgstr "La URL es inválida"
 
 
@@ -3584,7 +3651,7 @@ msgid "Writing certificate to disk"
 msgstr "Escribir certificado a disco"
 msgstr "Escribir certificado a disco"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 123 - 55
app/src/language/fr_FR/app.po

@@ -51,9 +51,9 @@ msgstr "Action"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -140,6 +140,11 @@ msgstr "Jeton d'API"
 msgid "API Type"
 msgid "API Type"
 msgstr "Jeton d'API"
 msgstr "Jeton d'API"
 
 
+#: src/views/preference/Preference.vue:162
+#, fuzzy
+msgid "App"
+msgstr "Appliquer"
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr "Appliquer"
 msgstr "Appliquer"
@@ -213,7 +218,7 @@ msgstr "Voulez-vous vraiment supprimer cette directive ?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Voulez-vous vraiment supprimer cette directive ?"
 msgstr "Voulez-vous vraiment supprimer cette directive ?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Voulez-vous vraiment supprimer cette directive ?"
 msgstr "Voulez-vous vraiment supprimer cette directive ?"
@@ -239,7 +244,7 @@ msgstr "Tenter de corriger"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "Tentatives"
 msgstr "Tentatives"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 #, fuzzy
 #, fuzzy
 msgid "Auth"
 msgid "Auth"
 msgstr "Autheur"
 msgstr "Autheur"
@@ -325,7 +330,6 @@ msgid "Base information"
 msgstr "Information générale"
 msgstr "Information générale"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -369,7 +373,7 @@ msgstr "Build avec"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
@@ -401,7 +405,7 @@ msgstr "Impossible de retirer l'utilisateur initial"
 msgid "Category"
 msgid "Category"
 msgstr "Catégorie"
 msgstr "Catégorie"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 #, fuzzy
 #, fuzzy
 msgid "Cert"
 msgid "Cert"
 msgstr "Auto Cert"
 msgstr "Auto Cert"
@@ -420,7 +424,7 @@ msgstr "Changer de certificat"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Le certificat a expiré"
 msgstr "Le certificat a expiré"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 #, fuzzy
 #, fuzzy
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Le certificat est valide"
 msgstr "Le certificat est valide"
@@ -431,7 +435,7 @@ msgid "Certificate renewed successfully"
 msgstr "Désactivé avec succès"
 msgstr "Désactivé avec succès"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 #, fuzzy
 #, fuzzy
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
@@ -458,7 +462,7 @@ msgstr "Méthode de challenge"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
@@ -539,7 +543,7 @@ msgstr "Commentaires"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Commentaires"
 msgstr "Commentaires"
 
 
@@ -684,7 +688,7 @@ msgstr "Version actuelle"
 msgid "Custom"
 msgid "Custom"
 msgstr "Custom"
 msgstr "Custom"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
@@ -701,7 +705,7 @@ msgstr "Dashboard"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Base de données (Facultatif, par défaut : database)"
 msgstr "Base de données (Facultatif, par défaut : database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "Jours"
 msgstr "Jours"
 
 
@@ -778,6 +782,10 @@ msgstr "Supprimer le site : %{site_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Désactivé avec succès"
 msgstr "Désactivé avec succès"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Déployer"
 msgstr "Déployer"
@@ -872,6 +880,9 @@ msgstr "Dupliqué avec succès"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -1022,6 +1033,7 @@ msgid "Edit Stream"
 msgstr "Modifier le site"
 msgstr "Modifier le site"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 #, fuzzy
 #, fuzzy
 msgid "Email"
 msgid "Email"
 msgstr "Email (*)"
 msgstr "Email (*)"
@@ -1049,6 +1061,11 @@ msgstr "Échec de l'activation du renouvellement automatique pour %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Échec de l'activation"
 msgstr "Échec de l'activation"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Activer TLS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1100,7 +1117,10 @@ msgstr "Activer TLS"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1470,12 +1490,12 @@ msgstr ""
 "Suivez les instructions dans la boîte de dialogue pour compléter le "
 "Suivez les instructions dans la boîte de dialogue pour compléter le "
 "processus d'enregistrement de la clé d'accès."
 "processus d'enregistrement de la clé d'accès."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr "Pour utilisateur chinois"
 msgstr "Pour utilisateur chinois"
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 #, fuzzy
 #, fuzzy
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Utilisateur chinois : https://mirror.ghproxy.com/"
 msgstr "Utilisateur chinois : https://mirror.ghproxy.com/"
@@ -1527,7 +1547,7 @@ msgstr "Erreur d'obtention des informations sur la version"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Obtention du certificat, veuillez patienter..."
 msgstr "Obtention du certificat, veuillez patienter..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Proxy Github"
 msgstr "Proxy Github"
 
 
@@ -1543,23 +1563,25 @@ msgstr "Cacher"
 msgid "Home"
 msgid "Home"
 msgstr "Menu principal"
 msgstr "Menu principal"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "Port de challenge HTTP"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "Host HTTP"
 msgstr "Host HTTP"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "Port HTTP"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "Port de challenge HTTP"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1624,6 +1646,10 @@ msgstr "Entrez le code de l'application :"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Entrez le code de récupération :"
 msgstr "Entrez le code de récupération :"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Installer"
 msgstr "Installer"
@@ -1727,7 +1753,7 @@ msgstr "Certificat délivré avec succès"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "Auteur : %{issuer}"
 msgstr "Auteur : %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Secret Jwt"
 msgstr "Secret Jwt"
 
 
@@ -1847,7 +1873,7 @@ msgstr "Connexion réussie"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Déconnexion réussie"
 msgstr "Déconnexion réussie"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr ""
 msgstr ""
 
 
@@ -2001,7 +2027,7 @@ msgstr "Nouvelle version publiée"
 msgid "Next"
 msgid "Next"
 msgstr "Suivant"
 msgstr "Suivant"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 #, fuzzy
 #, fuzzy
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Journal Nginx"
 msgstr "Journal Nginx"
@@ -2049,6 +2075,11 @@ msgstr "Erreur d'analyse de configuration Nginx"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Erreur d'analyse de configuration Nginx"
 msgstr "Erreur d'analyse de configuration Nginx"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Erreur d'analyse de configuration Nginx"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2070,17 +2101,17 @@ msgstr ""
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Journal Nginx"
 msgstr "Journal Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 #, fuzzy
 #, fuzzy
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Erreur d'analyse de configuration Nginx"
 msgstr "Erreur d'analyse de configuration Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Chemin du journal des erreurs Nginx"
 msgstr "Chemin du journal des erreurs Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Commande de démarrage du terminal"
 msgstr "Commande de démarrage du terminal"
@@ -2089,7 +2120,7 @@ msgstr "Commande de démarrage du terminal"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx a été rechargé avec succès"
 msgstr "Nginx a été rechargé avec succès"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 #, fuzzy
 #, fuzzy
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Commande de démarrage du terminal"
 msgstr "Commande de démarrage du terminal"
@@ -2098,6 +2129,11 @@ msgstr "Commande de démarrage du terminal"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx a redémarré avec succès"
 msgstr "Nginx a redémarré avec succès"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Commande de démarrage du terminal"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2123,7 +2159,7 @@ msgstr "Erreur d'analyse de configuration Nginx"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2131,12 +2167,17 @@ msgstr "Erreur d'analyse de configuration Nginx"
 msgid "No"
 msgid "No"
 msgstr "Non"
 msgstr "Non"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Nom d'utilisateur"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Nom d'utilisateur"
 msgstr "Nom d'utilisateur"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 #, fuzzy
 #, fuzzy
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Secret Jwt"
 msgstr "Secret Jwt"
@@ -2238,7 +2279,7 @@ msgstr ""
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
@@ -2274,6 +2315,11 @@ msgstr ""
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Gérer les sites"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Paramètres"
 msgstr "Paramètres"
@@ -2420,7 +2466,7 @@ msgstr "Veuillez saisir votre mot de passe !"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Veuillez saisir votre nom d'utilisateur !"
 msgstr "Veuillez saisir votre nom d'utilisateur !"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2442,13 +2488,18 @@ msgstr "Veuillez renseigner un nom de fichier"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "Port HTTP"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr ""
 msgstr ""
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "Préférence"
 msgstr "Préférence"
 
 
@@ -2478,7 +2529,7 @@ msgstr "Fournisseur"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy d'API"
 msgstr "Proxy d'API"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2522,7 +2573,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr ""
 msgstr ""
 
 
@@ -2769,7 +2820,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Mode d'exécution"
 msgstr "Mode d'exécution"
 
 
@@ -2784,7 +2835,7 @@ msgstr "En cours d'éxécution"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2846,7 +2897,7 @@ msgstr "Dupliqué avec succès"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Sauvegarde réussie"
 msgstr "Sauvegarde réussie"
 
 
@@ -2893,6 +2944,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Envoyer"
 msgstr "Envoyer"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Informations sur le serveur"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Informations sur le serveur"
 msgstr "Informations sur le serveur"
@@ -2910,7 +2966,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Fichier introuvable"
 msgstr "Fichier introuvable"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2997,6 +3053,11 @@ msgstr "Directive"
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr "Directive"
 msgstr "Directive"
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Installer"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -3012,9 +3073,15 @@ msgid "SSL Certificate Key Path"
 msgstr "Chemin de la clé du certificat SSL"
 msgstr "Chemin de la clé du certificat SSL"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Chemin du certificat SSL"
 msgstr "Chemin du certificat SSL"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Chemin de la clé du certificat SSL"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 #, fuzzy
 #, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
@@ -3191,7 +3258,7 @@ msgstr ""
 msgid "System Restore"
 msgid "System Restore"
 msgstr "Système"
 msgstr "Système"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx a redémarré avec succès"
 msgstr "Nginx a redémarré avec succès"
@@ -3201,11 +3268,12 @@ msgstr "Nginx a redémarré avec succès"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "Fichier introuvable"
 msgstr "Fichier introuvable"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "Commande de démarrage du terminal"
 msgstr "Commande de démarrage du terminal"
 
 
@@ -3223,7 +3291,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Le nom de fichier ne peut pas contenir les caractères suivants : %{c}"
 msgstr "Le nom de fichier ne peut pas contenir les caractères suivants : %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3250,7 +3318,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3271,7 +3339,7 @@ msgstr "Chemin de la clé du certificat SSL"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "Chemin de la clé du certificat SSL"
 msgstr "Chemin de la clé du certificat SSL"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3294,8 +3362,8 @@ msgstr ""
 "dont vous avez besoin pour obtenir le certificat, prendre en charge "
 "dont vous avez besoin pour obtenir le certificat, prendre en charge "
 "plusieurs domaines."
 "plusieurs domaines."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr ""
 msgstr ""
 
 
@@ -3655,7 +3723,7 @@ msgid "Writing certificate to disk"
 msgstr "Écriture du certificat sur le disque"
 msgstr "Écriture du certificat sur le disque"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 122 - 55
app/src/language/ko_KR/app.po

@@ -50,9 +50,9 @@ msgstr "작업"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -133,6 +133,10 @@ msgstr "API 토큰"
 msgid "API Type"
 msgid "API Type"
 msgstr "API 토큰"
 msgstr "API 토큰"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -200,7 +204,7 @@ msgstr "이 항목을 복구하시겠습니까?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "이 지시문을 정말로 제거하시겠습니까?"
 msgstr "이 지시문을 정말로 제거하시겠습니까?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "이 항목을 제거하시겠습니까?"
 msgstr "이 항목을 제거하시겠습니까?"
 
 
@@ -225,7 +229,7 @@ msgstr "시도 횟수"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "시도 횟수"
 msgstr "시도 횟수"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "인증"
 msgstr "인증"
 
 
@@ -310,7 +314,6 @@ msgid "Base information"
 msgstr "기본 정보"
 msgstr "기본 정보"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -351,7 +354,7 @@ msgstr "빌드 환경"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "CA 디렉토리"
 msgstr "CA 디렉토리"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "CA 디렉토리"
 msgstr "CA 디렉토리"
 
 
@@ -383,7 +386,7 @@ msgstr ""
 msgid "Category"
 msgid "Category"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 #, fuzzy
 #, fuzzy
 msgid "Cert"
 msgid "Cert"
 msgstr "자동 인증"
 msgstr "자동 인증"
@@ -402,7 +405,7 @@ msgstr "인증서 갱신 오류"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "인증서가 만료되었습니다"
 msgstr "인증서가 만료되었습니다"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "인증서 갱신 간격"
 msgstr "인증서 갱신 간격"
 
 
@@ -412,7 +415,7 @@ msgid "Certificate renewed successfully"
 msgstr "성공적으로 제거됨"
 msgstr "성공적으로 제거됨"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "인증서 상태"
 msgstr[0] "인증서 상태"
@@ -436,7 +439,7 @@ msgstr "인증 방법"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "인증서 변경"
 msgstr "인증서 변경"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
@@ -511,7 +514,7 @@ msgstr "명령어"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "댓글"
 msgstr "댓글"
 
 
@@ -654,7 +657,7 @@ msgstr "현재 버전"
 msgid "Custom"
 msgid "Custom"
 msgstr "사용자 정의"
 msgstr "사용자 정의"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -669,7 +672,7 @@ msgstr "대시보드"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "데이터베이스 (선택사항, 기본값: database)"
 msgstr "데이터베이스 (선택사항, 기본값: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr ""
 msgstr ""
 
 
@@ -744,6 +747,10 @@ msgstr "스트림 삭제: %{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "성공적으로 삭제됨"
 msgstr "성공적으로 삭제됨"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "배포"
 msgstr "배포"
@@ -836,6 +843,9 @@ msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -974,6 +984,7 @@ msgid "Edit Stream"
 msgstr "스트림 편집"
 msgstr "스트림 편집"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 #, fuzzy
 #, fuzzy
 msgid "Email"
 msgid "Email"
 msgstr "이메일 (*)"
 msgstr "이메일 (*)"
@@ -1000,6 +1011,11 @@ msgstr "%{name}에 대한 자동 갱신 활성화 실패"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "활성화 실패"
 msgstr "활성화 실패"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "TLS 활성화"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1051,7 +1067,10 @@ msgstr "TLS 활성화"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1408,12 +1427,12 @@ msgid ""
 "process."
 "process."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "중국 사용자를 위해: https://mirror.ghproxy.com/"
 msgstr "중국 사용자를 위해: https://mirror.ghproxy.com/"
 
 
@@ -1467,7 +1486,7 @@ msgstr "릴리스 정보 가져오기 오류"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "인증서를 가져오는 중입니다. 잠시 기다려 주세요..."
 msgstr "인증서를 가져오는 중입니다. 잠시 기다려 주세요..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Github 프록시"
 msgstr "Github 프록시"
 
 
@@ -1483,23 +1502,25 @@ msgstr ""
 msgid "Home"
 msgid "Home"
 msgstr "홈"
 msgstr "홈"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "HTTP 검증 포트"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "HTTP 호스트"
 msgstr "HTTP 호스트"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "HTTP 포트"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "HTTP 검증 포트"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1554,6 +1575,10 @@ msgstr ""
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "설치"
 msgstr "설치"
@@ -1658,7 +1683,7 @@ msgstr "성공적으로 활성화됨"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt 토큰"
 msgstr "Jwt 토큰"
 
 
@@ -1773,7 +1798,7 @@ msgstr "로그인 성공"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "로그아웃 성공"
 msgstr "로그아웃 성공"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "로그관리"
 msgstr "로그관리"
 
 
@@ -1934,7 +1959,7 @@ msgstr "새 버전 출시"
 msgid "Next"
 msgid "Next"
 msgstr "다음"
 msgstr "다음"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1982,6 +2007,11 @@ msgstr "Nginx 구성 오류름"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx 구성 오류름"
 msgstr "Nginx 구성 오류름"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Nginx 구성 오류름"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2003,16 +2033,16 @@ msgstr ""
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Nginx 로그"
 msgstr "Nginx 로그"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Nginx 오류 로그 경로"
 msgstr "Nginx 오류 로그 경로"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr ""
 msgstr ""
 
 
@@ -2021,7 +2051,7 @@ msgstr ""
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx가 성공적으로 리로드됨"
 msgstr "Nginx가 성공적으로 리로드됨"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 #, fuzzy
 #, fuzzy
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "터미널 시작 명령"
 msgstr "터미널 시작 명령"
@@ -2031,6 +2061,11 @@ msgstr "터미널 시작 명령"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx가 성공적으로 재시작됨"
 msgstr "Nginx가 성공적으로 재시작됨"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "터미널 시작 명령"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2056,7 +2091,7 @@ msgstr "Nginx 구성 오류름"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2064,12 +2099,17 @@ msgstr "Nginx 구성 오류름"
 msgid "No"
 msgid "No"
 msgstr "아니요"
 msgstr "아니요"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "이름 변경"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "이름 변경"
 msgstr "이름 변경"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "노드 시크릿"
 msgstr "노드 시크릿"
 
 
@@ -2171,7 +2211,7 @@ msgstr "온라인"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "오픈AI"
 msgstr "오픈AI"
 
 
@@ -2208,6 +2248,11 @@ msgstr "덮어쓰기"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "기존 파일 덮어쓰기"
 msgstr "기존 파일 덮어쓰기"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "사이트 관리"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "파라미터"
 msgstr "파라미터"
@@ -2350,7 +2395,7 @@ msgstr "비밀번호를 입력해주세요!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "사용자 이름을 입력해주세요!"
 msgstr "사용자 이름을 입력해주세요!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2373,13 +2418,18 @@ msgstr "적어도 하나의 노드를 선택해주세요!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "적어도 하나의 노드를 선택해주세요!"
 msgstr "적어도 하나의 노드를 선택해주세요!"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "HTTP 포트"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "사전 출시"
 msgstr "사전 출시"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "환경설정"
 msgstr "환경설정"
 
 
@@ -2409,7 +2459,7 @@ msgstr "제공자"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "API 프록시"
 msgstr "API 프록시"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2451,7 +2501,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr ""
 msgstr ""
 
 
@@ -2699,7 +2749,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 #, fuzzy
 #, fuzzy
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "실행 모드"
 msgstr "실행 모드"
@@ -2715,7 +2765,7 @@ msgstr "실행 중"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2777,7 +2827,7 @@ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 #, fuzzy
 #, fuzzy
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "성공적으로 저장됨"
 msgstr "성공적으로 저장됨"
@@ -2824,6 +2874,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "보내기"
 msgstr "보내기"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "서버 정보"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "서버 정보"
 msgstr "서버 정보"
@@ -2841,7 +2896,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "파일을 찾을 수 없음"
 msgstr "파일을 찾을 수 없음"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2925,6 +2980,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "설치"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -2940,10 +3000,16 @@ msgid "SSL Certificate Key Path"
 msgstr "SSL 인증서 키 경로"
 msgstr "SSL 인증서 키 경로"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL 인증서 경로"
 msgstr "SSL 인증서 경로"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "SSL 인증서 키 경로"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 #, fuzzy
 #, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
@@ -3117,7 +3183,7 @@ msgstr ""
 msgid "System Restore"
 msgid "System Restore"
 msgstr "시스템"
 msgstr "시스템"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx가 성공적으로 재시작됨"
 msgstr "Nginx가 성공적으로 재시작됨"
@@ -3127,11 +3193,12 @@ msgstr "Nginx가 성공적으로 재시작됨"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "파일을 찾을 수 없음"
 msgstr "파일을 찾을 수 없음"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "터미널"
 msgstr "터미널"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "터미널 시작 명령"
 msgstr "터미널 시작 명령"
 
 
@@ -3149,7 +3216,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "파일 이름은 다음 문자를 포함할 수 없습니다: %{c}"
 msgstr "파일 이름은 다음 문자를 포함할 수 없습니다: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3175,7 +3242,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3195,7 +3262,7 @@ msgstr "Certificate Status"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "경로는 존재하지만 파일은 개인 키가 아닙니다"
 msgstr "경로는 존재하지만 파일은 개인 키가 아닙니다"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3217,8 +3284,8 @@ msgstr ""
 "Note: The server_name in the current configuration must be the domain name "
 "Note: The server_name in the current configuration must be the domain name "
 "you need to get the certificate."
 "you need to get the certificate."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 #, fuzzy
 #, fuzzy
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "유효한 URL이 아닙니다"
 msgstr "유효한 URL이 아닙니다"
@@ -3582,7 +3649,7 @@ msgid "Writing certificate to disk"
 msgstr "인증서를 디스크에 쓰기"
 msgstr "인증서를 디스크에 쓰기"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 107 - 51
app/src/language/messages.pot

@@ -41,9 +41,9 @@ msgstr ""
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -125,6 +125,10 @@ msgstr ""
 msgid "API Type"
 msgid "API Type"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -187,7 +191,7 @@ msgstr ""
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr ""
 msgstr ""
 
 
@@ -211,7 +215,7 @@ msgstr ""
 msgid "Attempts"
 msgid "Attempts"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr ""
 msgstr ""
 
 
@@ -295,7 +299,6 @@ msgid "Base information"
 msgstr ""
 msgstr ""
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -335,7 +338,7 @@ msgstr ""
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
@@ -366,7 +369,7 @@ msgstr ""
 msgid "Category"
 msgid "Category"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr ""
 msgstr ""
 
 
@@ -382,7 +385,7 @@ msgstr ""
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr ""
 msgstr ""
 
 
@@ -391,7 +394,7 @@ msgid "Certificate renewed successfully"
 msgstr ""
 msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] ""
 msgstr[0] ""
@@ -415,7 +418,7 @@ msgstr ""
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] ""
 msgstr[0] ""
@@ -485,7 +488,7 @@ msgstr ""
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr ""
 msgstr ""
 
 
@@ -623,7 +626,7 @@ msgstr ""
 msgid "Custom"
 msgid "Custom"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid "Customize the name of local node to be displayed in the environment indicator."
 msgid "Customize the name of local node to be displayed in the environment indicator."
 msgstr ""
 msgstr ""
 
 
@@ -638,7 +641,7 @@ msgstr ""
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr ""
 msgstr ""
 
 
@@ -706,6 +709,10 @@ msgstr ""
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr ""
 msgstr ""
@@ -793,6 +800,9 @@ msgstr ""
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62
 #: src/views/site/site_list/columns.tsx:62
@@ -930,6 +940,7 @@ msgid "Edit Stream"
 msgstr ""
 msgstr ""
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr ""
 msgstr ""
 
 
@@ -954,6 +965,10 @@ msgstr ""
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:29
+msgid "Enable HTTPS"
+msgstr ""
+
 #: src/components/Notification/notifications.ts:53
 #: src/components/Notification/notifications.ts:53
 #: src/language/constants.ts:54
 #: src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -998,7 +1013,10 @@ msgstr ""
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1324,12 +1342,12 @@ msgstr ""
 msgid "Follow the instructions in the dialog to complete the passkey registration process."
 msgid "Follow the instructions in the dialog to complete the passkey registration process."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr ""
 msgstr ""
 
 
@@ -1379,7 +1397,7 @@ msgstr ""
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr ""
 msgstr ""
 
 
@@ -1395,23 +1413,23 @@ msgstr ""
 msgid "Home"
 msgid "Home"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
+#: src/views/preference/ServerSettings.vue:18
+msgid "Host"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/Preference.vue:174
+msgid "HTTP"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1462,6 +1480,10 @@ msgstr ""
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8
 #: src/routes/modules/auth.ts:8
 #: src/views/other/Install.vue:185
 #: src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
@@ -1556,7 +1578,7 @@ msgstr ""
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr ""
 msgstr ""
 
 
@@ -1662,7 +1684,7 @@ msgstr ""
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr ""
 msgstr ""
 
 
@@ -1804,7 +1826,7 @@ msgstr ""
 msgid "Next"
 msgid "Next"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr ""
 msgstr ""
 
 
@@ -1849,6 +1871,10 @@ msgstr ""
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NginxSettings.vue:18
+msgid "Nginx Configuration Path"
+msgstr ""
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
 msgstr ""
 msgstr ""
@@ -1870,15 +1896,15 @@ msgstr ""
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr ""
 msgstr ""
 
 
@@ -1886,7 +1912,7 @@ msgstr ""
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr ""
 msgstr ""
 
 
@@ -1894,6 +1920,10 @@ msgstr ""
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NginxSettings.vue:33
+msgid "Nginx Test Config Command"
+msgstr ""
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -1915,7 +1945,7 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -1923,11 +1953,15 @@ msgstr ""
 msgid "No"
 msgid "No"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+msgid "Node"
+msgstr ""
+
+#: src/views/preference/NodeSettings.vue:15
 msgid "Node name"
 msgid "Node name"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr ""
 msgstr ""
 
 
@@ -2022,7 +2056,7 @@ msgstr ""
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr ""
 msgstr ""
 
 
@@ -2059,6 +2093,10 @@ msgstr ""
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/AppSettings.vue:13
+msgid "Page Size"
+msgstr ""
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr ""
 msgstr ""
@@ -2185,7 +2223,7 @@ msgid "Please input your username!"
 msgstr ""
 msgstr ""
 
 
 #: src/views/other/Install.vue:110
 #: src/views/other/Install.vue:110
-#: src/views/system/Backup/SystemRestore.vue:12
+#: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2205,6 +2243,10 @@ msgstr ""
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:21
+msgid "Port"
+msgstr ""
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220
 #: src/views/environment/BatchUpgrader.vue:220
 #: src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:194
@@ -2213,7 +2255,7 @@ msgid "Pre-release"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/preference.ts:10
 #: src/routes/modules/preference.ts:10
-#: src/views/preference/Preference.vue:141
+#: src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr ""
 msgstr ""
 
 
@@ -2241,7 +2283,7 @@ msgstr ""
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2280,7 +2322,7 @@ msgstr ""
 msgid "Recovery codes are used to access your account when you lose access to your 2FA device. Each code can only be used once."
 msgid "Recovery codes are used to access your account when you lose access to your 2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr ""
 msgstr ""
 
 
@@ -2497,7 +2539,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr ""
 msgstr ""
 
 
@@ -2512,7 +2554,7 @@ msgstr ""
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2568,7 +2610,7 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr ""
 msgstr ""
 
 
@@ -2615,6 +2657,10 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/Preference.vue:156
+msgid "Server"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr ""
 msgstr ""
@@ -2631,7 +2677,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
 msgstr ""
 msgstr ""
 
 
@@ -2704,6 +2750,10 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+msgid "Skip Installation"
+msgstr ""
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr ""
 msgstr ""
@@ -2717,9 +2767,14 @@ msgid "SSL Certificate Key Path"
 msgstr ""
 msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:40
+msgid "SSL Key Path"
+msgstr ""
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr ""
 msgstr ""
@@ -2879,7 +2934,7 @@ msgid "System Restore"
 msgstr ""
 msgstr ""
 
 
 #: src/views/other/Install.vue:106
 #: src/views/other/Install.vue:106
-#: src/views/system/Backup/SystemRestore.vue:8
+#: src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr ""
 msgstr ""
 
 
@@ -2888,11 +2943,12 @@ msgid "Task not found"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/terminal.ts:10
 #: src/routes/modules/terminal.ts:10
+#: src/views/preference/Preference.vue:180
 #: src/views/terminal/Terminal.vue:114
 #: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr ""
 msgstr ""
 
 
@@ -2904,7 +2960,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid "The ICP Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgid "The ICP Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
@@ -2924,7 +2980,7 @@ msgstr ""
 msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid "The node name should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgid "The node name should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
@@ -2940,7 +2996,7 @@ msgstr ""
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid "The Public Security Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgid "The Public Security Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
@@ -2952,8 +3008,8 @@ msgstr ""
 msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
 msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr ""
 msgstr ""
 
 
@@ -3263,7 +3319,7 @@ msgid "Writing certificate to disk"
 msgstr ""
 msgstr ""
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 123 - 55
app/src/language/ru_RU/app.po

@@ -52,9 +52,9 @@ msgstr "Действие"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -134,6 +134,11 @@ msgstr "API токен"
 msgid "API Type"
 msgid "API Type"
 msgstr "Тип API"
 msgstr "Тип API"
 
 
+#: src/views/preference/Preference.vue:162
+#, fuzzy
+msgid "App"
+msgstr "Применить"
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr "Применить"
 msgstr "Применить"
@@ -197,7 +202,7 @@ msgstr "Вы уверены, что хотите восстановить это
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Вы уверены, что хотите удалить эту директиву?"
 msgstr "Вы уверены, что хотите удалить эту директиву?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 
 
@@ -221,7 +226,7 @@ msgstr "Попытка исправить"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "Попытки"
 msgstr "Попытки"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "Авторизация"
 msgstr "Авторизация"
 
 
@@ -306,7 +311,6 @@ msgid "Base information"
 msgstr "Основная информация"
 msgstr "Основная информация"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -347,7 +351,7 @@ msgstr "Собрать с"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "Директория корневого сертификата"
 msgstr "Директория корневого сертификата"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
@@ -378,7 +382,7 @@ msgstr "Невозможно удалить начального пользов
 msgid "Category"
 msgid "Category"
 msgstr "Категория"
 msgstr "Категория"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 #, fuzzy
 #, fuzzy
 msgid "Cert"
 msgid "Cert"
 msgstr "Авто Сертификат"
 msgstr "Авто Сертификат"
@@ -395,7 +399,7 @@ msgstr "Ошибка декодирования сертификата"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Ошибка анализа сертификата"
 msgstr "Ошибка анализа сертификата"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Интервал обновления сертификата"
 msgstr "Интервал обновления сертификата"
 
 
@@ -404,7 +408,7 @@ msgid "Certificate renewed successfully"
 msgstr "Сертификат успешно продлен"
 msgstr "Сертификат успешно продлен"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Статус сертификата"
 msgstr[0] "Статус сертификата"
@@ -428,7 +432,7 @@ msgstr "Метод Challenge"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Изменить сертификат"
 msgstr "Изменить сертификат"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "Сертификат изменен"
 msgstr[0] "Сертификат изменен"
@@ -501,7 +505,7 @@ msgstr "Команда"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Комментарии"
 msgstr "Комментарии"
 
 
@@ -642,7 +646,7 @@ msgstr "Текущяя версия"
 msgid "Custom"
 msgid "Custom"
 msgstr "Пользовательский"
 msgstr "Пользовательский"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
@@ -658,7 +662,7 @@ msgstr "Доска"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "База данных (Опционально, по умолчанию: database)"
 msgstr "База данных (Опционально, по умолчанию: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "Дни"
 msgstr "Дни"
 
 
@@ -730,6 +734,10 @@ msgstr "Удалить поток: %{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Удалено успешно"
 msgstr "Удалено успешно"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Развернуть"
 msgstr "Развернуть"
@@ -822,6 +830,9 @@ msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -964,6 +975,7 @@ msgid "Edit Stream"
 msgstr "Редактировать поток"
 msgstr "Редактировать поток"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "Электронная почта"
 msgstr "Электронная почта"
 
 
@@ -988,6 +1000,11 @@ msgstr "Не удалось включить автоматическое про
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Не удалось включить"
 msgstr "Не удалось включить"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Включить TOTP"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1036,7 +1053,10 @@ msgstr "Включить TOTP"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1392,12 +1412,12 @@ msgstr ""
 "Следуйте инструкциям в всплывающем окне, чтобы завершить процесс регистрации "
 "Следуйте инструкциям в всплывающем окне, чтобы завершить процесс регистрации "
 "ключа доступа."
 "ключа доступа."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr "Для китайскоязычных пользователей"
 msgstr "Для китайскоязычных пользователей"
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Для китайских пользователей: https://mirror.ghproxy.com/"
 msgstr "Для китайских пользователей: https://mirror.ghproxy.com/"
 
 
@@ -1449,7 +1469,7 @@ msgstr "Ошибка получения информации о выпуске"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Получение сертификата, пожалуйста, подождите..."
 msgstr "Получение сертификата, пожалуйста, подождите..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Прокси Github"
 msgstr "Прокси Github"
 
 
@@ -1465,23 +1485,25 @@ msgstr "Скрыть"
 msgid "Home"
 msgid "Home"
 msgstr "Главная"
 msgstr "Главная"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "Порт HTTP Challenge"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "Хостинг HTTP"
 msgstr "Хостинг HTTP"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "Порт HTTP"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "Порт HTTP Challenge"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr "ICP номер"
 msgstr "ICP номер"
 
 
@@ -1541,6 +1563,10 @@ msgstr "Введите код из приложения:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Введите код восстановления:"
 msgstr "Введите код восстановления:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Установить"
 msgstr "Установить"
@@ -1639,7 +1665,7 @@ msgstr "Сертификат успешно выдан"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "Издатель: %{issuer}"
 msgstr "Издатель: %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt секрет"
 msgstr "Jwt секрет"
 
 
@@ -1747,7 +1773,7 @@ msgstr "Авторизация успешна"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Выход выполнен успешно"
 msgstr "Выход выполнен успешно"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Прокрутка"
 msgstr "Прокрутка"
 
 
@@ -1899,7 +1925,7 @@ msgstr "Вышла новая версия"
 msgid "Next"
 msgid "Next"
 msgstr "Дальше"
 msgstr "Дальше"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1946,6 +1972,11 @@ msgstr "Ошибка разбора конфигурации Nginx"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Ошибка разбора конфигурации Nginx"
 msgstr "Ошибка разбора конфигурации Nginx"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Ошибка разбора конфигурации Nginx"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -1967,16 +1998,16 @@ msgstr "Nginx не работает"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Журнал"
 msgstr "Журнал"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Белый список директорий для логов Nginx"
 msgstr "Белый список директорий для логов Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Путь для Nginx Error Log"
 msgstr "Путь для Nginx Error Log"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Команда перезагрузки Nginx"
 msgstr "Команда перезагрузки Nginx"
 
 
@@ -1984,7 +2015,7 @@ msgstr "Команда перезагрузки Nginx"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx успешно перезагружен"
 msgstr "Nginx успешно перезагружен"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 #, fuzzy
 #, fuzzy
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Терминальная команда запуска"
 msgstr "Терминальная команда запуска"
@@ -1993,6 +2024,11 @@ msgstr "Терминальная команда запуска"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx успешно перезапущен"
 msgstr "Nginx успешно перезапущен"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Терминальная команда запуска"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2018,7 +2054,7 @@ msgstr "Ошибка разбора конфигурации Nginx"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2026,11 +2062,16 @@ msgstr "Ошибка разбора конфигурации Nginx"
 msgid "No"
 msgid "No"
 msgstr "Нет"
 msgstr "Нет"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Имя узла"
+
+#: src/views/preference/NodeSettings.vue:15
 msgid "Node name"
 msgid "Node name"
 msgstr "Имя узла"
 msgstr "Имя узла"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Секрет узла"
 msgstr "Секрет узла"
 
 
@@ -2133,7 +2174,7 @@ msgstr "Онлайн"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
@@ -2169,6 +2210,11 @@ msgstr "Перезаписать"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "Перезаписать существующий файл"
 msgstr "Перезаписать существующий файл"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Сайты"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Параметры"
 msgstr "Параметры"
@@ -2317,7 +2363,7 @@ msgstr "Введите ваш пароль!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Введите ваше имя пользователя!"
 msgstr "Введите ваше имя пользователя!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2341,13 +2387,18 @@ msgstr "Пожалуйста, выберите хотя бы один узел!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "Пожалуйста, выберите хотя бы один узел"
 msgstr "Пожалуйста, выберите хотя бы один узел"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "Порт HTTP"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "Предварительный выпуск"
 msgstr "Предварительный выпуск"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "Настройки"
 msgstr "Настройки"
 
 
@@ -2375,7 +2426,7 @@ msgstr "Провайдер"
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2419,7 +2470,7 @@ msgstr ""
 "Коды восстановления используются для доступа к аккаунту при утере 2FA-"
 "Коды восстановления используются для доступа к аккаунту при утере 2FA-"
 "устройства. Каждый код можно использовать только один раз."
 "устройства. Каждый код можно использовать только один раз."
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "Рекурсивные DNS"
 msgstr "Рекурсивные DNS"
 
 
@@ -2648,7 +2699,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Режим работы"
 msgstr "Режим работы"
 
 
@@ -2663,7 +2714,7 @@ msgstr "Выполняется"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2723,7 +2774,7 @@ msgstr "Поток %{name} успешно сохранён на %{node}"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Сохранено успешно"
 msgstr "Сохранено успешно"
 
 
@@ -2772,6 +2823,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Отправлено"
 msgstr "Отправлено"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Информация о сервере"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Информация о сервере"
 msgstr "Информация о сервере"
@@ -2788,7 +2844,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Сессия не найдена"
 msgstr "Сессия не найдена"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2873,6 +2929,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Установить"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Содержимое SSL-сертификата"
 msgstr "Содержимое SSL-сертификата"
@@ -2886,9 +2947,15 @@ msgid "SSL Certificate Key Path"
 msgstr "Путь к ключу SSL-сертификата"
 msgstr "Путь к ключу SSL-сертификата"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Путь к SSL сертификату"
 msgstr "Путь к SSL сертификату"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Путь к ключу SSL-сертификата"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr "SSO Вход"
 msgstr "SSO Вход"
@@ -3055,7 +3122,7 @@ msgstr "Первоначальный пользователь системы"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "Система"
 msgstr "Система"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx успешно перезапущен"
 msgstr "Nginx успешно перезапущен"
@@ -3065,11 +3132,12 @@ msgstr "Nginx успешно перезапущен"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "Файл не найден"
 msgstr "Файл не найден"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Терминал"
 msgstr "Терминал"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "Терминальная команда запуска"
 msgstr "Терминальная команда запуска"
 
 
@@ -3087,7 +3155,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Имя файла не может содержать такой символ: %{c}"
 msgstr "Имя файла не может содержать такой символ: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
@@ -3118,7 +3186,7 @@ msgstr ""
 "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "точки."
 "точки."
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
@@ -3140,7 +3208,7 @@ msgstr "Путь существует, но файл не является се
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "Путь существует, но файл не является приватным ключом"
 msgstr "Путь существует, но файл не является приватным ключом"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
@@ -3167,8 +3235,8 @@ msgstr ""
 "server_name в текущей конфигурации должен быть доменным именем, для которого "
 "server_name в текущей конфигурации должен быть доменным именем, для которого "
 "вам нужно получить сертификат, поддержка нескольких доменов."
 "вам нужно получить сертификат, поддержка нескольких доменов."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "URL недействителен"
 msgstr "URL недействителен"
 
 
@@ -3534,7 +3602,7 @@ msgid "Writing certificate to disk"
 msgstr "Запись сертификата на диск"
 msgstr "Запись сертификата на диск"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 122 - 55
app/src/language/tr_TR/app.po

@@ -48,9 +48,9 @@ msgstr "Eylem"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -132,6 +132,10 @@ msgstr "API Token"
 msgid "API Type"
 msgid "API Type"
 msgstr "API Token"
 msgstr "API Token"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -198,7 +202,7 @@ msgstr "Bu öğeyi kurtarmak istediğinizden emin misiniz?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Bu yönergeyi kaldırmak istediğinizden emin misiniz?"
 msgstr "Bu yönergeyi kaldırmak istediğinizden emin misiniz?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Bu öğeyi kaldırmak istediğinizden emin misiniz?"
 msgstr "Bu öğeyi kaldırmak istediğinizden emin misiniz?"
 
 
@@ -223,7 +227,7 @@ msgstr "Girişimler"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "Girişimler"
 msgstr "Girişimler"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "Kimlik Doğrulama"
 msgstr "Kimlik Doğrulama"
 
 
@@ -308,7 +312,6 @@ msgid "Base information"
 msgstr "Temel bilgiler"
 msgstr "Temel bilgiler"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -349,7 +352,7 @@ msgstr "İle Oluşturuldu"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "CA Dizini"
 msgstr "CA Dizini"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "CADizini"
 msgstr "CADizini"
 
 
@@ -382,7 +385,7 @@ msgstr "Sistem İlk Kullanıcısı"
 msgid "Category"
 msgid "Category"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr ""
 msgstr ""
 
 
@@ -400,7 +403,7 @@ msgstr "Senkronizasyon Sertifikası Hatası"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Senkronizasyon Sertifikası Hatası"
 msgstr "Senkronizasyon Sertifikası Hatası"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Sertifika Yenileme Aralığı"
 msgstr "Sertifika Yenileme Aralığı"
 
 
@@ -410,7 +413,7 @@ msgid "Certificate renewed successfully"
 msgstr "Başarıyla temizlendi"
 msgstr "Başarıyla temizlendi"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Sertifika Durumu"
 msgstr[0] "Sertifika Durumu"
@@ -434,7 +437,7 @@ msgstr "Doğrulama Yöntemi"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Sertifika Değiştir"
 msgstr "Sertifika Değiştir"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "Değişen Sertifika"
 msgstr[0] "Değişen Sertifika"
@@ -507,7 +510,7 @@ msgstr "Komut"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Yorumlar"
 msgstr "Yorumlar"
 
 
@@ -649,7 +652,7 @@ msgstr "Mevcut sürüm"
 msgid "Custom"
 msgid "Custom"
 msgstr "Özelleştirilmiş"
 msgstr "Özelleştirilmiş"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
@@ -665,7 +668,7 @@ msgstr "Kontrol Paneli"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Veritabanı (İsteğe bağlı, varsayılan: database)"
 msgstr "Veritabanı (İsteğe bağlı, varsayılan: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "Günler"
 msgstr "Günler"
 
 
@@ -742,6 +745,10 @@ msgstr "Akışı sil: %{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Başarıyla silindi"
 msgstr "Başarıyla silindi"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Yayınla"
 msgstr "Yayınla"
@@ -842,6 +849,9 @@ msgstr ""
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -984,6 +994,7 @@ msgid "Edit Stream"
 msgstr "Akışı Düzenle"
 msgstr "Akışı Düzenle"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "E-posta"
 msgstr "E-posta"
 
 
@@ -1008,6 +1019,11 @@ msgstr "%{name} için otomatik yenilemeyi etkinleştirme başarısız oldu"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Etkinleştirme başarısız"
 msgstr "Etkinleştirme başarısız"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "TOTP'yi Etkinleştir"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1066,7 +1082,10 @@ msgstr "TOTP'yi Etkinleştir"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1422,12 +1441,12 @@ msgstr ""
 "Geçiş anahtarı kayıt işlemini tamamlamak için iletişim kutusundaki "
 "Geçiş anahtarı kayıt işlemini tamamlamak için iletişim kutusundaki "
 "talimatları izleyin."
 "talimatları izleyin."
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Çinli kullanıcılar için: https://mirror.ghproxy.com/"
 msgstr "Çinli kullanıcılar için: https://mirror.ghproxy.com/"
 
 
@@ -1479,7 +1498,7 @@ msgstr "Sürüm bilgilerini alma hatası"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Sertifika alınıyor, lütfen bekleyin..."
 msgstr "Sertifika alınıyor, lütfen bekleyin..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Github Proxy"
 msgstr "Github Proxy"
 
 
@@ -1495,23 +1514,25 @@ msgstr "Gizle"
 msgid "Home"
 msgid "Home"
 msgstr "Anasayfa"
 msgstr "Anasayfa"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "HTTP Doğrulama Bağlantı Noktası"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "HTTP Sunucusu"
 msgstr "HTTP Sunucusu"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "HTTP bağlantı noktası"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "HTTP Doğrulama Bağlantı Noktası"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1572,6 +1593,10 @@ msgstr "Uygulamadan kodu girin:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "Kurtarma kodunu girin:"
 msgstr "Kurtarma kodunu girin:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Yükle"
 msgstr "Yükle"
@@ -1672,7 +1697,7 @@ msgstr "Sertifika başarıyla yayınlandı"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "Düzenleyen: %{issuer}"
 msgstr "Düzenleyen: %{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt Secret"
 msgstr "Jwt Secret"
 
 
@@ -1779,7 +1804,7 @@ msgstr "Giriş Başarılı"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Çıkış başarılı"
 msgstr "Çıkış başarılı"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Logrotate"
 msgstr "Logrotate"
 
 
@@ -1956,7 +1981,7 @@ msgstr "Yeni sürüm yayınlandı"
 msgid "Next"
 msgid "Next"
 msgstr "Sonraki"
 msgstr "Sonraki"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 #, fuzzy
 #, fuzzy
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
@@ -2006,6 +2031,11 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2031,16 +2061,16 @@ msgstr "Nginx çalışmıyor"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Nginx Günlüğü"
 msgstr "Nginx Günlüğü"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Nginx Hata Günlüğü Yolu"
 msgstr "Nginx Hata Günlüğü Yolu"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr ""
 msgstr ""
 
 
@@ -2049,7 +2079,7 @@ msgstr ""
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx başarıyla yeniden yüklendi"
 msgstr "Nginx başarıyla yeniden yüklendi"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 #, fuzzy
 #, fuzzy
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Terminal Başlatma Komutu"
 msgstr "Terminal Başlatma Komutu"
@@ -2059,6 +2089,11 @@ msgstr "Terminal Başlatma Komutu"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx başarıyla yeniden başlatıldı"
 msgstr "Nginx başarıyla yeniden başlatıldı"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Terminal Başlatma Komutu"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2084,7 +2119,7 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2093,12 +2128,17 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 msgid "No"
 msgid "No"
 msgstr "Hayır"
 msgstr "Hayır"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Yeni Ad"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Yeni Ad"
 msgstr "Yeni Ad"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 #, fuzzy
 #, fuzzy
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "Düğüm Sırrı"
 msgstr "Düğüm Sırrı"
@@ -2215,7 +2255,7 @@ msgstr "Çevrimiçi"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 #, fuzzy
 #, fuzzy
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
@@ -2259,6 +2299,11 @@ msgstr "Üzerine yaz"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "Mevcut dosyanın üzerine yaz"
 msgstr "Mevcut dosyanın üzerine yaz"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Siteleri Yönet"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #, fuzzy
 #, fuzzy
 msgid "Params"
 msgid "Params"
@@ -2430,7 +2475,7 @@ msgstr "Lütfen şifrenizi girin!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Lütfen kullanıcı adınızı girin!"
 msgstr "Lütfen kullanıcı adınızı girin!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2456,6 +2501,11 @@ msgstr "Lütfen en az bir düğüm seçin!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "Lütfen yükseltmek için en az bir düğüm seçin"
 msgstr "Lütfen yükseltmek için en az bir düğüm seçin"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "HTTP bağlantı noktası"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
@@ -2463,7 +2513,7 @@ msgstr "Lütfen yükseltmek için en az bir düğüm seçin"
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "Ön sürüm"
 msgstr "Ön sürüm"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 #, fuzzy
 #, fuzzy
 msgid "Preference"
 msgid "Preference"
 msgstr "Tercih"
 msgstr "Tercih"
@@ -2498,7 +2548,7 @@ msgstr "Hizmet Sağlayıcı"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2545,7 +2595,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 #, fuzzy
 #, fuzzy
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "Yinelemeli Ad Sunucuları"
 msgstr "Yinelemeli Ad Sunucuları"
@@ -2814,7 +2864,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 #, fuzzy
 #, fuzzy
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Çalışma Modu"
 msgstr "Çalışma Modu"
@@ -2831,7 +2881,7 @@ msgstr "Çalışıyor"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2897,7 +2947,7 @@ msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 #, fuzzy
 #, fuzzy
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Başarıyla kaydedin"
 msgstr "Başarıyla kaydedin"
@@ -2951,6 +3001,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Gönder"
 msgstr "Gönder"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Sunucu Bilgisi"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 #, fuzzy
 #, fuzzy
 msgid "Server Info"
 msgid "Server Info"
@@ -2970,7 +3025,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Dosya bulunamadı"
 msgstr "Dosya bulunamadı"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -3064,6 +3119,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Yükle"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
@@ -3080,10 +3140,16 @@ msgid "SSL Certificate Key Path"
 msgstr "SSL Sertifikası Anahtar Yolu"
 msgstr "SSL Sertifikası Anahtar Yolu"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 #, fuzzy
 #, fuzzy
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL Sertifika Yolu"
 msgstr "SSL Sertifika Yolu"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "SSL Sertifikası Anahtar Yolu"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 #, fuzzy
 #, fuzzy
 msgid "SSO Login"
 msgid "SSO Login"
@@ -3269,7 +3335,7 @@ msgstr "Sistem İlk Kullanıcısı"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "Sistem"
 msgstr "Sistem"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx başarıyla yeniden başlatıldı"
 msgstr "Nginx başarıyla yeniden başlatıldı"
@@ -3279,12 +3345,13 @@ msgstr "Nginx başarıyla yeniden başlatıldı"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "Dosya bulunamadı"
 msgstr "Dosya bulunamadı"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 #, fuzzy
 #, fuzzy
 msgid "Terminal"
 msgid "Terminal"
 msgstr "terminal"
 msgstr "terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 #, fuzzy
 #, fuzzy
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "Terminal Başlatma Komutu"
 msgstr "Terminal Başlatma Komutu"
@@ -3305,7 +3372,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Dosya adı aşağıdaki karakterleri içeremez: %{c}"
 msgstr "Dosya adı aşağıdaki karakterleri içeremez: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
@@ -3336,7 +3403,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
@@ -3359,7 +3426,7 @@ msgstr "Yol var, ancak dosya bir sertifika değil"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "Yol var, ancak dosya bir özel anahtar değil"
 msgstr "Yol var, ancak dosya bir özel anahtar değil"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
@@ -3388,8 +3455,8 @@ msgstr ""
 "Geçerli yapılandırmadaki sunucu_adı, sertifika almak için ihtiyacınız olan "
 "Geçerli yapılandırmadaki sunucu_adı, sertifika almak için ihtiyacınız olan "
 "alan adı olmalıdır, birden çok alan adını destekler."
 "alan adı olmalıdır, birden çok alan adını destekler."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 #, fuzzy
 #, fuzzy
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "URL geçersiz"
 msgstr "URL geçersiz"
@@ -3809,7 +3876,7 @@ msgid "Writing certificate to disk"
 msgstr "Sertifikayı diske yazma"
 msgstr "Sertifikayı diske yazma"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #, fuzzy
 #, fuzzy

+ 115 - 52
app/src/language/vi_VN/app.po

@@ -46,9 +46,9 @@ msgstr "Hành động"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -133,6 +133,10 @@ msgstr ""
 msgid "API Type"
 msgid "API Type"
 msgstr "Loại"
 msgstr "Loại"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr ""
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr ""
 msgstr ""
@@ -207,7 +211,7 @@ msgstr "Bạn chắc chắn muốn xoá directive này ?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "Bạn chắc chắn muốn xoá directive này ?"
 msgstr "Bạn chắc chắn muốn xoá directive này ?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "Bạn chắc chắn muốn xoá directive này ?"
 msgstr "Bạn chắc chắn muốn xoá directive này ?"
@@ -233,7 +237,7 @@ msgstr ""
 msgid "Attempts"
 msgid "Attempts"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 #, fuzzy
 #, fuzzy
 msgid "Auth"
 msgid "Auth"
 msgstr "Tác giả"
 msgstr "Tác giả"
@@ -320,7 +324,6 @@ msgid "Base information"
 msgstr "Thông tin"
 msgstr "Thông tin"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 #, fuzzy
 #, fuzzy
@@ -364,7 +367,7 @@ msgstr "Xây dựng với"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
@@ -396,7 +399,7 @@ msgstr ""
 msgid "Category"
 msgid "Category"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 #, fuzzy
 #, fuzzy
 msgid "Cert"
 msgid "Cert"
 msgstr "Tự động ký chứng chỉ SSL"
 msgstr "Tự động ký chứng chỉ SSL"
@@ -415,7 +418,7 @@ msgstr "Gia hạn chứng chỉ SSL thất bại"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "Chứng chỉ đã hết hạn"
 msgstr "Chứng chỉ đã hết hạn"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 #, fuzzy
 #, fuzzy
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "Chứng chỉ SSL hợp lệ"
 msgstr "Chứng chỉ SSL hợp lệ"
@@ -426,7 +429,7 @@ msgid "Certificate renewed successfully"
 msgstr "Đã xóa thành công"
 msgstr "Đã xóa thành công"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 #, fuzzy
 #, fuzzy
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
@@ -454,7 +457,7 @@ msgstr "Phương pháp xác thực"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "Thay đổi chứng chỉ"
 msgstr "Thay đổi chứng chỉ"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
@@ -531,7 +534,7 @@ msgstr "Bình luận"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "Bình luận"
 msgstr "Bình luận"
 
 
@@ -676,7 +679,7 @@ msgstr "Phiên bản hiện tại"
 msgid "Custom"
 msgid "Custom"
 msgstr "Tuỳ chỉnh"
 msgstr "Tuỳ chỉnh"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -691,7 +694,7 @@ msgstr "Bảng điều khiển"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "Tên cơ sở dữ liệu (Tuỳ chọn, Mặc định là: database)"
 msgstr "Tên cơ sở dữ liệu (Tuỳ chọn, Mặc định là: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr ""
 msgstr ""
 
 
@@ -768,6 +771,10 @@ msgstr "Xoá trang web: %{site_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "Đã xoá thành công"
 msgstr "Đã xoá thành công"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "Triển khai"
 msgstr "Triển khai"
@@ -861,6 +868,9 @@ msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -1009,6 +1019,7 @@ msgid "Edit Stream"
 msgstr "Sửa trang web"
 msgstr "Sửa trang web"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 #, fuzzy
 #, fuzzy
 msgid "Email"
 msgid "Email"
 msgstr "Email (*)"
 msgstr "Email (*)"
@@ -1036,6 +1047,11 @@ msgstr "Không thể bật tự động gia hạn SSL cho %{name}"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Bật không thành công"
 msgstr "Bật không thành công"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "Bật TLS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
@@ -1087,7 +1103,10 @@ msgstr "Bật TLS"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1445,12 +1464,12 @@ msgid ""
 "process."
 "process."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 #, fuzzy
 #, fuzzy
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "Người dùng Trung Quốc: https://mirror.ghproxy.com/"
 msgstr "Người dùng Trung Quốc: https://mirror.ghproxy.com/"
@@ -1505,7 +1524,7 @@ msgstr "Nhận lỗi thông tin phát hành"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "Đang lấy chứng chỉ, vui lòng đợi..."
 msgstr "Đang lấy chứng chỉ, vui lòng đợi..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr ""
 msgstr ""
 
 
@@ -1521,23 +1540,23 @@ msgstr ""
 msgid "Home"
 msgid "Home"
 msgstr "Trang chủ"
 msgstr "Trang chủ"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
+#: src/views/preference/ServerSettings.vue:18
+msgid "Host"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/Preference.vue:174
+msgid "HTTP"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr ""
 msgstr ""
 
 
@@ -1593,6 +1612,10 @@ msgstr ""
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "Cài đặt"
 msgstr "Cài đặt"
@@ -1697,7 +1720,7 @@ msgstr "Cấp chứng chỉ thành công"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr ""
 msgstr ""
 
 
@@ -1813,7 +1836,7 @@ msgstr "Đăng nhập thành công"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "Đã đăng xuất"
 msgstr "Đã đăng xuất"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr ""
 msgstr ""
 
 
@@ -1968,7 +1991,7 @@ msgstr "Đã có phiên bản mới"
 msgid "Next"
 msgid "Next"
 msgstr "Tiếp theo"
 msgstr "Tiếp theo"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr ""
 msgstr ""
 
 
@@ -2016,6 +2039,11 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
@@ -2037,16 +2065,16 @@ msgstr ""
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Vị trí lưu log lỗi (Error log) của Nginx"
 msgstr "Vị trí lưu log lỗi (Error log) của Nginx"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr ""
 msgstr ""
 
 
@@ -2055,7 +2083,7 @@ msgstr ""
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Reload Nginx thành công"
 msgstr "Reload Nginx thành công"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr ""
 msgstr ""
 
 
@@ -2064,6 +2092,10 @@ msgstr ""
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Restart Nginx thành công"
 msgstr "Restart Nginx thành công"
 
 
+#: src/views/preference/NginxSettings.vue:33
+msgid "Nginx Test Config Command"
+msgstr ""
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr ""
 msgstr ""
@@ -2089,7 +2121,7 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2097,12 +2129,17 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 msgid "No"
 msgid "No"
 msgstr "Không"
 msgstr "Không"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "Username"
+
+#: src/views/preference/NodeSettings.vue:15
 #, fuzzy
 #, fuzzy
 msgid "Node name"
 msgid "Node name"
 msgstr "Username"
 msgstr "Username"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr ""
 msgstr ""
 
 
@@ -2204,7 +2241,7 @@ msgstr "Trực tuyến"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr ""
 msgstr ""
 
 
@@ -2241,6 +2278,11 @@ msgstr "Ghi đè"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "Ghi đè tập tin đã tồn tại"
 msgstr "Ghi đè tập tin đã tồn tại"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "Quản lý Website"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "Tham số"
 msgstr "Tham số"
@@ -2386,7 +2428,7 @@ msgstr "Vui lòng nhập mật khẩu!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Vui lòng nhập username!"
 msgstr "Vui lòng nhập username!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2408,13 +2450,17 @@ msgstr "Vui lòng nhập username!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:21
+msgid "Port"
+msgstr ""
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr ""
 msgstr ""
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "Cài đặt"
 msgstr "Cài đặt"
 
 
@@ -2443,7 +2489,7 @@ msgstr "Nhà cung cấp"
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr ""
 msgstr ""
 
 
@@ -2485,7 +2531,7 @@ msgid ""
 "2FA device. Each code can only be used once."
 "2FA device. Each code can only be used once."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr ""
 msgstr ""
 
 
@@ -2733,7 +2779,7 @@ msgstr ""
 msgid "RPID"
 msgid "RPID"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 #, fuzzy
 #, fuzzy
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "Run Mode"
 msgstr "Run Mode"
@@ -2749,7 +2795,7 @@ msgstr "Running"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2811,7 +2857,7 @@ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 #, fuzzy
 #, fuzzy
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Lưu thành công"
 msgstr "Lưu thành công"
@@ -2858,6 +2904,11 @@ msgstr ""
 msgid "Send"
 msgid "Send"
 msgstr "Gửi"
 msgstr "Gửi"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "Thông tin máy chủ"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "Thông tin máy chủ"
 msgstr "Thông tin máy chủ"
@@ -2875,7 +2926,7 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Không tìm thấy tệp tin"
 msgstr "Không tìm thấy tệp tin"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2960,6 +3011,11 @@ msgstr ""
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "Cài đặt"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr ""
 msgstr ""
@@ -2973,9 +3029,15 @@ msgid "SSL Certificate Key Path"
 msgstr ""
 msgstr ""
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr ""
 msgstr ""
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "Đường dẫn"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr ""
 msgstr ""
@@ -3148,7 +3210,7 @@ msgstr ""
 msgid "System Restore"
 msgid "System Restore"
 msgstr "Thông tin"
 msgstr "Thông tin"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Restart Nginx thành công"
 msgstr "Restart Nginx thành công"
@@ -3158,11 +3220,12 @@ msgstr "Restart Nginx thành công"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "Không tìm thấy tệp tin"
 msgstr "Không tìm thấy tệp tin"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr ""
 msgstr ""
 
 
@@ -3180,7 +3243,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "Tên tệp không thể chứa các ký tự sau: %{c}"
 msgstr "Tên tệp không thể chứa các ký tự sau: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3205,7 +3268,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3224,7 +3287,7 @@ msgstr ""
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3245,8 +3308,8 @@ msgid ""
 msgstr ""
 msgstr ""
 "Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL."
 "Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL."
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr ""
 msgstr ""
 
 
@@ -3609,7 +3672,7 @@ msgid "Writing certificate to disk"
 msgstr "Ghi chứng chỉ vào disk"
 msgstr "Ghi chứng chỉ vào disk"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 113 - 57
app/src/language/zh_CN/app.po

@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: \n"
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2025-03-30 21:51+0800\n"
+"PO-Revision-Date: 2025-03-31 10:06+0800\n"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
 "Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
 "Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
 "projects/nginx-ui/frontend/zh_Hans/>\n"
 "projects/nginx-ui/frontend/zh_Hans/>\n"
@@ -51,9 +51,9 @@ msgstr "操作"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -133,6 +133,10 @@ msgstr "API Token"
 msgid "API Type"
 msgid "API Type"
 msgstr "API 类型"
 msgstr "API 类型"
 
 
+#: src/views/preference/Preference.vue:162
+msgid "App"
+msgstr "App"
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr "应用"
 msgstr "应用"
@@ -195,7 +199,7 @@ msgstr "您确定要恢复这个项目吗?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "您确定要删除这条指令?"
 msgstr "您确定要删除这条指令?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "您确定要删除这个项目吗?"
 msgstr "您确定要删除这个项目吗?"
 
 
@@ -219,7 +223,7 @@ msgstr "尝试修复"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "尝试次数"
 msgstr "尝试次数"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "认证"
 msgstr "认证"
 
 
@@ -301,7 +305,6 @@ msgid "Base information"
 msgstr "基本信息"
 msgstr "基本信息"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -341,7 +344,7 @@ msgstr "构建基于"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "CA Dir"
 msgstr "CA Dir"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "CADir"
 msgstr "CADir"
 
 
@@ -372,7 +375,7 @@ msgstr "不可删除初始用户"
 msgid "Category"
 msgid "Category"
 msgstr "分类"
 msgstr "分类"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr "证书"
 msgstr "证书"
 
 
@@ -388,7 +391,7 @@ msgstr "证书解码错误"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "证书解析错误"
 msgstr "证书解析错误"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "证书续期间隔"
 msgstr "证书续期间隔"
 
 
@@ -397,7 +400,7 @@ msgid "Certificate renewed successfully"
 msgstr "证书更新成功"
 msgstr "证书更新成功"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "证书状态"
 msgstr[0] "证书状态"
@@ -420,7 +423,7 @@ msgstr "挑战方法"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "更改证书"
 msgstr "更改证书"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "变更证书"
 msgstr[0] "变更证书"
@@ -493,7 +496,7 @@ msgstr "命令"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "注释"
 msgstr "注释"
 
 
@@ -632,7 +635,7 @@ msgstr "当前版本"
 msgid "Custom"
 msgid "Custom"
 msgstr "自定义"
 msgstr "自定义"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -647,7 +650,7 @@ msgstr "仪表盘"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "数据库 (可选,默认: database)"
 msgstr "数据库 (可选,默认: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "天"
 msgstr "天"
 
 
@@ -713,6 +716,10 @@ msgstr "删除 Stream: %{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "删除成功"
 msgstr "删除成功"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr "Demo"
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "部署"
 msgstr "部署"
@@ -797,6 +804,9 @@ msgstr "在 %{node} 上禁用 %{name} 成功"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -933,6 +943,7 @@ msgid "Edit Stream"
 msgstr "编辑 Stream"
 msgstr "编辑 Stream"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "邮箱"
 msgstr "邮箱"
 
 
@@ -957,6 +968,10 @@ msgstr "启用 %{name} 自动续签失败"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "启用失败"
 msgstr "启用失败"
 
 
+#: src/views/preference/ServerSettings.vue:29
+msgid "Enable HTTPS"
+msgstr "启用 HTTPS"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "启用远程站点错误"
 msgstr "启用远程站点错误"
@@ -999,7 +1014,10 @@ msgstr "启用 TOTP"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1323,12 +1341,12 @@ msgid ""
 "process."
 "process."
 msgstr "按照对话框中的指示完成 Passkey 的注册过程。"
 msgstr "按照对话框中的指示完成 Passkey 的注册过程。"
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr "中国用户"
 msgstr "中国用户"
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "中国用户:https://mirror.ghproxy.com/"
 msgstr "中国用户:https://mirror.ghproxy.com/"
 
 
@@ -1377,9 +1395,9 @@ msgstr "获取发布信息错误"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "正在获取证书,请稍等..."
 msgstr "正在获取证书,请稍等..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
-msgstr "Github代理"
+msgstr "Github 代理"
 
 
 #: src/constants/errors/backup.ts:59
 #: src/constants/errors/backup.ts:59
 msgid "Hash verification failed: file integrity compromised"
 msgid "Hash verification failed: file integrity compromised"
@@ -1393,23 +1411,23 @@ msgstr "隐藏"
 msgid "Home"
 msgid "Home"
 msgstr "首页"
 msgstr "首页"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "HTTP Challenge 监听端口"
+#: src/views/preference/ServerSettings.vue:18
+msgid "Host"
+msgstr "主机"
 
 
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
-msgstr "HTTP 监听主机"
+#: src/views/preference/Preference.vue:174
+msgid "HTTP"
+msgstr "HTTP"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "HTTP 监听端口"
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "HTTP Challenge 监听端口"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr "ICP备案号"
 msgstr "ICP备案号"
 
 
@@ -1465,6 +1483,10 @@ msgstr "输入应用程序中的代码:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "输入恢复代码:"
 msgstr "输入恢复代码:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr "跳过证书认证"
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "安装"
 msgstr "安装"
@@ -1560,7 +1582,7 @@ msgstr "证书申请成功"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "颁发者:%{issuer}"
 msgstr "颁发者:%{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt 密钥"
 msgstr "Jwt 密钥"
 
 
@@ -1667,7 +1689,7 @@ msgstr "登录成功"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "登出成功"
 msgstr "登出成功"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Logrotate"
 msgstr "Logrotate"
 
 
@@ -1816,7 +1838,7 @@ msgstr "新版本发布"
 msgid "Next"
 msgid "Next"
 msgstr "下一步"
 msgstr "下一步"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1861,6 +1883,10 @@ msgstr "Nginx 配置已恢复"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx 配置解析错误"
 msgstr "Nginx 配置解析错误"
 
 
+#: src/views/preference/NginxSettings.vue:18
+msgid "Nginx Configuration Path"
+msgstr "Nginx 配置路径"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
 msgstr "Nginx 配置目录"
 msgstr "Nginx 配置目录"
@@ -1881,15 +1907,15 @@ msgstr "Nginx 未启动"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Nginx 日志"
 msgstr "Nginx 日志"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Nginx 日志目录白名单"
 msgstr "Nginx 日志目录白名单"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Nginx PID 路径"
 msgstr "Nginx PID 路径"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Nginx 重载命令"
 msgstr "Nginx 重载命令"
 
 
@@ -1897,7 +1923,7 @@ msgstr "Nginx 重载命令"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx 重载成功"
 msgstr "Nginx 重载成功"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Nginx 重启命令"
 msgstr "Nginx 重启命令"
 
 
@@ -1905,6 +1931,10 @@ msgstr "Nginx 重启命令"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx 重启成功"
 msgstr "Nginx 重启成功"
 
 
+#: src/views/preference/NginxSettings.vue:33
+msgid "Nginx Test Config Command"
+msgstr "Nginx 测试配置命令"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
 msgstr "Nginx UI 已安装"
 msgstr "Nginx UI 已安装"
@@ -1928,7 +1958,7 @@ msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -1936,11 +1966,15 @@ msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。"
 msgid "No"
 msgid "No"
 msgstr "取消"
 msgstr "取消"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+msgid "Node"
+msgstr "节点"
+
+#: src/views/preference/NodeSettings.vue:15
 msgid "Node name"
 msgid "Node name"
 msgstr "节点名称"
 msgstr "节点名称"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "节点密钥"
 msgstr "节点密钥"
 
 
@@ -2039,7 +2073,7 @@ msgstr "在线"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr "只允许使用zip文件"
 msgstr "只允许使用zip文件"
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
@@ -2075,6 +2109,10 @@ msgstr "覆盖"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "覆盖现有文件"
 msgstr "覆盖现有文件"
 
 
+#: src/views/preference/AppSettings.vue:13
+msgid "Page Size"
+msgstr "分页大小"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "参数"
 msgstr "参数"
@@ -2215,7 +2253,7 @@ msgstr "请输入您的密码!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "请输入您的用户名!"
 msgstr "请输入您的用户名!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr "请登录。"
 msgstr "请登录。"
 
 
@@ -2236,13 +2274,17 @@ msgstr "请选择备份文件"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "请至少选择一个节点进行升级"
 msgstr "请至少选择一个节点进行升级"
 
 
+#: src/views/preference/ServerSettings.vue:21
+msgid "Port"
+msgstr "端口"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "预发布"
 msgstr "预发布"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "偏好设置"
 msgstr "偏好设置"
 
 
@@ -2270,7 +2312,7 @@ msgstr "提供商"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "代理"
 msgstr "代理"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr "公安备案号"
 msgstr "公安备案号"
 
 
@@ -2313,7 +2355,7 @@ msgstr ""
 "恢复代码用于在您无法访问双重身份验证设备时登录您的账户。每个代码只能使用一"
 "恢复代码用于在您无法访问双重身份验证设备时登录您的账户。每个代码只能使用一"
 "次。"
 "次。"
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "递归域名服务器"
 msgstr "递归域名服务器"
 
 
@@ -2528,7 +2570,7 @@ msgstr "依赖方的源"
 msgid "RPID"
 msgid "RPID"
 msgstr "依赖方 ID"
 msgstr "依赖方 ID"
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "运行模式"
 msgstr "运行模式"
 
 
@@ -2543,7 +2585,7 @@ msgstr "运行中"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2597,7 +2639,7 @@ msgstr "成功将站点 %{name} 保存到 %{node} 中"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "保存成功"
 msgstr "保存成功"
 
 
@@ -2643,6 +2685,10 @@ msgstr "自我检查"
 msgid "Send"
 msgid "Send"
 msgstr "上传"
 msgstr "上传"
 
 
+#: src/views/preference/Preference.vue:156
+msgid "Server"
+msgstr "服务器"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "服务器信息"
 msgstr "服务器信息"
@@ -2659,7 +2705,7 @@ msgstr "Server Index 超出范围"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "未找到会话"
 msgstr "未找到会话"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2742,6 +2788,10 @@ msgstr "Sites-available 目录不存在"
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr "Sites-enabled 目录不存在"
 msgstr "Sites-enabled 目录不存在"
 
 
+#: src/views/preference/NodeSettings.vue:23
+msgid "Skip Installation"
+msgstr "跳过安装"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL 证书内容"
 msgstr "SSL 证书内容"
@@ -2755,9 +2805,14 @@ msgid "SSL Certificate Key Path"
 msgstr "SSL证书密钥路径"
 msgstr "SSL证书密钥路径"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL证书路径"
 msgstr "SSL证书路径"
 
 
+#: src/views/preference/ServerSettings.vue:40
+msgid "SSL Key Path"
+msgstr "SSL 密钥路径"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr "SSO 登录"
 msgstr "SSO 登录"
@@ -2915,7 +2970,7 @@ msgstr "系统初始用户"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "系统还原"
 msgstr "系统还原"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "系统恢复成功。"
 msgstr "系统恢复成功。"
 
 
@@ -2923,11 +2978,12 @@ msgstr "系统恢复成功。"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "未找到任务"
 msgstr "未找到任务"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "终端"
 msgstr "终端"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "终端启动命令"
 msgstr "终端启动命令"
 
 
@@ -2944,7 +3000,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "文件名不能包含以下字符: %{c}"
 msgstr "文件名不能包含以下字符: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -2969,7 +3025,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "模型名称只能包含字母、单码、数字、连字符、破折号、冒号和点。"
 msgstr "模型名称只能包含字母、单码、数字、连字符、破折号、冒号和点。"
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -2987,7 +3043,7 @@ msgstr "路径存在,但文件不是证书"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "路径存在,但文件不是私钥"
 msgstr "路径存在,但文件不是私钥"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3008,8 +3064,8 @@ msgid ""
 "need to get the certificate, supportmultiple domains."
 "need to get the certificate, supportmultiple domains."
 msgstr "当前配置中的 server_name 必须是获取证书所需的域名,支持多个域名。"
 msgstr "当前配置中的 server_name 必须是获取证书所需的域名,支持多个域名。"
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "URL无效"
 msgstr "URL无效"
 
 
@@ -3366,7 +3422,7 @@ msgid "Writing certificate to disk"
 msgstr "正在将证书写入磁盘"
 msgstr "正在将证书写入磁盘"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 123 - 55
app/src/language/zh_TW/app.po

@@ -55,9 +55,9 @@ msgstr "操作"
 
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:151
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:186
-#: src/views/preference/CertSettings.vue:42
+#: src/views/preference/CertSettings.vue:45
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
 #: src/views/site/ngx_conf/config_template/ConfigTemplate.vue:117
-#: src/views/site/ngx_conf/NgxServer.vue:162
+#: src/views/site/ngx_conf/NgxServer.vue:163
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/site/ngx_conf/NgxUpstream.vue:154
 #: src/views/stream/StreamList.vue:121
 #: src/views/stream/StreamList.vue:121
 msgid "Add"
 msgid "Add"
@@ -137,6 +137,11 @@ msgstr "API Token"
 msgid "API Type"
 msgid "API Type"
 msgstr "API 類型"
 msgstr "API 類型"
 
 
+#: src/views/preference/Preference.vue:162
+#, fuzzy
+msgid "App"
+msgstr "套用"
+
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
 msgid "Apply"
 msgstr "套用"
 msgstr "套用"
@@ -199,7 +204,7 @@ msgstr "您確定要恢復此項目嗎?"
 msgid "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this directive?"
 msgstr "您確定要刪除這條指令嗎?"
 msgstr "您確定要刪除這條指令嗎?"
 
 
-#: src/views/preference/CertSettings.vue:68
+#: src/views/preference/CertSettings.vue:71
 msgid "Are you sure you want to remove this item?"
 msgid "Are you sure you want to remove this item?"
 msgstr "您確定要刪除此項目嗎?"
 msgstr "您確定要刪除此項目嗎?"
 
 
@@ -223,7 +228,7 @@ msgstr "嘗試修復"
 msgid "Attempts"
 msgid "Attempts"
 msgstr "嘗試次數"
 msgstr "嘗試次數"
 
 
-#: src/views/preference/Preference.vue:152
+#: src/views/preference/Preference.vue:186
 msgid "Auth"
 msgid "Auth"
 msgstr "身份驗證"
 msgstr "身份驗證"
 
 
@@ -308,7 +313,6 @@ msgid "Base information"
 msgstr "基本資訊"
 msgstr "基本資訊"
 
 
 #: src/views/config/ConfigEditor.vue:241
 #: src/views/config/ConfigEditor.vue:241
-#: src/views/preference/Preference.vue:146
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/site/site_edit/RightSettings.vue:79
 #: src/views/stream/components/RightSettings.vue:74
 #: src/views/stream/components/RightSettings.vue:74
 msgid "Basic"
 msgid "Basic"
@@ -348,7 +352,7 @@ msgstr "構建基於"
 msgid "CA Dir"
 msgid "CA Dir"
 msgstr "CA Dir"
 msgstr "CA Dir"
 
 
-#: src/views/preference/CertSettings.vue:16
+#: src/views/preference/CertSettings.vue:19
 msgid "CADir"
 msgid "CADir"
 msgstr "CADir"
 msgstr "CADir"
 
 
@@ -379,7 +383,7 @@ msgstr "無法移除初始使用者"
 msgid "Category"
 msgid "Category"
 msgstr "類別"
 msgstr "類別"
 
 
-#: src/views/preference/Preference.vue:158
+#: src/views/preference/Preference.vue:192
 msgid "Cert"
 msgid "Cert"
 msgstr "證書"
 msgstr "證書"
 
 
@@ -395,7 +399,7 @@ msgstr "證書解碼錯誤"
 msgid "Certificate parse error"
 msgid "Certificate parse error"
 msgstr "證書解析錯誤"
 msgstr "證書解析錯誤"
 
 
-#: src/views/preference/CertSettings.vue:24
+#: src/views/preference/CertSettings.vue:27
 msgid "Certificate Renewal Interval"
 msgid "Certificate Renewal Interval"
 msgstr "憑證更新間隔"
 msgstr "憑證更新間隔"
 
 
@@ -404,7 +408,7 @@ msgid "Certificate renewed successfully"
 msgstr "憑證更新成功"
 msgstr "憑證更新成功"
 
 
 #: src/views/certificate/CertificateEditor.vue:128
 #: src/views/certificate/CertificateEditor.vue:128
-#: src/views/site/cert/Cert.vue:33
+#: src/views/site/cert/Cert.vue:60
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "憑證狀態"
 msgstr[0] "憑證狀態"
@@ -427,7 +431,7 @@ msgstr "驗證方式"
 msgid "Change Certificate"
 msgid "Change Certificate"
 msgstr "更換憑證"
 msgstr "更換憑證"
 
 
-#: src/views/site/cert/Cert.vue:52
+#: src/views/site/cert/Cert.vue:79
 msgid "Changed Certificate"
 msgid "Changed Certificate"
 msgid_plural "Changed Certificates"
 msgid_plural "Changed Certificates"
 msgstr[0] "變更後憑證"
 msgstr[0] "變更後憑證"
@@ -502,7 +506,7 @@ msgstr "命令"
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:113
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:103
 #: src/views/site/ngx_conf/LocationEditor.vue:134
 #: src/views/site/ngx_conf/LocationEditor.vue:134
-#: src/views/site/ngx_conf/NgxServer.vue:134
+#: src/views/site/ngx_conf/NgxServer.vue:135
 msgid "Comments"
 msgid "Comments"
 msgstr "備註"
 msgstr "備註"
 
 
@@ -643,7 +647,7 @@ msgstr "目前版本"
 msgid "Custom"
 msgid "Custom"
 msgstr "自訂"
 msgstr "自訂"
 
 
-#: src/views/preference/BasicSettings.vue:34
+#: src/views/preference/NodeSettings.vue:19
 msgid ""
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "Customize the name of local node to be displayed in the environment "
 "indicator."
 "indicator."
@@ -658,7 +662,7 @@ msgstr "儀表板"
 msgid "Database (Optional, default: database)"
 msgid "Database (Optional, default: database)"
 msgstr "資料庫 (可選,預設: database)"
 msgstr "資料庫 (可選,預設: database)"
 
 
-#: src/views/preference/CertSettings.vue:29
+#: src/views/preference/CertSettings.vue:32
 msgid "Days"
 msgid "Days"
 msgstr "天"
 msgstr "天"
 
 
@@ -724,6 +728,10 @@ msgstr "刪除 Stream:%{stream_name}"
 msgid "Deleted successfully"
 msgid "Deleted successfully"
 msgstr "刪除成功"
 msgstr "刪除成功"
 
 
+#: src/views/preference/NodeSettings.vue:28
+msgid "Demo"
+msgstr ""
+
 #: src/views/config/ConfigEditor.vue:285
 #: src/views/config/ConfigEditor.vue:285
 msgid "Deploy"
 msgid "Deploy"
 msgstr "部署"
 msgstr "部署"
@@ -812,6 +820,9 @@ msgstr "成功禁用 %{node} 中的站点 %{site}"
 
 
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:61
 #: src/views/environment/envColumns.tsx:79
 #: src/views/environment/envColumns.tsx:79
+#: src/views/preference/HTTPSettings.vue:24
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_edit/SiteEdit.vue:190
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:53
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
 #: src/views/site/site_list/columns.tsx:62 src/views/stream/StreamEdit.vue:176
@@ -948,6 +959,7 @@ msgid "Edit Stream"
 msgstr "編輯 Stream"
 msgstr "編輯 Stream"
 
 
 #: src/views/certificate/ACMEUser.vue:25
 #: src/views/certificate/ACMEUser.vue:25
+#: src/views/preference/CertSettings.vue:12
 msgid "Email"
 msgid "Email"
 msgstr "電子郵件"
 msgstr "電子郵件"
 
 
@@ -972,6 +984,11 @@ msgstr "啟用 %{name} 自動續簽失敗"
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "啟用失敗"
 msgstr "啟用失敗"
 
 
+#: src/views/preference/ServerSettings.vue:29
+#, fuzzy
+msgid "Enable HTTPS"
+msgstr "啟用 TOTP"
+
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "啟用遠端站點錯誤"
 msgstr "啟用遠端站點錯誤"
@@ -1020,7 +1037,10 @@ msgstr "啟用 TOTP"
 
 
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:70
 #: src/views/environment/envColumns.tsx:76
 #: src/views/environment/envColumns.tsx:76
+#: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
+#: src/views/preference/NodeSettings.vue:25
+#: src/views/preference/NodeSettings.vue:30
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/RightSettings.vue:82
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_edit/SiteEdit.vue:184
 #: src/views/site/site_list/columns.tsx:49
 #: src/views/site/site_list/columns.tsx:49
@@ -1378,12 +1398,12 @@ msgid ""
 "process."
 "process."
 msgstr "請按照對話框中的指示完成通行密鑰的註冊流程。"
 msgstr "請按照對話框中的指示完成通行密鑰的註冊流程。"
 
 
-#: src/views/preference/BasicSettings.vue:59
-#: src/views/preference/BasicSettings.vue:71
+#: src/views/preference/NodeSettings.vue:42
+#: src/views/preference/NodeSettings.vue:54
 msgid "For Chinese user"
 msgid "For Chinese user"
 msgstr "針對中國大陆用戶"
 msgstr "針對中國大陆用戶"
 
 
-#: src/views/preference/BasicSettings.vue:47
+#: src/views/preference/HTTPSettings.vue:19
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgid "For Chinese user: https://mirror.ghproxy.com/"
 msgstr "中國使用者:https://mirror.ghproxy.com/"
 msgstr "中國使用者:https://mirror.ghproxy.com/"
 
 
@@ -1432,7 +1452,7 @@ msgstr "取得發布資訊錯誤"
 msgid "Getting the certificate, please wait..."
 msgid "Getting the certificate, please wait..."
 msgstr "正在取得憑證,請稍候..."
 msgstr "正在取得憑證,請稍候..."
 
 
-#: src/views/preference/BasicSettings.vue:39
+#: src/views/preference/HTTPSettings.vue:11
 msgid "Github Proxy"
 msgid "Github Proxy"
 msgstr "Github 代理"
 msgstr "Github 代理"
 
 
@@ -1448,23 +1468,25 @@ msgstr "隱藏"
 msgid "Home"
 msgid "Home"
 msgstr "首頁"
 msgstr "首頁"
 
 
-#: src/views/preference/CertSettings.vue:12
-msgid "HTTP Challenge Port"
-msgstr "HTTP 挑戰埠"
-
-#: src/views/preference/BasicSettings.vue:11
-msgid "HTTP Host"
+#: src/views/preference/ServerSettings.vue:18
+#, fuzzy
+msgid "Host"
 msgstr "HTTP 監聽主機"
 msgstr "HTTP 監聽主機"
 
 
-#: src/views/preference/BasicSettings.vue:14
-msgid "HTTP Port"
-msgstr "HTTP 監聽埠"
+#: src/views/preference/Preference.vue:174
+#, fuzzy
+msgid "HTTP"
+msgstr "HTTP01"
+
+#: src/views/preference/CertSettings.vue:15
+msgid "HTTP Challenge Port"
+msgstr "HTTP 挑戰埠"
 
 
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 #: src/views/site/cert/components/AutoCertStepOne.vue:70
 msgid "HTTP01"
 msgid "HTTP01"
 msgstr "HTTP01"
 msgstr "HTTP01"
 
 
-#: src/views/preference/BasicSettings.vue:51
+#: src/views/preference/NodeSettings.vue:34
 msgid "ICP Number"
 msgid "ICP Number"
 msgstr "ICP 編號"
 msgstr "ICP 編號"
 
 
@@ -1520,6 +1542,10 @@ msgstr "請輸入應用程式中的代碼:"
 msgid "Input the recovery code:"
 msgid "Input the recovery code:"
 msgstr "輸入恢復碼:"
 msgstr "輸入恢復碼:"
 
 
+#: src/views/preference/HTTPSettings.vue:22
+msgid "Insecure Skip Verify"
+msgstr ""
+
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 #: src/routes/modules/auth.ts:8 src/views/other/Install.vue:185
 msgid "Install"
 msgid "Install"
 msgstr "安裝"
 msgstr "安裝"
@@ -1620,7 +1646,7 @@ msgstr "成功頒發憑證"
 msgid "Issuer: %{issuer}"
 msgid "Issuer: %{issuer}"
 msgstr "發行者:%{issuer}"
 msgstr "發行者:%{issuer}"
 
 
-#: src/views/preference/BasicSettings.vue:20
+#: src/views/preference/AppSettings.vue:10
 msgid "Jwt Secret"
 msgid "Jwt Secret"
 msgstr "Jwt Secret"
 msgstr "Jwt Secret"
 
 
@@ -1727,7 +1753,7 @@ msgstr "登入成功"
 msgid "Logout successful"
 msgid "Logout successful"
 msgstr "登出成功"
 msgstr "登出成功"
 
 
-#: src/views/preference/Preference.vue:176
+#: src/views/preference/Preference.vue:210
 msgid "Logrotate"
 msgid "Logrotate"
 msgstr "Logrotate"
 msgstr "Logrotate"
 
 
@@ -1876,7 +1902,7 @@ msgstr "新版本發布"
 msgid "Next"
 msgid "Next"
 msgstr "下一步"
 msgstr "下一步"
 
 
-#: src/views/preference/Preference.vue:164
+#: src/views/preference/Preference.vue:198
 msgid "Nginx"
 msgid "Nginx"
 msgstr "Nginx"
 msgstr "Nginx"
 
 
@@ -1923,6 +1949,11 @@ msgstr "Nginx 設定解析錯誤"
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx 設定解析錯誤"
 msgstr "Nginx 設定解析錯誤"
 
 
+#: src/views/preference/NginxSettings.vue:18
+#, fuzzy
+msgid "Nginx Configuration Path"
+msgstr "Nginx 設定解析錯誤"
+
 #: src/views/preference/NginxSettings.vue:15
 #: src/views/preference/NginxSettings.vue:15
 msgid "Nginx Configurations Directory"
 msgid "Nginx Configurations Directory"
 msgstr "Nginx 配置目錄"
 msgstr "Nginx 配置目錄"
@@ -1943,15 +1974,15 @@ msgstr "Nginx 未執行"
 msgid "Nginx Log"
 msgid "Nginx Log"
 msgstr "Nginx 日誌"
 msgstr "Nginx 日誌"
 
 
-#: src/views/preference/NginxSettings.vue:18
+#: src/views/preference/NginxSettings.vue:21
 msgid "Nginx Log Directory Whitelist"
 msgid "Nginx Log Directory Whitelist"
 msgstr "Nginx 日誌目錄白名單"
 msgstr "Nginx 日誌目錄白名單"
 
 
-#: src/views/preference/NginxSettings.vue:27
+#: src/views/preference/NginxSettings.vue:30
 msgid "Nginx PID Path"
 msgid "Nginx PID Path"
 msgstr "Nginx PID 路徑"
 msgstr "Nginx PID 路徑"
 
 
-#: src/views/preference/NginxSettings.vue:30
+#: src/views/preference/NginxSettings.vue:36
 msgid "Nginx Reload Command"
 msgid "Nginx Reload Command"
 msgstr "Nginx 重新載入指令"
 msgstr "Nginx 重新載入指令"
 
 
@@ -1959,7 +1990,7 @@ msgstr "Nginx 重新載入指令"
 msgid "Nginx reloaded successfully"
 msgid "Nginx reloaded successfully"
 msgstr "Nginx 重新載入成功"
 msgstr "Nginx 重新載入成功"
 
 
-#: src/views/preference/NginxSettings.vue:33
+#: src/views/preference/NginxSettings.vue:39
 msgid "Nginx Restart Command"
 msgid "Nginx Restart Command"
 msgstr "Nginx 重啟指令"
 msgstr "Nginx 重啟指令"
 
 
@@ -1967,6 +1998,11 @@ msgstr "Nginx 重啟指令"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx 重啟成功"
 msgstr "Nginx 重啟成功"
 
 
+#: src/views/preference/NginxSettings.vue:33
+#, fuzzy
+msgid "Nginx Test Config Command"
+msgstr "Nginx 重啟指令"
+
 #: src/constants/errors/system.ts:2
 #: src/constants/errors/system.ts:2
 #, fuzzy
 #, fuzzy
 msgid "Nginx UI already installed"
 msgid "Nginx UI already installed"
@@ -1993,7 +2029,7 @@ msgstr "Nginx 設定解析錯誤"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:538
 #: src/views/notification/Notification.vue:37
 #: src/views/notification/Notification.vue:37
 #: src/views/preference/AuthSettings.vue:164
 #: src/views/preference/AuthSettings.vue:164
-#: src/views/preference/CertSettings.vue:70
+#: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: src/views/site/site_list/SiteList.vue:143
 #: src/views/site/site_list/SiteList.vue:143
@@ -2001,11 +2037,16 @@ msgstr "Nginx 設定解析錯誤"
 msgid "No"
 msgid "No"
 msgstr "取消"
 msgstr "取消"
 
 
-#: src/views/preference/BasicSettings.vue:30
+#: src/views/preference/Preference.vue:168
+#, fuzzy
+msgid "Node"
+msgstr "節點名稱"
+
+#: src/views/preference/NodeSettings.vue:15
 msgid "Node name"
 msgid "Node name"
 msgstr "節點名稱"
 msgstr "節點名稱"
 
 
-#: src/views/preference/BasicSettings.vue:23
+#: src/views/preference/NodeSettings.vue:11
 msgid "Node Secret"
 msgid "Node Secret"
 msgstr "節點密鑰"
 msgstr "節點密鑰"
 
 
@@ -2104,7 +2145,7 @@ msgstr "線上"
 msgid "Only zip files are allowed"
 msgid "Only zip files are allowed"
 msgstr ""
 msgstr ""
 
 
-#: src/views/preference/Preference.vue:170
+#: src/views/preference/Preference.vue:204
 msgid "OpenAI"
 msgid "OpenAI"
 msgstr "OpenAI"
 msgstr "OpenAI"
 
 
@@ -2140,6 +2181,11 @@ msgstr "覆蓋"
 msgid "Overwrite exist file"
 msgid "Overwrite exist file"
 msgstr "覆蓋現有檔案"
 msgstr "覆蓋現有檔案"
 
 
+#: src/views/preference/AppSettings.vue:13
+#, fuzzy
+msgid "Page Size"
+msgstr "管理網站"
+
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 #: src/views/site/ngx_conf/directive/DirectiveAdd.vue:94
 msgid "Params"
 msgid "Params"
 msgstr "參數"
 msgstr "參數"
@@ -2281,7 +2327,7 @@ msgstr "請輸入您的密碼!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "請輸入您的使用者名稱!"
 msgstr "請輸入您的使用者名稱!"
 
 
-#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:12
+#: src/views/other/Install.vue:110 src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgid "Please log in."
 msgstr ""
 msgstr ""
 
 
@@ -2303,13 +2349,18 @@ msgstr "請至少選擇一個節點!"
 msgid "Please select at least one node to upgrade"
 msgid "Please select at least one node to upgrade"
 msgstr "請至少選擇一個節點進行升級"
 msgstr "請至少選擇一個節點進行升級"
 
 
+#: src/views/preference/ServerSettings.vue:21
+#, fuzzy
+msgid "Port"
+msgstr "HTTP 監聽埠"
+
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:167
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/environment/BatchUpgrader.vue:220 src/views/system/Upgrade.vue:194
 #: src/views/system/Upgrade.vue:245
 #: src/views/system/Upgrade.vue:245
 msgid "Pre-release"
 msgid "Pre-release"
 msgstr "預先發布"
 msgstr "預先發布"
 
 
-#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:141
+#: src/routes/modules/preference.ts:10 src/views/preference/Preference.vue:151
 msgid "Preference"
 msgid "Preference"
 msgstr "偏好設定"
 msgstr "偏好設定"
 
 
@@ -2337,7 +2388,7 @@ msgstr "供應商"
 msgid "Proxy"
 msgid "Proxy"
 msgstr "代理伺服器"
 msgstr "代理伺服器"
 
 
-#: src/views/preference/BasicSettings.vue:63
+#: src/views/preference/NodeSettings.vue:46
 msgid "Public Security Number"
 msgid "Public Security Number"
 msgstr "公安編號"
 msgstr "公安編號"
 
 
@@ -2379,7 +2430,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "復原代碼在您無法使用 2FA 裝置時,用於訪問您的帳戶。每個代碼僅能使用一次。"
 "復原代碼在您無法使用 2FA 裝置時,用於訪問您的帳戶。每個代碼僅能使用一次。"
 
 
-#: src/views/preference/CertSettings.vue:37
+#: src/views/preference/CertSettings.vue:40
 msgid "Recursive Nameservers"
 msgid "Recursive Nameservers"
 msgstr "遞迴名稱伺服器"
 msgstr "遞迴名稱伺服器"
 
 
@@ -2605,7 +2656,7 @@ msgstr "RP 源站"
 msgid "RPID"
 msgid "RPID"
 msgstr "RPID"
 msgstr "RPID"
 
 
-#: src/views/preference/BasicSettings.vue:17
+#: src/views/preference/ServerSettings.vue:24
 msgid "Run Mode"
 msgid "Run Mode"
 msgstr "執行模式"
 msgstr "執行模式"
 
 
@@ -2620,7 +2671,7 @@ msgstr "執行中"
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/components/ConfigName.vue:56
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/config/ConfigEditor.vue:222
 #: src/views/preference/components/Passkey.vue:130
 #: src/views/preference/components/Passkey.vue:130
-#: src/views/preference/Preference.vue:187
+#: src/views/preference/Preference.vue:221
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:127
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/components/ConfigName.vue:52
 #: src/views/site/site_edit/SiteEdit.vue:271
 #: src/views/site/site_edit/SiteEdit.vue:271
@@ -2680,7 +2731,7 @@ msgstr "成功將站點 %{site} 儲存至 %{node}"
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:47
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:97
 #: src/views/certificate/CertificateEditor.vue:49
 #: src/views/certificate/CertificateEditor.vue:49
-#: src/views/preference/Preference.vue:113
+#: src/views/preference/Preference.vue:123
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "儲存成功"
 msgstr "儲存成功"
 
 
@@ -2727,6 +2778,11 @@ msgstr "自我檢測"
 msgid "Send"
 msgid "Send"
 msgstr "傳送"
 msgstr "傳送"
 
 
+#: src/views/preference/Preference.vue:156
+#, fuzzy
+msgid "Server"
+msgstr "伺服器資訊"
+
 #: src/views/dashboard/ServerAnalytic.vue:175
 #: src/views/dashboard/ServerAnalytic.vue:175
 msgid "Server Info"
 msgid "Server Info"
 msgstr "伺服器資訊"
 msgstr "伺服器資訊"
@@ -2743,7 +2799,7 @@ msgstr "伺服器索引超出範圍"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "找不到工作階段"
 msgstr "找不到工作階段"
 
 
-#: src/views/preference/CertSettings.vue:33
+#: src/views/preference/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
 "step of DNS challenge."
 "step of DNS challenge."
@@ -2827,6 +2883,11 @@ msgstr "sites-available 資料夾不存在"
 msgid "Sites-enabled directory not exist"
 msgid "Sites-enabled directory not exist"
 msgstr "sites-enabled 資料夾不存在"
 msgstr "sites-enabled 資料夾不存在"
 
 
+#: src/views/preference/NodeSettings.vue:23
+#, fuzzy
+msgid "Skip Installation"
+msgstr "安裝"
+
 #: src/views/certificate/CertificateEditor.vue:211
 #: src/views/certificate/CertificateEditor.vue:211
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL 憑證內容"
 msgstr "SSL 憑證內容"
@@ -2840,9 +2901,15 @@ msgid "SSL Certificate Key Path"
 msgstr "SSL 憑證金鑰路徑"
 msgstr "SSL 憑證金鑰路徑"
 
 
 #: src/views/certificate/CertificateEditor.vue:175
 #: src/views/certificate/CertificateEditor.vue:175
+#: src/views/preference/ServerSettings.vue:36
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL 憑證路徑"
 msgstr "SSL 憑證路徑"
 
 
+#: src/views/preference/ServerSettings.vue:40
+#, fuzzy
+msgid "SSL Key Path"
+msgstr "SSL 憑證金鑰路徑"
+
 #: src/views/other/Login.vue:197
 #: src/views/other/Login.vue:197
 msgid "SSO Login"
 msgid "SSO Login"
 msgstr "SSO 登錄"
 msgstr "SSO 登錄"
@@ -3008,7 +3075,7 @@ msgstr "系統初始使用者"
 msgid "System Restore"
 msgid "System Restore"
 msgstr "系統"
 msgstr "系統"
 
 
-#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:8
+#: src/views/other/Install.vue:106 src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 #, fuzzy
 msgid "System restored successfully."
 msgid "System restored successfully."
 msgstr "Nginx 重啟成功"
 msgstr "Nginx 重啟成功"
@@ -3017,11 +3084,12 @@ msgstr "Nginx 重啟成功"
 msgid "Task not found"
 msgid "Task not found"
 msgstr "找不到任務"
 msgstr "找不到任務"
 
 
-#: src/routes/modules/terminal.ts:10 src/views/terminal/Terminal.vue:114
+#: src/routes/modules/terminal.ts:10 src/views/preference/Preference.vue:180
+#: src/views/terminal/Terminal.vue:114
 msgid "Terminal"
 msgid "Terminal"
 msgstr "終端機"
 msgstr "終端機"
 
 
-#: src/views/preference/BasicSettings.vue:26
+#: src/views/preference/TerminalSettings.vue:9
 msgid "Terminal Start Command"
 msgid "Terminal Start Command"
 msgstr "終端機啟動指令"
 msgstr "終端機啟動指令"
 
 
@@ -3038,7 +3106,7 @@ msgstr ""
 msgid "The filename cannot contain the following characters: %{c}"
 msgid "The filename cannot contain the following characters: %{c}"
 msgstr "檔名不能包含以下字元: %{c}"
 msgstr "檔名不能包含以下字元: %{c}"
 
 
-#: src/views/preference/BasicSettings.vue:54
+#: src/views/preference/NodeSettings.vue:37
 msgid ""
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3063,7 +3131,7 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "模型名稱僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。"
 msgstr "模型名稱僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。"
 
 
-#: src/views/preference/BasicSettings.vue:33
+#: src/views/preference/NodeSettings.vue:18
 msgid ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
 "dashes, colons, and dots."
@@ -3082,7 +3150,7 @@ msgstr "路徑存在,但檔案不是憑證"
 msgid "The path exists, but the file is not a private key"
 msgid "The path exists, but the file is not a private key"
 msgstr "路徑存在,但檔案不是金鑰"
 msgstr "路徑存在,但檔案不是金鑰"
 
 
-#: src/views/preference/BasicSettings.vue:66
+#: src/views/preference/NodeSettings.vue:49
 msgid ""
 msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 "hyphens, dashes, colons, and dots."
@@ -3103,8 +3171,8 @@ msgid ""
 "need to get the certificate, supportmultiple domains."
 "need to get the certificate, supportmultiple domains."
 msgstr "當前配置中的 server_name 必須是您需要獲取憑證的網域,支持多個網域。"
 msgstr "當前配置中的 server_name 必須是您需要獲取憑證的網域,支持多個網域。"
 
 
-#: src/views/preference/BasicSettings.vue:42
-#: src/views/preference/CertSettings.vue:19
+#: src/views/preference/CertSettings.vue:22
+#: src/views/preference/HTTPSettings.vue:14
 msgid "The url is invalid"
 msgid "The url is invalid"
 msgstr "網址無效"
 msgstr "網址無效"
 
 
@@ -3460,7 +3528,7 @@ msgid "Writing certificate to disk"
 msgstr "將憑證寫入磁碟"
 msgstr "將憑證寫入磁碟"
 
 
 #: src/views/preference/AuthSettings.vue:163
 #: src/views/preference/AuthSettings.vue:163
-#: src/views/preference/CertSettings.vue:69
+#: src/views/preference/CertSettings.vue:72
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:96
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 #: src/views/site/ngx_conf/LocationEditor.vue:87
 msgid "Yes"
 msgid "Yes"

+ 1 - 1
app/src/version.json

@@ -1 +1 @@
-{"version":"2.0.0-rc.4","build_id":8,"total_build":393}
+{"version":"2.0.0-rc.5","build_id":1,"total_build":395}

+ 20 - 0
app/src/views/preference/AppSettings.vue

@@ -0,0 +1,20 @@
+<script setup lang="ts">
+import type { Settings } from '@/api/settings'
+import SensitiveString from '@/components/SensitiveString/SensitiveString.vue'
+
+const data: Ref<Settings> = inject('data') as Ref<Settings>
+</script>
+
+<template>
+  <AForm layout="vertical">
+    <AFormItem :label="$gettext('Jwt Secret')">
+      <SensitiveString :value="data.app.jwt_secret" />
+    </AFormItem>
+    <AFormItem :label="$gettext('Page Size')">
+      <p>{{ data.app.page_size }}</p>
+    </AFormItem>
+  </AForm>
+</template>
+
+<style lang="less" scoped>
+</style>

+ 1 - 1
app/src/views/preference/AuthSettings.vue

@@ -12,7 +12,7 @@ import { message } from 'ant-design-vue'
 import dayjs from 'dayjs'
 import dayjs from 'dayjs'
 import PasskeyRegistration from './components/Passkey.vue'
 import PasskeyRegistration from './components/Passkey.vue'
 
 
-const data: Settings = inject('data') as Settings
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 
 
 const bannedIPColumns = [{
 const bannedIPColumns = [{
   title: $gettext('IP'),
   title: $gettext('IP'),

+ 4 - 1
app/src/views/preference/CertSettings.vue

@@ -3,12 +3,15 @@ import type { Settings } from '@/api/settings'
 import { DeleteOutlined, HolderOutlined } from '@ant-design/icons-vue'
 import { DeleteOutlined, HolderOutlined } from '@ant-design/icons-vue'
 import Draggable from 'vuedraggable'
 import Draggable from 'vuedraggable'
 
 
-const data: Settings = inject('data') as Settings
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 </script>
 </script>
 
 
 <template>
 <template>
   <AForm layout="vertical">
   <AForm layout="vertical">
+    <AFormItem :label="$gettext('Email')">
+      <p>{{ data.cert.email }}</p>
+    </AFormItem>
     <AFormItem :label="$gettext('HTTP Challenge Port')">
     <AFormItem :label="$gettext('HTTP Challenge Port')">
       <AInputNumber v-model:value="data.cert.http_challenge_port" />
       <AInputNumber v-model:value="data.cert.http_challenge_port" />
     </AFormItem>
     </AFormItem>

+ 31 - 0
app/src/views/preference/HTTPSettings.vue

@@ -0,0 +1,31 @@
+<script setup lang="ts">
+import type { Settings } from '@/api/settings'
+
+const data: Ref<Settings> = inject('data') as Ref<Settings>
+const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
+</script>
+
+<template>
+  <AForm layout="vertical">
+    <AFormItem
+      :label="$gettext('Github Proxy')"
+      :validate-status="errors?.http?.github_proxy ? 'error' : ''"
+      :help="errors?.http?.github_proxy === 'url'
+        ? $gettext('The url is invalid')
+        : ''"
+    >
+      <AInput
+        v-model:value="data.http.github_proxy"
+        :placeholder="$gettext('For Chinese user: https://mirror.ghproxy.com/')"
+      />
+    </AFormItem>
+    <AFormItem :label="$gettext('Insecure Skip Verify')">
+      <ATag :color="data.http.insecure_skip_verify ? 'green' : 'red'">
+        {{ data.http.insecure_skip_verify ? $gettext('Enabled') : $gettext('Disabled') }}
+      </ATag>
+    </AFormItem>
+  </AForm>
+</template>
+
+<style lang="less" scoped>
+</style>

+ 1 - 1
app/src/views/preference/LogrotateSettings.vue

@@ -1,7 +1,7 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Settings } from '@/api/settings'
 import type { Settings } from '@/api/settings'
 
 
-const data: Settings = inject('data')!
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 </script>
 </script>
 
 
 <template>
 <template>

+ 7 - 1
app/src/views/preference/NginxSettings.vue

@@ -1,7 +1,7 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Settings } from '@/api/settings'
 import type { Settings } from '@/api/settings'
 
 
-const data: Settings = inject('data')!
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 </script>
 </script>
 
 
 <template>
 <template>
@@ -15,6 +15,9 @@ const data: Settings = inject('data')!
     <AFormItem :label="$gettext('Nginx Configurations Directory')">
     <AFormItem :label="$gettext('Nginx Configurations Directory')">
       {{ data.nginx.config_dir }}
       {{ data.nginx.config_dir }}
     </AFormItem>
     </AFormItem>
+    <AFormItem :label="$gettext('Nginx Configuration Path')">
+      <p>{{ data.nginx.config_path }}</p>
+    </AFormItem>
     <AFormItem :label="$gettext('Nginx Log Directory Whitelist')">
     <AFormItem :label="$gettext('Nginx Log Directory Whitelist')">
       <div
       <div
         v-for="dir in data.nginx.log_dir_white_list"
         v-for="dir in data.nginx.log_dir_white_list"
@@ -27,6 +30,9 @@ const data: Settings = inject('data')!
     <AFormItem :label="$gettext('Nginx PID Path')">
     <AFormItem :label="$gettext('Nginx PID Path')">
       {{ data.nginx.pid_path }}
       {{ data.nginx.pid_path }}
     </AFormItem>
     </AFormItem>
+    <AFormItem :label="$gettext('Nginx Test Config Command')">
+      <p>{{ data.nginx.test_config_cmd }}</p>
+    </AFormItem>
     <AFormItem :label="$gettext('Nginx Reload Command')">
     <AFormItem :label="$gettext('Nginx Reload Command')">
       {{ data.nginx.reload_cmd }}
       {{ data.nginx.reload_cmd }}
     </AFormItem>
     </AFormItem>

+ 10 - 28
app/src/views/preference/BasicSettings.vue → app/src/views/preference/NodeSettings.vue

@@ -2,30 +2,15 @@
 import type { Settings } from '@/api/settings'
 import type { Settings } from '@/api/settings'
 import SensitiveString from '@/components/SensitiveString/SensitiveString.vue'
 import SensitiveString from '@/components/SensitiveString/SensitiveString.vue'
 
 
-const data: Settings = inject('data') as Settings
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 </script>
 </script>
 
 
 <template>
 <template>
   <AForm layout="vertical">
   <AForm layout="vertical">
-    <AFormItem :label="$gettext('HTTP Host')">
-      <p>{{ data.server.host }}</p>
-    </AFormItem>
-    <AFormItem :label="$gettext('HTTP Port')">
-      <p>{{ data.server.port }}</p>
-    </AFormItem>
-    <AFormItem :label="$gettext('Run Mode')">
-      <p>{{ data.server.run_mode }}</p>
-    </AFormItem>
-    <AFormItem :label="$gettext('Jwt Secret')">
-      <SensitiveString :value="data.app.jwt_secret" />
-    </AFormItem>
     <AFormItem :label="$gettext('Node Secret')">
     <AFormItem :label="$gettext('Node Secret')">
       <SensitiveString :value="data.node.secret" />
       <SensitiveString :value="data.node.secret" />
     </AFormItem>
     </AFormItem>
-    <AFormItem :label="$gettext('Terminal Start Command')">
-      <p>{{ data.terminal.start_cmd }}</p>
-    </AFormItem>
     <AFormItem
     <AFormItem
       :label="$gettext('Node name')"
       :label="$gettext('Node name')"
       :validate-status="errors?.node?.name ? 'error' : ''"
       :validate-status="errors?.node?.name ? 'error' : ''"
@@ -35,17 +20,15 @@ const errors: Record<string, Record<string, string>> = inject('errors') as Recor
     >
     >
       <AInput v-model:value="data.node.name" />
       <AInput v-model:value="data.node.name" />
     </AFormItem>
     </AFormItem>
-    <AFormItem
-      :label="$gettext('Github Proxy')"
-      :validate-status="errors?.http?.github_proxy ? 'error' : ''"
-      :help="errors?.http?.github_proxy === 'url'
-        ? $gettext('The url is invalid')
-        : ''"
-    >
-      <AInput
-        v-model:value="data.http.github_proxy"
-        :placeholder="$gettext('For Chinese user: https://mirror.ghproxy.com/')"
-      />
+    <AFormItem :label="$gettext('Skip Installation')">
+      <ATag :color="data.node.skip_installation ? 'green' : 'red'">
+        {{ data.node.skip_installation ? $gettext('Enabled') : $gettext('Disabled') }}
+      </ATag>
+    </AFormItem>
+    <AFormItem :label="$gettext('Demo')">
+      <ATag :color="data.node.demo ? 'green' : 'red'">
+        {{ data.node.demo ? $gettext('Enabled') : $gettext('Disabled') }}
+      </ATag>
     </AFormItem>
     </AFormItem>
     <AFormItem
     <AFormItem
       :label="$gettext('ICP Number')"
       :label="$gettext('ICP Number')"
@@ -75,5 +58,4 @@ const errors: Record<string, Record<string, string>> = inject('errors') as Recor
 </template>
 </template>
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>
-
 </style>
 </style>

+ 1 - 1
app/src/views/preference/OpenAISettings.vue

@@ -2,7 +2,7 @@
 import type { Settings } from '@/api/settings'
 import type { Settings } from '@/api/settings'
 import { LLM_MODELS, LLM_PROVIDERS } from '@/constants/llm'
 import { LLM_MODELS, LLM_PROVIDERS } from '@/constants/llm'
 
 
-const data: Settings = inject('data')!
+const data: Ref<Settings> = inject('data') as Ref<Settings>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 const errors: Record<string, Record<string, string>> = inject('errors') as Record<string, Record<string, string>>
 
 
 const models = LLM_MODELS.map(model => ({
 const models = LLM_MODELS.map(model => ({

+ 42 - 8
app/src/views/preference/Preference.vue

@@ -1,16 +1,19 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Settings } from '@/api/settings'
 import type { Settings } from '@/api/settings'
-import type { Ref } from 'vue'
 import settings from '@/api/settings'
 import settings from '@/api/settings'
 import FooterToolBar from '@/components/FooterToolbar/FooterToolBar.vue'
 import FooterToolBar from '@/components/FooterToolbar/FooterToolBar.vue'
 import use2FAModal from '@/components/TwoFA/use2FAModal'
 import use2FAModal from '@/components/TwoFA/use2FAModal'
 import { useSettingsStore } from '@/pinia'
 import { useSettingsStore } from '@/pinia'
+import AppSettings from '@/views/preference/AppSettings.vue'
 import AuthSettings from '@/views/preference/AuthSettings.vue'
 import AuthSettings from '@/views/preference/AuthSettings.vue'
-import BasicSettings from '@/views/preference/BasicSettings.vue'
 import CertSettings from '@/views/preference/CertSettings.vue'
 import CertSettings from '@/views/preference/CertSettings.vue'
+import HTTPSettings from '@/views/preference/HTTPSettings.vue'
 import LogrotateSettings from '@/views/preference/LogrotateSettings.vue'
 import LogrotateSettings from '@/views/preference/LogrotateSettings.vue'
 import NginxSettings from '@/views/preference/NginxSettings.vue'
 import NginxSettings from '@/views/preference/NginxSettings.vue'
+import NodeSettings from '@/views/preference/NodeSettings.vue'
 import OpenAISettings from '@/views/preference/OpenAISettings.vue'
 import OpenAISettings from '@/views/preference/OpenAISettings.vue'
+import ServerSettings from '@/views/preference/ServerSettings.vue'
+import TerminalSettings from '@/views/preference/TerminalSettings.vue'
 import { message } from 'ant-design-vue'
 import { message } from 'ant-design-vue'
 import { storeToRefs } from 'pinia'
 import { storeToRefs } from 'pinia'
 
 
@@ -23,6 +26,9 @@ const data = ref<Settings>({
     host: '0.0.0.0',
     host: '0.0.0.0',
     port: 9000,
     port: 9000,
     run_mode: 'debug',
     run_mode: 'debug',
+    enable_https: false,
+    ssl_cert: '',
+    ssl_key: '',
   },
   },
   database: {
   database: {
     name: '',
     name: '',
@@ -61,14 +67,18 @@ const data = ref<Settings>({
     access_log_path: '',
     access_log_path: '',
     error_log_path: '',
     error_log_path: '',
     config_dir: '',
     config_dir: '',
+    config_path: '',
     log_dir_white_list: [],
     log_dir_white_list: [],
     pid_path: '',
     pid_path: '',
+    test_config_cmd: '',
     reload_cmd: '',
     reload_cmd: '',
     restart_cmd: '',
     restart_cmd: '',
   },
   },
   node: {
   node: {
     name: '',
     name: '',
     secret: '',
     secret: '',
+    skip_installation: false,
+    demo: false,
     icp_number: '',
     icp_number: '',
     public_security_number: '',
     public_security_number: '',
   },
   },
@@ -95,7 +105,7 @@ settings.get().then(r => {
 
 
 const settingsStore = useSettingsStore()
 const settingsStore = useSettingsStore()
 const { server_name } = storeToRefs(settingsStore)
 const { server_name } = storeToRefs(settingsStore)
-const errors = ref({}) as Ref<Record<string, Record<string, string>>>
+const errors = ref<Record<string, Record<string, string>>>({})
 const refAuthSettings = useTemplateRef('refAuthSettings')
 const refAuthSettings = useTemplateRef('refAuthSettings')
 
 
 async function save() {
 async function save() {
@@ -121,7 +131,7 @@ provide('errors', errors)
 
 
 const router = useRouter()
 const router = useRouter()
 const route = useRoute()
 const route = useRoute()
-const activeKey = ref('basic')
+const activeKey = ref('server')
 
 
 watch(activeKey, () => {
 watch(activeKey, () => {
   router.push({
   router.push({
@@ -142,10 +152,34 @@ onMounted(() => {
     <div class="preference-container">
     <div class="preference-container">
       <ATabs v-model:active-key="activeKey">
       <ATabs v-model:active-key="activeKey">
         <ATabPane
         <ATabPane
-          key="basic"
-          :tab="$gettext('Basic')"
+          key="server"
+          :tab="$gettext('Server')"
         >
         >
-          <BasicSettings />
+          <ServerSettings />
+        </ATabPane>
+        <ATabPane
+          key="app"
+          :tab="$gettext('App')"
+        >
+          <AppSettings />
+        </ATabPane>
+        <ATabPane
+          key="node"
+          :tab="$gettext('Node')"
+        >
+          <NodeSettings />
+        </ATabPane>
+        <ATabPane
+          key="http"
+          :tab="$gettext('HTTP')"
+        >
+          <HTTPSettings />
+        </ATabPane>
+        <ATabPane
+          key="terminal"
+          :tab="$gettext('Terminal')"
+        >
+          <TerminalSettings />
         </ATabPane>
         </ATabPane>
         <ATabPane
         <ATabPane
           key="auth"
           key="auth"
@@ -193,7 +227,7 @@ onMounted(() => {
 <style lang="less" scoped>
 <style lang="less" scoped>
 .preference-container {
 .preference-container {
   width: 100%;
   width: 100%;
-  max-width: 600px;
+  max-width: 750px;
   margin: 0 auto;
   margin: 0 auto;
   padding: 0 10px;
   padding: 0 10px;
 }
 }

+ 47 - 0
app/src/views/preference/ServerSettings.vue

@@ -0,0 +1,47 @@
+<script setup lang="ts">
+import type { Cert } from '@/api/cert'
+import type { Settings } from '@/api/settings'
+import ChangeCert from '@/views/site/cert/components/ChangeCert/ChangeCert.vue'
+
+const data: Ref<Settings> = inject('data') as Ref<Settings>
+
+function handleCertChange(certs: Cert[]) {
+  if (certs.length > 0 && data.value?.server) {
+    data.value.server.ssl_cert = certs[0].ssl_certificate_path
+    data.value.server.ssl_key = certs[0].ssl_certificate_key_path
+  }
+}
+</script>
+
+<template>
+  <AForm v-if="data?.server" layout="vertical">
+    <AFormItem :label="$gettext('Host')">
+      <p>{{ data.server.host }}</p>
+    </AFormItem>
+    <AFormItem :label="$gettext('Port')">
+      <p>{{ data.server.port }}</p>
+    </AFormItem>
+    <AFormItem :label="$gettext('Run Mode')">
+      <p>{{ data.server.run_mode }}</p>
+    </AFormItem>
+
+    <!-- HTTPS Settings -->
+    <AFormItem :label="$gettext('Enable HTTPS')">
+      <ASwitch v-model:checked="data.server.enable_https" />
+    </AFormItem>
+
+    <div v-if="data.server.enable_https">
+      <ChangeCert class="mb-6" selection-type="radio" @change="handleCertChange" />
+
+      <AFormItem :label="$gettext('SSL Certificate Path')">
+        <p>{{ data.server.ssl_cert }}</p>
+      </AFormItem>
+
+      <AFormItem :label="$gettext('SSL Key Path')">
+        <p>{{ data.server.ssl_key }}</p>
+      </AFormItem>
+    </div>
+  </AForm>
+</template>
+
+<style lang="less" scoped></style>

+ 17 - 0
app/src/views/preference/TerminalSettings.vue

@@ -0,0 +1,17 @@
+<script setup lang="ts">
+import type { Settings } from '@/api/settings'
+
+const data: Ref<Settings> = inject('data') as Ref<Settings>
+</script>
+
+<template>
+  <AForm layout="vertical">
+    <AFormItem :label="$gettext('Terminal Start Command')">
+      <p>{{ data.terminal.start_cmd }}</p>
+    </AFormItem>
+  </AForm>
+</template>
+
+<style lang="less" scoped>
+
+</style>

+ 27 - 0
app/src/views/site/cert/Cert.vue

@@ -1,5 +1,6 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Cert, CertificateInfo } from '@/api/cert'
 import type { Cert, CertificateInfo } from '@/api/cert'
+import type { NgxDirective } from '@/api/ngx'
 import CertInfo from '@/views/site/cert/CertInfo.vue'
 import CertInfo from '@/views/site/cert/CertInfo.vue'
 import ChangeCert from '@/views/site/cert/components/ChangeCert/ChangeCert.vue'
 import ChangeCert from '@/views/site/cert/components/ChangeCert/ChangeCert.vue'
 import IssueCert from '@/views/site/cert/IssueCert.vue'
 import IssueCert from '@/views/site/cert/IssueCert.vue'
@@ -11,6 +12,8 @@ const props = defineProps<{
   siteEnabled: boolean
   siteEnabled: boolean
 }>()
 }>()
 
 
+const current_server_directives = defineModel<NgxDirective[]>('current_server_directives')
+
 const enabled = defineModel<boolean>('enabled', {
 const enabled = defineModel<boolean>('enabled', {
   default: () => false,
   default: () => false,
 })
 })
@@ -24,6 +27,30 @@ watch(() => props.certInfo, () => {
 
 
 function handleCertChange(certs: Cert[]) {
 function handleCertChange(certs: Cert[]) {
   changedCerts.value = certs
   changedCerts.value = certs
+
+  // 更新 NgxDirective
+  if (current_server_directives.value) {
+    // 过滤掉现有的证书配置
+    const filteredDirectives = current_server_directives.value
+      .filter(v => v.directive !== 'ssl_certificate' && v.directive !== 'ssl_certificate_key')
+
+    // 添加新的证书配置
+    const newDirectives = [...filteredDirectives]
+
+    certs.forEach(cert => {
+      newDirectives.push({
+        directive: 'ssl_certificate',
+        params: cert.ssl_certificate_path,
+      })
+      newDirectives.push({
+        directive: 'ssl_certificate_key',
+        params: cert.ssl_certificate_key_path,
+      })
+    })
+
+    // 更新 directives
+    current_server_directives.value = newDirectives
+  }
 }
 }
 </script>
 </script>
 
 

+ 24 - 23
app/src/views/site/cert/components/ChangeCert/ChangeCert.vue

@@ -1,40 +1,40 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Cert } from '@/api/cert'
 import type { Cert } from '@/api/cert'
-import type { NgxDirective } from '@/api/ngx'
-import type { Ref, WritableComputedRef } from 'vue'
 import cert from '@/api/cert'
 import cert from '@/api/cert'
 import StdTable from '@/components/StdDesign/StdDataDisplay/StdTable.vue'
 import StdTable from '@/components/StdDesign/StdDataDisplay/StdTable.vue'
 import certColumns from '@/views/certificate/CertificateList/certColumns'
 import certColumns from '@/views/certificate/CertificateList/certColumns'
 
 
+interface Props {
+  selectionType?: 'radio' | 'checkbox'
+}
+
+const props = withDefaults(defineProps<Props>(), {
+  selectionType: 'checkbox',
+})
+
 const emit = defineEmits(['change'])
 const emit = defineEmits(['change'])
 
 
-const current_server_directives = inject('current_server_directives') as WritableComputedRef<NgxDirective[]>
 const visible = ref(false)
 const visible = ref(false)
 
 
 function open() {
 function open() {
   visible.value = true
   visible.value = true
 }
 }
 
 
-const records = ref([]) as Ref<Cert[]>
-const selectedKeys = ref([])
+const records = ref<Cert[]>([])
+const selectedKeys = ref<(string | number)[]>([])
 
 
-async function ok() {
-  // clear all ssl_certificate and ssl_certificate_key
-  current_server_directives.value
-    = current_server_directives.value
-      .filter(v => v.directive !== 'ssl_certificate' && v.directive !== 'ssl_certificate_key')
-
-  records.value.forEach(v => {
-    current_server_directives?.value.push({
-      directive: 'ssl_certificate',
-      params: v.ssl_certificate_path,
-    })
-    current_server_directives?.value.push({
-      directive: 'ssl_certificate_key',
-      params: v.ssl_certificate_key_path,
-    })
-  })
+// Handle selection changes
+function handleSelectionChange(keys: (string | number)[] | string | number) {
+  // Ensure selectedKeys is always an array
+  if (props.selectionType === 'radio' && !Array.isArray(keys)) {
+    selectedKeys.value = keys !== undefined && keys !== null ? [keys] : []
+  }
+  else if (Array.isArray(keys)) {
+    selectedKeys.value = keys
+  }
+}
 
 
+async function ok() {
   visible.value = false
   visible.value = false
   emit('change', records.value)
   emit('change', records.value)
 
 
@@ -56,12 +56,13 @@ async function ok() {
       @ok="ok"
       @ok="ok"
     >
     >
       <StdTable
       <StdTable
-        v-model:selected-row-keys="selectedKeys"
         v-model:selected-rows="records"
         v-model:selected-rows="records"
+        :selected-row-keys="selectedKeys"
         :api="cert"
         :api="cert"
         pithy
         pithy
         :columns="certColumns"
         :columns="certColumns"
-        selection-type="checkbox"
+        :selection-type="selectionType"
+        @update:selected-row-keys="handleSelectionChange"
       />
       />
     </AModal>
     </AModal>
   </div>
   </div>

+ 1 - 1
app/src/views/site/ngx_conf/NgxConfigEditor.vue

@@ -12,7 +12,7 @@ import { Modal } from 'ant-design-vue'
 
 
 const props = withDefaults(defineProps<{
 const props = withDefaults(defineProps<{
   autoCert?: boolean
   autoCert?: boolean
-  enabled: boolean
+  enabled?: boolean
   certInfo?: Record<number, CertificateInfo[]>
   certInfo?: Record<number, CertificateInfo[]>
   context?: 'http' | 'stream'
   context?: 'http' | 'stream'
 }>(), {
 }>(), {

+ 2 - 1
app/src/views/site/ngx_conf/NgxServer.vue

@@ -14,7 +14,7 @@ withDefaults(defineProps<{
   certInfo?: {
   certInfo?: {
     [key: number]: CertificateInfo[]
     [key: number]: CertificateInfo[]
   }
   }
-  context: 'http' | 'stream'
+  context?: 'http' | 'stream'
 }>(), {
 }>(), {
   context: 'http',
   context: 'http',
 })
 })
@@ -123,6 +123,7 @@ provide('ngx_directives', ngx_directives)
           <Cert
           <Cert
             v-if="current_support_ssl"
             v-if="current_support_ssl"
             v-model:enabled="autoCert"
             v-model:enabled="autoCert"
+            v-model:current_server_directives="ngx_config.servers[current_server_index].directives"
             class="mb-4"
             class="mb-4"
             :site-enabled="enabled"
             :site-enabled="enabled"
             :config-name="ngx_config.name"
             :config-name="ngx_config.name"

+ 4 - 4
go.mod

@@ -35,7 +35,7 @@ require (
 	github.com/spf13/cast v1.7.1
 	github.com/spf13/cast v1.7.1
 	github.com/stretchr/testify v1.10.0
 	github.com/stretchr/testify v1.10.0
 	github.com/tufanbarisyildirim/gonginx v0.0.0-20250225174229-c03497ddaef6
 	github.com/tufanbarisyildirim/gonginx v0.0.0-20250225174229-c03497ddaef6
-	github.com/uozi-tech/cosy v1.17.0
+	github.com/uozi-tech/cosy v1.18.0
 	github.com/uozi-tech/cosy-driver-sqlite v0.2.1
 	github.com/uozi-tech/cosy-driver-sqlite v0.2.1
 	github.com/urfave/cli/v3 v3.0.0-beta1
 	github.com/urfave/cli/v3 v3.0.0-beta1
 	golang.org/x/crypto v0.36.0
 	golang.org/x/crypto v0.36.0
@@ -110,7 +110,7 @@ require (
 	github.com/fatih/structs v1.1.0 // indirect
 	github.com/fatih/structs v1.1.0 // indirect
 	github.com/felixge/httpsnoop v1.0.4 // indirect
 	github.com/felixge/httpsnoop v1.0.4 // indirect
 	github.com/fsnotify/fsnotify v1.8.0 // indirect
 	github.com/fsnotify/fsnotify v1.8.0 // indirect
-	github.com/fxamacker/cbor/v2 v2.7.0 // indirect
+	github.com/fxamacker/cbor/v2 v2.8.0 // indirect
 	github.com/gabriel-vasile/mimetype v1.4.8 // indirect
 	github.com/gabriel-vasile/mimetype v1.4.8 // indirect
 	github.com/ghodss/yaml v1.0.0 // indirect
 	github.com/ghodss/yaml v1.0.0 // indirect
 	github.com/gin-contrib/sse v1.0.0 // indirect
 	github.com/gin-contrib/sse v1.0.0 // indirect
@@ -226,8 +226,8 @@ require (
 	github.com/spf13/viper v1.20.1 // indirect
 	github.com/spf13/viper v1.20.1 // indirect
 	github.com/stretchr/objx v0.5.2 // indirect
 	github.com/stretchr/objx v0.5.2 // indirect
 	github.com/subosito/gotenv v1.6.0 // indirect
 	github.com/subosito/gotenv v1.6.0 // indirect
-	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133 // indirect
-	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128 // indirect
+	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134 // indirect
+	github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1134 // indirect
 	github.com/tjfoc/gmsm v1.4.1 // indirect
 	github.com/tjfoc/gmsm v1.4.1 // indirect
 	github.com/tklauser/go-sysconf v0.3.15 // indirect
 	github.com/tklauser/go-sysconf v0.3.15 // indirect
 	github.com/tklauser/numcpus v0.10.0 // indirect
 	github.com/tklauser/numcpus v0.10.0 // indirect

+ 9 - 0
go.sum

@@ -782,6 +782,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.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.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
 github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
 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 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.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -903,6 +904,8 @@ github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/
 github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
 github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
 github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
 github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
 github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
 github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
+github.com/fxamacker/cbor/v2 v2.8.0 h1:fFtUGXUzXPHTIUdne5+zzMPTfffl3RD5qYnkY40vtxU=
+github.com/fxamacker/cbor/v2 v2.8.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ=
 github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
 github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM=
 github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
 github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
 github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
@@ -1749,8 +1752,12 @@ github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSW
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1128/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133 h1:S+ZHcAfI8+ii4MfsCr41R3CdhlTsc5OddGsCfeYJdl8=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133 h1:S+ZHcAfI8+ii4MfsCr41R3CdhlTsc5OddGsCfeYJdl8=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1133/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134 h1:NDCzSm7r8OZeWQje1FJNHM73Ku4QRrCP1GymfgZYLSM=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1134/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128 h1:mrJ5Fbkd7sZIJ5F6oRfh5zebPQaudPH9Y0+GUmFytYU=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128 h1:mrJ5Fbkd7sZIJ5F6oRfh5zebPQaudPH9Y0+GUmFytYU=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128/go.mod h1:zbsYIBT+VTX4z4ocjTAdLBIWyNYj3z0BRqd0iPdnjsk=
 github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1128/go.mod h1:zbsYIBT+VTX4z4ocjTAdLBIWyNYj3z0BRqd0iPdnjsk=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1134 h1:Iel1hDW0eQt6p8YDRH2EbjiK5mqC4KEzabSKV0ZQ6FY=
+github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/dnspod v1.0.1134/go.mod h1:8R/Xhu0hKGRFT30uwoN44bisb3cOoNjV8iwH65DjqUc=
 github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
 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/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
 github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4=
 github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4=
@@ -1775,6 +1782,8 @@ github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec h1:2s/ghQ8wKE+
 github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec/go.mod h1:BZr7Qs3ku1ckpqed8tCRSqTlp8NAeZfAVpfx4OzXMss=
 github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec/go.mod h1:BZr7Qs3ku1ckpqed8tCRSqTlp8NAeZfAVpfx4OzXMss=
 github.com/uozi-tech/cosy v1.17.0 h1:qrdBhbylsHGIOUcUsZKUdVzq8fLvePIclHVSGdszyxk=
 github.com/uozi-tech/cosy v1.17.0 h1:qrdBhbylsHGIOUcUsZKUdVzq8fLvePIclHVSGdszyxk=
 github.com/uozi-tech/cosy v1.17.0/go.mod h1:jEyznv+lmbb0YO0gU//yn4PnyqncTlyV2H5BpDa5aEw=
 github.com/uozi-tech/cosy v1.17.0/go.mod h1:jEyznv+lmbb0YO0gU//yn4PnyqncTlyV2H5BpDa5aEw=
+github.com/uozi-tech/cosy v1.18.0 h1:L0o1yQ6hTRdzUjWwcT/cJX0AcNaDaaL30gF8pJHUEzM=
+github.com/uozi-tech/cosy v1.18.0/go.mod h1:8s8oQENTTGcmOGas/hkLvE+pZPyNG6AIblRbFgPRCwg=
 github.com/uozi-tech/cosy-driver-mysql v0.2.2 h1:22S/XNIvuaKGqxQPsYPXN8TZ8hHjCQdcJKVQ83Vzxoo=
 github.com/uozi-tech/cosy-driver-mysql v0.2.2 h1:22S/XNIvuaKGqxQPsYPXN8TZ8hHjCQdcJKVQ83Vzxoo=
 github.com/uozi-tech/cosy-driver-mysql v0.2.2/go.mod h1:EZnRIbSj1V5U0gEeTobrXai/d1SV11lkl4zP9NFEmyE=
 github.com/uozi-tech/cosy-driver-mysql v0.2.2/go.mod h1:EZnRIbSj1V5U0gEeTobrXai/d1SV11lkl4zP9NFEmyE=
 github.com/uozi-tech/cosy-driver-postgres v0.2.1 h1:OICakGuT+omva6QOJCxTJ5Lfr7CGXLmk/zD+aS51Z2o=
 github.com/uozi-tech/cosy-driver-postgres v0.2.1 h1:OICakGuT+omva6QOJCxTJ5Lfr7CGXLmk/zD+aS51Z2o=

+ 8 - 0
internal/system/errors.go

@@ -7,4 +7,12 @@ var (
 	e                 = cosy.NewErrorScope("system")
 	e                 = cosy.NewErrorScope("system")
 	ErrInstalled      = e.New(40301, "Nginx UI already installed")
 	ErrInstalled      = e.New(40301, "Nginx UI already installed")
 	ErrInstallTimeout = e.New(40302, "installation is not allowed after 10 minutes of system startup")
 	ErrInstallTimeout = e.New(40302, "installation is not allowed after 10 minutes of system startup")
+
+	// SSL certificate validation errors
+	ErrSSLCertRequired     = e.New(40303, "SSL certificate path is required when HTTPS is enabled")
+	ErrSSLKeyRequired      = e.New(40304, "SSL key path is required when HTTPS is enabled")
+	ErrSSLCertNotFound     = e.New(40305, "SSL certificate file not found")
+	ErrSSLKeyNotFound      = e.New(40306, "SSL key file not found")
+	ErrSSLCertNotUnderConf = e.New(40307, "SSL certificate file must be under Nginx configuration directory: {0}")
+	ErrSSLKeyNotUnderConf  = e.New(40308, "SSL key file must be under Nginx configuration directory: {0}")
 )
 )

+ 47 - 0
internal/system/ssl.go

@@ -0,0 +1,47 @@
+package system
+
+import (
+	"os"
+
+	"github.com/0xJacky/Nginx-UI/internal/helper"
+	"github.com/0xJacky/Nginx-UI/internal/nginx"
+	"github.com/uozi-tech/cosy"
+)
+
+// ValidateSSLCertificates checks if SSL certificate and key files exist and are under Nginx config directory
+// Returns nil if valid, or a CosyError if invalid
+func ValidateSSLCertificates(sslCert, sslKey string) error {
+	// Check if both paths are provided
+	if sslCert == "" {
+		return ErrSSLCertRequired
+	}
+
+	if sslKey == "" {
+		return ErrSSLKeyRequired
+	}
+
+	// Get Nginx configuration directory
+	nginxConfPath := nginx.GetConfPath()
+
+	// Check if certificate file exists and is under Nginx config directory
+	if !helper.IsUnderDirectory(sslCert, nginxConfPath) {
+		return cosy.WrapErrorWithParams(ErrSSLCertNotUnderConf, nginxConfPath)
+	}
+
+	// Check if certificate file exists
+	if _, err := os.Stat(sslCert); os.IsNotExist(err) {
+		return ErrSSLCertNotFound
+	}
+
+	// Check if key file is under Nginx config directory
+	if !helper.IsUnderDirectory(sslKey, nginxConfPath) {
+		return cosy.WrapErrorWithParams(ErrSSLKeyNotUnderConf, nginxConfPath)
+	}
+
+	// Check if key file exists
+	if _, err := os.Stat(sslKey); os.IsNotExist(err) {
+		return ErrSSLKeyNotFound
+	}
+
+	return nil
+}

+ 14 - 1
main.go

@@ -8,6 +8,7 @@ import (
 
 
 	"github.com/0xJacky/Nginx-UI/internal/cmd"
 	"github.com/0xJacky/Nginx-UI/internal/cmd"
 	"github.com/0xJacky/Nginx-UI/internal/kernel"
 	"github.com/0xJacky/Nginx-UI/internal/kernel"
+	"github.com/0xJacky/Nginx-UI/internal/system"
 	"github.com/0xJacky/Nginx-UI/model"
 	"github.com/0xJacky/Nginx-UI/model"
 	"github.com/0xJacky/Nginx-UI/router"
 	"github.com/0xJacky/Nginx-UI/router"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/0xJacky/Nginx-UI/settings"
@@ -54,7 +55,19 @@ func Program(confPath string) func(state overseer.State) {
 			Addr:    addr,
 			Addr:    addr,
 			Handler: cRouter.GetEngine(),
 			Handler: cRouter.GetEngine(),
 		}
 		}
-		if err := srv.Serve(state.Listener); err != nil && !errors.Is(err, http.ErrServerClosed) {
+		var err error
+		if cSettings.ServerSettings.EnableHTTPS {
+			// Convert SSL certificate and key paths to absolute paths if they are relative
+			sslCert := system.GetAbsolutePath(cSettings.ServerSettings.SSLCert)
+			sslKey := system.GetAbsolutePath(cSettings.ServerSettings.SSLKey)
+
+			logger.Info("Starting HTTPS server")
+			err = srv.ServeTLS(state.Listener, sslCert, sslKey)
+		} else {
+			logger.Info("Starting HTTP server")
+			err = srv.Serve(state.Listener)
+		}
+		if err != nil && !errors.Is(err, http.ErrServerClosed) {
 			logger.Fatalf("listen: %s\n", err)
 			logger.Fatalf("listen: %s\n", err)
 		}
 		}
 	}
 	}