方案文档版本:V02.16(2026-07-27 11:21)| 状态:需求基本定稿,进入试水部署(新增跑偏分支预留清单 + 模拟执行手册 + 打磨机制补充第 6 条 + 跑偏清单确认保留 + 电源与容量扩展预案 + 全文逻辑审查修正)
📋 文档整理(2026-07-27 08:41):本节「关键变更」原 V02.08 块错置于 V02.11 之后,已按版本号降序重排(V02.11→V02.00→V01.00→v0.x);并修正「交付物」stale 版本号 V02.12→V02.14。方案内容零变更,版本号维持 V02.14。
做了什么
根据需求设计把闲置 Apple Silicon iMac 改造成个人服务器的方案。当前处于需求基本定稿,进入试水部署阶段,已建立文档驱动的迭代机制。
当前阶段:需求基本定稿,进入试水部署
- 需求方明确:先完善需求和做准备,反复打磨可行方案(含预案),补认知盲区,暂不动手
- 打磨机制(v0.4 确立):每次问答在文档内「我问→你答→解释 + 时间」标注 + 版本控制 + 每次给最新版 + 发现矛盾及时提醒给选项
用户条件(通过提问确认)
- iMac 芯片:Apple Silicon (M 系列)
- 定位已明确(v0.5):自用 + 预留对外扩展。核心诉求 = 「MBA 随时随地稳定操作 iMac」+「对外仅展示内容」
- 操作形式已明确(v0.6):形式 C——Web 管理优先 + 远程桌面预案
- 域名已就位(v0.8):已有 sixstars.cn(未备案),stocktrading 子域名已跑通
- stocktrading 走通方式已确认(V02.00):走的是腾讯云 EdgeOne Pages(海外区),不是 Cloudflare(之前推测有误,已纠正)
- 展示通道架构已拍板(V02.01):方案 A 分工——静态展示走 EdgeOne Pages(iMac 不用开),动态服务走 iMac 本地(必须常开)
- 网络:类型待确认,但三条路均已写明,静态展示已锁定 EdgeOne Pages,公网 IP 只影响动态服务
方案核心:双通道设计(v0.5 重构)+ 三分支展示(V02.00 补充)
- 通道 1 · 操作通道(第一优先级):MBA → iMac。在家内网直连;在外 Cloudflare Tunnel + Access 零信任认证 → Web 管理界面;Web 失灵时用向日葵/ToDesk 远程桌面救场(预案)。不依赖公网 IP
- 通道 2 · 展示通道(第二优先级):外部用户 → 展示内容。V02.01 拍板方案 A 分工:
方案拆成两条独立通道:
- 静态展示 → EdgeOne Pages(分支C,已验证,iMac 不用开):项目页、报告站、个人主页
- 动态服务 → iMac 本地(分支A/B,iMac 必须常开):数据库查询、实时交互、登录系统
- 分支 A(有公网 IP):DDNS + 端口转发 + NPM(最快,但未备案域名有风险)
- 分支 B(无公网 IP):Cloudflare Tunnel + NPM(免费偏慢)
iMac 内部七层:NPM 反向代理 → OrbStack+Portainer → 服务层 → Uptime Kuma 监控 → 安全
- 管理界面(9xxx)不挂公网域名,只走内网/Tunnel+Access
- 展示服务(5xxx)经 NPM 对外,数据库(4xxx)绝不对外
- 端口规划:8 对外 / 9 管理 / 5 应用 / 4 数据库;对外只需记 8443
决策状态(十域)
| 域 | 状态 |
|---|---|
| 定位 | 🟢 已明确(自用+预留扩展) |
| 网络层 | 🟢 方案已明确(三分支都写好,含已验证的 EdgeOne) |
| 服务架构 | 🟢 已明确 |
| 操作通道 | 🟢 已明确(形式C:Web优先+远程桌面预案) |
| 域名 | 🟢 已完成(已有 sixstars.cn 未备案,stocktrading 已跑通 EdgeOne) |
| 展示通道架构 | 🟢 已明确(V02.01 拍板方案A:静态走EdgeOne,动态走iMac) |
| 安全防护 | 🔴 需补课(方案见十二章) |
| 日常运维 | 🔴 需补课(方案见十二章) |
| 电源/容量扩展 | 🟢 方案已落档·待执行(UPS 扛短停+远程开机;横向加机器) |
| 成本预期 | 🟢 已明确(电费+域名已省,软件层零费用) |
V02.16 关键变更(小改)
- 全文逻辑审查修正(需求方指令"检查顺序混乱/相近可合并/待打磨"):① 变更记录表顶部顺序归位(降序);② 状态三处矛盾统一为"需求基本定稿·进入试水部署"(十节/五节滞后"需求打磨"表述修正);③ 一章"自动重启"旧表述改为 UPS+远程开机(与十二章一致);④ 清除滞后提问(阶段0"Cloudflare托管"、附录A"stocktrading 访问方式",均 V02.00 证实=腾讯云 DNS+EdgeOne);⑤ 图例🔴含义统一为"需补课";⑥ 冗余合并:观察3精简指向观察4、B.2邮箱防爬降级指针、同生共死/方便优先后处改纯引用、端口口诀十二处改引用;⑦ 其他:决策状态总览新增"电源/容量扩展"域、十节 item4 改"方案已落档·待执行"、新增 dryrun 指针、部署前置依赖标注时效
- 三产物同步:主文档 + 本概览 + 模拟执行手册版本引用对齐 V02.16
V02.15 关键变更(小改)
- 新增「十二、电源与容量扩展预案」:来自需求方提出的两个咨询(iMac 电源要求 / 新增不同规格 iMac 的软硬件扩展预留)。核心:Apple Silicon iMac 断电不自动开机(
pmset autorestart无效,已实测),电源预案改为 UPS 扛短停+远程开机引导+架构级兜底;扩展预案=横向加机器(内存存储焊接不可升级),含硬件预留(双机有线千兆/固定IP/按规格分角色/各自UPS/端口口诀维持)与软件预留(NPM 统一入口/操作通道去中心化/多 origin 互备/服务按规格落位/NFS+SMB+EdgeOne 共享/统一监控/加节点 SOP) - 修正旧误解:前文"断电自启可配置"表述(主文档§3 稳定性、第十一章需补课项、dryrun 第八节)统一改为事实结论
V02.14 关键变更(小改)
- 跑偏清单确认「保留」:首项 alpha/beta 方案由「待确认·建议丢弃」改为「已确认·保留」(作理解偏差存档留存清单内,不丢弃、不并入主线),章节引言补注
- 概览「下一步」重复编号重排:两个"6."修正为 6→7,序列连续
V02.13 关键变更(小改)
- 打磨机制补充第 6 条——"悬而未决问题交付前确认"写入「需求打磨大原则」:交付前用提问(给选项确认)方式等确定再继续、不反复催、三遍无回应自行归置;同步已入全局记忆(跨项目通用)
V02.12 关键变更(小改)
- 新增模拟执行手册
imac-server-dryrun.md(V01.00,彩排版,非真执行)——把计划拆成 10 节傻瓜化步骤;主文档同步升 V02.12。覆盖阶段 0 准备 / 操作通道(第一优先级)/ 展示通道静态试水(EdgeOne 海外区-a overseas坑钉死)/ 动态服务挂起模拟 / 监控 / 端口口诀 / 安全运维挂起 / 验收 Checklist
V02.11 关键变更(小改)
- 新增「跑偏分支预留清单」(主文档第十一节):把对话中跑偏的方案结构化挂起为「预留项」——首项 = alpha/beta 版本控制增强方案(运维通身份误生成,与 iMac 项目无关,理解偏差产物),标注「待需求方一个一个确认」;并预留"待需求方补充"槽位,不擅自归类
- 状态保持:需求基本定稿,进入试水部署(清单不阻塞试水)
V02.10 关键变更(小改)
- 新增全局大原则——"积分/额度消耗须先确认":任何可能动用积分/额度的操作(付费模型、多模态产出、云端部署等),先反馈获需求方确认后再进行;或优先走本地设置的本地大模型试水
- 写入全局记忆
~/.workbuddy/MEMORY.md(跨项目通用),与"不擅作主张+主动追问"一脉相承 - 主方案文档同步升 V02.10 + 需求演进日志追加本轮问答
V02.09 关键变更(小改)
- 三个拍板结果落档:① 第二层分支改为"允许不同项目自定义不同分支"(影响原型数据结构,试水后用灵活结构重写);② 视觉标记"都不加"(顶部不加绿叶、底部落款不加小标记,纯文字);③ 推进方向选"先部署静态站试水"——从需求打磨转向实施
- 状态调整:由"需求打磨中"调整为"需求基本定稿,进入试水部署",B 类安全运维补课与公网 IP 实测挂起不阻塞
V02.08 关键变更(小改)
- 页面顶部调整:去掉顶部个人标记「大欣,欣欣向荣的欣」,改为:主标题「内容分享」+ 副标题「仅供学习交流」
- 个人标记位置:从顶部移除,仅在底部落款保留(
sixstars.cn ☆ 大欣,欣欣向荣的欣 ☆ 定稿时间) - 标签页与顶部呼应:标签页标题「内容分享(仅供学习交流)」与顶部主副标题用同一套文案,站点定性一致
- 提醒:顶部去个人标记后,访客一进来看到的是站点定性(内容分享),不知道是谁的站——个人署名在底部落款。如需顶部加个人元素可后续补
V02.07 关键变更(小改)
- 数码时钟含义已确认:需求方拍板理解 A——右上角实时数码时钟显示当前日期+时间(北京时间),"服务器相关"指风格气质,纯前端 JS 无后端依赖
- projects 网页设计待确认项仅剩:① 第二层 5 个分支是否够用;② "欣欣向荣"视觉标记偏好方向
V02.06 关键变更(小改)
- 首页新增个人邮箱:
sixstars@qq.com,放首页顶部个人标记附近,与留言板形成"留痕+私信"两种联系途径 - 邮箱防垃圾邮件:JS 动态拼接方案——HTML 源码不写完整邮箱,用 JS 运行时拼接(爬虫读源码不执行 JS,抓不到完整地址;访客正常显示可点击)。备选邮箱图片作为兜底
- 全站实时数码时钟:所有页面右上角通用组件,显示日期+时间(
2026-07-23 11:46:55格式),JetBrains Mono 字体,前端 JS 每秒刷新 - "服务器相关"含义待确认:理解为 A=显示当前北京时间实时时钟(默认·推荐)/ B=显示 iMac 运行状态(需 iMac 常开+状态上报,与静态站定位冲突)。先按 A 做不阻塞,待需求方一句话确认
V02.05 关键变更(小改)
- 留言板方案已定:需求方确认选 Twikoo(访客零门槛留痕、腾讯云生态、未备案可用、数据自己掌控)
- projects 网页设计待确认项仅剩:① 第二层 5 个分支是否够用;② "欣欣向荣"视觉标记偏好方向
V02.04 关键变更(小改)
- 网页标题改为「内容分享(仅供学习交流)」:浏览器
<title>不与顶部个人标记/底部落款重复,三者各司其职(⚠️ V02.08 更新:顶部个人标记已移除,改为同名主副标题,个人标记仅底部保留) - 新增遵纪守法小字提示:落款上方,有留言板(用户生成内容)时尤必要——国内合规
- 留言板场景明确:"访客初次留痕"(轻量),Giscus 因需 GitHub 账号基本排除,推荐 Twikoo 待需求方确认
- 画了 projects 首页设计草图(PC 左右布局 + 手机堆叠 + 字体示意 + 翻页器 + 留言板 + 落款)
V02.03 关键变更(小改)
- 附录 B projects 网页设计细化:
- 首页新增留言板(右侧,手机端自适应堆叠)——动态功能,按分工走云端轻量后端(不放 iMac),方案待需求方拍板(推荐 Twikoo)
- 自适应要求:PC + 手机端响应式,兼容主流浏览器,减少滚动条
- 分页处理:项目列表分页 + 长内容分页,替代无限滚动
- 字体选定:标题/代码用 JetBrains Mono(等宽,体现计算机专业),中文正文用思源黑体,自托管不依赖 Google Fonts
- 三层结构未变,是对既有设计方案的细化补充,故判定小改
V02.02 关键变更(小改)
- 新增全局工作方式规范:需求方要求注意积累其文字表达方式(久了能模仿风格整理内容),对话中出现描述不清/不准确处主动让需求方做进一步解释——写入全局记忆(跨项目通用)
- 这是协作沟通层面的长期规范,与文档驱动打磨机制、版本号规范、个人标记/落款规范一脉相承
V02.01 关键变更(小改)
- 矛盾观察 4 已解决:需求方拍板选方案 A(分工)——静态展示走 EdgeOne Pages(已验证·免费·iMac 不用开),动态服务才走 iMac 本地服务器
- iMac 服务器定位重新明确:静态上云、动态留本地,iMac 只管动态服务 + 操作通道 + 存储
- 展示通道架构决策状态 🟡→🟢(已明确)
- 整体架构图更新:展示通道标注「静态走 EdgeOne / 动态走 iMac」
- 矛盾观察清单 4 条全部解决 ✅,核心架构决策全部明确
V02.00 关键变更(大改)
- 昨日 stocktrading 走通方式实地查证:从昨日项目 sinopec_analysis 读 deploy_reports.sh + 工作日志,确认走的是腾讯云 EdgeOne Pages(海外区),不是 Cloudflare(纠正 v0.8 错误推测)
- 新增附录 C「昨日 stocktrading 走通方式复盘」——完整记录已验证链路(域名→EdgeOne 海外区→CNAME→自动HTTPS→CLI自动部署),含关键坑(
-a overseas)和访问保护方案 - 矛盾观察 3 已解决:展示通道已验证方案 = EdgeOne Pages 海外区(未备案可用、不需公网IP、不需iMac常开)
- 新增矛盾观察 4:EdgeOne Pages 云端静态托管 vs iMac 本地服务器——静态展示可能根本不需要 iMac 当服务器
- 网络层新增分支 C:EdgeOne Pages 海外区(已验证·推荐用于静态展示)
- 附录 B 修正:projects.sixstars.cn 部署复用 EdgeOne Pages(明确化)
V01.00 关键变更
- 版本号命名规范确立(全局):V 大写、主版本号=大改(两位补零)+1、二级版本号=小改 .01~.99、大改后归零、初版 V01.00——写入全局记忆(跨项目通用)
- 新规范起点:需求方选定择 V01.00 新起点,历史 v0.1~v0.10 保留原编号不继承进度
- 主版本号两位补零:需求方写法 V01.00(比 V1.00 更整齐,与二级两位对齐)
- 大改/小改定义:大改=重大功能/结构/内容调整;小改=修补/细化。判定不确定时反馈需求方定夺
v0.10 关键变更
- 个人落款规范确立(全局):所有个人行为产生的资料,最底部固定格式 =
sixstars.cn ☆ 大欣,欣欣向荣的欣 ☆ <定稿时间>——写入全局记忆(跨项目通用) - 定稿时间格式:年.月.日-时:分:秒(如 2026.07.23-10:13:34),每次更新同步刷新为当前版定稿时间
- ☆ 样式灵活:纯文本/Markdown 用 ☆ 字符;网页用 CSS 控实心/空心/颜色
v0.9 关键变更
- 个人标记规范写法确立:全称固定为「大欣,欣欣向荣的欣」,不要多字少字、不要随意改写——写入全局记忆
~/.workbuddy/MEMORY.md(跨项目通用) - 修正附录 B 两处写法不一致,统一为规范写法
需警惕的工具
- Cloudflare Tunnel + Access:免费但国内偏慢(300~800ms)。Web 管理够用;远程桌面不走它(预案用国内向日葵/ToDesk)
- ~~Tailscale~~:v0.5 已用 Cloudflare Access 替代,不再推荐
交付物
imac-server-plan.md— 主方案文档(V02.16,含双通道+三分支设计、Web管理+远程桌面预案、版本控制、问答演进日志、矛盾观察清单4条(全解决)、附录A复用机制、附录B projects网页设计(含留言板/自适应/分页/字体/网页标题/遵纪守法提示/邮箱防爬/实时数码时钟/顶部主副标题)、附录C stocktrading复盘、个人标记/落款/版本号规范、文字风格积累+主动追问规范、积分/额度消耗须先确认大原则、三个拍板结果落档、跑偏分支预留清单、模拟执行手册交叉引用、电源与容量扩展预案)imac-server-dryrun.md— 模拟执行手册(V01.00,首次彩排/非真执行:把计划逐环节拆成傻瓜化操作步骤,含图例约定、EdgeOne CLI-a overseas关键坑、端口口诀 8 对外/9 管理/5 应用/4 数据库、静态试水验收清单、动态服务分支A/B 与运维补课挂起模拟、九节验收 Checklist)
下一步
- ~~矛盾观察 4~~ ✅ 已解决(V02.01 拍板方案 A 分工)
- ~~留言板方案~~ ✅ 已定(V02.05 确认 Twikoo)
- ~~数码时钟含义~~ ✅ 已确认(V02.07 理解 A 实时时钟)
- ~~projects 细节 3 项~~ ✅ 已拍板(V02.09):① 分支=允许不同项目自定义;② 视觉标记=都不加(纯文字);③ 顶部不补个人元素
- ~~积分/额度消耗~~ ✅ 已立为大原则(V02.10):可能动用积分的操作须先反馈获确认,或走本地大模型试水;已写入全局记忆跨项目通用
- 需求方在家判断有无公网 IP(5 分钟)——只影响动态服务走分支 A 还是 B,不卡静态展示
- 安全防护/日常运维补课(断电恢复开机预案·Apple Silicon 不支持断电自启、见十二章;备份策略、SSD 寿命)
- 试水部署(V02.09 需求方选定"先部署静态站试水"):用 EdgeOne Pages 海外区把原型部署成 projects.sixstars.cn 实测。前置依赖:① EdgeOne API Token(敏感凭证,在需求方手里);② 腾讯云 DNS 加 projects → EdgeOne 目标值 CNAME;③ 本环境 edgeone-pages 连接器 disconnected,需需求方在 MBA 本地终端跑(昨日 sinopec_analysis 已验证 CLI)或等连上。命令复用附录 C:
edgeone pages deploy <目录> -n projects -t <token> -e production -a overseas(-a overseas 不能漏) - 任何疑问随时提,按机制迭代文档
- 跑偏分支预留清单(V02.11 新增·V02.14 确认保留):「十一、跑偏分支预留清单」需求方拍板「保留」,首项 alpha/beta 方案随清单留存(作理解偏差存档,不丢弃、不并入主线);后续另有跑偏项仍可补充