mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
Refactor start-up parameters. Fixed embed bugs for Windows. Fixed wrong Content Type of .js file on some OS platforms.
This commit is contained in:
parent
0cf6919d7b
commit
759a235e7e
6 changed files with 47 additions and 41 deletions
11
main.go
11
main.go
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/0xJacky/Nginx-UI/server/settings"
|
||||
tool2 "github.com/0xJacky/Nginx-UI/server/tool"
|
||||
"log"
|
||||
"mime"
|
||||
"net/http"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
@ -19,11 +20,15 @@ func main() {
|
|||
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
|
||||
defer stop()
|
||||
|
||||
var dataDir string
|
||||
flag.StringVar(&dataDir, "d", ".", "Specify the data dir")
|
||||
// Hack: fix wrong Content Type of .js file on some OS platforms
|
||||
// See https://github.com/golang/go/issues/32350
|
||||
_ = mime.AddExtensionType(".js", "text/javascript; charset=utf-8")
|
||||
|
||||
var confPath string
|
||||
flag.StringVar(&confPath, "config", "./app.ini", "Specify the configuration file")
|
||||
flag.Parse()
|
||||
|
||||
settings.Init(dataDir)
|
||||
settings.Init(confPath)
|
||||
model.Init()
|
||||
|
||||
srv := &http.Server{
|
||||
|
|
|
@ -5,7 +5,7 @@ After=network.target
|
|||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/nginx-ui -d /usr/local/etc/nginx-ui
|
||||
ExecStart=/usr/local/bin/nginx-ui -d /usr/local/etc/nginx-ui/app.ini
|
||||
Restart=on-failure
|
||||
TimeoutStopSec=5
|
||||
KillMode=mixed
|
||||
|
|
|
@ -8,11 +8,10 @@ import (
|
|||
"golang.org/x/crypto/bcrypt"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
)
|
||||
|
||||
func installLockStatus() bool {
|
||||
lockPath := path.Join(settings.DataDir, "app.ini")
|
||||
lockPath := settings.ConfPath
|
||||
_, err := os.Stat(lockPath)
|
||||
|
||||
return !os.IsNotExist(err)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/0xJacky/Nginx-UI/server/settings"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
|
@ -20,7 +21,7 @@ type Model struct {
|
|||
}
|
||||
|
||||
func Init() {
|
||||
dbPath := path.Join(settings.DataDir, "database.db")
|
||||
dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database))
|
||||
var err error
|
||||
db, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
"io/fs"
|
||||
"log"
|
||||
"net/http"
|
||||
"path/filepath"
|
||||
"path"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -47,14 +47,14 @@ type serverFileSystemType struct {
|
|||
http.FileSystem
|
||||
}
|
||||
|
||||
func (f serverFileSystemType) Exists(prefix string, path string) bool {
|
||||
_, err := f.Open(filepath.Join(prefix, path))
|
||||
func (f serverFileSystemType) Exists(prefix string, filePath string) bool {
|
||||
_, err := f.Open(path.Join(prefix, filePath))
|
||||
return err == nil
|
||||
}
|
||||
|
||||
func mustFS(dir string) (serverFileSystem static.ServeFileSystem) {
|
||||
|
||||
sub, err := fs.Sub(frontend.DistFS, filepath.Join("dist", dir))
|
||||
sub, err := fs.Sub(frontend.DistFS, path.Join("dist", dir))
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"gopkg.in/ini.v1"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
)
|
||||
|
||||
var Conf *ini.File
|
||||
|
@ -16,27 +15,30 @@ type Server struct {
|
|||
JwtSecret string
|
||||
HTTPChallengePort string
|
||||
Email string
|
||||
Database string
|
||||
}
|
||||
|
||||
var ServerSettings = &Server{}
|
||||
|
||||
var DataDir string
|
||||
var confPath string
|
||||
|
||||
func Init(dataDir string) {
|
||||
DataDir = dataDir
|
||||
confPath = path.Join(dataDir, "app.ini")
|
||||
if _, err := os.Stat(confPath); os.IsNotExist(err) {
|
||||
confPath = path.Join(dataDir, "app.example.ini")
|
||||
var ServerSettings = &Server{
|
||||
HttpPort: "9000",
|
||||
RunMode: "debug",
|
||||
HTTPChallengePort: "9180",
|
||||
Database: "database",
|
||||
}
|
||||
|
||||
var ConfPath string
|
||||
|
||||
func Init(confPath string) {
|
||||
ConfPath = confPath
|
||||
if _, err := os.Stat(ConfPath); os.IsExist(err) {
|
||||
Setup()
|
||||
}
|
||||
}
|
||||
|
||||
func Setup() {
|
||||
var err error
|
||||
Conf, err = ini.Load(confPath)
|
||||
Conf, err = ini.Load(ConfPath)
|
||||
if err != nil {
|
||||
log.Fatalf("setting.Setup, fail to parse '%s': %v", confPath, err)
|
||||
log.Fatalf("setting.Setup, fail to parse '%s': %v", ConfPath, err)
|
||||
}
|
||||
|
||||
mapTo("server", ServerSettings)
|
||||
|
@ -50,8 +52,7 @@ func mapTo(section string, v interface{}) {
|
|||
}
|
||||
|
||||
func Save() (err error) {
|
||||
confPath = path.Join(DataDir, "app.ini")
|
||||
err = Conf.SaveTo(confPath)
|
||||
err = Conf.SaveTo(ConfPath)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue