From 1fbea148e382fce944fec3ee24ab0e0132b797dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Wed, 29 May 2024 21:31:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E5=8C=85=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/console/commands/cert_renew.go | 6 +- app/console/commands/monitoring.go | 12 +- app/console/commands/panel.go | 336 +++++++++--------- app/console/commands/panel_task.go | 4 +- app/console/kernel.go | 2 +- app/http/controllers/asset_controller.go | 6 +- app/http/controllers/cert_controller.go | 12 +- app/http/controllers/container_controller.go | 8 +- app/http/controllers/cron_controller.go | 8 +- app/http/controllers/file_controller.go | 6 +- app/http/controllers/info_controller.go | 8 +- app/http/controllers/monitor_controller.go | 6 +- app/http/controllers/plugin_controller.go | 6 +- .../plugins/fail2ban_controller.go | 12 +- .../controllers/plugins/mysql_controller.go | 10 +- .../plugins/openresty_controller.go | 4 +- .../controllers/plugins/php_controller.go | 6 +- .../plugins/phpmyadmin_controller.go | 4 +- .../plugins/postgresql15_controller.go | 12 +- .../plugins/postgresql16_controller.go | 12 +- .../plugins/pureftpd_controller.go | 4 +- .../controllers/plugins/redis_controller.go | 6 +- .../controllers/plugins/rsync_controller.go | 14 +- .../controllers/plugins/s3fs_controller.go | 10 +- .../plugins/supervisor_controller.go | 4 +- .../controllers/plugins/toolbox_controller.go | 4 +- app/http/controllers/safe_controller.go | 4 +- app/http/controllers/setting_controller.go | 10 +- app/http/controllers/ssh_controller.go | 8 +- app/http/controllers/swagger_controller.go | 2 +- app/http/controllers/task_controller.go | 4 +- app/http/controllers/user_controller.go | 4 +- app/http/controllers/website_controller.go | 12 +- app/http/kernel.go | 2 +- app/http/middleware/must_install.go | 2 +- app/http/middleware/status.go | 2 +- app/http/requests/cert/dns_store.go | 2 +- app/http/requests/cert/dns_update.go | 2 +- .../requests/container/container_create.go | 2 +- .../requests/container/container_update.go | 2 +- app/http/requests/container/network_create.go | 2 +- app/http/requests/container/volume_create.go | 2 +- app/jobs/process_task.go | 2 +- app/models/cert_dns.go | 2 +- app/models/monitor.go | 2 +- app/providers/console_service_provider.go | 2 +- app/providers/database_service_provider.go | 2 +- app/providers/queue_service_provider.go | 2 +- app/providers/route_service_provider.go | 4 +- app/providers/validation_service_provider.go | 2 +- app/rules/captcha.go | 2 +- app/rules/path_exist.go | 2 +- app/rules/path_not_exist.go | 2 +- bootstrap/app.go | 2 +- config/app.go | 2 +- go.mod | 4 +- internal/backup.go | 2 +- internal/cert.go | 6 +- internal/container.go | 4 +- internal/cron.go | 2 +- internal/php.go | 2 +- internal/plugin.go | 2 +- internal/services/backup.go | 6 +- internal/services/cert.go | 8 +- internal/services/container.go | 4 +- internal/services/cron.go | 4 +- internal/services/php.go | 8 +- internal/services/plugin.go | 4 +- internal/services/setting.go | 2 +- internal/services/task.go | 4 +- internal/services/user.go | 2 +- internal/services/website.go | 8 +- internal/user.go | 2 +- internal/website.go | 4 +- main.go | 4 +- pkg/ssh/ssh.go | 2 +- pkg/tools/tools.go | 70 ++-- routes/api.go | 4 +- routes/plugin.go | 4 +- tests/setting/setting_test.go | 6 +- tests/test_case.go | 2 +- tests/user/user_test.go | 8 +- 82 files changed, 395 insertions(+), 395 deletions(-) diff --git a/app/console/commands/cert_renew.go b/app/console/commands/cert_renew.go index 845aa453..25c3ded6 100644 --- a/app/console/commands/cert_renew.go +++ b/app/console/commands/cert_renew.go @@ -10,9 +10,9 @@ import ( "github.com/goravel/framework/facades" "github.com/goravel/framework/support/carbon" - "panel/app/models" - "panel/internal" - "panel/internal/services" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" ) // CertRenew 证书续签 diff --git a/app/console/commands/monitoring.go b/app/console/commands/monitoring.go index f7dad5a2..0f2b10f1 100644 --- a/app/console/commands/monitoring.go +++ b/app/console/commands/monitoring.go @@ -4,17 +4,17 @@ import ( "context" "strconv" - "github.com/gookit/color" "github.com/goravel/framework/contracts/console" "github.com/goravel/framework/contracts/console/command" "github.com/goravel/framework/facades" "github.com/goravel/framework/support/carbon" + "github.com/goravel/framework/support/color" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) // Monitoring 系统监控 @@ -77,7 +77,7 @@ func (receiver *Monitoring) Handle(console.Context) error { }) if err != nil { facades.Log().Infof("[面板] 系统监控保存失败: %s", err.Error()) - color.Redf(translate.Get("commands.panel:monitoring.fail")+": %s", err.Error()) + color.Red().Printfln(translate.Get("commands.panel:monitoring.fail")+": %s", err.Error()) return nil } diff --git a/app/console/commands/panel.go b/app/console/commands/panel.go index d6f6cfc4..85c647ca 100644 --- a/app/console/commands/panel.go +++ b/app/console/commands/panel.go @@ -8,17 +8,17 @@ import ( "sort" "strings" - "github.com/gookit/color" "github.com/goravel/framework/contracts/console" "github.com/goravel/framework/contracts/console/command" "github.com/goravel/framework/facades" "github.com/goravel/framework/support/carbon" + "github.com/goravel/framework/support/color" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) // Panel 面板命令行 @@ -59,69 +59,69 @@ func (receiver *Panel) Handle(ctx console.Context) error { var check models.User err := facades.Orm().Query().FirstOrFail(&check) if err == nil { - color.Redln(translate.Get("commands.panel.init.exist")) + color.Red().Printfln(translate.Get("commands.panel.init.exist")) return nil } settings := []models.Setting{{Key: models.SettingKeyName, Value: "耗子 Linux 面板"}, {Key: models.SettingKeyMonitor, Value: "1"}, {Key: models.SettingKeyMonitorDays, Value: "30"}, {Key: models.SettingKeyBackupPath, Value: "/www/backup"}, {Key: models.SettingKeyWebsitePath, Value: "/www/wwwroot"}, {Key: models.SettingKeyVersion, Value: facades.Config().GetString("panel.version")}} err = facades.Orm().Query().Create(&settings) if err != nil { - color.Redln(translate.Get("commands.panel.init.fail")) + color.Red().Printfln(translate.Get("commands.panel.init.fail")) return nil } hash, err := facades.Hash().Make(tools.RandomString(32)) if err != nil { - color.Redln(translate.Get("commands.panel.init.fail")) + color.Red().Printfln(translate.Get("commands.panel.init.fail")) return nil } user := services.NewUserImpl() _, err = user.Create("admin", hash) if err != nil { - color.Redln(translate.Get("commands.panel.init.adminFail")) + color.Red().Printfln(translate.Get("commands.panel.init.adminFail")) return nil } - color.Greenln(translate.Get("commands.panel.init.success")) + color.Green().Printfln(translate.Get("commands.panel.init.success")) case "update": var task models.Task err := facades.Orm().Query().Where("status", models.TaskStatusRunning).OrWhere("status", models.TaskStatusWaiting).FirstOrFail(&task) if err == nil { - color.Redln(translate.Get("commands.panel.update.taskCheck")) + color.Red().Printfln(translate.Get("commands.panel.update.taskCheck")) return nil } panel, err := tools.GetLatestPanelVersion() if err != nil { - color.Redln(translate.Get("commands.panel.update.versionFail")) + color.Red().Printfln(translate.Get("commands.panel.update.versionFail")) return err } internal.Status = internal.StatusUpgrade if err = tools.UpdatePanel(panel); err != nil { internal.Status = internal.StatusFailed - color.Redln(translate.Get("commands.panel.update.fail") + ": " + err.Error()) + color.Red().Printfln(translate.Get("commands.panel.update.fail") + ": " + err.Error()) return nil } internal.Status = internal.StatusNormal - color.Greenln(translate.Get("commands.panel.update.success")) + color.Green().Printfln(translate.Get("commands.panel.update.success")) tools.RestartPanel() case "getInfo": var user models.User err := facades.Orm().Query().Where("id", 1).FirstOrFail(&user) if err != nil { - color.Redln(translate.Get("commands.panel.getInfo.adminGetFail")) + color.Red().Printfln(translate.Get("commands.panel.getInfo.adminGetFail")) return nil } password := tools.RandomString(16) hash, err := facades.Hash().Make(password) if err != nil { - color.Redln(translate.Get("commands.panel.getInfo.passwordGenerationFail")) + color.Red().Printfln(translate.Get("commands.panel.getInfo.passwordGenerationFail")) return nil } user.Username = tools.RandomString(8) @@ -132,13 +132,13 @@ func (receiver *Panel) Handle(ctx console.Context) error { err = facades.Orm().Query().Save(&user) if err != nil { - color.Redln(translate.Get("commands.panel.getInfo.adminSaveFail")) + color.Red().Printfln(translate.Get("commands.panel.getInfo.adminSaveFail")) return nil } port, err := tools.Exec(`cat /www/panel/panel.conf | grep APP_PORT | awk -F '=' '{print $2}' | tr -d '\n'`) if err != nil { - color.Redln(translate.Get("commands.panel.portFail")) + color.Red().Printfln(translate.Get("commands.panel.portFail")) return nil } ip, err := tools.GetPublicIP() @@ -150,42 +150,42 @@ func (receiver *Panel) Handle(ctx console.Context) error { protocol = "https" } - color.Greenln(translate.Get("commands.panel.getInfo.username") + ": " + user.Username) - color.Greenln(translate.Get("commands.panel.getInfo.password") + ": " + password) - color.Greenln(translate.Get("commands.panel.port") + ": " + port) - color.Greenln(translate.Get("commands.panel.entrance") + ": " + facades.Config().GetString("http.entrance")) - color.Greenln(translate.Get("commands.panel.getInfo.address") + ": " + protocol + "://" + ip + ":" + port + facades.Config().GetString("http.entrance")) + color.Green().Printfln(translate.Get("commands.panel.getInfo.username") + ": " + user.Username) + color.Green().Printfln(translate.Get("commands.panel.getInfo.password") + ": " + password) + color.Green().Printfln(translate.Get("commands.panel.port") + ": " + port) + color.Green().Printfln(translate.Get("commands.panel.entrance") + ": " + facades.Config().GetString("http.entrance")) + color.Green().Printfln(translate.Get("commands.panel.getInfo.address") + ": " + protocol + "://" + ip + ":" + port + facades.Config().GetString("http.entrance")) case "getPort": port, err := tools.Exec(`cat /www/panel/panel.conf | grep APP_PORT | awk -F '=' '{print $2}' | tr -d '\n'`) if err != nil { - color.Redln(translate.Get("commands.panel.portFail")) + color.Red().Printfln(translate.Get("commands.panel.portFail")) return nil } - color.Greenln(translate.Get("commands.panel.port") + ": " + port) + color.Green().Printfln(translate.Get("commands.panel.port") + ": " + port) case "getEntrance": - color.Greenln(translate.Get("commands.panel.entrance") + ": " + facades.Config().GetString("http.entrance")) + color.Green().Printfln(translate.Get("commands.panel.entrance") + ": " + facades.Config().GetString("http.entrance")) case "deleteEntrance": oldEntrance, err := tools.Exec(`cat /www/panel/panel.conf | grep APP_ENTRANCE | awk -F '=' '{print $2}' | tr -d '\n'`) if err != nil { - color.Redln(translate.Get("commands.panel.deleteEntrance.fail")) + color.Red().Printfln(translate.Get("commands.panel.deleteEntrance.fail")) return nil } if _, err = tools.Exec("sed -i 's!APP_ENTRANCE=" + oldEntrance + "!APP_ENTRANCE=/!g' /www/panel/panel.conf"); err != nil { - color.Redln(translate.Get("commands.panel.deleteEntrance.fail")) + color.Red().Printfln(translate.Get("commands.panel.deleteEntrance.fail")) return nil } - color.Greenln(translate.Get("commands.panel.deleteEntrance.success")) + color.Green().Printfln(translate.Get("commands.panel.deleteEntrance.success")) case "writePlugin": slug := arg1 version := arg2 if len(slug) == 0 || len(version) == 0 { - color.Redln(translate.Get("commands.panel.writePlugin.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.writePlugin.paramFail")) return nil } @@ -197,31 +197,31 @@ func (receiver *Panel) Handle(ctx console.Context) error { }) if err != nil { - color.Redln(translate.Get("commands.panel.writePlugin.fail")) + color.Red().Printfln(translate.Get("commands.panel.writePlugin.fail")) return nil } - color.Greenln(translate.Get("commands.panel.writePlugin.success")) + color.Green().Printfln(translate.Get("commands.panel.writePlugin.success")) case "deletePlugin": slug := arg1 if len(slug) == 0 { - color.Redln(translate.Get("commands.panel.deletePlugin.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.deletePlugin.paramFail")) return nil } _, err := facades.Orm().Query().Where("slug", slug).Delete(&models.Plugin{}) if err != nil { - color.Redln(translate.Get("commands.panel.deletePlugin.fail")) + color.Red().Printfln(translate.Get("commands.panel.deletePlugin.fail")) return nil } - color.Greenln(translate.Get("commands.panel.deletePlugin.success")) + color.Green().Printfln(translate.Get("commands.panel.deletePlugin.success")) case "writeMysqlPassword": password := arg1 if len(password) == 0 { - color.Redln(translate.Get("commands.panel.writeMysqlPassword.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.writeMysqlPassword.paramFail")) return nil } @@ -233,20 +233,20 @@ func (receiver *Panel) Handle(ctx console.Context) error { }) if err != nil { - color.Redln(translate.Get("commands.panel.writeMysqlPassword.fail")) + color.Red().Printfln(translate.Get("commands.panel.writeMysqlPassword.fail")) return nil } - color.Greenln(translate.Get("commands.panel.writeMysqlPassword.success")) + color.Green().Printfln(translate.Get("commands.panel.writeMysqlPassword.success")) case "cleanTask": _, err := facades.Orm().Query().Model(&models.Task{}).Where("status", models.TaskStatusRunning).OrWhere("status", models.TaskStatusWaiting).Update("status", models.TaskStatusFailed) if err != nil { - color.Redln(translate.Get("commands.panel.cleanTask.fail")) + color.Red().Printfln(translate.Get("commands.panel.cleanTask.fail")) return nil } - color.Greenln(translate.Get("commands.panel.cleanTask.success")) + color.Green().Printfln(translate.Get("commands.panel.cleanTask.success")) case "backup": backupType := arg1 @@ -255,37 +255,37 @@ func (receiver *Panel) Handle(ctx console.Context) error { save := arg4 hr := `+----------------------------------------------------` if len(backupType) == 0 || len(name) == 0 || len(path) == 0 || len(save) == 0 { - color.Redln(translate.Get("commands.panel.backup.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.backup.paramFail")) return nil } - color.Greenln(hr) - color.Greenln("★ " + translate.Get("commands.panel.backup.start") + " [" + carbon.Now().ToDateTimeString() + "]") - color.Greenln(hr) + color.Green().Printfln(hr) + color.Green().Printfln("★ " + translate.Get("commands.panel.backup.start") + " [" + carbon.Now().ToDateTimeString() + "]") + color.Green().Printfln(hr) if !tools.Exists(path) { if err := tools.Mkdir(path, 0644); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.backupDirFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.backupDirFail") + ": " + err.Error()) return nil } } switch backupType { case "website": - color.Yellowln("|-" + translate.Get("commands.panel.backup.targetSite") + ": " + name) + color.Yellow().Printfln("|-" + translate.Get("commands.panel.backup.targetSite") + ": " + name) var website models.Website if err := facades.Orm().Query().Where("name", name).FirstOrFail(&website); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.siteNotExist")) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.siteNotExist")) + color.Green().Printfln(hr) return nil } backupFile := path + "/" + website.Name + "_" + carbon.Now().ToShortDateTimeString() + ".zip" if _, err := tools.Exec(`cd '` + website.Path + `' && zip -r '` + backupFile + `' .`); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.backupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.backupFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.backupSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.backupSuccess")) case "mysql": rootPassword := services.NewSettingImpl().Get(models.SettingKeyMysqlRootPassword) @@ -293,81 +293,81 @@ func (receiver *Panel) Handle(ctx console.Context) error { err := os.Setenv("MYSQL_PWD", rootPassword) if err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.mysqlBackupFail") + ": " + err.Error()) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.mysqlBackupFail") + ": " + err.Error()) + color.Green().Printfln(hr) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.targetMysql") + ": " + name) - color.Greenln("|-" + translate.Get("commands.panel.backup.startExport")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.targetMysql") + ": " + name) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startExport")) if _, err = tools.Exec(`mysqldump -uroot ` + name + ` > /tmp/` + backupFile + ` 2>&1`); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.exportFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.exportFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.exportSuccess")) - color.Greenln("|-" + translate.Get("commands.panel.backup.startCompress")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.exportSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startCompress")) if _, err = tools.Exec("cd /tmp && zip -r " + backupFile + ".zip " + backupFile); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.compressFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.compressFail") + ": " + err.Error()) return nil } if err := tools.Remove("/tmp/" + backupFile); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.deleteFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.deleteFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.compressSuccess")) - color.Greenln("|-" + translate.Get("commands.panel.backup.startMove")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.compressSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startMove")) if err := tools.Mv("/tmp/"+backupFile+".zip", path+"/"+backupFile+".zip"); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.moveFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.moveFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.moveSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.moveSuccess")) _ = os.Unsetenv("MYSQL_PWD") - color.Greenln("|-" + translate.Get("commands.panel.backup.success")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.success")) case "postgresql": backupFile := name + "_" + carbon.Now().ToShortDateTimeString() + ".sql" check, err := tools.Exec(`su - postgres -c "psql -l" 2>&1`) if err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.databaseGetFail") + ": " + err.Error()) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.databaseGetFail") + ": " + err.Error()) + color.Green().Printfln(hr) return nil } if !strings.Contains(check, name) { - color.Redln("|-" + translate.Get("commands.panel.backup.databaseNotExist")) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.databaseNotExist")) + color.Green().Printfln(hr) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.targetPostgres") + ": " + name) - color.Greenln("|-" + translate.Get("commands.panel.backup.startExport")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.targetPostgres") + ": " + name) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startExport")) if _, err = tools.Exec(`su - postgres -c "pg_dump '` + name + `'" > /tmp/` + backupFile + ` 2>&1`); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.exportFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.exportFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.exportSuccess")) - color.Greenln("|-" + translate.Get("commands.panel.backup.startCompress")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.exportSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startCompress")) if _, err = tools.Exec("cd /tmp && zip -r " + backupFile + ".zip " + backupFile); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.compressFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.compressFail") + ": " + err.Error()) return nil } if err := tools.Remove("/tmp/" + backupFile); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.deleteFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.deleteFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.compressSuccess")) - color.Greenln("|-" + translate.Get("commands.panel.backup.startMove")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.compressSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.startMove")) if err := tools.Mv("/tmp/"+backupFile+".zip", path+"/"+backupFile+".zip"); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.moveFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.moveFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.backup.moveSuccess")) - color.Greenln("|-" + translate.Get("commands.panel.backup.success")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.moveSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.success")) } - color.Greenln(hr) + color.Green().Printfln(hr) files, err := os.ReadDir(path) if err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.cleanupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.cleanupFail") + ": " + err.Error()) return nil } var filteredFiles []os.FileInfo @@ -385,60 +385,60 @@ func (receiver *Panel) Handle(ctx console.Context) error { }) for i := cast.ToInt(save); i < len(filteredFiles); i++ { fileToDelete := filepath.Join(path, filteredFiles[i].Name()) - color.Yellowln("|-" + translate.Get("commands.panel.backup.cleanBackup") + ": " + fileToDelete) + color.Yellow().Printfln("|-" + translate.Get("commands.panel.backup.cleanBackup") + ": " + fileToDelete) if err := tools.Remove(fileToDelete); err != nil { - color.Redln("|-" + translate.Get("commands.panel.backup.cleanupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.backup.cleanupFail") + ": " + err.Error()) return nil } } - color.Greenln("|-" + translate.Get("commands.panel.backup.cleanupSuccess")) - color.Greenln(hr) - color.Greenln("☆ " + translate.Get("commands.panel.backup.success") + " [" + carbon.Now().ToDateTimeString() + "]") - color.Greenln(hr) + color.Green().Printfln("|-" + translate.Get("commands.panel.backup.cleanupSuccess")) + color.Green().Printfln(hr) + color.Green().Printfln("☆ " + translate.Get("commands.panel.backup.success") + " [" + carbon.Now().ToDateTimeString() + "]") + color.Green().Printfln(hr) case "cutoff": name := arg1 save := arg2 hr := `+----------------------------------------------------` if len(name) == 0 || len(save) == 0 { - color.Redln(translate.Get("commands.panel.cutoff.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.cutoff.paramFail")) return nil } - color.Greenln(hr) - color.Greenln("★ " + translate.Get("commands.panel.cutoff.start") + " [" + carbon.Now().ToDateTimeString() + "]") - color.Greenln(hr) + color.Green().Printfln(hr) + color.Green().Printfln("★ " + translate.Get("commands.panel.cutoff.start") + " [" + carbon.Now().ToDateTimeString() + "]") + color.Green().Printfln(hr) - color.Yellowln("|-" + translate.Get("commands.panel.cutoff.targetSite") + ": " + name) + color.Yellow().Printfln("|-" + translate.Get("commands.panel.cutoff.targetSite") + ": " + name) var website models.Website if err := facades.Orm().Query().Where("name", name).FirstOrFail(&website); err != nil { - color.Redln("|-" + translate.Get("commands.panel.cutoff.siteNotExist")) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.siteNotExist")) + color.Green().Printfln(hr) return nil } logPath := "/www/wwwlogs/" + website.Name + ".log" if !tools.Exists(logPath) { - color.Redln("|-" + translate.Get("commands.panel.cutoff.logNotExist")) - color.Greenln(hr) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.logNotExist")) + color.Green().Printfln(hr) return nil } backupPath := "/www/wwwlogs/" + website.Name + "_" + carbon.Now().ToShortDateTimeString() + ".log.zip" if _, err := tools.Exec(`cd /www/wwwlogs && zip -r ` + backupPath + ` ` + website.Name + ".log"); err != nil { - color.Redln("|-" + translate.Get("commands.panel.cutoff.backupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.backupFail") + ": " + err.Error()) return nil } if _, err := tools.Exec(`echo "" > ` + logPath); err != nil { - color.Redln("|-" + translate.Get("commands.panel.cutoff.clearFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.clearFail") + ": " + err.Error()) return nil } - color.Greenln("|-" + translate.Get("commands.panel.cutoff.cutSuccess")) + color.Green().Printfln("|-" + translate.Get("commands.panel.cutoff.cutSuccess")) - color.Greenln(hr) + color.Green().Printfln(hr) files, err := os.ReadDir("/www/wwwlogs") if err != nil { - color.Redln("|-" + translate.Get("commands.panel.cutoff.cleanupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.cleanupFail") + ": " + err.Error()) return nil } var filteredFiles []os.FileInfo @@ -456,16 +456,16 @@ func (receiver *Panel) Handle(ctx console.Context) error { }) for i := cast.ToInt(save); i < len(filteredFiles); i++ { fileToDelete := filepath.Join("/www/wwwlogs", filteredFiles[i].Name()) - color.Yellowln("|-" + translate.Get("commands.panel.cutoff.clearLog") + ": " + fileToDelete) + color.Yellow().Printfln("|-" + translate.Get("commands.panel.cutoff.clearLog") + ": " + fileToDelete) if err := tools.Remove(fileToDelete); err != nil { - color.Redln("|-" + translate.Get("commands.panel.cutoff.cleanupFail") + ": " + err.Error()) + color.Red().Printfln("|-" + translate.Get("commands.panel.cutoff.cleanupFail") + ": " + err.Error()) return nil } } - color.Greenln("|-" + translate.Get("commands.panel.cutoff.cleanupSuccess")) - color.Greenln(hr) - color.Greenln("☆ " + translate.Get("commands.panel.cutoff.end") + " [" + carbon.Now().ToDateTimeString() + "]") - color.Greenln(hr) + color.Green().Printfln("|-" + translate.Get("commands.panel.cutoff.cleanupSuccess")) + color.Green().Printfln(hr) + color.Green().Printfln("☆ " + translate.Get("commands.panel.cutoff.end") + " [" + carbon.Now().ToDateTimeString() + "]") + color.Green().Printfln(hr) case "writeSite": name := arg1 @@ -474,19 +474,19 @@ func (receiver *Panel) Handle(ctx console.Context) error { php := cast.ToInt(arg4) ssl := cast.ToBool(ctx.Argument(5)) if len(name) == 0 || len(path) == 0 { - color.Redln(translate.Get("commands.panel.writeSite.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.writeSite.paramFail")) return nil } var website models.Website if err := facades.Orm().Query().Where("name", name).FirstOrFail(&website); err == nil { - color.Redln(translate.Get("commands.panel.writeSite.siteExist")) + color.Red().Printfln(translate.Get("commands.panel.writeSite.siteExist")) return nil } _, err := os.Stat(path) if os.IsNotExist(err) { - color.Redln(translate.Get("commands.panel.writeSite.pathNotExist")) + color.Red().Printfln(translate.Get("commands.panel.writeSite.pathNotExist")) return nil } @@ -498,32 +498,32 @@ func (receiver *Panel) Handle(ctx console.Context) error { Ssl: ssl, }) if err != nil { - color.Redln(translate.Get("commands.panel.writeSite.fail")) + color.Red().Printfln(translate.Get("commands.panel.writeSite.fail")) return nil } - color.Greenln(translate.Get("commands.panel.writeSite.success")) + color.Green().Printfln(translate.Get("commands.panel.writeSite.success")) case "deleteSite": name := arg1 if len(name) == 0 { - color.Redln(translate.Get("commands.panel.deleteSite.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.deleteSite.paramFail")) return nil } _, err := facades.Orm().Query().Where("name", name).Delete(&models.Website{}) if err != nil { - color.Redln(translate.Get("commands.panel.deleteSite.fail")) + color.Red().Printfln(translate.Get("commands.panel.deleteSite.fail")) return nil } - color.Greenln(translate.Get("commands.panel.deleteSite.success")) + color.Green().Printfln(translate.Get("commands.panel.deleteSite.success")) case "writeSetting": key := arg1 value := arg2 if len(key) == 0 || len(value) == 0 { - color.Redln(translate.Get("commands.panel.writeSetting.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.writeSetting.paramFail")) return nil } @@ -534,16 +534,16 @@ func (receiver *Panel) Handle(ctx console.Context) error { Value: value, }) if err != nil { - color.Redln(translate.Get("commands.panel.writeSetting.fail")) + color.Red().Printfln(translate.Get("commands.panel.writeSetting.fail")) return nil } - color.Greenln(translate.Get("commands.panel.writeSetting.success")) + color.Green().Printfln(translate.Get("commands.panel.writeSetting.success")) case "getSetting": key := arg1 if len(key) == 0 { - color.Redln(translate.Get("commands.panel.getSetting.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.getSetting.paramFail")) return nil } @@ -557,17 +557,17 @@ func (receiver *Panel) Handle(ctx console.Context) error { case "deleteSetting": key := arg1 if len(key) == 0 { - color.Redln(translate.Get("commands.panel.deleteSetting.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.deleteSetting.paramFail")) return nil } _, err := facades.Orm().Query().Where("key", key).Delete(&models.Setting{}) if err != nil { - color.Redln(translate.Get("commands.panel.deleteSetting.fail")) + color.Red().Printfln(translate.Get("commands.panel.deleteSetting.fail")) return nil } - color.Greenln(translate.Get("commands.panel.deleteSetting.success")) + color.Green().Printfln(translate.Get("commands.panel.deleteSetting.success")) case "addSite": name := arg1 @@ -576,14 +576,14 @@ func (receiver *Panel) Handle(ctx console.Context) error { path := arg4 php := arg5 if len(name) == 0 || len(domain) == 0 || len(port) == 0 || len(path) == 0 { - color.Redln(translate.Get("commands.panel.addSite.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.addSite.paramFail")) return nil } domains := strings.Split(domain, ",") ports := strings.Split(port, ",") if len(domains) == 0 || len(ports) == 0 { - color.Redln(translate.Get("commands.panel.addSite.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.addSite.paramFail")) return nil } @@ -595,11 +595,11 @@ func (receiver *Panel) Handle(ctx console.Context) error { website := services.NewWebsiteImpl() id, err := website.GetIDByName(name) if err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } if id != 0 { - color.Redln(translate.Get("commands.panel.addSite.siteExist")) + color.Red().Printfln(translate.Get("commands.panel.addSite.siteExist")) return nil } @@ -614,108 +614,108 @@ func (receiver *Panel) Handle(ctx console.Context) error { Db: false, }) if err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } - color.Greenln(translate.Get("commands.panel.addSite.success")) + color.Green().Printfln(translate.Get("commands.panel.addSite.success")) case "removeSite": name := arg1 if len(name) == 0 { - color.Redln(translate.Get("commands.panel.removeSite.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.removeSite.paramFail")) return nil } website := services.NewWebsiteImpl() id, err := website.GetIDByName(name) if err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } if id == 0 { - color.Redln(translate.Get("commands.panel.removeSite.siteNotExist")) + color.Red().Printfln(translate.Get("commands.panel.removeSite.siteNotExist")) return nil } if err = website.Delete(id); err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } - color.Greenln(translate.Get("commands.panel.removeSite.success")) + color.Green().Printfln(translate.Get("commands.panel.removeSite.success")) case "installPlugin": slug := arg1 if len(slug) == 0 { - color.Redln(translate.Get("commands.panel.installPlugin.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.installPlugin.paramFail")) return nil } plugin := services.NewPluginImpl() if err := plugin.Install(slug); err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } - color.Greenln(translate.Get("commands.panel.installPlugin.success")) + color.Green().Printfln(translate.Get("commands.panel.installPlugin.success")) case "uninstallPlugin": slug := arg1 if len(slug) == 0 { - color.Redln(translate.Get("commands.panel.uninstallPlugin.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.uninstallPlugin.paramFail")) return nil } plugin := services.NewPluginImpl() if err := plugin.Uninstall(slug); err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } - color.Greenln(translate.Get("commands.panel.uninstallPlugin.success")) + color.Green().Printfln(translate.Get("commands.panel.uninstallPlugin.success")) case "updatePlugin": slug := arg1 if len(slug) == 0 { - color.Redln(translate.Get("commands.panel.updatePlugin.paramFail")) + color.Red().Printfln(translate.Get("commands.panel.updatePlugin.paramFail")) return nil } plugin := services.NewPluginImpl() if err := plugin.Update(slug); err != nil { - color.Redln(err.Error()) + color.Red().Printfln(err.Error()) return nil } - color.Greenln(translate.Get("commands.panel.updatePlugin.success")) + color.Green().Printfln(translate.Get("commands.panel.updatePlugin.success")) default: - color.Yellowln(facades.Config().GetString("panel.name") + " - " + translate.Get("commands.panel.tool") + " - " + facades.Config().GetString("panel.version")) - color.Greenln(translate.Get("commands.panel.use") + ":") - color.Greenln("panel update " + translate.Get("commands.panel.update.description")) - color.Greenln("panel getInfo " + translate.Get("commands.panel.getInfo.description")) - color.Greenln("panel getPort " + translate.Get("commands.panel.getPort.description")) - color.Greenln("panel getEntrance " + translate.Get("commands.panel.getEntrance.description")) - color.Greenln("panel deleteEntrance " + translate.Get("commands.panel.deleteEntrance.description")) - color.Greenln("panel cleanTask " + translate.Get("commands.panel.cleanTask.description")) - color.Greenln("panel backup {website/mysql/postgresql} {name} {path} {save_copies} " + translate.Get("commands.panel.backup.description")) - color.Greenln("panel cutoff {website_name} {save_copies} " + translate.Get("commands.panel.cutoff.description")) - color.Greenln("panel installPlugin {slug} " + translate.Get("commands.panel.installPlugin.description")) - color.Greenln("panel uninstallPlugin {slug} " + translate.Get("commands.panel.uninstallPlugin.description")) - color.Greenln("panel updatePlugin {slug} " + translate.Get("commands.panel.updatePlugin.description")) - color.Greenln("panel addSite {name} {domain} {port} {path} {php} " + translate.Get("commands.panel.addSite.description")) - color.Greenln("panel removeSite {name} " + translate.Get("commands.panel.removeSite.description")) - color.Redln(translate.Get("commands.panel.forDeveloper") + ":") - color.Yellowln("panel init " + translate.Get("commands.panel.init.description")) - color.Yellowln("panel writePlugin {slug} {version} " + translate.Get("commands.panel.writePlugin.description")) - color.Yellowln("panel deletePlugin {slug} " + translate.Get("commands.panel.deletePlugin.description")) - color.Yellowln("panel writeMysqlPassword {password} " + translate.Get("commands.panel.writeMysqlPassword.description")) - color.Yellowln("panel writeSite {name} {status} {path} {php} {ssl} " + translate.Get("commands.panel.writeSite.description")) - color.Yellowln("panel deleteSite {name} " + translate.Get("commands.panel.deleteSite.description")) - color.Yellowln("panel getSetting {name} " + translate.Get("commands.panel.getSetting.description")) - color.Yellowln("panel writeSetting {name} {value} " + translate.Get("commands.panel.writeSetting.description")) - color.Yellowln("panel deleteSetting {name} " + translate.Get("commands.panel.deleteSetting.description")) + color.Yellow().Printfln(facades.Config().GetString("panel.name") + " - " + translate.Get("commands.panel.tool") + " - " + facades.Config().GetString("panel.version")) + color.Green().Printfln(translate.Get("commands.panel.use") + ":") + color.Green().Printfln("panel update " + translate.Get("commands.panel.update.description")) + color.Green().Printfln("panel getInfo " + translate.Get("commands.panel.getInfo.description")) + color.Green().Printfln("panel getPort " + translate.Get("commands.panel.getPort.description")) + color.Green().Printfln("panel getEntrance " + translate.Get("commands.panel.getEntrance.description")) + color.Green().Printfln("panel deleteEntrance " + translate.Get("commands.panel.deleteEntrance.description")) + color.Green().Printfln("panel cleanTask " + translate.Get("commands.panel.cleanTask.description")) + color.Green().Printfln("panel backup {website/mysql/postgresql} {name} {path} {save_copies} " + translate.Get("commands.panel.backup.description")) + color.Green().Printfln("panel cutoff {website_name} {save_copies} " + translate.Get("commands.panel.cutoff.description")) + color.Green().Printfln("panel installPlugin {slug} " + translate.Get("commands.panel.installPlugin.description")) + color.Green().Printfln("panel uninstallPlugin {slug} " + translate.Get("commands.panel.uninstallPlugin.description")) + color.Green().Printfln("panel updatePlugin {slug} " + translate.Get("commands.panel.updatePlugin.description")) + color.Green().Printfln("panel addSite {name} {domain} {port} {path} {php} " + translate.Get("commands.panel.addSite.description")) + color.Green().Printfln("panel removeSite {name} " + translate.Get("commands.panel.removeSite.description")) + color.Red().Printfln(translate.Get("commands.panel.forDeveloper") + ":") + color.Yellow().Printfln("panel init " + translate.Get("commands.panel.init.description")) + color.Yellow().Printfln("panel writePlugin {slug} {version} " + translate.Get("commands.panel.writePlugin.description")) + color.Yellow().Printfln("panel deletePlugin {slug} " + translate.Get("commands.panel.deletePlugin.description")) + color.Yellow().Printfln("panel writeMysqlPassword {password} " + translate.Get("commands.panel.writeMysqlPassword.description")) + color.Yellow().Printfln("panel writeSite {name} {status} {path} {php} {ssl} " + translate.Get("commands.panel.writeSite.description")) + color.Yellow().Printfln("panel deleteSite {name} " + translate.Get("commands.panel.deleteSite.description")) + color.Yellow().Printfln("panel getSetting {name} " + translate.Get("commands.panel.getSetting.description")) + color.Yellow().Printfln("panel writeSetting {name} {value} " + translate.Get("commands.panel.writeSetting.description")) + color.Yellow().Printfln("panel deleteSetting {name} " + translate.Get("commands.panel.deleteSetting.description")) } return nil diff --git a/app/console/commands/panel_task.go b/app/console/commands/panel_task.go index 7bd01555..3498fd56 100644 --- a/app/console/commands/panel_task.go +++ b/app/console/commands/panel_task.go @@ -8,8 +8,8 @@ import ( "github.com/goravel/framework/facades" "github.com/goravel/framework/support/carbon" - "panel/internal" - "panel/pkg/tools" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/pkg/tools" ) // PanelTask 面板每日任务 diff --git a/app/console/kernel.go b/app/console/kernel.go index d5ab41f0..b3056ec2 100644 --- a/app/console/kernel.go +++ b/app/console/kernel.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/contracts/schedule" "github.com/goravel/framework/facades" - "panel/app/console/commands" + "github.com/TheTNB/panel/app/console/commands" ) type Kernel struct { diff --git a/app/http/controllers/asset_controller.go b/app/http/controllers/asset_controller.go index 71f75671..e52088f1 100644 --- a/app/http/controllers/asset_controller.go +++ b/app/http/controllers/asset_controller.go @@ -7,9 +7,9 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type AssetController struct { diff --git a/app/http/controllers/cert_controller.go b/app/http/controllers/cert_controller.go index 29fc2535..b5369ed9 100644 --- a/app/http/controllers/cert_controller.go +++ b/app/http/controllers/cert_controller.go @@ -4,12 +4,12 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - requests "panel/app/http/requests/cert" - commonrequests "panel/app/http/requests/common" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/acme" + requests "github.com/TheTNB/panel/app/http/requests/cert" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/acme" ) type CertController struct { diff --git a/app/http/controllers/container_controller.go b/app/http/controllers/container_controller.go index 85eb767c..d7bf06ba 100644 --- a/app/http/controllers/container_controller.go +++ b/app/http/controllers/container_controller.go @@ -5,6 +5,7 @@ import ( "strconv" "strings" + "github.com/TheTNB/panel/pkg/tools" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/image" @@ -13,11 +14,10 @@ import ( "github.com/docker/go-connections/nat" "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/support/carbon" - "panel/pkg/tools" - commonrequests "panel/app/http/requests/common" - requests "panel/app/http/requests/container" - "panel/internal/services" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" + requests "github.com/TheTNB/panel/app/http/requests/container" + "github.com/TheTNB/panel/internal/services" ) type ContainerController struct { diff --git a/app/http/controllers/cron_controller.go b/app/http/controllers/cron_controller.go index 1ae5f55a..e70d2e2f 100644 --- a/app/http/controllers/cron_controller.go +++ b/app/http/controllers/cron_controller.go @@ -9,10 +9,10 @@ import ( "github.com/goravel/framework/support/carbon" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type CronController struct { diff --git a/app/http/controllers/file_controller.go b/app/http/controllers/file_controller.go index 86e2d77c..82653280 100644 --- a/app/http/controllers/file_controller.go +++ b/app/http/controllers/file_controller.go @@ -8,12 +8,12 @@ import ( "strings" "syscall" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/support/carbon" - commonrequests "panel/app/http/requests/common" - requests "panel/app/http/requests/file" - "panel/pkg/tools" + requests "github.com/TheTNB/panel/app/http/requests/file" + "github.com/TheTNB/panel/pkg/tools" ) type FileController struct { diff --git a/app/http/controllers/info_controller.go b/app/http/controllers/info_controller.go index d238fbb0..fe88f3f4 100644 --- a/app/http/controllers/info_controller.go +++ b/app/http/controllers/info_controller.go @@ -9,10 +9,10 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type MenuItem struct { diff --git a/app/http/controllers/monitor_controller.go b/app/http/controllers/monitor_controller.go index a4ed29f5..84c9bb8e 100644 --- a/app/http/controllers/monitor_controller.go +++ b/app/http/controllers/monitor_controller.go @@ -8,9 +8,9 @@ import ( "github.com/goravel/framework/support/carbon" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/internal/services" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" ) type MonitorController struct { diff --git a/app/http/controllers/plugin_controller.go b/app/http/controllers/plugin_controller.go index 8bdaad22..9d198cd4 100644 --- a/app/http/controllers/plugin_controller.go +++ b/app/http/controllers/plugin_controller.go @@ -4,9 +4,9 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/app/models" - "panel/internal" - "panel/internal/services" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" ) type PluginController struct { diff --git a/app/http/controllers/plugins/fail2ban_controller.go b/app/http/controllers/plugins/fail2ban_controller.go index 1415e7d9..8122ffc4 100644 --- a/app/http/controllers/plugins/fail2ban_controller.go +++ b/app/http/controllers/plugins/fail2ban_controller.go @@ -8,12 +8,12 @@ import ( "github.com/goravel/framework/facades" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type Fail2banController struct { diff --git a/app/http/controllers/plugins/mysql_controller.go b/app/http/controllers/plugins/mysql_controller.go index 3630a184..94139cd4 100644 --- a/app/http/controllers/plugins/mysql_controller.go +++ b/app/http/controllers/plugins/mysql_controller.go @@ -8,11 +8,11 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type MySQLController struct { diff --git a/app/http/controllers/plugins/openresty_controller.go b/app/http/controllers/plugins/openresty_controller.go index 14fcc5c8..cc755d8e 100644 --- a/app/http/controllers/plugins/openresty_controller.go +++ b/app/http/controllers/plugins/openresty_controller.go @@ -8,8 +8,8 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/pkg/tools" ) type OpenRestyController struct { diff --git a/app/http/controllers/plugins/php_controller.go b/app/http/controllers/plugins/php_controller.go index 98e5e395..6a1be0d6 100644 --- a/app/http/controllers/plugins/php_controller.go +++ b/app/http/controllers/plugins/php_controller.go @@ -1,10 +1,10 @@ package plugins import ( + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" "github.com/goravel/framework/contracts/http" - "panel/app/http/controllers" - "panel/internal" - "panel/internal/services" ) type PHPController struct { diff --git a/app/http/controllers/plugins/phpmyadmin_controller.go b/app/http/controllers/plugins/phpmyadmin_controller.go index 8bb73d17..87309dd7 100644 --- a/app/http/controllers/plugins/phpmyadmin_controller.go +++ b/app/http/controllers/plugins/phpmyadmin_controller.go @@ -9,8 +9,8 @@ import ( "github.com/goravel/framework/facades" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/pkg/tools" ) type PhpMyAdminController struct { diff --git a/app/http/controllers/plugins/postgresql15_controller.go b/app/http/controllers/plugins/postgresql15_controller.go index cea55556..0db07631 100644 --- a/app/http/controllers/plugins/postgresql15_controller.go +++ b/app/http/controllers/plugins/postgresql15_controller.go @@ -6,12 +6,12 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/support/carbon" - "panel/app/http/controllers" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type Postgresql15Controller struct { diff --git a/app/http/controllers/plugins/postgresql16_controller.go b/app/http/controllers/plugins/postgresql16_controller.go index 9a4ea628..b01c4501 100644 --- a/app/http/controllers/plugins/postgresql16_controller.go +++ b/app/http/controllers/plugins/postgresql16_controller.go @@ -6,12 +6,12 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/support/carbon" - "panel/app/http/controllers" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type Postgresql16Controller struct { diff --git a/app/http/controllers/plugins/pureftpd_controller.go b/app/http/controllers/plugins/pureftpd_controller.go index 0be0b847..6a95682b 100644 --- a/app/http/controllers/plugins/pureftpd_controller.go +++ b/app/http/controllers/plugins/pureftpd_controller.go @@ -7,8 +7,8 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/pkg/tools" ) type PureFtpdController struct { diff --git a/app/http/controllers/plugins/redis_controller.go b/app/http/controllers/plugins/redis_controller.go index 57bd5489..5566083b 100644 --- a/app/http/controllers/plugins/redis_controller.go +++ b/app/http/controllers/plugins/redis_controller.go @@ -5,9 +5,9 @@ import ( "github.com/goravel/framework/contracts/http" - "panel/app/http/controllers" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type RedisController struct { diff --git a/app/http/controllers/plugins/rsync_controller.go b/app/http/controllers/plugins/rsync_controller.go index d8abce33..b031268d 100644 --- a/app/http/controllers/plugins/rsync_controller.go +++ b/app/http/controllers/plugins/rsync_controller.go @@ -6,13 +6,13 @@ import ( "github.com/goravel/framework/contracts/http" - "panel/app/http/controllers" - commonrequests "panel/app/http/requests/common" - requests "panel/app/http/requests/plugins/rsync" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" + requests "github.com/TheTNB/panel/app/http/requests/plugins/rsync" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type RsyncController struct { diff --git a/app/http/controllers/plugins/s3fs_controller.go b/app/http/controllers/plugins/s3fs_controller.go index 32675570..95d26977 100644 --- a/app/http/controllers/plugins/s3fs_controller.go +++ b/app/http/controllers/plugins/s3fs_controller.go @@ -8,11 +8,11 @@ import ( "github.com/goravel/framework/support/json" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type S3fsController struct { diff --git a/app/http/controllers/plugins/supervisor_controller.go b/app/http/controllers/plugins/supervisor_controller.go index d747c41d..6e7304db 100644 --- a/app/http/controllers/plugins/supervisor_controller.go +++ b/app/http/controllers/plugins/supervisor_controller.go @@ -4,10 +4,10 @@ import ( "strconv" "strings" + "github.com/TheTNB/panel/pkg/tools" "github.com/goravel/framework/contracts/http" - "panel/pkg/tools" - "panel/app/http/controllers" + "github.com/TheTNB/panel/app/http/controllers" ) type SupervisorController struct { diff --git a/app/http/controllers/plugins/toolbox_controller.go b/app/http/controllers/plugins/toolbox_controller.go index 0de7b964..f040bcd0 100644 --- a/app/http/controllers/plugins/toolbox_controller.go +++ b/app/http/controllers/plugins/toolbox_controller.go @@ -7,8 +7,8 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/spf13/cast" - "panel/app/http/controllers" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/pkg/tools" ) type ToolBoxController struct { diff --git a/app/http/controllers/safe_controller.go b/app/http/controllers/safe_controller.go index 4f1b9ffa..d11c4d21 100644 --- a/app/http/controllers/safe_controller.go +++ b/app/http/controllers/safe_controller.go @@ -4,11 +4,11 @@ import ( "regexp" "strings" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" "github.com/goravel/framework/contracts/http" "github.com/spf13/cast" - commonrequests "panel/app/http/requests/common" - "panel/pkg/tools" + "github.com/TheTNB/panel/pkg/tools" ) type SafeController struct { diff --git a/app/http/controllers/setting_controller.go b/app/http/controllers/setting_controller.go index 14d2ef16..820a63f1 100644 --- a/app/http/controllers/setting_controller.go +++ b/app/http/controllers/setting_controller.go @@ -5,11 +5,11 @@ import ( "github.com/goravel/framework/facades" "github.com/spf13/cast" - requests "panel/app/http/requests/setting" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + requests "github.com/TheTNB/panel/app/http/requests/setting" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type SettingController struct { diff --git a/app/http/controllers/ssh_controller.go b/app/http/controllers/ssh_controller.go index 753cdd53..b4420a52 100644 --- a/app/http/controllers/ssh_controller.go +++ b/app/http/controllers/ssh_controller.go @@ -12,10 +12,10 @@ import ( "github.com/gorilla/websocket" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/ssh" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/ssh" ) type SshController struct { diff --git a/app/http/controllers/swagger_controller.go b/app/http/controllers/swagger_controller.go index 77fcf8e1..1606c544 100644 --- a/app/http/controllers/swagger_controller.go +++ b/app/http/controllers/swagger_controller.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/facades" "github.com/swaggo/http-swagger/v2" - _ "panel/docs" + _ "github.com/TheTNB/panel/docs" ) type SwaggerController struct { diff --git a/app/http/controllers/task_controller.go b/app/http/controllers/task_controller.go index 4c095331..233c23d6 100644 --- a/app/http/controllers/task_controller.go +++ b/app/http/controllers/task_controller.go @@ -4,8 +4,8 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/app/models" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/pkg/tools" ) type TaskController struct { diff --git a/app/http/controllers/user_controller.go b/app/http/controllers/user_controller.go index 8c7cd15c..454f7df3 100644 --- a/app/http/controllers/user_controller.go +++ b/app/http/controllers/user_controller.go @@ -4,8 +4,8 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/app/http/requests/user" - "panel/app/models" + "github.com/TheTNB/panel/app/http/requests/user" + "github.com/TheTNB/panel/app/models" ) type UserController struct { diff --git a/app/http/controllers/website_controller.go b/app/http/controllers/website_controller.go index 451f1774..81d93aad 100644 --- a/app/http/controllers/website_controller.go +++ b/app/http/controllers/website_controller.go @@ -8,12 +8,12 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - commonrequests "panel/app/http/requests/common" - requests "panel/app/http/requests/website" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/pkg/tools" + commonrequests "github.com/TheTNB/panel/app/http/requests/common" + requests "github.com/TheTNB/panel/app/http/requests/website" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/pkg/tools" ) type WebsiteController struct { diff --git a/app/http/kernel.go b/app/http/kernel.go index 58529077..a1a86c73 100644 --- a/app/http/kernel.go +++ b/app/http/kernel.go @@ -3,7 +3,7 @@ package http import ( "github.com/goravel/framework/contracts/http" - "panel/app/http/middleware" + "github.com/TheTNB/panel/app/http/middleware" ) type Kernel struct { diff --git a/app/http/middleware/must_install.go b/app/http/middleware/must_install.go index 46bcb7fb..68a548ba 100644 --- a/app/http/middleware/must_install.go +++ b/app/http/middleware/must_install.go @@ -7,7 +7,7 @@ import ( "github.com/goravel/framework/contracts/translation" "github.com/goravel/framework/facades" - "panel/internal/services" + "github.com/TheTNB/panel/internal/services" ) // MustInstall 确保已安装插件 diff --git a/app/http/middleware/status.go b/app/http/middleware/status.go index 1964ee04..bee33cb7 100644 --- a/app/http/middleware/status.go +++ b/app/http/middleware/status.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/facades" - "panel/internal" + "github.com/TheTNB/panel/internal" ) // Status 检查程序状态 diff --git a/app/http/requests/cert/dns_store.go b/app/http/requests/cert/dns_store.go index 2d3bcfa0..a56c04ee 100644 --- a/app/http/requests/cert/dns_store.go +++ b/app/http/requests/cert/dns_store.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/pkg/acme" + "github.com/TheTNB/panel/pkg/acme" ) type DNSStore struct { diff --git a/app/http/requests/cert/dns_update.go b/app/http/requests/cert/dns_update.go index 0f00aa08..b64abac5 100644 --- a/app/http/requests/cert/dns_update.go +++ b/app/http/requests/cert/dns_update.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/pkg/acme" + "github.com/TheTNB/panel/pkg/acme" ) type DNSUpdate struct { diff --git a/app/http/requests/container/container_create.go b/app/http/requests/container/container_create.go index bbce390b..5852f971 100644 --- a/app/http/requests/container/container_create.go +++ b/app/http/requests/container/container_create.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/types" + "github.com/TheTNB/panel/types" ) type ContainerCreate struct { diff --git a/app/http/requests/container/container_update.go b/app/http/requests/container/container_update.go index 0d90d4d0..4db30657 100644 --- a/app/http/requests/container/container_update.go +++ b/app/http/requests/container/container_update.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/types" + "github.com/TheTNB/panel/types" ) type ContainerUpdate struct { diff --git a/app/http/requests/container/network_create.go b/app/http/requests/container/network_create.go index 704dc79e..edeeb6ff 100644 --- a/app/http/requests/container/network_create.go +++ b/app/http/requests/container/network_create.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/types" + "github.com/TheTNB/panel/types" ) type NetworkCreate struct { diff --git a/app/http/requests/container/volume_create.go b/app/http/requests/container/volume_create.go index f3df6c2b..5d8f6342 100644 --- a/app/http/requests/container/volume_create.go +++ b/app/http/requests/container/volume_create.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/http" "github.com/goravel/framework/contracts/validation" - "panel/types" + "github.com/TheTNB/panel/types" ) type VolumeCreate struct { diff --git a/app/jobs/process_task.go b/app/jobs/process_task.go index eed15cd9..83a4c069 100644 --- a/app/jobs/process_task.go +++ b/app/jobs/process_task.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/facades" - "panel/app/models" + "github.com/TheTNB/panel/app/models" ) // ProcessTask 处理面板任务 diff --git a/app/models/cert_dns.go b/app/models/cert_dns.go index 20b2f405..64aa9519 100644 --- a/app/models/cert_dns.go +++ b/app/models/cert_dns.go @@ -3,7 +3,7 @@ package models import ( "github.com/goravel/framework/support/carbon" - "panel/pkg/acme" + "github.com/TheTNB/panel/pkg/acme" ) type CertDNS struct { diff --git a/app/models/monitor.go b/app/models/monitor.go index 42ab1b2f..b2101e86 100644 --- a/app/models/monitor.go +++ b/app/models/monitor.go @@ -3,7 +3,7 @@ package models import ( "github.com/goravel/framework/support/carbon" - "panel/pkg/tools" + "github.com/TheTNB/panel/pkg/tools" ) type Monitor struct { diff --git a/app/providers/console_service_provider.go b/app/providers/console_service_provider.go index b0f1d6f0..cb5ee152 100644 --- a/app/providers/console_service_provider.go +++ b/app/providers/console_service_provider.go @@ -4,7 +4,7 @@ import ( "github.com/goravel/framework/contracts/foundation" "github.com/goravel/framework/facades" - "panel/app/console" + "github.com/TheTNB/panel/app/console" ) type ConsoleServiceProvider struct { diff --git a/app/providers/database_service_provider.go b/app/providers/database_service_provider.go index 7db9221b..9e18c020 100644 --- a/app/providers/database_service_provider.go +++ b/app/providers/database_service_provider.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/contracts/foundation" "github.com/goravel/framework/facades" - "panel/database/seeders" + "github.com/TheTNB/panel/database/seeders" ) type DatabaseServiceProvider struct { diff --git a/app/providers/queue_service_provider.go b/app/providers/queue_service_provider.go index 0ca292ea..c0bf18f9 100644 --- a/app/providers/queue_service_provider.go +++ b/app/providers/queue_service_provider.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/contracts/queue" "github.com/goravel/framework/facades" - "panel/app/jobs" + "github.com/TheTNB/panel/app/jobs" ) type QueueServiceProvider struct { diff --git a/app/providers/route_service_provider.go b/app/providers/route_service_provider.go index d09858cd..aa601da0 100644 --- a/app/providers/route_service_provider.go +++ b/app/providers/route_service_provider.go @@ -4,8 +4,8 @@ import ( "github.com/goravel/framework/contracts/foundation" "github.com/goravel/framework/facades" - "panel/app/http" - "panel/routes" + "github.com/TheTNB/panel/app/http" + "github.com/TheTNB/panel/routes" ) type RouteServiceProvider struct { diff --git a/app/providers/validation_service_provider.go b/app/providers/validation_service_provider.go index db7c738c..9b34c7fd 100644 --- a/app/providers/validation_service_provider.go +++ b/app/providers/validation_service_provider.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/contracts/validation" "github.com/goravel/framework/facades" - "panel/app/rules" + "github.com/TheTNB/panel/app/rules" ) type ValidationServiceProvider struct { diff --git a/app/rules/captcha.go b/app/rules/captcha.go index 102f4972..b901f3c5 100644 --- a/app/rules/captcha.go +++ b/app/rules/captcha.go @@ -5,7 +5,7 @@ import ( "github.com/goravel/framework/contracts/validation" - "panel/pkg/captcha" + "github.com/TheTNB/panel/pkg/captcha" ) type Captcha struct { diff --git a/app/rules/path_exist.go b/app/rules/path_exist.go index 675ef99d..c673ba4c 100644 --- a/app/rules/path_exist.go +++ b/app/rules/path_exist.go @@ -1,9 +1,9 @@ package rules import ( + "github.com/TheTNB/panel/pkg/tools" "github.com/goravel/framework/contracts/validation" "github.com/spf13/cast" - "panel/pkg/tools" ) type PathExists struct { diff --git a/app/rules/path_not_exist.go b/app/rules/path_not_exist.go index 8ffcc640..e8ac07c5 100644 --- a/app/rules/path_not_exist.go +++ b/app/rules/path_not_exist.go @@ -1,9 +1,9 @@ package rules import ( + "github.com/TheTNB/panel/pkg/tools" "github.com/goravel/framework/contracts/validation" "github.com/spf13/cast" - "panel/pkg/tools" ) type PathNotExists struct { diff --git a/bootstrap/app.go b/bootstrap/app.go index 3b47bce2..c5e22b34 100644 --- a/bootstrap/app.go +++ b/bootstrap/app.go @@ -4,7 +4,7 @@ import ( "github.com/gookit/validate/locales/zhcn" "github.com/goravel/framework/foundation" - "panel/config" + "github.com/TheTNB/panel/config" ) func Boot() { diff --git a/config/app.go b/config/app.go index 65588695..7947bd28 100644 --- a/config/app.go +++ b/config/app.go @@ -23,7 +23,7 @@ import ( "github.com/goravel/framework/validation" "github.com/goravel/gin" - "panel/app/providers" + "github.com/TheTNB/panel/app/providers" ) // Boot Start all init methods of the current folder to bootstrap all config. diff --git a/go.mod b/go.mod index 5acd8565..d44b141d 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module panel +module github.com/TheTNB/panel go 1.22 @@ -6,7 +6,6 @@ require ( github.com/docker/docker v26.1.3+incompatible github.com/docker/go-connections v0.5.0 github.com/go-resty/resty/v2 v2.13.1 - github.com/gookit/color v1.5.4 github.com/gookit/validate v1.5.2 github.com/goravel/framework v1.13.1-0.20240529102137-443e5efce883 github.com/goravel/gin v1.1.6-0.20240426085159-718e4d6d5f4f @@ -102,6 +101,7 @@ require ( github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/google/wire v0.6.0 // indirect + github.com/gookit/color v1.5.4 // indirect github.com/gookit/filter v1.2.1 // indirect github.com/gookit/goutil v0.6.15 // indirect github.com/goravel/file-rotatelogs/v2 v2.4.2 // indirect diff --git a/internal/backup.go b/internal/backup.go index be69da92..a926059c 100644 --- a/internal/backup.go +++ b/internal/backup.go @@ -1,6 +1,6 @@ package internal -import "panel/app/models" +import "github.com/TheTNB/panel/app/models" type Backup interface { WebsiteList() ([]BackupFile, error) diff --git a/internal/cert.go b/internal/cert.go index 93d6f532..43397081 100644 --- a/internal/cert.go +++ b/internal/cert.go @@ -1,9 +1,9 @@ package internal import ( - requests "panel/app/http/requests/cert" - "panel/app/models" - "panel/pkg/acme" + requests "github.com/TheTNB/panel/app/http/requests/cert" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/pkg/acme" ) type Cert interface { diff --git a/internal/container.go b/internal/container.go index 07590971..01ffb5d0 100644 --- a/internal/container.go +++ b/internal/container.go @@ -7,8 +7,8 @@ import ( "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/volume" - requests "panel/app/http/requests/container" - paneltypes "panel/types" + requests "github.com/TheTNB/panel/app/http/requests/container" + paneltypes "github.com/TheTNB/panel/types" ) type Container interface { diff --git a/internal/cron.go b/internal/cron.go index f52a80b2..4eb632a5 100644 --- a/internal/cron.go +++ b/internal/cron.go @@ -1,6 +1,6 @@ package internal -import "panel/app/models" +import "github.com/TheTNB/panel/app/models" type Cron interface { AddToSystem(cron models.Cron) error diff --git a/internal/php.go b/internal/php.go index be7916b5..e09c3888 100644 --- a/internal/php.go +++ b/internal/php.go @@ -1,6 +1,6 @@ package internal -import "panel/types" +import "github.com/TheTNB/panel/types" type PHPExtension struct { Name string `json:"name"` diff --git a/internal/plugin.go b/internal/plugin.go index 9e19e89f..eb859cd8 100644 --- a/internal/plugin.go +++ b/internal/plugin.go @@ -1,6 +1,6 @@ package internal -import "panel/app/models" +import "github.com/TheTNB/panel/app/models" // PanelPlugin 插件元数据结构 type PanelPlugin struct { diff --git a/internal/services/backup.go b/internal/services/backup.go index 71a1960e..b36f5e6b 100644 --- a/internal/services/backup.go +++ b/internal/services/backup.go @@ -9,9 +9,9 @@ import ( "github.com/goravel/framework/support/carbon" - "panel/app/models" - "panel/internal" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/pkg/tools" ) type BackupImpl struct { diff --git a/internal/services/cert.go b/internal/services/cert.go index a7115482..a16e41f7 100644 --- a/internal/services/cert.go +++ b/internal/services/cert.go @@ -9,10 +9,10 @@ import ( "github.com/goravel/framework/facades" - requests "panel/app/http/requests/cert" - "panel/app/models" - "panel/pkg/acme" - "panel/pkg/tools" + requests "github.com/TheTNB/panel/app/http/requests/cert" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/pkg/acme" + "github.com/TheTNB/panel/pkg/tools" ) type CertImpl struct { diff --git a/internal/services/container.go b/internal/services/container.go index d936b950..2c02a3ed 100644 --- a/internal/services/container.go +++ b/internal/services/container.go @@ -15,8 +15,8 @@ import ( "github.com/docker/docker/client" "github.com/goravel/framework/support/json" - requests "panel/app/http/requests/container" - paneltypes "panel/types" + requests "github.com/TheTNB/panel/app/http/requests/container" + paneltypes "github.com/TheTNB/panel/types" ) type Container struct { diff --git a/internal/services/cron.go b/internal/services/cron.go index 28642cea..1400fe0d 100644 --- a/internal/services/cron.go +++ b/internal/services/cron.go @@ -3,8 +3,8 @@ package services import ( "strings" - "panel/app/models" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/pkg/tools" ) type CronImpl struct { diff --git a/internal/services/php.go b/internal/services/php.go index 2caffa42..54ad7611 100644 --- a/internal/services/php.go +++ b/internal/services/php.go @@ -12,10 +12,10 @@ import ( "github.com/goravel/framework/facades" "github.com/spf13/cast" - "panel/app/models" - "panel/internal" - "panel/pkg/tools" - "panel/types" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/pkg/tools" + "github.com/TheTNB/panel/types" ) type PHPImpl struct { diff --git a/internal/services/plugin.go b/internal/services/plugin.go index fc19d9da..0f9d58a7 100644 --- a/internal/services/plugin.go +++ b/internal/services/plugin.go @@ -6,8 +6,8 @@ import ( "github.com/goravel/framework/facades" - "panel/app/models" - "panel/internal" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" ) type PluginImpl struct { diff --git a/internal/services/setting.go b/internal/services/setting.go index f4d8de22..70d3a97e 100644 --- a/internal/services/setting.go +++ b/internal/services/setting.go @@ -2,8 +2,8 @@ package services import ( + "github.com/TheTNB/panel/app/models" "github.com/goravel/framework/facades" - "panel/app/models" ) type SettingImpl struct { diff --git a/internal/services/task.go b/internal/services/task.go index 79056291..479e6c9c 100644 --- a/internal/services/task.go +++ b/internal/services/task.go @@ -3,8 +3,8 @@ package services import ( "github.com/goravel/framework/facades" - "panel/app/jobs" - "panel/app/models" + "github.com/TheTNB/panel/app/jobs" + "github.com/TheTNB/panel/app/models" ) type TaskImpl struct { diff --git a/internal/services/user.go b/internal/services/user.go index 3422832f..1fb73226 100644 --- a/internal/services/user.go +++ b/internal/services/user.go @@ -4,7 +4,7 @@ package services import ( "github.com/goravel/framework/facades" - "panel/app/models" + "github.com/TheTNB/panel/app/models" ) type UserImpl struct { diff --git a/internal/services/website.go b/internal/services/website.go index 574e0c9d..dab048b6 100644 --- a/internal/services/website.go +++ b/internal/services/website.go @@ -10,13 +10,13 @@ import ( "strconv" "strings" + requests "github.com/TheTNB/panel/app/http/requests/website" "github.com/goravel/framework/facades" "github.com/spf13/cast" - requests "panel/app/http/requests/website" - "panel/app/models" - "panel/internal" - "panel/pkg/tools" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/pkg/tools" ) type WebsiteImpl struct { diff --git a/internal/user.go b/internal/user.go index fa5e2167..1ff0dbf2 100644 --- a/internal/user.go +++ b/internal/user.go @@ -1,6 +1,6 @@ package internal -import "panel/app/models" +import "github.com/TheTNB/panel/app/models" type User interface { Create(name, password string) (models.User, error) diff --git a/internal/website.go b/internal/website.go index 6746703a..5c2b1c50 100644 --- a/internal/website.go +++ b/internal/website.go @@ -1,8 +1,8 @@ package internal import ( - requests "panel/app/http/requests/website" - "panel/app/models" + requests "github.com/TheTNB/panel/app/http/requests/website" + "github.com/TheTNB/panel/app/models" ) type Website interface { diff --git a/main.go b/main.go index 33df08bc..c45eda73 100644 --- a/main.go +++ b/main.go @@ -19,7 +19,7 @@ package main import ( "github.com/goravel/framework/facades" - "panel/bootstrap" + "github.com/TheTNB/panel/bootstrap" ) // @title 耗子 Linux 面板 API @@ -27,7 +27,7 @@ import ( // @description 耗子 Linux 面板的 API 信息 // @contact.name 耗子科技 -// @contact.email i@haozi.net +// @contact.email admin@haozi.net // @license.name GNU Affero General Public License v3 // @license url https://www.gnu.org/licenses/agpl-3.0.html diff --git a/pkg/ssh/ssh.go b/pkg/ssh/ssh.go index 7ad6f46d..14b2d89e 100644 --- a/pkg/ssh/ssh.go +++ b/pkg/ssh/ssh.go @@ -5,7 +5,7 @@ import ( "golang.org/x/crypto/ssh" - "panel/pkg/tools" + "github.com/TheTNB/panel/pkg/tools" ) type AuthMethod int8 diff --git a/pkg/tools/tools.go b/pkg/tools/tools.go index 7046c346..a61058a8 100644 --- a/pkg/tools/tools.go +++ b/pkg/tools/tools.go @@ -10,8 +10,8 @@ import ( "time" "github.com/go-resty/resty/v2" - "github.com/gookit/color" "github.com/goravel/framework/support/carbon" + "github.com/goravel/framework/support/color" "github.com/goravel/framework/support/env" "github.com/shirou/gopsutil/cpu" "github.com/shirou/gopsutil/disk" @@ -402,108 +402,108 @@ func GetPanelVersion(version string) (PanelInfo, error) { // UpdatePanel 更新面板 func UpdatePanel(panelInfo PanelInfo) error { - color.Greenln("目标版本: " + panelInfo.Version) - color.Greenln("下载链接: " + panelInfo.DownloadUrl) + color.Green().Printfln("目标版本: " + panelInfo.Version) + color.Green().Printfln("下载链接: " + panelInfo.DownloadUrl) - color.Greenln("前置检查...") + color.Green().Printfln("前置检查...") if Exists("/tmp/panel-storage.zip") || Exists("/tmp/panel.conf.bak") { return errors.New("检测到 /tmp 存在临时文件,可能是上次更新失败导致的,请谨慎排除后重试") } - color.Greenln("备份面板数据...") + color.Green().Printfln("备份面板数据...") // 备份面板 if err := Archive([]string{"/www/panel"}, "/www/backup/panel/panel-"+carbon.Now().ToShortDateTimeString()+".zip"); err != nil { - color.Redln("备份面板失败") + color.Red().Printfln("备份面板失败") return err } if _, err := Exec("cd /www/panel/storage && zip -r /tmp/panel-storage.zip *"); err != nil { - color.Redln("备份面板数据失败") + color.Red().Printfln("备份面板数据失败") return err } if _, err := Exec("cp -f /www/panel/panel.conf /tmp/panel.conf.bak"); err != nil { - color.Redln("备份面板配置失败") + color.Red().Printfln("备份面板配置失败") return err } if !Exists("/tmp/panel-storage.zip") || !Exists("/tmp/panel.conf.bak") { return errors.New("备份面板数据失败") } - color.Greenln("备份完成") + color.Green().Printfln("备份完成") - color.Greenln("清理旧版本...") + color.Green().Printfln("清理旧版本...") if _, err := Exec("rm -rf /www/panel/*"); err != nil { - color.Redln("清理旧版本失败") + color.Red().Printfln("清理旧版本失败") return err } - color.Greenln("清理完成") + color.Green().Printfln("清理完成") - color.Greenln("正在下载...") + color.Green().Printfln("正在下载...") if _, err := Exec("wget -T 120 -t 3 -O /www/panel/" + panelInfo.DownloadName + " " + panelInfo.DownloadUrl); err != nil { - color.Redln("下载失败") + color.Red().Printfln("下载失败") return err } if _, err := Exec("wget -T 20 -t 3 -O /www/panel/" + panelInfo.Checksums + " " + panelInfo.ChecksumsUrl); err != nil { - color.Redln("下载失败") + color.Red().Printfln("下载失败") return err } if !Exists("/www/panel/"+panelInfo.DownloadName) || !Exists("/www/panel/"+panelInfo.Checksums) { return errors.New("下载失败") } - color.Greenln("下载完成") + color.Green().Printfln("下载完成") - color.Greenln("校验下载文件...") + color.Green().Printfln("校验下载文件...") check, err := Exec("cd /www/panel && sha256sum -c " + panelInfo.Checksums + " --ignore-missing") if check != panelInfo.DownloadName+": OK" || err != nil { return errors.New("下载文件校验失败") } if err = Remove("/www/panel/" + panelInfo.Checksums); err != nil { - color.Redln("清理临时文件失败") + color.Red().Printfln("清理临时文件失败") return err } - color.Greenln("文件校验完成") + color.Green().Printfln("文件校验完成") - color.Greenln("更新新版本...") + color.Green().Printfln("更新新版本...") if _, err = Exec("cd /www/panel && unzip -o " + panelInfo.DownloadName + " && rm -rf " + panelInfo.DownloadName); err != nil { - color.Redln("更新失败") + color.Red().Printfln("更新失败") return err } if !Exists("/www/panel/panel") { return errors.New("更新失败,可能是下载过程中出现了问题") } - color.Greenln("更新完成") + color.Green().Printfln("更新完成") - color.Greenln("恢复面板数据...") + color.Green().Printfln("恢复面板数据...") if _, err = Exec("cp -f /tmp/panel-storage.zip /www/panel/storage/panel-storage.zip && cd /www/panel/storage && unzip -o panel-storage.zip && rm -rf panel-storage.zip"); err != nil { - color.Redln("恢复面板数据失败") + color.Red().Printfln("恢复面板数据失败") return err } if _, err = Exec("cp -f /tmp/panel.conf.bak /www/panel/panel.conf"); err != nil { - color.Redln("恢复面板配置失败") + color.Red().Printfln("恢复面板配置失败") return err } if _, err = Exec("cp -f /www/panel/scripts/panel.sh /usr/bin/panel"); err != nil { - color.Redln("恢复面板脚本失败") + color.Red().Printfln("恢复面板脚本失败") return err } if !Exists("/www/panel/storage/panel.db") || !Exists("/www/panel/panel.conf") { return errors.New("恢复面板数据失败") } - color.Greenln("恢复完成") + color.Green().Printfln("恢复完成") - color.Greenln("设置面板文件权限...") + color.Green().Printfln("设置面板文件权限...") _, _ = Exec("chmod -R 700 /www/panel") _, _ = Exec("chmod -R 700 /usr/bin/panel") - color.Greenln("设置完成") + color.Green().Printfln("设置完成") if _, err = Exec("/www/panel/panel --env=panel.conf artisan migrate"); err != nil { - color.Redln("运行面板数据库迁移失败") + color.Red().Printfln("运行面板数据库迁移失败") return err } if _, err = Exec("bash /www/panel/scripts/update_panel.sh"); err != nil { - color.Redln("执行面板升级后脚本失败") + color.Red().Printfln("执行面板升级后脚本失败") return err } if _, err = Exec("panel writeSetting version " + panelInfo.Version); err != nil { - color.Redln("写入面板版本号失败") + color.Red().Printfln("写入面板版本号失败") return err } @@ -514,14 +514,14 @@ func UpdatePanel(panelInfo PanelInfo) error { } func RestartPanel() { - color.Greenln("重启面板...") + color.Green().Printfln("重启面板...") err := ExecAsync("sleep 2 && systemctl restart panel") if err != nil { - color.Redln("重启失败") + color.Red().Printfln("重启失败") return } - color.Greenln("重启完成") + color.Green().Printfln("重启完成") } // IsChina 是否中国大陆 diff --git a/routes/api.go b/routes/api.go index 9030c8ed..080a0966 100644 --- a/routes/api.go +++ b/routes/api.go @@ -4,8 +4,8 @@ import ( "github.com/goravel/framework/contracts/route" "github.com/goravel/framework/facades" - "panel/app/http/controllers" - "panel/app/http/middleware" + "github.com/TheTNB/panel/app/http/controllers" + "github.com/TheTNB/panel/app/http/middleware" ) func Api() { diff --git a/routes/plugin.go b/routes/plugin.go index 929f5403..fda5846b 100644 --- a/routes/plugin.go +++ b/routes/plugin.go @@ -4,8 +4,8 @@ import ( "github.com/goravel/framework/contracts/route" "github.com/goravel/framework/facades" - "panel/app/http/controllers/plugins" - "panel/app/http/middleware" + "github.com/TheTNB/panel/app/http/controllers/plugins" + "github.com/TheTNB/panel/app/http/middleware" ) // Plugin 加载插件路由 diff --git a/tests/setting/setting_test.go b/tests/setting/setting_test.go index c20149b2..c1b720bf 100644 --- a/tests/setting/setting_test.go +++ b/tests/setting/setting_test.go @@ -5,9 +5,9 @@ import ( "github.com/stretchr/testify/suite" - "panel/internal" - "panel/internal/services" - "panel/tests" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/tests" ) type SettingTestSuite struct { diff --git a/tests/test_case.go b/tests/test_case.go index 4984015a..bb402bba 100644 --- a/tests/test_case.go +++ b/tests/test_case.go @@ -3,7 +3,7 @@ package tests import ( "github.com/goravel/framework/testing" - "panel/bootstrap" + "github.com/TheTNB/panel/bootstrap" ) func init() { diff --git a/tests/user/user_test.go b/tests/user/user_test.go index f348fcde..ca339580 100644 --- a/tests/user/user_test.go +++ b/tests/user/user_test.go @@ -6,10 +6,10 @@ import ( "github.com/goravel/framework/facades" "github.com/stretchr/testify/suite" - "panel/app/models" - "panel/internal" - "panel/internal/services" - "panel/tests" + "github.com/TheTNB/panel/app/models" + "github.com/TheTNB/panel/internal" + "github.com/TheTNB/panel/internal/services" + "github.com/TheTNB/panel/tests" ) type UserTestSuite struct {