Jacky 18 годин тому
батько
коміт
32fdc627bc
4 змінених файлів з 19 додано та 30 видалено
  1. 9 2
      api/system/install.go
  2. 1 1
      go.mod
  3. 2 2
      go.sum
  4. 7 25
      internal/kernel/boot.go

+ 9 - 2
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()
 }

+ 1 - 1
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

+ 2 - 2
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=

+ 7 - 25
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
-	}
-
-	db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), settings.DatabaseSettings))
-	model.Use(db)
-	query.Init(db)
+	if cSettings.AppSettings.JwtSecret != "" {
+		db := cosy.InitDB(sqlite.Open(path.Dir(cSettings.ConfPath), settings.DatabaseSettings))
+		model.Use(db)
+		query.Init(db)
 
-	InitAfterDatabase(ctx)
-	dbInited.Done()
+		InitAfterDatabase(ctx)
+	}
 }
 
 func InitNodeSecret() {