diff --git a/README.md b/README.md index 2ce1e11..bbff514 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ - **博客**:首页(置顶优先 + 分页 + 标签云)、详情(上一篇/下一篇)、标签页、RSS、sitemap、SEO meta 注入(仅公开内容) - **管理**:单管理员口令登录(Argon2id)、会话 7 天滑动续期(CSRF 轮换保持不变)、防爆破限流(per-IP + per-账号)、改密 - **回收站**:删除 = 软删除,30 天内可恢复,`gc` 到期物理清除 +- **界面**:9 页面响应式 SPA(React 19 + Tailwind 4),深色/浅色/跟随系统三态主题 - **运维**:`init` / `passwd`(重设口令并吊销全部会话)/ `start` / `backup`(在线一致快照)/ `gc`(默认 dry-run)/ `version`(亦可 `-v`) ## 快速开始 @@ -39,6 +40,8 @@ make build cd web && npm install && npm run dev # /api 代理到 127.0.0.1:8080 ``` +> **为什么必须带 `--dev`**:明文 HTTP 下 Safari/WebKit 不保存 `Secure` Cookie(Chrome/Firefox 有 localhost 豁免,Safari 没有),不带 `--dev` 时 `__Host-` 会话被静默丢弃,Safari 登录成功后仍会被弹回登录页。`--dev` 改用无 `Secure` 的 `pn_session` Cookie 并强制仅监听 loopback(§7.3-3);生产走 HTTPS 不带 `--dev`,自动恢复 `__Host-` + `Secure` 完整加固。 + 忘记口令(CLI 可达即具备服务器权限,可直接重设;重设后全部会话被吊销): ```bash @@ -87,6 +90,9 @@ internal/middleware/ 安全头 / 日志 / 限流 / Origin 校验 / MaxBytes internal/httpapi/ 路由与 handler(公共 / 认证 / 管理 / feed) internal/webui/ go:embed 前端产物 + SPA fallback + index.html meta 注入 web/ React 19 + Vite + Tailwind 4 前端 +├─ src/pages/ 9 页面:首页 / 笔记详情 / 标签页 / 登录 / 后台列表 / 编辑 / 回收站 / 设置 / 404 +├─ src/components/ Layout(导航与主题切换)、Editor、MarkdownViewer、Toast +└─ src/lib/ api(CSRF 注入)/ auth(会话上下文)/ theme(三态主题)/ sanitize / invalidate deploy/ systemd 单元 ×3 + Caddyfile ```