Release 4.0.0+1: rebrand Navis → EvilFox; centralized Remnawave auto-provisioning (panel credentials baked into binary); remove Remnawave API UI; Windows 4.0.0.1.

Keep dist/navis-release/ path and ship Navis.exe as a same-hash alias of EvilFox.exe so 3.x clients can still update from the Windows branch feed.
This commit is contained in:
Navis
2026-08-01 20:06:25 +03:00
parent e76c0a0977
commit 1144fab54d
32 changed files with 280 additions and 243 deletions
+23 -3
View File
@@ -117,7 +117,7 @@ func main() {
AutoFocus: true,
DataPath: dataPath,
WindowOptions: webview2.WindowOptions{
Title: "Navis 2",
Title: "EvilFox",
Width: 920,
Height: 680,
Center: true,
@@ -160,12 +160,32 @@ func main() {
mustBind(w, "getLogs", a.getLogs)
go a.autoCheckUpdate()
go a.autoProvision()
mgr.StartAutoRenew(6 * time.Hour)
w.SetHtml(appui.IndexHTML)
w.Run()
}
// autoProvision quietly issues a panel account + imports configs on first run
// (NordVPN-style centralized provisioning — users never edit the panel).
func (a *app) autoProvision() {
if !a.mgr.ProvisionConfigured() {
return
}
time.Sleep(2 * time.Second)
out, err := a.mgr.EnsureAutoProvision()
if err != nil {
fmt.Fprintf(a.logBuf, "auto-provision: %v\n", err)
return
}
if out.Created {
fmt.Fprintf(a.logBuf, "auto-provision: создан %s · серверов %d\n", out.Username, out.Imported)
} else if out.Imported > 0 {
fmt.Fprintf(a.logBuf, "auto-provision: обновлены конфиги %s · серверов %d\n", out.Username, out.Imported)
}
}
func mustBind(w webview2.WebView, name string, fn interface{}) {
if err := w.Bind(name, fn); err != nil {
fatalDialog("bind %s: %v", name, err)
@@ -503,12 +523,12 @@ func (a *app) applyUpdate() (string, error) {
return "", err
}
_ = a.mgr.Disconnect()
// Hard-exit so Windows unlocks Navis.exe; do not wait on webview.Terminate (can hang).
// Hard-exit so Windows unlocks EvilFox.exe; do not wait on webview.Terminate (can hang).
go func() {
time.Sleep(300 * time.Millisecond)
os.Exit(0)
}()
return "Устанавливается v" + latest + "… Navis перезапустится.", nil
return "Устанавливается v" + latest + "… EvilFox перезапустится.", nil
}
func (a *app) autoCheckUpdate() {