Files
cms-SiteForge/docs/OPERATIONS_V6.md
T
浅念 8cea7dee20 chore: baseline V8.10.0-dev.1 with v8_workflows type-mapping fix and trade-pro spec
- SiteForge Enterprise V8.10.0-dev.1 upstream source (210 tests)
- Fix: v8_workflows._mapped_input now reads both 类型/分类 columns so WXR
  imports keep post/product types instead of collapsing to page
- Docs: trade-pro theme port spec (R3) and implementation plan

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-22 16:49:25 +08:00

44 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SiteForge 6.0.0 — 运维与安全说明
## 运行架构
- 单机 Compose:Web(认证及 API)、Worker(后台构建)、独立持久化数据卷、独立已发布文件卷;可选 Caddy HTTPS。
- 数据:SQLite WAL;一个站点同时间最多一个运行中的构建任务。长期多节点部署要替换存储和任务中心。
- 运行时只需公网暴露经正确配置的 HTTPS 反向代理。请不要把 8787 开放到公网。
## 日常排障
```bash
docker compose ps
docker compose logs --tail=100 siteforge
docker compose logs --tail=100 worker
docker compose exec siteforge python -c 'from app.version import VERSION;print(VERSION)'
```
正常时 `GET /api/health` 返回 `{"status":"ok","name":"SiteForge","version":"6.0.0"}`。Worker 未运行时 API 可以仍然健康,但构建会停留在 queued;因此应同时监测 Worker 容器。
## 数据安全
- 密钥只保存在 `.env` 或平台密钥管理器;生产 HTTPS 将 `SITEFORGE_COOKIE_SECURE=true`。
- 管理员密码至少 12 位,团队账号使用 scrypt 密码哈希;启用站点角色。
- 发布权限、迁移 SEO 阻断和审核不能仅由客户端判断,必须遵从后端校验。
- 不要任意加载第三方 Jinja/JS 主题代码;当前主题导入限制为声明式主题包。
- 旧站采集应只针对已获得授权的站点,防止内部网络 SSRF。
## 备份/恢复
SQLite 正在运行时不要直接只复制一个 `.sqlite3` 文件;应使用 SQLite 在线备份 API,并同步备份 media、theme_packages、archives、builds、legacy 及部署文件。可先停止维护性写入,再执行卷快照。恢复必须在空白测试部署上演练后才能用于正式生产。
## V5 升级
不要运行 `docker compose down -v`,不要覆盖 V5 的数据卷。使用全新 V6 Compose 名称和独立卷,检查账户、旧 URL/SEO、主题固定版本、素材、历史构建、发布根目录,再安排切换。
## Worker 任务处理
- 前端构建请求统一 HTTP 202 排队。
- `SITEFORGE_BUILD_TIMEOUT_SECONDS` 默认 300,可调整 10–3600 秒。
- `SITEFORGE_BUILD_MAX_ATTEMPTS` 默认 3,可调整 1–6。
- 用户取消排队任务立即 `cancelled`;运行中进入 `cancel_requested`,Worker 会终止构建子进程并确认状态。
- 临时任务错误才会指数退避重试;确定性数据错误标记 failed,避免无用重复尝试。
- Worker 领取任务后更新租约;租约过期可能重试任务。对于进程崩溃时未清理的孤儿进程,当前实现尚未保证多机严格一次执行,正式集群版需进程组隔离及分布式租约协议。