系统设置迁入后台:站点地址 / 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
@@ -35,19 +35,36 @@ ONE_ADMIN_USER=admin ONE_ADMIN_PASSWORD=换一个 make start
|
||||
|
||||
登录态是服务端签发的 httpOnly cookie(HMAC-SHA256,7 天有效),同时支持 `Authorization: Bearer <token>`,方便用 curl / 脚本写文章。
|
||||
|
||||
## 环境变量
|
||||
## 设置:后台优先,环境变量兜底
|
||||
|
||||
站点地址、评论区第三方登录(GitHub / Google / Telegram)凭据、R2 对象存储、
|
||||
管理员用户名与密码,都在后台 **设置 → 登录与存储**(站点地址在 **基础信息**)里配置,
|
||||
保存后立即生效,无需重启。这些值存在 `settings` 表里,生效规则是
|
||||
「后台填了用后台的,没填回落到环境变量」——老部署不改 env 也能照常跑。
|
||||
|
||||
秘密项(client secret、Bot token、R2 密钥、管理员密码)在后台只显示
|
||||
「是否已配置、来自哪里」,永不回显明文;留空保存 = 保持现值。
|
||||
管理员密码在后台以 bcrypt 哈希存储;显式设置过的 `ONE_ADMIN_PASSWORD`
|
||||
保留作解锁后路(env 和数据库在同一台机器上,能读 env 的人本来就能改库)。
|
||||
|
||||
环境变量只剩启动期必需项:
|
||||
|
||||
| 变量 | 默认 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `ONE_ADDR` | `:8080` | 监听地址 |
|
||||
| `ONE_DB_DRIVER` | `sqlite` | `sqlite` 或 `postgres` |
|
||||
| `ONE_DB_DSN` | `./data/one.db` | 数据库连接串(Postgres 示例:`postgres://user:pass@localhost/one?sslmode=disable`) |
|
||||
| `ONE_ADMIN_USER` | `admin` | 后台用户名 |
|
||||
| `ONE_ADMIN_PASSWORD` | `admin` | 后台密码 |
|
||||
| `ONE_SECRET` | 随机生成 | 会话签名密钥;不设的话重启后登录态失效 |
|
||||
| `ONE_SITE_URL` | `http://localhost:8080` | RSS 里的站点地址,部署时务必改成真实域名 |
|
||||
| `ONE_WEB_DIST` | `./frontend/dist` | 前端构建产物目录 |
|
||||
| `ONE_DATA_DIR` | `./data` | SQLite 数据目录 |
|
||||
| `ONE_ADMIN_USER` | `admin` | 初始后台用户名(后台可改) |
|
||||
| `ONE_ADMIN_PASSWORD` | `admin` | 初始后台密码(后台可改;不设即 admin/admin 的开发模式) |
|
||||
| `ONE_SITE_URL` | `http://localhost:8080` | 站点地址兜底值(后台可改) |
|
||||
| `ONE_GITHUB_CLIENT_ID` / `_SECRET` | — | GitHub 登录兜底值(后台可改) |
|
||||
| `ONE_GOOGLE_CLIENT_ID` / `_SECRET` | — | Google 登录兜底值(后台可改) |
|
||||
| `ONE_TELEGRAM_BOT` / `_TOKEN` | — | Telegram 登录兜底值(后台可改) |
|
||||
| `S3Api` / `Bucket` / `AccessKey` / `SecretAccessKey` / `PublicURL` | — | R2 存储兜底值(后台可改) |
|
||||
| `ONE_WEBAUTHN_RP_ID` / `_ORIGINS` | — | Passkey 登录;显式配 origins 才启用 |
|
||||
|
||||
## 界面:classic / vivid
|
||||
|
||||
@@ -177,12 +194,13 @@ PUT /api/admin/settings
|
||||
```bash
|
||||
make build # 产出 ./one-server,前端已打进 web/dist
|
||||
ONE_ADDR=:8080 \
|
||||
ONE_SITE_URL=https://your.domain \
|
||||
ONE_DB_DRIVER=postgres \
|
||||
ONE_DB_DSN="postgres://user:pass@127.0.0.1/one?sslmode=disable" \
|
||||
ONE_SECRET=一串随机长字符串 \
|
||||
ONE_ADMIN_PASSWORD=强密码 \
|
||||
./one-server
|
||||
# 首次启动后登录后台,把站点地址、第三方登录、对象存储在「设置」页里配好,
|
||||
# 之后改这些就不再需要碰环境变量或重启。
|
||||
```
|
||||
|
||||
要点:
|
||||
@@ -200,7 +218,7 @@ After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/one
|
||||
Environment=ONE_ADDR=:8080 ONE_SITE_URL=https://your.domain ONE_SECRET=xxx ONE_ADMIN_PASSWORD=xxx
|
||||
Environment=ONE_ADDR=:8080 ONE_SECRET=xxx ONE_ADMIN_PASSWORD=xxx
|
||||
ExecStart=/opt/one/one-server
|
||||
Restart=always
|
||||
|
||||
|
||||
Reference in new issue
Block a user