From 32fdc627bc589091dc93ef9082f520d223ce46b7 Mon Sep 17 00:00:00 2001 From: Jacky Date: Mon, 5 May 2025 13:17:30 +0000 Subject: [PATCH] fix: bug fix --- api/system/install.go | 11 +++++++++-- go.mod | 2 +- go.sum | 4 ++-- internal/kernel/boot.go | 32 +++++++------------------------- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/api/system/install.go b/api/system/install.go index 475e51bf..ba3f982e 100644 --- a/api/system/install.go +++ b/api/system/install.go @@ -4,6 +4,7 @@ import ( "net/http" "time" + "code.pfad.fr/risefront" "github.com/0xJacky/Nginx-UI/internal/kernel" "github.com/0xJacky/Nginx-UI/internal/system" "github.com/0xJacky/Nginx-UI/model" @@ -89,9 +90,13 @@ func InstallNginxUI(c *gin.Context) { } // Init model - kernel.PostInstall() + kernel.InitDatabase(kernel.Context) - pwd, _ := bcrypt.GenerateFromPassword([]byte(json.Password), bcrypt.DefaultCost) + pwd, err := bcrypt.GenerateFromPassword([]byte(json.Password), bcrypt.DefaultCost) + if err != nil { + cosy.ErrHandler(c, err) + return + } u := query.User err = u.Create(&model.User{ @@ -107,4 +112,6 @@ func InstallNginxUI(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "ok", }) + + risefront.Restart() } diff --git a/go.mod b/go.mod index cd359c51..f17224a9 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/spf13/cast v1.8.0 github.com/stretchr/testify v1.10.0 github.com/tufanbarisyildirim/gonginx v0.0.0-20250429180229-7e931b1d4276 - github.com/uozi-tech/cosy v1.21.0 + github.com/uozi-tech/cosy v1.21.1 github.com/uozi-tech/cosy-driver-sqlite v0.2.1 github.com/urfave/cli/v3 v3.3.2 golang.org/x/crypto v0.37.0 diff --git a/go.sum b/go.sum index 6d8aeab8..934570fb 100644 --- a/go.sum +++ b/go.sum @@ -1830,8 +1830,8 @@ github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65E github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec h1:2s/ghQ8wKE+UzD/hf3P4Gd1j0JI9ncbxv+nsypPoUYI= github.com/ultradns/ultradns-go-sdk v1.8.0-20241010134910-243eeec/go.mod h1:BZr7Qs3ku1ckpqed8tCRSqTlp8NAeZfAVpfx4OzXMss= -github.com/uozi-tech/cosy v1.21.0 h1:954hIrgOr9isAHvkflIs0UHVlkjUGwZZGL03HEZz7/c= -github.com/uozi-tech/cosy v1.21.0/go.mod h1:amORxida+YxQJPzDHBQ4IQuYOgMqahgLv3DdHmQuy8k= +github.com/uozi-tech/cosy v1.21.1 h1:S2jK0EwwbMkPD2VGiMfNzDAmh8NSvT7c+rn45wUJoTI= +github.com/uozi-tech/cosy v1.21.1/go.mod h1:amORxida+YxQJPzDHBQ4IQuYOgMqahgLv3DdHmQuy8k= github.com/uozi-tech/cosy-driver-mysql v0.2.2 h1:22S/XNIvuaKGqxQPsYPXN8TZ8hHjCQdcJKVQ83Vzxoo= github.com/uozi-tech/cosy-driver-mysql v0.2.2/go.mod h1:EZnRIbSj1V5U0gEeTobrXai/d1SV11lkl4zP9NFEmyE= github.com/uozi-tech/cosy-driver-postgres v0.2.1 h1:OICakGuT+omva6QOJCxTJ5Lfr7CGXLmk/zD+aS51Z2o= diff --git a/internal/kernel/boot.go b/internal/kernel/boot.go index 6f982db1..29dc9186 100644 --- a/internal/kernel/boot.go +++ b/internal/kernel/boot.go @@ -9,7 +9,6 @@ import ( "path" "path/filepath" "runtime" - "sync" "github.com/0xJacky/Nginx-UI/internal/analytic" "github.com/0xJacky/Nginx-UI/internal/cache" @@ -45,6 +44,7 @@ func Boot(ctx context.Context) { InitCryptoSecret, validation.Init, func() { + InitDatabase(ctx) cache.Init(ctx) }, CheckAndCleanupOTA, @@ -52,7 +52,6 @@ func Boot(ctx context.Context) { syncs := []func(ctx context.Context){ analytic.RecordServerAnalytic, - InitDatabase, } for _, v := range async { @@ -89,20 +88,6 @@ func recovery() { } } -var ( - installChan = make(chan struct{}) - dbInited = sync.WaitGroup{} -) - -func init() { - dbInited.Add(1) -} - -func PostInstall() { - installChan <- struct{}{} - dbInited.Wait() -} - func InitDatabase(ctx context.Context) { cModel.ResolvedModels() // Skip install @@ -110,16 +95,13 @@ func InitDatabase(ctx context.Context) { skipInstall() } - if cSettings.AppSettings.JwtSecret == "" { - <-installChan + if cSettings.AppSettings.JwtSecret != "" { + db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), settings.DatabaseSettings)) + model.Use(db) + query.Init(db) + + InitAfterDatabase(ctx) } - - db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), settings.DatabaseSettings)) - model.Use(db) - query.Init(db) - - InitAfterDatabase(ctx) - dbInited.Done() } func InitNodeSecret() {