🎨 Improve the network serve address list https://github.com/siyuan-note/siyuan/issues/14943

Signed-off-by: Daniel <845765@qq.com>
This commit is contained in:
Daniel 2026-01-17 11:41:14 +08:00
parent 3e6e5fa3a4
commit db4b91b757
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
7 changed files with 47 additions and 60 deletions

View file

@ -64,7 +64,7 @@ type AppConf struct {
User *conf.User `json:"-"` // 社区用户内存结构,不持久化。不要直接使用,使用 GetUser() 和 SetUser() 方法
Account *conf.Account `json:"account"` // 帐号配置
ReadOnly bool `json:"readonly"` // 是否是以只读模式运行
LocalIPs []string `json:"localIPs"` // 本地 IP 列表
ServerAddrs []string `json:"serverAddrs"` // 本地服务器地址列表
AccessAuthCode string `json:"accessAuthCode"` // 访问授权码
System *conf.System `json:"system"` // 系统配置
Keymap *conf.Keymap `json:"keymap"` // 快捷键配置
@ -582,8 +582,6 @@ func InitConf() {
Conf.AccessAuthCode = strings.TrimSpace(Conf.AccessAuthCode)
Conf.AccessAuthCode = util.RemoveInvalid(Conf.AccessAuthCode)
Conf.LocalIPs = util.GetLocalIPs()
if 1 == Conf.DataIndexState {
// 上次未正常完成数据索引
go func() {
@ -1045,13 +1043,13 @@ func GetMaskedConf() (ret *AppConf, err error) {
return
}
// REF: https://github.com/siyuan-note/siyuan/issues/11364
// HideConfSecret 隐藏设置中的秘密信息
// REF: https://github.com/siyuan-note/siyuan/issues/11364
func HideConfSecret(c *AppConf) {
c.AI = &conf.AI{}
c.Api = &conf.API{}
c.Flashcard = &conf.Flashcard{}
c.LocalIPs = []string{}
c.ServerAddrs = []string{}
c.Publish = &conf.Publish{}
c.Repo = &conf.Repo{}
c.Sync = &conf.Sync{}

View file

@ -198,6 +198,9 @@ func Serve(fastMode bool, cookieKey string) {
}
util.ServerPort = port
model.Conf.ServerAddrs = util.GetServerAddrs()
model.Conf.Save()
util.ServerURL, err = url.Parse("http://127.0.0.1:" + port)
if err != nil {
logging.LogErrorf("parse server url failed: %s", err)

View file

@ -64,18 +64,18 @@ func ShortPathForBootingDisplay(p string) string {
var LocalIPs []string
func GetLocalIPs() (ret []string) {
if ContainerAndroid == Container || ContainerHarmony == Container {
func GetServerAddrs() (ret []string) {
if ContainerAndroid != Container && ContainerHarmony != Container {
// Android 上用不了 net.InterfaceAddrs() https://github.com/golang/go/issues/40569所以前面使用启动内核传入的参数 localIPs
LocalIPs = append(LocalIPs, LocalHost)
LocalIPs = gulu.Str.RemoveDuplicatedElem(LocalIPs)
return LocalIPs
ret = GetPrivateIPv4s()
}
ret = []string{}
ret = append(ret, GetPrivateIPv4s()...)
ret = append(ret, LocalHost)
ret = gulu.Str.RemoveDuplicatedElem(ret)
for i, _ := range ret {
ret[i] = "http://" + ret[i] + ":" + ServerPort
}
return
}