Files
vps-manager/.qoder/rules/coding-standards.md
T
gouki 6edafc9345 chore(ide): 将 .qoder 指令层纳入版本控制
工作区根 own/vps 不是 git 仓库,.qoder/rules 与 .qoder/agents 长期无版本化、无异地备份。
现将两类手写指令资产实体迁入本仓库 .qoder/ 下,工作区根原路径改为相对符号链接指回仓库,
IDE 加载路径与规则 glob(vps-manager/**/*.py)保持不变。
.gitignore 仅跟踪 .qoder/rules 与 .qoder/agents,repowiki、better-harness 报告等可重生成产物不入库。
2026-10-12 21:39:54 +00:00

57 lines
2.3 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.
---
description: vps-manager 核心编码规范,每次会话自动加载
alwaysApply: true
---
# vps-manager 编码规范
## 技术栈
- 后端:Python + FastAPI + SQLModel
- 前端:Vue 3 + Tailwind CSS(本地化、深色模式、PWA)
- 数据库:SQLite 分库(assets.db / metrics.db)
- 加密:cryptography.Fernet(MASTER_KEY 存 .env)
- 部署:cc1 节点,Gitea push 自动更新,HTTPS via Tailscale
## 前端:移动端优先
- UI 设计遵循移动端优先原则,采用底部导航栏适配小屏幕
- 确保页面 scrollWidth 等于 clientWidth,避免横向溢出
- 桌面端使用侧边栏布局,移动端使用底部 Tab 导航
- 静态资源基于文件 mtime 自动注入 `?v={mtime}` 版本号,配合 Service Worker 实现缓存失效
## Service Worker 缓存策略
- HTML 导航请求:`network-first`(回源失败才用缓存)
- 静态资源:`stale-while-revalidate`(SWR),配合 `?v={mtime}` 版本号
- API 请求:纯网络模式,不经过 Service Worker
- `sw.js` 本体由服务端设置 `Cache-Control: no-cache`
## 数据库分库
- `data/assets.db`:资产核心数据(Provider / Asset / VPSDetail / DomainDetail / AIAccount / Credential)
- `data/metrics.db`:监控指标与日志(MetricPoint / ServerInfo / SecurityCheck / EventLog)
- 备份策略:assets.db 每日备份保留 14 份,metrics.db 每周备份保留 4 份
## 凭证与加密
- 凭据中心化架构:`credentials` 表作为登录凭据唯一事实源
- 使用 `cryptography.Fernet` 加密敏感字段,MASTER_KEY 存于 `.env`
- 账号表降级为纯"归属 + API 配置"容器,通过 `account.credential_id` 关联凭据
## 云厂商适配层
- 位于 `app/adapters/`:BaseAdapter 抽象基类 + registry 装饰器注册
- 按 `Provider.sdk_type` 路由,已实现 Vultr / DO / Cloudflare / 阿里云 / 腾讯云
- sync_service 以 `(provider_id, external_id)` 去重同步入库
## 平台分类
- `category` 字段仅作主业务标签用于列表排序和兜底展示,不设"综合平台"分类
- 资产关联平台时以 `services` 多标签为准,优先匹配目标资产类型对应的服务能力
## 通知
- 通知服务根据 `.env` 配置自动选择 Telegram 或邮件渠道
- 未配置渠道自动跳过,不中断通知流程