From b359c7d9909c65f33d8de26d46dccacc84959b43 Mon Sep 17 00:00:00 2001 From: zhengkunwang <31820853+zhengkunwang223@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:52:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=20PHP=20=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=8E=AF=E5=A2=83=E7=BD=91=E7=AB=99=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=88=9B=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=20(#6051)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/app/api/{v1 => v2}/app.go | 4 +- agent/app/api/{v1 => v2}/app_install.go | 4 +- agent/app/api/{v1 => v2}/backup.go | 4 +- agent/app/api/{v1 => v2}/clam.go | 4 +- agent/app/api/{v1 => v2}/command.go | 4 +- agent/app/api/{v1 => v2}/compose_template.go | 4 +- agent/app/api/{v1 => v2}/container.go | 4 +- agent/app/api/{v1 => v2}/cronjob.go | 4 +- agent/app/api/{v1 => v2}/dashboard.go | 4 +- agent/app/api/{v1 => v2}/database.go | 4 +- agent/app/api/{v1 => v2}/database_common.go | 4 +- agent/app/api/{v1 => v2}/database_mysql.go | 4 +- .../app/api/{v1 => v2}/database_postgresql.go | 4 +- agent/app/api/{v1 => v2}/database_redis.go | 4 +- agent/app/api/{v1 => v2}/device.go | 4 +- agent/app/api/{v1 => v2}/docker.go | 4 +- agent/app/api/{v1 => v2}/entry.go | 2 +- agent/app/api/{v1 => v2}/fail2ban.go | 4 +- agent/app/api/{v1 => v2}/favorite.go | 4 +- agent/app/api/{v1 => v2}/file.go | 4 +- agent/app/api/{v1 => v2}/firewall.go | 4 +- agent/app/api/{v1 => v2}/ftp.go | 4 +- agent/app/api/{v1 => v2}/group.go | 4 +- agent/app/api/{v1 => v2}/helper/helper.go | 0 agent/app/api/{v1 => v2}/host.go | 4 +- agent/app/api/{v1 => v2}/host_tool.go | 4 +- agent/app/api/{v1 => v2}/image.go | 4 +- agent/app/api/{v1 => v2}/image_repo.go | 4 +- agent/app/api/{v1 => v2}/logs.go | 4 +- agent/app/api/{v1 => v2}/monitor.go | 4 +- agent/app/api/{v1 => v2}/nginx.go | 4 +- agent/app/api/{v1 => v2}/php_extensions.go | 4 +- agent/app/api/{v1 => v2}/process.go | 4 +- agent/app/api/{v1 => v2}/recycle_bin.go | 4 +- agent/app/api/{v1 => v2}/runtime.go | 4 +- agent/app/api/{v1 => v2}/setting.go | 4 +- agent/app/api/{v1 => v2}/snapshot.go | 4 +- agent/app/api/{v1 => v2}/ssh.go | 4 +- agent/app/api/{v1 => v2}/task.go | 4 +- agent/app/api/{v1 => v2}/terminal.go | 2 +- agent/app/api/{v1 => v2}/website.go | 4 +- .../api/{v1 => v2}/website_acme_account.go | 4 +- agent/app/api/{v1 => v2}/website_ca.go | 4 +- .../app/api/{v1 => v2}/website_dns_account.go | 4 +- agent/app/api/{v1 => v2}/website_domain.go | 4 +- agent/app/api/{v1 => v2}/website_ssl.go | 4 +- agent/app/dto/request/website.go | 20 ++- agent/app/dto/response/website.go | 1 + agent/app/model/website.go | 3 + agent/app/service/app_utils.go | 2 +- agent/app/service/website.go | 69 ++++++++- agent/init/migration/migrate.go | 1 + agent/init/migration/migrations/init.go | 8 + agent/middleware/certificate.go | 2 +- agent/middleware/loading.go | 2 +- agent/router/ro_app.go | 4 +- agent/router/ro_container.go | 4 +- agent/router/ro_cronjob.go | 5 +- agent/router/ro_dashboard.go | 5 +- agent/router/ro_database.go | 5 +- agent/router/ro_file.go | 4 +- agent/router/ro_group.go | 4 +- agent/router/ro_host.go | 5 +- agent/router/ro_log.go | 5 +- agent/router/ro_nginx.go | 4 +- agent/router/ro_process.go | 4 +- agent/router/ro_runtime.go | 4 +- agent/router/ro_setting.go | 4 +- agent/router/ro_terminal.go | 5 +- agent/router/ro_toolbox.go | 5 +- agent/router/ro_website.go | 4 +- agent/router/ro_website_acme_account.go | 4 +- agent/router/ro_website_ca.go | 4 +- agent/router/ro_website_dns_account.go | 4 +- agent/router/ro_website_ssl.go | 4 +- cmd/server/docs/docs.go | 140 ++++++++++++++---- cmd/server/docs/x-log.json | 10 ++ core/app/api/{v1 => v2}/auth.go | 4 +- core/app/api/{v1 => v2}/entry.go | 2 +- core/app/api/{v1 => v2}/helper/helper.go | 0 core/app/api/{v1 => v2}/logs.go | 4 +- core/app/api/{v1 => v2}/setting.go | 4 +- core/app/api/{v1 => v2}/upgrade.go | 4 +- core/middleware/bind_domain.go | 2 +- core/middleware/ip_limit.go | 2 +- core/middleware/jwt.go | 2 +- core/middleware/loading.go | 2 +- core/middleware/password_expired.go | 2 +- core/middleware/proxy.go | 2 +- core/middleware/session.go | 2 +- core/router/ro_base.go | 4 +- core/router/ro_log.go | 4 +- core/router/ro_setting.go | 4 +- frontend/src/lang/modules/en.ts | 1 + frontend/src/lang/modules/tw.ts | 1 + frontend/src/lang/modules/zh.ts | 1 + .../views/website/website/create/index.vue | 89 +++++++++++ 97 files changed, 462 insertions(+), 195 deletions(-) rename agent/app/api/{v1 => v2}/app.go (98%) rename agent/app/api/{v1 => v2}/app_install.go (99%) rename agent/app/api/{v1 => v2}/backup.go (99%) rename agent/app/api/{v1 => v2}/clam.go (99%) rename agent/app/api/{v1 => v2}/command.go (99%) rename agent/app/api/{v1 => v2}/compose_template.go (98%) rename agent/app/api/{v1 => v2}/container.go (99%) rename agent/app/api/{v1 => v2}/cronjob.go (99%) rename agent/app/api/{v1 => v2}/dashboard.go (97%) rename agent/app/api/{v1 => v2}/database.go (99%) rename agent/app/api/{v1 => v2}/database_common.go (97%) rename agent/app/api/{v1 => v2}/database_mysql.go (99%) rename agent/app/api/{v1 => v2}/database_postgresql.go (99%) rename agent/app/api/{v1 => v2}/database_redis.go (98%) rename agent/app/api/{v1 => v2}/device.go (99%) rename agent/app/api/{v1 => v2}/docker.go (98%) rename agent/app/api/{v1 => v2}/entry.go (99%) rename agent/app/api/{v1 => v2}/fail2ban.go (98%) rename agent/app/api/{v1 => v2}/favorite.go (97%) rename agent/app/api/{v1 => v2}/file.go (99%) rename agent/app/api/{v1 => v2}/firewall.go (99%) rename agent/app/api/{v1 => v2}/ftp.go (98%) rename agent/app/api/{v1 => v2}/group.go (97%) rename agent/app/api/{v1 => v2}/helper/helper.go (100%) rename agent/app/api/{v1 => v2}/host.go (99%) rename agent/app/api/{v1 => v2}/host_tool.go (98%) rename agent/app/api/{v1 => v2}/image.go (99%) rename agent/app/api/{v1 => v2}/image_repo.go (98%) rename agent/app/api/{v1 => v2}/logs.go (94%) rename agent/app/api/{v1 => v2}/monitor.go (97%) rename agent/app/api/{v1 => v2}/nginx.go (98%) rename agent/app/api/{v1 => v2}/php_extensions.go (97%) rename agent/app/api/{v1 => v2}/process.go (94%) rename agent/app/api/{v1 => v2}/recycle_bin.go (97%) rename agent/app/api/{v1 => v2}/runtime.go (99%) rename agent/app/api/{v1 => v2}/setting.go (96%) rename agent/app/api/{v1 => v2}/snapshot.go (99%) rename agent/app/api/{v1 => v2}/ssh.go (98%) rename agent/app/api/{v1 => v2}/task.go (92%) rename agent/app/api/{v1 => v2}/terminal.go (99%) rename agent/app/api/{v1 => v2}/website.go (99%) rename agent/app/api/{v1 => v2}/website_acme_account.go (97%) rename agent/app/api/{v1 => v2}/website_ca.go (98%) rename agent/app/api/{v1 => v2}/website_dns_account.go (98%) rename agent/app/api/{v1 => v2}/website_domain.go (97%) rename agent/app/api/{v1 => v2}/website_ssl.go (99%) rename core/app/api/{v1 => v2}/auth.go (98%) rename core/app/api/{v1 => v2}/entry.go (96%) rename core/app/api/{v1 => v2}/helper/helper.go (100%) rename core/app/api/{v1 => v2}/logs.go (97%) rename core/app/api/{v1 => v2}/setting.go (99%) rename core/app/api/{v1 => v2}/upgrade.go (96%) diff --git a/agent/app/api/v1/app.go b/agent/app/api/v2/app.go similarity index 98% rename from agent/app/api/v1/app.go rename to agent/app/api/v2/app.go index cbeb07c5f..0ac6396e2 100644 --- a/agent/app/api/v1/app.go +++ b/agent/app/api/v2/app.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/global" diff --git a/agent/app/api/v1/app_install.go b/agent/app/api/v2/app_install.go similarity index 99% rename from agent/app/api/v1/app_install.go rename to agent/app/api/v2/app_install.go index 4429c5d72..4d6bc8c98 100644 --- a/agent/app/api/v1/app_install.go +++ b/agent/app/api/v2/app_install.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "github.com/1Panel-dev/1Panel/agent/app/dto/request" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/backup.go b/agent/app/api/v2/backup.go similarity index 99% rename from agent/app/api/v1/backup.go rename to agent/app/api/v2/backup.go index bb42563da..42b96acc7 100644 --- a/agent/app/api/v1/backup.go +++ b/agent/app/api/v2/backup.go @@ -1,11 +1,11 @@ -package v1 +package v2 import ( "encoding/base64" "fmt" "path" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/clam.go b/agent/app/api/v2/clam.go similarity index 99% rename from agent/app/api/v1/clam.go rename to agent/app/api/v2/clam.go index 936894868..4823628f9 100644 --- a/agent/app/api/v1/clam.go +++ b/agent/app/api/v2/clam.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/command.go b/agent/app/api/v2/command.go similarity index 99% rename from agent/app/api/v1/command.go rename to agent/app/api/v2/command.go index bebcb7e10..b9cb437b1 100644 --- a/agent/app/api/v1/command.go +++ b/agent/app/api/v2/command.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/compose_template.go b/agent/app/api/v2/compose_template.go similarity index 98% rename from agent/app/api/v1/compose_template.go rename to agent/app/api/v2/compose_template.go index c2058def8..553faa7df 100644 --- a/agent/app/api/v1/compose_template.go +++ b/agent/app/api/v2/compose_template.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/container.go b/agent/app/api/v2/container.go similarity index 99% rename from agent/app/api/v1/container.go rename to agent/app/api/v2/container.go index c4f095b64..ed7f9d3b3 100644 --- a/agent/app/api/v1/container.go +++ b/agent/app/api/v2/container.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "strconv" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/global" diff --git a/agent/app/api/v1/cronjob.go b/agent/app/api/v2/cronjob.go similarity index 99% rename from agent/app/api/v1/cronjob.go rename to agent/app/api/v2/cronjob.go index 869d18bcf..8724bc220 100644 --- a/agent/app/api/v1/cronjob.go +++ b/agent/app/api/v2/cronjob.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "time" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/utils/common" diff --git a/agent/app/api/v1/dashboard.go b/agent/app/api/v2/dashboard.go similarity index 97% rename from agent/app/api/v1/dashboard.go rename to agent/app/api/v2/dashboard.go index 42e0d0360..1febbbb5f 100644 --- a/agent/app/api/v1/dashboard.go +++ b/agent/app/api/v2/dashboard.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "errors" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" ) diff --git a/agent/app/api/v1/database.go b/agent/app/api/v2/database.go similarity index 99% rename from agent/app/api/v1/database.go rename to agent/app/api/v2/database.go index 492a4801d..b1cf78379 100644 --- a/agent/app/api/v1/database.go +++ b/agent/app/api/v2/database.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/database_common.go b/agent/app/api/v2/database_common.go similarity index 97% rename from agent/app/api/v1/database_common.go rename to agent/app/api/v2/database_common.go index 0ed2adc94..df7d1b285 100644 --- a/agent/app/api/v1/database_common.go +++ b/agent/app/api/v2/database_common.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/database_mysql.go b/agent/app/api/v2/database_mysql.go similarity index 99% rename from agent/app/api/v1/database_mysql.go rename to agent/app/api/v2/database_mysql.go index db3feda7d..5214203f0 100644 --- a/agent/app/api/v1/database_mysql.go +++ b/agent/app/api/v2/database_mysql.go @@ -1,10 +1,10 @@ -package v1 +package v2 import ( "context" "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/database_postgresql.go b/agent/app/api/v2/database_postgresql.go similarity index 99% rename from agent/app/api/v1/database_postgresql.go rename to agent/app/api/v2/database_postgresql.go index 53f45e267..ff6deed3d 100644 --- a/agent/app/api/v1/database_postgresql.go +++ b/agent/app/api/v2/database_postgresql.go @@ -1,10 +1,10 @@ -package v1 +package v2 import ( "context" "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/database_redis.go b/agent/app/api/v2/database_redis.go similarity index 98% rename from agent/app/api/v1/database_redis.go rename to agent/app/api/v2/database_redis.go index 8483b89ed..357d4e3b6 100644 --- a/agent/app/api/v1/database_redis.go +++ b/agent/app/api/v2/database_redis.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/device.go b/agent/app/api/v2/device.go similarity index 99% rename from agent/app/api/v1/device.go rename to agent/app/api/v2/device.go index 0216465a4..455e3b20a 100644 --- a/agent/app/api/v1/device.go +++ b/agent/app/api/v2/device.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/docker.go b/agent/app/api/v2/docker.go similarity index 98% rename from agent/app/api/v1/docker.go rename to agent/app/api/v2/docker.go index 1434521e4..935930741 100644 --- a/agent/app/api/v1/docker.go +++ b/agent/app/api/v2/docker.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "os" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/entry.go b/agent/app/api/v2/entry.go similarity index 99% rename from agent/app/api/v1/entry.go rename to agent/app/api/v2/entry.go index 11736d137..294f46cf0 100644 --- a/agent/app/api/v1/entry.go +++ b/agent/app/api/v2/entry.go @@ -1,4 +1,4 @@ -package v1 +package v2 import "github.com/1Panel-dev/1Panel/agent/app/service" diff --git a/agent/app/api/v1/fail2ban.go b/agent/app/api/v2/fail2ban.go similarity index 98% rename from agent/app/api/v1/fail2ban.go rename to agent/app/api/v2/fail2ban.go index d0b18b320..2171a9915 100644 --- a/agent/app/api/v1/fail2ban.go +++ b/agent/app/api/v2/fail2ban.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "os" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/favorite.go b/agent/app/api/v2/favorite.go similarity index 97% rename from agent/app/api/v1/favorite.go rename to agent/app/api/v2/favorite.go index 656fd0e8a..98a0e6724 100644 --- a/agent/app/api/v1/favorite.go +++ b/agent/app/api/v2/favorite.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/file.go b/agent/app/api/v2/file.go similarity index 99% rename from agent/app/api/v1/file.go rename to agent/app/api/v2/file.go index fa1be19c3..fbc73a666 100644 --- a/agent/app/api/v1/file.go +++ b/agent/app/api/v2/file.go @@ -1,4 +1,4 @@ -package v1 +package v2 import ( "errors" @@ -12,7 +12,7 @@ import ( "strconv" "strings" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/app/dto/response" diff --git a/agent/app/api/v1/firewall.go b/agent/app/api/v2/firewall.go similarity index 99% rename from agent/app/api/v1/firewall.go rename to agent/app/api/v2/firewall.go index d2f68b711..761016507 100644 --- a/agent/app/api/v1/firewall.go +++ b/agent/app/api/v2/firewall.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/ftp.go b/agent/app/api/v2/ftp.go similarity index 98% rename from agent/app/api/v1/ftp.go rename to agent/app/api/v2/ftp.go index e95423acb..c3073ac64 100644 --- a/agent/app/api/v1/ftp.go +++ b/agent/app/api/v2/ftp.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "encoding/base64" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/group.go b/agent/app/api/v2/group.go similarity index 97% rename from agent/app/api/v1/group.go rename to agent/app/api/v2/group.go index 6a93cb451..233a814fa 100644 --- a/agent/app/api/v1/group.go +++ b/agent/app/api/v2/group.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/helper/helper.go b/agent/app/api/v2/helper/helper.go similarity index 100% rename from agent/app/api/v1/helper/helper.go rename to agent/app/api/v2/helper/helper.go diff --git a/agent/app/api/v1/host.go b/agent/app/api/v2/host.go similarity index 99% rename from agent/app/api/v1/host.go rename to agent/app/api/v2/host.go index 43ff9ec17..957fb7fc4 100644 --- a/agent/app/api/v1/host.go +++ b/agent/app/api/v2/host.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/utils/encrypt" diff --git a/agent/app/api/v1/host_tool.go b/agent/app/api/v2/host_tool.go similarity index 98% rename from agent/app/api/v1/host_tool.go rename to agent/app/api/v2/host_tool.go index 6f9a2e84e..9c6c214a4 100644 --- a/agent/app/api/v1/host_tool.go +++ b/agent/app/api/v2/host_tool.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/image.go b/agent/app/api/v2/image.go similarity index 99% rename from agent/app/api/v1/image.go rename to agent/app/api/v2/image.go index 3b24ba6a7..84ed17cdc 100644 --- a/agent/app/api/v1/image.go +++ b/agent/app/api/v2/image.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/image_repo.go b/agent/app/api/v2/image_repo.go similarity index 98% rename from agent/app/api/v1/image_repo.go rename to agent/app/api/v2/image_repo.go index bd1377c1b..683d5bb70 100644 --- a/agent/app/api/v1/image_repo.go +++ b/agent/app/api/v2/image_repo.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/logs.go b/agent/app/api/v2/logs.go similarity index 94% rename from agent/app/api/v1/logs.go rename to agent/app/api/v2/logs.go index dc8873105..7c5f91291 100644 --- a/agent/app/api/v1/logs.go +++ b/agent/app/api/v2/logs.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/monitor.go b/agent/app/api/v2/monitor.go similarity index 97% rename from agent/app/api/v1/monitor.go rename to agent/app/api/v2/monitor.go index e5b480990..66fc50b38 100644 --- a/agent/app/api/v1/monitor.go +++ b/agent/app/api/v2/monitor.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "sort" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/nginx.go b/agent/app/api/v2/nginx.go similarity index 98% rename from agent/app/api/v1/nginx.go rename to agent/app/api/v2/nginx.go index 2d36a3841..7244becec 100644 --- a/agent/app/api/v1/nginx.go +++ b/agent/app/api/v2/nginx.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/php_extensions.go b/agent/app/api/v2/php_extensions.go similarity index 97% rename from agent/app/api/v1/php_extensions.go rename to agent/app/api/v2/php_extensions.go index 9103af2a6..a031aa97b 100644 --- a/agent/app/api/v1/php_extensions.go +++ b/agent/app/api/v2/php_extensions.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/process.go b/agent/app/api/v2/process.go similarity index 94% rename from agent/app/api/v1/process.go rename to agent/app/api/v2/process.go index 8b2e57c96..8aa2284c1 100644 --- a/agent/app/api/v1/process.go +++ b/agent/app/api/v2/process.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" websocket2 "github.com/1Panel-dev/1Panel/agent/utils/websocket" diff --git a/agent/app/api/v1/recycle_bin.go b/agent/app/api/v2/recycle_bin.go similarity index 97% rename from agent/app/api/v1/recycle_bin.go rename to agent/app/api/v2/recycle_bin.go index eed594386..b4af1483a 100644 --- a/agent/app/api/v1/recycle_bin.go +++ b/agent/app/api/v2/recycle_bin.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/runtime.go b/agent/app/api/v2/runtime.go similarity index 99% rename from agent/app/api/v1/runtime.go rename to agent/app/api/v2/runtime.go index dd8522130..cb6f885cb 100644 --- a/agent/app/api/v1/runtime.go +++ b/agent/app/api/v2/runtime.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/setting.go b/agent/app/api/v2/setting.go similarity index 96% rename from agent/app/api/v1/setting.go rename to agent/app/api/v2/setting.go index a6425cb2e..21859336e 100644 --- a/agent/app/api/v1/setting.go +++ b/agent/app/api/v2/setting.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/global" diff --git a/agent/app/api/v1/snapshot.go b/agent/app/api/v2/snapshot.go similarity index 99% rename from agent/app/api/v1/snapshot.go rename to agent/app/api/v2/snapshot.go index 7f4adfb1f..fffff3e13 100644 --- a/agent/app/api/v1/snapshot.go +++ b/agent/app/api/v2/snapshot.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/ssh.go b/agent/app/api/v2/ssh.go similarity index 98% rename from agent/app/api/v1/ssh.go rename to agent/app/api/v2/ssh.go index 7f6ae6458..60f69f996 100644 --- a/agent/app/api/v1/ssh.go +++ b/agent/app/api/v2/ssh.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/task.go b/agent/app/api/v2/task.go similarity index 92% rename from agent/app/api/v1/task.go rename to agent/app/api/v2/task.go index 741d01a3c..310cc0e51 100644 --- a/agent/app/api/v1/task.go +++ b/agent/app/api/v2/task.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/terminal.go b/agent/app/api/v2/terminal.go similarity index 99% rename from agent/app/api/v1/terminal.go rename to agent/app/api/v2/terminal.go index cedac00a0..5a461e1fe 100644 --- a/agent/app/api/v1/terminal.go +++ b/agent/app/api/v2/terminal.go @@ -1,4 +1,4 @@ -package v1 +package v2 import ( "encoding/base64" diff --git a/agent/app/api/v1/website.go b/agent/app/api/v2/website.go similarity index 99% rename from agent/app/api/v1/website.go rename to agent/app/api/v2/website.go index 4e0372ab0..7241a6811 100644 --- a/agent/app/api/v1/website.go +++ b/agent/app/api/v2/website.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/website_acme_account.go b/agent/app/api/v2/website_acme_account.go similarity index 97% rename from agent/app/api/v1/website_acme_account.go rename to agent/app/api/v2/website_acme_account.go index 5b08a9b2c..e807b6a57 100644 --- a/agent/app/api/v1/website_acme_account.go +++ b/agent/app/api/v2/website_acme_account.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/website_ca.go b/agent/app/api/v2/website_ca.go similarity index 98% rename from agent/app/api/v1/website_ca.go rename to agent/app/api/v2/website_ca.go index 1823944ea..381952509 100644 --- a/agent/app/api/v1/website_ca.go +++ b/agent/app/api/v2/website_ca.go @@ -1,11 +1,11 @@ -package v1 +package v2 import ( "net/http" "net/url" "strconv" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/website_dns_account.go b/agent/app/api/v2/website_dns_account.go similarity index 98% rename from agent/app/api/v1/website_dns_account.go rename to agent/app/api/v2/website_dns_account.go index 9cc184681..a00244583 100644 --- a/agent/app/api/v1/website_dns_account.go +++ b/agent/app/api/v2/website_dns_account.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/api/v1/website_domain.go b/agent/app/api/v2/website_domain.go similarity index 97% rename from agent/app/api/v1/website_domain.go rename to agent/app/api/v2/website_domain.go index 6251e6043..3e255fcdb 100644 --- a/agent/app/api/v1/website_domain.go +++ b/agent/app/api/v2/website_domain.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/app/api/v1/website_ssl.go b/agent/app/api/v2/website_ssl.go similarity index 99% rename from agent/app/api/v1/website_ssl.go rename to agent/app/api/v2/website_ssl.go index e558d5fc1..4d41b413a 100644 --- a/agent/app/api/v1/website_ssl.go +++ b/agent/app/api/v2/website_ssl.go @@ -1,4 +1,4 @@ -package v1 +package v2 import ( "net/http" @@ -6,7 +6,7 @@ import ( "reflect" "strconv" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/constant" diff --git a/agent/app/dto/request/website.go b/agent/app/dto/request/website.go index da4111fee..c97d64078 100644 --- a/agent/app/dto/request/website.go +++ b/agent/app/dto/request/website.go @@ -27,12 +27,12 @@ type WebsiteCreate struct { AppID uint `json:"appID"` AppInstallID uint `json:"appInstallID"` - FtpUser string `json:"ftpUser"` - FtpPassword string `json:"ftpPassword"` - RuntimeID uint `json:"runtimeID"` TaskID string `json:"taskID"` + RuntimeConfig + FtpConfig + DataBaseConfig } type RuntimeConfig struct { @@ -40,6 +40,20 @@ type RuntimeConfig struct { Port int `json:"port"` } +type FtpConfig struct { + FtpUser string `json:"ftpUser"` + FtpPassword string `json:"ftpPassword"` +} + +type DataBaseConfig struct { + CreateDb bool `json:"createDb"` + DbName string `json:"dbName"` + DbUser string `json:"dbUser"` + DbPassword string `json:"dbPassword"` + DbHost string `json:"dbHost"` + DBFormat string `json:"dbFormat"` +} + type NewAppInstall struct { Name string `json:"name"` AppDetailId uint `json:"appDetailID"` diff --git a/agent/app/dto/response/website.go b/agent/app/dto/response/website.go index b99c4fa2a..4aaff56b6 100644 --- a/agent/app/dto/response/website.go +++ b/agent/app/dto/response/website.go @@ -31,6 +31,7 @@ type WebsiteRes struct { RuntimeName string `json:"runtimeName"` SSLExpireDate time.Time `json:"sslExpireDate"` SSLStatus string `json:"sslStatus"` + AppInstallID uint `json:"appInstallId"` } type WebsiteOption struct { diff --git a/agent/app/model/website.go b/agent/app/model/website.go index 34dc72ab4..15748739c 100644 --- a/agent/app/model/website.go +++ b/agent/app/model/website.go @@ -31,6 +31,9 @@ type Website struct { User string `gorm:"type:varchar;" json:"user"` Group string `gorm:"type:varchar;" json:"group"` + DbType string `json:"dbType"` + DbID uint `json:"dbID"` + Domains []WebsiteDomain `json:"domains" gorm:"-:migration"` WebsiteSSL WebsiteSSL `json:"webSiteSSL" gorm:"-:migration"` } diff --git a/agent/app/service/app_utils.go b/agent/app/service/app_utils.go index 0592bd894..bd2ccf222 100644 --- a/agent/app/service/app_utils.go +++ b/agent/app/service/app_utils.go @@ -26,7 +26,7 @@ import ( "github.com/1Panel-dev/1Panel/agent/utils/cmd" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/i18n" "github.com/subosito/gotenv" diff --git a/agent/app/service/website.go b/agent/app/service/website.go index 3ba02f65d..a17938f42 100644 --- a/agent/app/service/website.go +++ b/agent/app/service/website.go @@ -29,7 +29,7 @@ import ( "github.com/1Panel-dev/1Panel/agent/utils/compose" "github.com/1Panel-dev/1Panel/agent/utils/env" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/cmd/server/nginx_conf" "github.com/1Panel-dev/1Panel/agent/utils/cmd" "github.com/1Panel-dev/1Panel/agent/utils/nginx" @@ -141,8 +141,9 @@ func (w WebsiteService) PageWebsite(req request.WebsiteSearch) (int64, []respons } for _, web := range websites { var ( - appName string - runtimeName string + appName string + runtimeName string + appInstallID uint ) switch web.Type { case constant.Deployment: @@ -151,12 +152,14 @@ func (w WebsiteService) PageWebsite(req request.WebsiteSearch) (int64, []respons return 0, nil, err } appName = appInstall.Name + appInstallID = appInstall.ID case constant.Runtime: runtime, err := runtimeRepo.GetFirst(commonRepo.WithByID(web.RuntimeID)) if err != nil { return 0, nil, err } runtimeName = runtime.Name + appInstallID = runtime.ID } sitePath := path.Join(constant.AppInstallDir, constant.AppOpenresty, nginxInstall.Name, "www", "sites", web.Alias) @@ -175,6 +178,7 @@ func (w WebsiteService) PageWebsite(req request.WebsiteSearch) (int64, []respons SSLStatus: checkSSLStatus(web.WebsiteSSL.ExpireDate), RuntimeName: runtimeName, SitePath: sitePath, + AppInstallID: appInstallID, }) } return total, websiteDTOs, nil @@ -263,10 +267,62 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error) return err } + if create.CreateDb { + createDataBase := func(t *task.Task) error { + database, _ := databaseRepo.Get(commonRepo.WithByName(create.DbHost)) + if database.ID == 0 { + return nil + } + dbConfig := create.DataBaseConfig + switch database.Type { + case constant.AppPostgresql, constant.AppPostgres: + iPostgresqlRepo := repo.NewIPostgresqlRepo() + oldPostgresqlDb, _ := iPostgresqlRepo.Get(commonRepo.WithByName(create.DbName), iPostgresqlRepo.WithByFrom(constant.ResourceLocal)) + if oldPostgresqlDb.ID > 0 { + return buserr.New(constant.ErrDbUserNotValid) + } + var createPostgresql dto.PostgresqlDBCreate + createPostgresql.Name = dbConfig.DbName + createPostgresql.Username = dbConfig.DbUser + createPostgresql.Database = database.Name + createPostgresql.Format = dbConfig.DBFormat + createPostgresql.Password = dbConfig.DbPassword + createPostgresql.From = database.From + createPostgresql.SuperUser = true + pgDB, err := NewIPostgresqlService().Create(context.Background(), createPostgresql) + if err != nil { + return err + } + website.DbID = pgDB.ID + website.DbType = database.Type + case constant.AppMysql, constant.AppMariaDB: + iMysqlRepo := repo.NewIMysqlRepo() + oldMysqlDb, _ := iMysqlRepo.Get(commonRepo.WithByName(dbConfig.DbName), iMysqlRepo.WithByFrom(constant.ResourceLocal)) + if oldMysqlDb.ID > 0 { + return buserr.New(constant.ErrDbUserNotValid) + } + var createMysql dto.MysqlDBCreate + createMysql.Name = dbConfig.DbName + createMysql.Username = dbConfig.DbUser + createMysql.Database = database.Name + createMysql.Format = dbConfig.DBFormat + createMysql.Permission = "%" + createMysql.Password = dbConfig.DbPassword + createMysql.From = database.From + mysqlDB, err := NewIMysqlService().Create(context.Background(), createMysql) + if err != nil { + return err + } + website.DbID = mysqlDB.ID + website.DbType = database.Type + } + return nil + } + createTask.AddSubTask(task.GetTaskName(create.DbName, task.TaskCreate, task.TaskScopeDatabase), createDataBase, nil) + } + var proxy string - switch create.Type { - case constant.Deployment: if create.AppType == constant.NewApp { var ( @@ -349,8 +405,7 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error) } deleteFtpUser := func(t *task.Task) { if website.FtpID > 0 { - req := dto.BatchDeleteReq{Ids: []uint{website.FtpID}} - if err = NewIFtpService().Delete(req); err != nil { + if err = NewIFtpService().Delete(dto.BatchDeleteReq{Ids: []uint{website.FtpID}}); err != nil { createTask.Log(err.Error()) } } diff --git a/agent/init/migration/migrate.go b/agent/init/migration/migrate.go index 2fc823c6e..cd8732407 100644 --- a/agent/init/migration/migrate.go +++ b/agent/init/migration/migrate.go @@ -18,6 +18,7 @@ func Init() { migrations.InitDefaultCA, migrations.InitPHPExtensions, migrations.AddTask, + migrations.UpdateWebsite, }) if err := m.Migrate(); err != nil { global.LOG.Error(err) diff --git a/agent/init/migration/migrations/init.go b/agent/init/migration/migrations/init.go index fb7268b3d..79e579d00 100644 --- a/agent/init/migration/migrations/init.go +++ b/agent/init/migration/migrations/init.go @@ -295,3 +295,11 @@ var AddTask = &gormigrate.Migration{ &model.Task{}) }, } + +var UpdateWebsite = &gormigrate.Migration{ + ID: "20240803-update-website", + Migrate: func(tx *gorm.DB) error { + return tx.AutoMigrate( + &model.Website{}) + }, +} diff --git a/agent/middleware/certificate.go b/agent/middleware/certificate.go index 46e3a2e21..8e367f2e5 100644 --- a/agent/middleware/certificate.go +++ b/agent/middleware/certificate.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/1Panel-dev/1Panel/agent/global" "github.com/gin-gonic/gin" diff --git a/agent/middleware/loading.go b/agent/middleware/loading.go index f935e34d6..82a15d320 100644 --- a/agent/middleware/loading.go +++ b/agent/middleware/loading.go @@ -1,7 +1,7 @@ package middleware import ( - "github.com/1Panel-dev/1Panel/agent/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/agent/app/api/v2/helper" "github.com/1Panel-dev/1Panel/agent/app/repo" "github.com/1Panel-dev/1Panel/agent/constant" "github.com/gin-gonic/gin" diff --git a/agent/router/ro_app.go b/agent/router/ro_app.go index 82cf8d02b..feb389b15 100644 --- a/agent/router/ro_app.go +++ b/agent/router/ro_app.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type AppRouter struct { func (a *AppRouter) InitRouter(Router *gin.RouterGroup) { appRouter := Router.Group("apps") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { appRouter.POST("/sync", baseApi.SyncApp) appRouter.GET("/checkupdate", baseApi.GetAppListUpdate) diff --git a/agent/router/ro_container.go b/agent/router/ro_container.go index 683c8f8e6..eaabbbfec 100644 --- a/agent/router/ro_container.go +++ b/agent/router/ro_container.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -9,7 +9,7 @@ type ContainerRouter struct{} func (s *ContainerRouter) InitRouter(Router *gin.RouterGroup) { baRouter := Router.Group("containers") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { baRouter.GET("/exec", baseApi.ContainerWsSsh) baRouter.GET("/stats/:id", baseApi.ContainerStats) diff --git a/agent/router/ro_cronjob.go b/agent/router/ro_cronjob.go index fc4a6a780..ab064212c 100644 --- a/agent/router/ro_cronjob.go +++ b/agent/router/ro_cronjob.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type CronjobRouter struct{} func (s *CronjobRouter) InitRouter(Router *gin.RouterGroup) { cmdRouter := Router.Group("cronjobs") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { cmdRouter.POST("", baseApi.CreateCronjob) cmdRouter.POST("/del", baseApi.DeleteCronjob) diff --git a/agent/router/ro_dashboard.go b/agent/router/ro_dashboard.go index 0dded9250..2d8d04e0a 100644 --- a/agent/router/ro_dashboard.go +++ b/agent/router/ro_dashboard.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type DashboardRouter struct{} func (s *DashboardRouter) InitRouter(Router *gin.RouterGroup) { cmdRouter := Router.Group("dashboard") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { cmdRouter.GET("/base/os", baseApi.LoadDashboardOsInfo) cmdRouter.GET("/base/:ioOption/:netOption", baseApi.LoadDashboardBaseInfo) diff --git a/agent/router/ro_database.go b/agent/router/ro_database.go index 0bb99b1eb..8141a945c 100644 --- a/agent/router/ro_database.go +++ b/agent/router/ro_database.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type DatabaseRouter struct{} func (s *DatabaseRouter) InitRouter(Router *gin.RouterGroup) { cmdRouter := Router.Group("databases") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { cmdRouter.POST("/common/info", baseApi.LoadDBBaseInfo) cmdRouter.POST("/common/load/file", baseApi.LoadDBFile) diff --git a/agent/router/ro_file.go b/agent/router/ro_file.go index 68d09a1e9..df432711b 100644 --- a/agent/router/ro_file.go +++ b/agent/router/ro_file.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +10,7 @@ type FileRouter struct { func (f *FileRouter) InitRouter(Router *gin.RouterGroup) { fileRouter := Router.Group("files") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { fileRouter.POST("/search", baseApi.ListFiles) fileRouter.POST("/upload/search", baseApi.SearchUploadWithPage) diff --git a/agent/router/ro_group.go b/agent/router/ro_group.go index 8e263dbe1..4cf92a080 100644 --- a/agent/router/ro_group.go +++ b/agent/router/ro_group.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteGroupRouter struct { func (a *WebsiteGroupRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("groups") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.POST("", baseApi.CreateGroup) groupRouter.POST("/del", baseApi.DeleteGroup) diff --git a/agent/router/ro_host.go b/agent/router/ro_host.go index 15da26225..15990d97a 100644 --- a/agent/router/ro_host.go +++ b/agent/router/ro_host.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type HostRouter struct{} func (s *HostRouter) InitRouter(Router *gin.RouterGroup) { hostRouter := Router.Group("hosts") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { hostRouter.POST("", baseApi.CreateHost) hostRouter.POST("/del", baseApi.DeleteHost) diff --git a/agent/router/ro_log.go b/agent/router/ro_log.go index 9849782c9..693b1bbc6 100644 --- a/agent/router/ro_log.go +++ b/agent/router/ro_log.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type LogRouter struct{} func (s *LogRouter) InitRouter(Router *gin.RouterGroup) { operationRouter := Router.Group("logs") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { operationRouter.GET("/system/files", baseApi.GetSystemFiles) operationRouter.POST("/system", baseApi.GetSystemLogs) diff --git a/agent/router/ro_nginx.go b/agent/router/ro_nginx.go index aa57eac5e..f4f1ea772 100644 --- a/agent/router/ro_nginx.go +++ b/agent/router/ro_nginx.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type NginxRouter struct { func (a *NginxRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("openresty") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.GET("", baseApi.GetNginx) groupRouter.POST("/scope", baseApi.GetNginxConfigByScope) diff --git a/agent/router/ro_process.go b/agent/router/ro_process.go index 677ce1829..01c2fd8b8 100644 --- a/agent/router/ro_process.go +++ b/agent/router/ro_process.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +10,7 @@ type ProcessRouter struct { func (f *ProcessRouter) InitRouter(Router *gin.RouterGroup) { processRouter := Router.Group("process") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { processRouter.GET("/ws", baseApi.ProcessWs) processRouter.POST("/stop", baseApi.StopProcess) diff --git a/agent/router/ro_runtime.go b/agent/router/ro_runtime.go index 8bda07e57..b0f2af8e1 100644 --- a/agent/router/ro_runtime.go +++ b/agent/router/ro_runtime.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type RuntimeRouter struct { func (r *RuntimeRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("runtimes") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.GET("/installed/delete/check/:runTimeId", baseApi.DeleteRuntimeCheck) groupRouter.POST("/search", baseApi.SearchRuntimes) diff --git a/agent/router/ro_setting.go b/agent/router/ro_setting.go index 823124ec5..b5388dc0b 100644 --- a/agent/router/ro_setting.go +++ b/agent/router/ro_setting.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -9,7 +9,7 @@ type SettingRouter struct{} func (s *SettingRouter) InitRouter(Router *gin.RouterGroup) { settingRouter := Router.Group("settings") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { settingRouter.POST("/search", baseApi.GetSettingInfo) settingRouter.GET("/search/available", baseApi.GetSystemAvailable) diff --git a/agent/router/ro_terminal.go b/agent/router/ro_terminal.go index 5ddcd9201..ec17a3146 100644 --- a/agent/router/ro_terminal.go +++ b/agent/router/ro_terminal.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type TerminalRouter struct{} func (s *TerminalRouter) InitRouter(Router *gin.RouterGroup) { terminalRouter := Router.Group("terminals") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { terminalRouter.GET("", baseApi.WsSsh) } diff --git a/agent/router/ro_toolbox.go b/agent/router/ro_toolbox.go index bff40ad99..a72fe546c 100644 --- a/agent/router/ro_toolbox.go +++ b/agent/router/ro_toolbox.go @@ -1,8 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" - + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +9,7 @@ type ToolboxRouter struct{} func (s *ToolboxRouter) InitRouter(Router *gin.RouterGroup) { toolboxRouter := Router.Group("toolbox") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { toolboxRouter.POST("/device/base", baseApi.LoadDeviceBaseInfo) toolboxRouter.GET("/device/zone/options", baseApi.LoadTimeOption) diff --git a/agent/router/ro_website.go b/agent/router/ro_website.go index ddb336c07..6a5f7772f 100644 --- a/agent/router/ro_website.go +++ b/agent/router/ro_website.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteRouter struct { func (a *WebsiteRouter) InitRouter(Router *gin.RouterGroup) { websiteRouter := Router.Group("websites") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { websiteRouter.POST("/search", baseApi.PageWebsite) websiteRouter.GET("/list", baseApi.GetWebsites) diff --git a/agent/router/ro_website_acme_account.go b/agent/router/ro_website_acme_account.go index 9a973cdb6..d1e69ec90 100644 --- a/agent/router/ro_website_acme_account.go +++ b/agent/router/ro_website_acme_account.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteAcmeAccountRouter struct { func (a *WebsiteAcmeAccountRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("websites/acme") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.POST("/search", baseApi.PageWebsiteAcmeAccount) groupRouter.POST("", baseApi.CreateWebsiteAcmeAccount) diff --git a/agent/router/ro_website_ca.go b/agent/router/ro_website_ca.go index 87380e796..e86585a3f 100644 --- a/agent/router/ro_website_ca.go +++ b/agent/router/ro_website_ca.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteCARouter struct { func (a *WebsiteCARouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("websites/ca") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.POST("/search", baseApi.PageWebsiteCA) groupRouter.POST("", baseApi.CreateWebsiteCA) diff --git a/agent/router/ro_website_dns_account.go b/agent/router/ro_website_dns_account.go index 2498883d0..80c008c95 100644 --- a/agent/router/ro_website_dns_account.go +++ b/agent/router/ro_website_dns_account.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteDnsAccountRouter struct { func (a *WebsiteDnsAccountRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("websites/dns") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.POST("/search", baseApi.PageWebsiteDnsAccount) groupRouter.POST("", baseApi.CreateWebsiteDnsAccount) diff --git a/agent/router/ro_website_ssl.go b/agent/router/ro_website_ssl.go index cba76f7b3..beb7d3b69 100644 --- a/agent/router/ro_website_ssl.go +++ b/agent/router/ro_website_ssl.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/agent/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/agent/app/api/v2" "github.com/gin-gonic/gin" ) @@ -11,7 +11,7 @@ type WebsiteSSLRouter struct { func (a *WebsiteSSLRouter) InitRouter(Router *gin.RouterGroup) { groupRouter := Router.Group("websites/ssl") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { groupRouter.POST("/search", baseApi.PageWebsiteSSL) groupRouter.POST("", baseApi.CreateWebsiteSSL) diff --git a/cmd/server/docs/docs.go b/cmd/server/docs/docs.go index 8bebecca5..1a095b0a3 100644 --- a/cmd/server/docs/docs.go +++ b/cmd/server/docs/docs.go @@ -3482,28 +3482,6 @@ const docTemplate = `{ ] } }, - "/core/settings/basedir": { - "get": { - "description": "获取安装根目录", - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "string" - } - } - }, - "security": [ - { - "ApiKeyAuth": [] - } - ], - "summary": "Load local backup dir", - "tags": [ - "System Setting" - ] - } - }, "/core/settings/bind/update": { "post": { "consumes": [ @@ -9083,7 +9061,7 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "summary": "Clean monitor datas", + "summary": "Clean monitor data", "tags": [ "Monitor" ], @@ -9120,12 +9098,71 @@ const docTemplate = `{ "ApiKeyAuth": [] } ], - "summary": "Load monitor datas", + "summary": "Load monitor data", "tags": [ "Monitor" ] } }, + "/hosts/monitor/setting": { + "get": { + "description": "获取默认监控设置", + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Load monitor setting", + "tags": [ + "Monitor" + ] + } + }, + "/hosts/monitor/setting/update": { + "post": { + "description": "更新默认监控设置", + "parameters": [ + { + "description": "request", + "in": "body", + "name": "request", + "required": true, + "schema": { + "$ref": "#/definitions/dto.MonitorSettingUpdate" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "security": [ + { + "ApiKeyAuth": [] + } + ], + "summary": "Update monitor setting", + "tags": [ + "Monitor" + ], + "x-panel-log": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update default monitor [name]-[value]", + "formatZH": "修改默认监控网卡 [name]-[value]", + "paramKeys": [] + } + } + }, "/hosts/search": { "post": { "consumes": [ @@ -17958,6 +17995,26 @@ const docTemplate = `{ ], "type": "object" }, + "dto.MonitorSettingUpdate": { + "properties": { + "key": { + "enum": [ + "MonitorStatus", + "MonitorStoreDays", + "MonitorInterval", + "DefaultNetwork" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": [ + "key" + ], + "type": "object" + }, "dto.MysqlDBCreate": { "properties": { "database": { @@ -19938,6 +19995,12 @@ const docTemplate = `{ "createdAt": { "type": "string" }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, "defaultServer": { "type": "boolean" }, @@ -20297,6 +20360,9 @@ const docTemplate = `{ "deleteDB": { "type": "boolean" }, + "deleteImage": { + "type": "boolean" + }, "detailId": { "type": "integer" }, @@ -21788,6 +21854,24 @@ const docTemplate = `{ ], "type": "string" }, + "createDb": { + "type": "boolean" + }, + "dbFormat": { + "type": "string" + }, + "dbHost": { + "type": "string" + }, + "dbName": { + "type": "string" + }, + "dbPassword": { + "type": "string" + }, + "dbUser": { + "type": "string" + }, "ftpPassword": { "type": "string" }, @@ -23081,6 +23165,12 @@ const docTemplate = `{ "createdAt": { "type": "string" }, + "dbID": { + "type": "integer" + }, + "dbType": { + "type": "string" + }, "defaultServer": { "type": "boolean" }, @@ -23257,4 +23347,4 @@ var SwaggerInfo = &swag.Spec{ func init() { swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) -} \ No newline at end of file +} diff --git a/cmd/server/docs/x-log.json b/cmd/server/docs/x-log.json index 9be70a428..7cbd22762 100644 --- a/cmd/server/docs/x-log.json +++ b/cmd/server/docs/x-log.json @@ -1403,6 +1403,16 @@ "formatZH": "清空监控数据", "paramKeys": [] }, + "/hosts/monitor/setting/update": { + "BeforeFunctions": [], + "bodyKeys": [ + "key", + "value" + ], + "formatEN": "update default monitor [name]-[value]", + "formatZH": "修改默认监控网卡 [name]-[value]", + "paramKeys": [] + }, "/hosts/update": { "BeforeFunctions": [], "bodyKeys": [ diff --git a/core/app/api/v1/auth.go b/core/app/api/v2/auth.go similarity index 98% rename from core/app/api/v1/auth.go rename to core/app/api/v2/auth.go index 2688d0f9a..8536749bc 100644 --- a/core/app/api/v1/auth.go +++ b/core/app/api/v2/auth.go @@ -1,9 +1,9 @@ -package v1 +package v2 import ( "encoding/base64" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/dto" "github.com/1Panel-dev/1Panel/core/app/model" "github.com/1Panel-dev/1Panel/core/constant" diff --git a/core/app/api/v1/entry.go b/core/app/api/v2/entry.go similarity index 96% rename from core/app/api/v1/entry.go rename to core/app/api/v2/entry.go index f1a2c5c36..3cd4f0dcc 100644 --- a/core/app/api/v1/entry.go +++ b/core/app/api/v2/entry.go @@ -1,4 +1,4 @@ -package v1 +package v2 import "github.com/1Panel-dev/1Panel/core/app/service" diff --git a/core/app/api/v1/helper/helper.go b/core/app/api/v2/helper/helper.go similarity index 100% rename from core/app/api/v1/helper/helper.go rename to core/app/api/v2/helper/helper.go diff --git a/core/app/api/v1/logs.go b/core/app/api/v2/logs.go similarity index 97% rename from core/app/api/v1/logs.go rename to core/app/api/v2/logs.go index 841c969d4..7b560e24e 100644 --- a/core/app/api/v1/logs.go +++ b/core/app/api/v2/logs.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/dto" "github.com/1Panel-dev/1Panel/core/constant" "github.com/gin-gonic/gin" diff --git a/core/app/api/v1/setting.go b/core/app/api/v2/setting.go similarity index 99% rename from core/app/api/v1/setting.go rename to core/app/api/v2/setting.go index 6f16c9b18..d1286b42b 100644 --- a/core/app/api/v1/setting.go +++ b/core/app/api/v2/setting.go @@ -1,4 +1,4 @@ -package v1 +package v2 import ( "encoding/base64" @@ -6,7 +6,7 @@ import ( "os" "path" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/dto" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/global" diff --git a/core/app/api/v1/upgrade.go b/core/app/api/v2/upgrade.go similarity index 96% rename from core/app/api/v1/upgrade.go rename to core/app/api/v2/upgrade.go index 1420c7ca9..90da70b90 100644 --- a/core/app/api/v1/upgrade.go +++ b/core/app/api/v2/upgrade.go @@ -1,7 +1,7 @@ -package v1 +package v2 import ( - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/dto" "github.com/1Panel-dev/1Panel/core/constant" "github.com/gin-gonic/gin" diff --git a/core/middleware/bind_domain.go b/core/middleware/bind_domain.go index 09c33a540..128780e07 100644 --- a/core/middleware/bind_domain.go +++ b/core/middleware/bind_domain.go @@ -4,7 +4,7 @@ import ( "errors" "strings" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/constant" "github.com/gin-gonic/gin" diff --git a/core/middleware/ip_limit.go b/core/middleware/ip_limit.go index 86243ff38..1b3e491c6 100644 --- a/core/middleware/ip_limit.go +++ b/core/middleware/ip_limit.go @@ -5,7 +5,7 @@ import ( "net" "strings" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/global" diff --git a/core/middleware/jwt.go b/core/middleware/jwt.go index d9fad1d64..b65e2edde 100644 --- a/core/middleware/jwt.go +++ b/core/middleware/jwt.go @@ -3,7 +3,7 @@ package middleware import ( "strings" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/constant" jwtUtils "github.com/1Panel-dev/1Panel/core/utils/jwt" diff --git a/core/middleware/loading.go b/core/middleware/loading.go index 0727b7238..fca8afe73 100644 --- a/core/middleware/loading.go +++ b/core/middleware/loading.go @@ -1,7 +1,7 @@ package middleware import ( - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/constant" "github.com/gin-gonic/gin" diff --git a/core/middleware/password_expired.go b/core/middleware/password_expired.go index 84ac28c8b..8efd2f809 100644 --- a/core/middleware/password_expired.go +++ b/core/middleware/password_expired.go @@ -5,7 +5,7 @@ import ( "strings" "time" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/utils/common" diff --git a/core/middleware/proxy.go b/core/middleware/proxy.go index 7c8b425ef..e25ee4210 100644 --- a/core/middleware/proxy.go +++ b/core/middleware/proxy.go @@ -8,7 +8,7 @@ import ( "os" "strings" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/utils/xpack" "github.com/gin-gonic/gin" diff --git a/core/middleware/session.go b/core/middleware/session.go index c2df9d6c1..303c9094e 100644 --- a/core/middleware/session.go +++ b/core/middleware/session.go @@ -4,7 +4,7 @@ import ( "strconv" "strings" - "github.com/1Panel-dev/1Panel/core/app/api/v1/helper" + "github.com/1Panel-dev/1Panel/core/app/api/v2/helper" "github.com/1Panel-dev/1Panel/core/app/repo" "github.com/1Panel-dev/1Panel/core/constant" "github.com/1Panel-dev/1Panel/core/global" diff --git a/core/router/ro_base.go b/core/router/ro_base.go index f11cbf4d3..3c38c7eac 100644 --- a/core/router/ro_base.go +++ b/core/router/ro_base.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/core/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/core/app/api/v2" "github.com/gin-gonic/gin" ) @@ -9,7 +9,7 @@ type BaseRouter struct{} func (s *BaseRouter) InitRouter(Router *gin.RouterGroup) { baseRouter := Router.Group("auth") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { baseRouter.GET("/captcha", baseApi.Captcha) baseRouter.POST("/mfalogin", baseApi.MFALogin) diff --git a/core/router/ro_log.go b/core/router/ro_log.go index f738b0661..d38cb36fe 100644 --- a/core/router/ro_log.go +++ b/core/router/ro_log.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/core/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/core/app/api/v2" "github.com/gin-gonic/gin" ) @@ -10,7 +10,7 @@ type LogRouter struct{} func (s *LogRouter) InitRouter(Router *gin.RouterGroup) { operationRouter := Router.Group("logs") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { operationRouter.POST("/login", baseApi.GetLoginLogs) operationRouter.POST("/operation", baseApi.GetOperationLogs) diff --git a/core/router/ro_setting.go b/core/router/ro_setting.go index 047af70ec..0b53931f5 100644 --- a/core/router/ro_setting.go +++ b/core/router/ro_setting.go @@ -1,7 +1,7 @@ package router import ( - v1 "github.com/1Panel-dev/1Panel/core/app/api/v1" + v2 "github.com/1Panel-dev/1Panel/core/app/api/v2" "github.com/gin-gonic/gin" ) @@ -9,7 +9,7 @@ type SettingRouter struct{} func (s *SettingRouter) InitRouter(Router *gin.RouterGroup) { settingRouter := Router.Group("settings") - baseApi := v1.ApiGroupApp.BaseApi + baseApi := v2.ApiGroupApp.BaseApi { settingRouter.POST("/search", baseApi.GetSettingInfo) settingRouter.POST("/expired/handle", baseApi.HandlePasswordExpired) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 9f0ad1897..188b29854 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -2127,6 +2127,7 @@ const message = { sni: 'Origin SNI', sniHelper: "When the reverse proxy backend is HTTPS, you might need to set the origin SNI. Please refer to the CDN service provider's documentation for details.", + createDb: 'Create Database', }, php: { short_open_tag: 'Short tag support', diff --git a/frontend/src/lang/modules/tw.ts b/frontend/src/lang/modules/tw.ts index d9bfc5828..22163613b 100644 --- a/frontend/src/lang/modules/tw.ts +++ b/frontend/src/lang/modules/tw.ts @@ -1977,6 +1977,7 @@ const message = { website404Helper: '網站 404 錯誤頁僅支援 PHP 運行環境網站和靜態網站', sni: '回源 SNI', sniHelper: '反代後端為 https 的時候可能需要設置回源 SNI,具體需要看 CDN 服務商文檔', + createDb: '建立資料庫', }, php: { short_open_tag: '短標簽支持', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index a545d66d3..3ded6bdd0 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -1979,6 +1979,7 @@ const message = { website404Helper: '网站 404 错误页仅支持 PHP 运行环境网站和静态网站', sni: '回源 SNI', sniHelper: '反代后端为 https 的时候可能需要设置回源 SNI,具体需要看 CDN 服务商文档', + createDb: '创建数据库', }, php: { short_open_tag: '短标签支持', diff --git a/frontend/src/views/website/website/create/index.vue b/frontend/src/views/website/website/create/index.vue index 5e9098d2b..5cae87cff 100644 --- a/frontend/src/views/website/website/create/index.vue +++ b/frontend/src/views/website/website/create/index.vue @@ -349,6 +349,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -389,6 +455,7 @@ import { SearchRuntimes } from '@/api/modules/runtime'; import { Runtime } from '@/api/interface/runtime'; import { getRandomStr } from '@/utils/util'; import TaskLog from '@/components/task-log/index.vue'; +import { GetAppService } from '@/api/modules/app'; import { v4 as uuidv4 } from 'uuid'; const websiteForm = ref(); @@ -428,6 +495,13 @@ const website = ref({ proxyAddress: '', runtimeType: 'php', taskID: '', + createDb: false, + dbName: '', + dbPassword: '', + dbFormat: 'utf8mb4', + dbUser: '', + dbType: 'mysql', + dbHost: '', }); const rules = ref({ primaryDomain: [Rules.domainWithPort], @@ -451,6 +525,10 @@ const rules = ref({ proxyType: [Rules.requiredSelect], port: [Rules.port], runtimeType: [Rules.requiredInput], + dbName: [Rules.requiredInput, Rules.dbName], + dbUser: [Rules.requiredInput, Rules.name], + dbPassword: [Rules.requiredInput, Rules.paramComplexity], + dbHost: [Rules.requiredSelect], }); const open = ref(false); @@ -480,6 +558,7 @@ const runtimes = ref([]); const versionExist = ref(true); const em = defineEmits(['close']); const taskLog = ref(); +const dbServices = ref(); const handleClose = () => { open.value = false; @@ -490,6 +569,10 @@ const random = async () => { website.value.ftpPassword = getRandomStr(16); }; +const randomDbPassword = async () => { + website.value.dbPassword = getRandomStr(16); +}; + const changeType = (type: string) => { switch (type) { case 'deployment': @@ -500,6 +583,7 @@ const changeType = (type: string) => { break; case 'runtime': getRuntimes(); + getAppByService(website.value.dbType); break; case 'proxy': website.value.proxyAddress = ''; @@ -523,6 +607,11 @@ const searchAppInstalled = (appType: string) => { }); }; +const getAppByService = async (key: string) => { + const res = await GetAppService(key); + dbServices.value = res.data; +}; + const changeInstall = () => { appInstalls.value.forEach((app) => { if (app.id === website.value.appInstallId) {