系统设置迁入后台:站点地址 / OAuth 凭据 / R2 存储 / 管理员账号,保存即生效无需重启
- 生效规则统一为「后台填了用后台的,没填回落环境变量」,老部署不改 env 照常跑 - config.Resolver:短缓存解析有效配置,存储后端按配置签名热重建;后台保存主动失效 - 秘密项(client secret / bot token / R2 密钥 / 管理员密码)接口永不回显明文, 只报「是否已配置、来自哪里」;留空保存 = 保持现值 - 管理员密码 bcrypt 入库,DB 哈希优先、显式设置的 env 密码作解锁后路; 后台改过密码后 admin/admin 开发模式立即失效 - 设置页新增「登录与存储」标签,基础信息加站点地址;秘密项带来源提示 - 监听地址 / 数据库 / 目录 / ONE_SECRET / Passkey 仍留环境变量(启动期依赖)
This commit is contained in:
1 parent
bf3ce934dd
commit
e68400b389
23 files changed
+957
-126
No files matched your search
@@ -239,6 +239,29 @@ type Settings struct {
|
||||
// AuthorAvatarURL 由 API 层按 AuthorAvatarKey + 存储端解析出来,
|
||||
// 不落库;key 指向的文件已删除时为空串。
|
||||
AuthorAvatarURL string `json:"author_avatar_url"`
|
||||
|
||||
// —— 以下是从环境变量迁进后台的「系统设置」。值存在 settings KV 表里,
|
||||
// 生效规则统一是「DB 有值用 DB,空值回落环境变量」(见 config.Overlay)。
|
||||
// 非秘密项直接进公开 JSON(client_id 本来就会出现在登录跳转 URL 里);
|
||||
// 秘密项一律 json:"-",只在后台 API 里以「是否已配置 + 来源」的形式露出,
|
||||
// 修改走 settings PUT 的 secrets 字段(留空 = 保持现值)。
|
||||
SiteURL string `json:"site_url"`
|
||||
GitHubClientID string `json:"github_client_id,omitempty"`
|
||||
GoogleClientID string `json:"google_client_id,omitempty"`
|
||||
TelegramBot string `json:"telegram_bot,omitempty"`
|
||||
// AdminUsername 不算秘密(登录页本来就要输入它),但也不进公开 JSON。
|
||||
AdminUsername string `json:"admin_username,omitempty"`
|
||||
|
||||
UploadsPublicBase string `json:"-"`
|
||||
S3Endpoint string `json:"-"`
|
||||
R2Bucket string `json:"-"`
|
||||
R2AccessKey string `json:"-"`
|
||||
R2SecretKey string `json:"-"`
|
||||
GitHubClientSecret string `json:"-"`
|
||||
GoogleClientSecret string `json:"-"`
|
||||
TelegramToken string `json:"-"`
|
||||
// AdminPasswordHash 只存 bcrypt 哈希,从不离开服务端。
|
||||
AdminPasswordHash string `json:"-"`
|
||||
}
|
||||
|
||||
// 账号角色。owner 全库唯一(站主),reader 是评论区登录进来的访客。
|
||||
|
||||
Reference in new issue
Block a user