家用 iMac 服务器改造方案

选中任意文字 → 点「✎ 批注」提交修改意见(粒度:字/句/段/章/篇)。你的网络信息与提交时间会被记录,用于反哺需求改造。

版本:V02.16 | 更新:2026-07-27 11:21 | 状态:需求基本定稿,进入试水部署(新增跑偏分支预留清单 + 模拟执行手册 + 打磨机制补充第 6 条 + 跑偏清单确认保留 + 电源与容量扩展预案 + 全文逻辑审查修正) 面向:需求方 | 场景:Apple Silicon iMac + MBA 随时随地操作 + 对外展示 目标:把闲置 iMac 改造成个人服务器——核心是「MBA 随时随地稳定操作 iMac」+「对外仅展示内容」

📋 版本控制

变更记录

版本日期/时间变更概要
V02.1607-27 11:21【小改】全文逻辑审查修正(需求方指令"检查顺序混乱/相近可合并/待打磨")——① 变更记录表顶部顺序归位(V02.16→V02.15→V02.14 降序);② 状态三处矛盾统一为"需求基本定稿·进入试水部署"(十节/五节滞后"需求打磨"表述修正);③ 一章"自动重启"旧表述改为 UPS+远程开机(与十二章一致);④ 清除滞后提问(阶段0"Cloudflare托管"、附录A"stocktrading 访问方式"两处,均已 V02.00 证实=腾讯云 DNS+EdgeOne);⑤ 图例🔴含义统一为"需补课";⑥ 冗余合并:观察3精简指向观察4、B.2邮箱防爬降级为指针、同生共死/方便优先原则后处改纯引用、端口口诀十二处改引用;⑦ 其他:决策状态总览新增"电源/容量扩展"域、十节 item4 改"方案已落档·待执行"、新增 dryrun 指针、部署前置依赖标注时效。
V02.1507-27 10:58【小改】新增「十二、电源与容量扩展预案」——来自需求方提出的两个咨询(iMac 电源要求 / 新增不同规格 iMac 的软硬件扩展预留)。核心:Apple Silicon iMac 断电不自动开机(pmset autorestart 无效,已实测),电源预案改为 UPS 扛短停+远程开机引导+架构级兜底;扩展预案=横向加机器(内存存储焊接不可升级),含硬件预留(双机有线千兆/固定 IP/按规格分角色/各自 UPS/端口口诀维持)与软件预留(NPM 统一入口/操作通道去中心化/多 origin 互备/服务按规格落位/NFS+SMB+EdgeOne 共享/统一监控/加节点 SOP)。同步修正前文"断电自启可配置"旧表述(§3 稳定性、第十一章需补课项、dryrun 第八节)。
V02.1407-27 07:41【小改】需求方拍板两遗留项——①「十一、跑偏分支预留清单」确认「保留」:首项 alpha/beta 方案由「待确认·建议丢弃」改为「已确认·保留」(作理解偏差存档留存清单内,不丢弃、不并入主线),章节引言补注;② 概览「下一步」重复编号重排(两个"6."修正为 6→7,序列连续)。
V02.1307-27 07:33【小改】打磨机制补充第 6 条——"悬而未决问题交付前确认"写入「需求打磨大原则」:交付前用提问(给选项确认)方式等确定再继续、不反复催、三遍无回应自行归置;同步已入全局记忆(跨项目通用)。
V02.1207-27 07:20【小改】新增模拟执行手册 imac-server-dryrun.md(V01.00,彩排版,非真执行)——把计划拆成 10 节傻瓜化步骤;主文档同步升 V02.12。覆盖阶段 0 准备 / 操作通道(第一优先级)/ 展示通道静态试水(EdgeOne 海外区 -a overseas 坑钉死)/ 动态服务挂起模拟 / 监控 / 端口口诀 / 安全运维挂起 / 验收 Checklist。
V02.1107-27 06:58【小改】新增「十一、跑偏分支预留清单」——把对话中跑偏的方案结构化挂起为「预留项」(待需求方一个一个确认)。首项 = alpha/beta 版本控制增强方案(运维通身份误生成,与 iMac 项目无关,理解偏差产物)。状态保持"需求基本定稿"。
V02.1007-25 07:21【小改】新增全局大原则——"积分/额度消耗须先确认":任何可能动用积分/额度的操作(付费模型、多模态产出、云端部署等),务必先反馈获需求方确认后再进行;或优先走本地设置的本地大模型试水。写入全局记忆 ~/.workbuddy/MEMORY.md(跨项目通用),与"不擅作主张+主动追问"一脉相承。需求演进日志追加本轮问答
V02.0907-25 07:12【小改】三个拍板结果落档——① 第二层分支改为"允许不同项目自定义不同分支"(影响原型数据结构,试水部署后用灵活结构重写);② 视觉标记"都不加"(顶部不加绿叶、底部落款不加小标记,纯文字);③ 推进方向选"先部署静态站试水"——从需求打磨转向实施。状态由"需求打磨中"调整为"需求基本定稿,进入试水部署"。B.4 待确认项 A1/A2/A3 标记 ✅ 已拍板
V02.0807-23 11:57【小改】页面顶部调整——需求方要求去掉顶部个人标记,改为:主标题「内容分享」+ 副标题「仅供学习交流」。个人标记「大欣,欣欣向荣的欣」从顶部移除,仅在底部落款保留。标签页标题与顶部主副标题呼应(同一套文案),底部落款署名——各司其职。邮箱位置描述同步更新(原"个人标记附近"改为"主副标题下方")。B.3 个人标记位置说明更新
V02.0707-23 11:52【小改】数码时钟"服务器相关"含义已确认——需求方拍板理解 A:就是右上角实时数码时钟显示当前日期+时间(北京时间),"服务器相关"指风格气质(像服务器机房数码钟),纯前端 JS 无后端依赖。B.4 第 5 项标记 ✅ 已确认。projects 网页设计待确认项仅剩 5 分支是否够用 + 视觉偏好
V02.0607-23 11:46【小改】附录 B 继续细化——① 首页特定位置新增个人邮箱 sixstars@qq.com(防垃圾邮件:JS 动态拼接方案,爬虫抓不到完整地址);② 所有页面右上角新增实时数码时钟(显示日期+时间,JetBrains Mono 字体,前端 JS 每秒刷新);③ "服务器相关"含义存歧义待需求方确认(理解为显示北京时间当前时刻 vs 显示 iMac 运行状态);④ 邮箱位置建议 = 首页顶部个人标记附近(与留言板形成两种联系途径)
V02.0507-23 11:41【小改】留言板方案已定——需求方确认选 Twikoo(访客零门槛留痕、腾讯云生态、未备案可用)。附录 B.4 留言板方案标记 ✅ 已确认,projects 网页设计待确认项仅剩 5 分支是否够用 + 视觉偏好
V02.0407-23 11:37【小改】附录 B 继续细化——① 网页标题改为「内容分享(仅供学习交流)」,不与顶部个人标记/底部落款重复;② 新增遵纪守法小字提示(落款上方,有留言板时尤必要);③ 留言板场景明确为"访客初次留痕"(轻量),Giscus 因需 GitHub 账号基本排除,推荐 Twikoo 待需求方确认;④ 画 projects 首页设计草图(PC 左右布局+手机堆叠+字体示意+翻页器+留言板+落款)
V02.0307-23 11:16【小改】附录 B projects 网页设计细化——① 首页右侧新增简易留言板功能(动态功能,按分工走云端轻量后端,方案待需求方拍板);② 新增自适应要求(PC+手机端响应式,兼容主流浏览器,减少滚动条);③ 新增分页处理要求(项目列表分页 + 长内容分页,替代无限滚动);④ 字体选定——标题/代码/强调用 JetBrains Mono(等宽,体现计算机专业感),中文正文用思源黑体(可读性),自托管不依赖 Google Fonts;⑤ 判定小改理由:三层结构未变,是对既有方案的细化补充 + 新增留言板组件
V02.0207-23 10:56【小改】① 新增全局工作方式规范——"文字风格积累 + 主动追问"(注意积累需求方的文字表达方式,久了能模仿其风格整理内容;对话中出现描述不清/不准确处,主动让需求方做进一步解释);② 写入全局记忆 ~/.workbuddy/MEMORY.md(跨项目通用);③ 需求演进日志追加本轮问答
V02.0107-23 10:48【小改】① 矛盾观察 4 已解决——需求方拍板选方案 A(分工):静态展示走 EdgeOne Pages(已验证·免费·iMac 不用开),动态服务才走 iMac 本地服务器;② 展示通道架构决策状态 🟡→🟢(已明确);③ iMac 服务器定位重新明确——静态上云、动态留本地,iMac 只管动态服务 + 操作通道 + 存储;④ 整体架构图更新——展示通道标注「静态走 EdgeOne / 动态走 iMac」;⑤ 下一步更新——矛盾观察全部解决,剩 projects 细节确认 + 公网IP判断 + 安全运维补课
V02.0007-23 10:36【大改】① 新增附录 C「昨日 stocktrading 走通方式复盘」——从昨日项目 sinopec_analysis 实地查证,确认 stocktrading.sixstars.cn 走的是腾讯云 EdgeOne Pages(海外区),非 Cloudflare(之前推测有误);② 矛盾观察 3 标记已解决——已验证方案 = EdgeOne Pages 海外区(未备案可用、不需公网 IP、不需 iMac 常开);③ 新增矛盾观察 4——EdgeOne Pages 云端静态托管 vs iMac 本地服务器的架构选择(静态展示可能根本不需要 iMac 当服务器);④ 网络层展示通道新增「分支 C:EdgeOne Pages 海外区(已验证·推荐)」;⑤ 附录 B 修正复用方式(明确走 EdgeOne Pages 部署);⑥ 纠正全文多处"大概率走了 Cloudflare"的错误推测
V01.0007-23 10:24【新版本号规范起点】① 版本号命名规范确立(全局)——V 大写、主版本号=大改(两位补零)+1、二级版本号=小改 .01~.99、大改后归零、初版 V01.00;写入全局记忆;② 历史 v0.1~v0.10 保留原编号(演进已留存),自本次起采用新规范;③ 主版本号两位补零(需求方写法 V01.00);④ 不确定项「起点版本号」反馈需求方定夺,需求方选定 V01.00 新起点(不继承历史进度)
v0.1007-23 10:14① 确立「个人落款规范」——所有个人行为产生的资料,最底部固定格式:sixstars.cn ☆ 大欣,欣欣向荣的欣 ☆ <定稿时间>;写入全局记忆(跨项目通用);② 定稿时间格式 = 年.月.日-时:分:秒(如 2026.07.23-10:13:34),每次更新同步刷新;③ ☆ 可按页面需要选实心/空心/颜色(纯文本用字符,网页用 CSS);④ 本文档底部签名改用需求方规范落款,替换原"Infrastructure Maintainer"署名行
v0.907-23 10:05① 个人标记规范写法确立——「大欣,欣欣向荣的欣」,写入全局记忆 ~/.workbuddy/MEMORY.md(跨项目通用);② 修正附录 B 两处写法不一致(第710行「需求方」+「欣欣向荣」分开写、第736行括号格式「需求方(欣欣向荣的欣)」),统一为规范写法;③ 强调"不要多字少字、不要随意改变"作为硬约束
v0.807-23 08:58① 昨日任务具体化——需求方已有未备案域名 sixstars.cn,stocktrading 子域名已跑通;② 域名环节标记已完成(iMac 方案"买域名"步骤省去);③ 新增矛盾观察 3——未备案 .cn 域名对展示通道方案 A(端口转发)的影响,未备案域名天然偏向 Cloudflare 方案;④ 新增附录 B「projects.sixstars.cn 三层网页设计方案」——三层结构 + 简约设计 + "欣欣向荣"个人标记;⑤ 更新附录 A,昨日任务具体化并给出复用判断
v0.707-23 08:34① 新增附录 A「使用 WorkBuddy 的认知与复用机制」——回答需求方附加问题(昨日任务能否沿用);② 搜索 2026-07-22 对话记录无结果,待需求方确认具体任务;③ 通俗讲解 WorkBuddy 四层存储与跨任务复用规则;④ 建议主动沉淀(工作流存技能、偏好存记忆)让复用最大化
v0.607-23 08:19① 矛盾观察 2 已解决(操作形式=形式 C:Web 管理优先 + 远程桌面预案);② 新增设计原则「怎么更方便处理各种情况优先设计·保留预案」;③ 第 6 层重写为「Web 管理 + 远程桌面预案」;④ 主动补盲区「管理面同生共死」兜底问题及触发场景;⑤ 远程桌面预案细化推荐国内方案(延迟敏感,不走 Cloudflare Tunnel)
v0.507-23 08:05① 矛盾观察 1 已解决(定位=自用+预留扩展);② 网络层重构为「双通道+双分支」设计;③ 第 6 层由 Tailscale 改为操作通道设计(远程管理升级为刚需);④ 新增矛盾观察 2(操作形式待明确);⑤ 公网 IP 有无两条路均写明
v0.407-23 07:52建立文档版本控制 + 问答演进日志 + 矛盾观察清单;回溯前几轮问答
v0.307-23 07:40重写第四节为「费用与网络兼容性核实」,指出 Tailscale/Cloudflare Tunnel 境外依赖
v0.207-23 07:30修正网络层(公网 IP 由"默认有"改为"待确认"双方案)+ 新增端口规划
v0.107-16 07:16初版:七层分层架构方案

需求打磨大原则(v0.4 确立 · 2026-07-23 07:52 · 2026-07-27 补充第 6 条)

  1. 每次需求方提出需求细化想法或疑问后,针对性回答的内容在本文档内做新增/修改的明确标注
  2. 标注格式采用「我问 → 你答 → 解释」的方式,并记录具体发生的时间
  3. 文档做版本控制:每次迭代更新变更记录表。版本号规范(V01.00 起采用):V 大写;主版本号=大改(重大功能/结构/内容调整)+1,两位补零(V01→V02…);二级版本号=小改(修补/细化).01~.99;大改后二级归零;初版 V01.00。判定不确定时反馈需求方定夺。
  4. 每次反馈都必须将最新一版文档给到需求方,确保有反馈、可阅读。
  5. 发现需求前后有矛盾或设计思路冲突时,及时提醒并给出供选择的建议。
  6. 悬而未决问题交付前确认(2026-07-27 补充):遇到悬而未决的问题,或我认为有必要让需求方做出判断确定的问题,都在每次交付前通过提问(给选项让需求方选定择/确认)的方式,在思考过程中等待需求方确认后再继续,不擅自绕过。① 不重复提醒"还有悬而未决的问题"——每个问题按需提一次即可;② 同一问题问过三遍、需求方仍无明确回应,则自行判断(非真遗留问题 / 已自行解决),不再追问、按合理默认推进或归档;③ 适用范围:所有项目统一生效,与"不擅作主张 + 主动追问"一脉相承。

当前决策状态总览

决策域状态关键问题
定位🟢 已明确自用 + 预留对外扩展(v0.5 确认)
网络层🟢 方案已明确三条路均已写明:分支A(有公网IP)/分支B(无公网IP)/分支C(EdgeOne Pages 已验证·V02.00)
服务架构🟢 已明确Docker + NPM + Portainer,图形化管理
操作通道🟢 已明确形式 C:Web 管理优先 + 远程桌面预案(v0.6 确认)
安全防护🔴 需补课(方案见十二章)暴露公网 = 全世界能扫;弱口令几小时被爆破
日常运维🔴 需补课(方案见十二章)7×24 代价:电/热/噪音;断电断网/备份策略
电源/容量扩展🟢 方案已落档·待执行电源:UPS 扛短停 + 远程开机预案(Apple Silicon 断电不自动开机,见十二章);容量:横向加机器(内存存储焊接不可升级),含硬件/软件预留
成本预期🟢 已明确域名 + 电费,约 100~300 元/年;软件层零费用
展示通道架构🟢 已明确方案 A 分工:静态展示走 EdgeOne Pages(已验证),动态服务走 iMac 本地(V02.01 拍板)
域名🟢 已完成已有 sixstars.cn(未备案),stocktrading 子域名已跑通(v0.8 确认)
🟢 已明确 🟡 待你确认 🔴 需补课(安全防护/日常运维,方案见十二章)

一、先说结论

技术上完全可行,而且你的条件相当不错:

和腾讯云的本质差距在三个地方,方案里都会逐一解决或规避:

  1. 没有公网 IP / IP 会变 → 两条路都准备好,判断完走对应的
  2. 家庭宽带封 80 端口、上行带宽小 → 用非标准端口 + 反向代理统一管理
  3. 电力/网络不如机房稳 → UPS 扛短停 + 远程开机预案 + 监控告警(注:Apple Silicon iMac 断电不自动开机,见十二章)

二、整体架构

【v0.5 重构】方案的核心是两条独立通道,分别解决两个需求:

┌─────────────────────────────────────────────────────────┐
│  通道 1:操作通道(第一优先级 · 刚需)                      │
│  MBA ──随时随地──→ 操作 iMac                              │
│                                                          │
│  在家同WiFi:内网直连(零成本零延迟)                       │
│  在外:Cloudflare Tunnel + Access 认证(详见第1层/第6层)   │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│  通道 2:展示通道(第二优先级 · 展示炫耀)【V02.01 定位】   │
│                                                          │
│  静态展示 → EdgeOne Pages(分支C,已验证,iMac 不用开)     │
│  动态服务 → iMac 本地(分支A/B,iMac 必须常开)             │
│    有公网IP:DDNS + 端口转发 + NPM(国内直连最快)         │
│    无公网IP:Cloudflare Tunnel + NPM(免费但偏慢)         │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────┐
│  iMac (Apple Silicon)                       │
│                                             │
│  [反向代理 NPM]  展示通道的统一入口+HTTPS     │
│       │                                     │
│  [OrbStack + Portainer] 容器引擎+图形管理    │
│       │                                     │
│  [服务层] 展示用Web应用 / 数据库 / 文件存储   │
│       │                                     │
│  [Uptime Kuma] 服务在线监控 + 告警           │
│                                             │
│  管理界面(9xxx端口):不挂公网域名            │
│    在家→内网IP访问;在外→Tunnel+Access认证   │
└─────────────────────────────────────────────┘

关键设计原则【v0.5 新增 · v0.6 补充】:


三、分层方案详解

第 1 层:网络层 —— 双通道 + 双分支设计【v0.5 重构】

之前网络层只讲"怎么让外面访问进来"。v0.5 重构后,明确拆成两条通道,且有无公网 IP 两条路都写清楚——你不用等判断完,两条路的方案都已就位。

核心概念:你的需求其实是两条独立的通道

通道 1:操作通道通道 2:展示通道
谁连谁MBA → iMac(你操作它)外部用户 → iMac(看展示)
优先级第一(刚需)第二(展示炫耀)
性质管理面,需认证保护,不裸暴露公网数据面,可公网开放
典型场景管容器、改配置、看日志、传文件别人访问你的网站/作品

先判断:你有没有公网 IP?

公网 IP 就是"互联网上别的电脑能直接找到你的地址"。家庭宽带分两种情况:

  1. 浏览器打开 ip138.com(或 cip.cc),记下显示的 IP——这是"外网看到的你"。
  2. 登录路由器后台(一般是 192.168.1.1192.168.0.1),找"WAN 口状态"或"上网状态",记下 WAN IP——这是"路由器拿到的地址"。
  3. 对比两个 IP:

判断方法(3 步)

重要【v0.5】:无论判断结果是什么,操作通道的方案完全一样。公网 IP 只影响展示通道走哪条路。所以你不用纠结"没公网 IP 怎么办"——没公网 IP 照样能随时随地操作 iMac,只是对外展示会慢一点。

分支 A:有公网 IP

通道 1(操作):Cloudflare Tunnel + Cloudflare Access
通道 2(展示):DDNS-GO + 端口转发 + NPM
  1. 域名【v0.8 更新·V02.00 补充】:你已有 sixstars.cn(未备案)。⚠️ 注意:未备案 .cn 域名解析到国内 IP 的 80/443 端口会被运营商拦截——即便有公网 IP,端口转发也可能受影响。用非标端口(8443)可规避大部分检测,但不保险。但你的 stocktrading 已验证走 EdgeOne Pages 海外区(见分支 C / 附录 C),未备案域名展示通道已锁定这条路——静态展示不走端口转发,这个风险可规避。
  2. 部署 DDNS-GO(Docker 容器,有网页界面):自动检测公网 IP 变化,变了就自动更新域名解析。
  3. 路由器端口转发:把路由器对外端口(如 8443)转发到 iMac 内网 IP 的 8443。⚠️ 不要转发 80/443——家宽基本封了 80。
  4. iMac 固定内网 IP:在路由器给 iMac 绑定固定 IP(DHCP 静态分配),否则重启后端口转发失效。
  5. NPM 反向代理 + HTTPS:外部访问 https://展示.你的域名.com:8443 → NPM → 转发到展示服务。
  6. 优势:国内直连,速度最快,免费。

分支 B:无公网 IP

通道 1(操作):Cloudflare Tunnel + Cloudflare Access
通道 2(展示):Cloudflare Tunnel + NPM

双通道方案总结表【v0.5 新增】

分支 A(有公网 IP)分支 B(无公网 IP)
通道 1 操作Tunnel + Access(在家内网直连)Tunnel + Access(在家内网直连)
通道 2 展示DDNS + 端口转发 + NPM(最快)Tunnel + NPM(免费偏慢)
展示速度国内直连,最快境外节点,偏慢
操作速度一样(Tunnel)一样(Tunnel)
成本域名 + 电费域名 + 电费
需碰路由器是(端口转发)否(Tunnel 主动出站)
结论:有没有公网 IP,你的核心诉求(随时随地操作 iMac)都能满足,方案完全一样。差别只在"对外展示"是快还是慢。所以你判断公网 IP 这件事,不卡操作通道,只影响展示体验——心理负担小很多。

分支 C:EdgeOne Pages 海外区(已验证·推荐用于静态展示)【V02.00 新增】

这是昨日 stocktrading.sixstars.cn 实际跑通的方式(见附录 C 完整复盘)。它不属于"有/无公网 IP"的分支,而是第三条路——静态内容托管在腾讯云 EdgeOne,不走 iMac。

工作原理(通俗版):

  1. 把要展示的静态文件(HTML/CSS/图片)上传到腾讯云 EdgeOne Pages 项目。
  2. EdgeOne 给你一个 CDN 分发地址,内容存在云端节点上。
  3. 腾讯云 DNS 加一条 CNAME(如 stocktrading → EdgeOne 节点),自动签发 HTTPS 证书。
  4. 外部访问 https://stocktrading.sixstars.cn → 命中 EdgeOne 海外节点 → 返回内容。

为什么这条路已验证可行

适用场景静态展示——项目展示页、报告站、个人主页、文档站等"放上去给别人看"的内容。

不适用场景动态服务——需要数据库查询、实时交互、用户登录后个性化内容的,云端静态托管搞不定,得走 iMac 本地服务器(分支 A/B)。

和分支 A/B 的关系(关键认知):

V02.01 已解决:需求方拍板选方案 A(分工)——静态展示走 EdgeOne Pages,动态服务才走 iMac。详见第九节矛盾观察 4。

第 2 层:反向代理层 —— 统一入口 + HTTPS

为什么需要:你后面会跑多个展示服务,每个都开端口既难管又不安全。反向代理就是"一个门卫",所有外部请求先到它,再按域名分发到内部服务。

推荐:Nginx Proxy Manager(NPM)

HTTPS 证书的坑

访问方式:外部访问 https://展示.你的域名.com:8443 → NPM → 转发到内部容器的端口。

【v0.5 补充】NPM 只用于展示通道。管理界面(Portainer 9001、NPM 后台 9002 等)不挂公网域名——在家用内网 IP 访问,在外走 Tunnel + Access 认证。这样管理面和数据面彻底隔离,安全。

第 3 层:容器层 —— 一台机器跑多个服务

容器引擎:OrbStack(强烈推荐,替代 Docker Desktop)

容器管理:Portainer(Docker 容器,网页图形界面)

为什么用容器而不是直接装软件


第 4 层:服务层 —— 你想跑什么

按需部署,下面是几个常见场景,都是 Docker 一键起:

服务镜像用途
个人网站/博客nginx / halo / wordpress对外展示(通道 2)
文件存储nextcloud个人网盘
数据库postgres / mysql给应用存数据
数据库管理adminer / dbeaver网页管理数据库
笔记/知识库outline / memos个人知识管理
博士后管理小工具自己写的 Web 应用配合你的业务线上化

部署方式:写一个 docker-compose.yml,在 Portainer 里点"Stacks"上传即可,完全图形化。


第 5 层:监控层 —— 知道服务还活着

推荐:Uptime Kuma(Docker 容器,网页界面)

监控什么


第 6 层:操作通道 —— Web 管理优先 + 远程桌面预案【v0.6 重写】

v0.5 这层从 Tailscale 改为 Cloudflare Access(远程管理升级为刚需)。v0.6 落实你的决策——形式 C:能用 Web 解决的优先 Web,Web 搞不定才动用远程桌面,做好扩展准备。并主动补一个必须知道的盲区。

你的决策:形式 C(先 A 后 B · 保留预案)

你确认【v0.6】:Web 能解决的优先考虑;除非 Web 搞不定,才用「在外直接访问 iMac 桌面操作鼠标」。设计原则——怎么更方便处理各种情况而优先设计,保留预案(完整定义见第二节关键设计原则)。

形式 A:Web 管理界面(主力 · 免费 · 覆盖 90% 场景)

Web 管理能干的事,按工具分:

通道:在家用内网 IP 直连(零延迟);在外走 Cloudflare Tunnel + Access 邮箱认证(延迟 300~800ms,点点按按完全够用,免费)。

Cloudflare Access 的工作原理(邮箱验证码零信任认证,外面的人连登录页都看不到)v0.5 已说明,此处不再重复。

⚠️ 主动补的盲区:管理面「同生共死」兜底问题【v0.6 新增】

Web 管理有个绕不开的盲区,必须提前讲清楚——管理工具本身也跑在 iMac 上

打个比方:你想修车,但修车工具全锁在车后备箱里。车正常时没问题;可一旦车抛锚打不开门,你连工具都拿不到——工具和车一起趴窝了。

对应到你的情况

Web 管理够不着的场景(这些正是形式 B 的真实价值):

场景为什么 Web 搞不定
OrbStack/容器引擎挂了Portainer 是容器,底座没了它也没了
macOS 系统更新要确认系统弹窗,浏览器够不着
装/配非 Docker 的软件要在系统层操作
排查硬件/网络问题比如网线松了、路由器抽风
macOS 系统层配置防火墙规则、开机自启项、节能设置

结论:形式 B(远程桌面)不是"多余",是"备用钥匙"——平时不用,但 Web 失灵时能直接操作 iMac 系统层救场。所以预案必须准备好,哪怕大概率用不上。

形式 B:远程桌面(预案 · 按需启用)【v0.6 细化】

触发条件(出现这些情况时启用形式 B):

为什么远程桌面不走 Cloudflare Tunnel? 远程桌面(看屏幕、动鼠标)对延迟极敏感。Cloudflare Tunnel 走境外节点,300~800ms 延迟下鼠标操作有明显卡顿——能用但不舒服。所以预案优先选国内方案(延迟低、体验好)。

预案推荐

方案费用特点适合
向日葵 Mac 版个人免费版够用国内优化最好,无人值守需登录账号绑定;免费版限速但管服务器够首选预案
ToDesk个人免费版够用国内方案,体验和向日葵接近备选
macOS「屏幕共享」+ Cloudflare Tunnel免费系统自带,但走境外慢仅应急(免费但卡)
说明【v0.6】:向日葵/ToDesk 是国内商业远程桌面服务,免费个人版够用。代价是连接要过它们的服务器(数据过第三方),且免费版有限速。但作为"偶尔救场"的预案,这个代价可接受——毕竟你不会天天用远程桌面,主力还是 Web 管理。

扩展准备(现在不装,但要知道怎么做)

  1. 现在就能做的零成本预留:iMac 系统设置 → 通用 → 共享 → 打开「屏幕共享」。开了不影响什么,需要时直接能用。
  2. 真需要远程桌面时:iMac 和 MBA 各装一个向日葵(或 ToDesk)客户端(5 分钟),登录同一账号,就能在外连 iMac 桌面。
  3. 不提前装客户端的理由:大概率装了也用不上几次(Web 管理覆盖 90%+ 场景)。客户端等需要时再装,5 分钟的事,没必要为低频功能提前占资源。
我的建议:iMac 的「屏幕共享」开关现在就打开(零成本预留)。向日葵/ToDesk 客户端等真需要时再装。先用 Cloudflare Tunnel + Access 跑 Web 管理,实际用了发现不够,再启用形式 B——到时 5 分钟就能接入,不会卡住你。

操作通道总结

场景用什么成本
在家管服务器内网 IP 直连 Web 管理界面0
在外管服务器(90%+)Cloudflare Tunnel + Access → Web 管理0
在外救场(Web 失灵)向日葵/ToDesk 远程桌面(预案)0(免费版够)

第 7 层:安全

家用服务器暴露在公网,安全必须做:

  1. 只暴露反向代理端口(8443),数据库、管理面板等端口一律不转发到公网。【v0.5 补充】管理界面走 Tunnel + Access,不挂公网域名。
  2. macOS 防火墙开启:系统设置 → 网络 → 防火墙,只允许必要服务。
  3. 路由器防火墙保留,只开端口转发需要的端口。
  4. 所有服务设强密码,尤其 NPM、Portainer、数据库。
  5. 定期更新:OrbStack、容器镜像、macOS 系统更新。
  6. SSH 关闭密码登录【v0.3 修改】(如果开了 SSH 的话),只用密钥;或者干脆不开 SSH,全走图形界面 + Tunnel。
  7. Cloudflare Access 认证【v0.5 新增】:管理界面必须经过邮箱验证码认证,不裸暴露。

端口规划参考(方便记忆)【v0.2 新增】

按"千位区段"分类,首位数字代表用途,好记:

区段用途对外?举例
8xxx对外 Web 入口(反向代理 NPM 监听)8443 HTTPS 主入口(推荐固定用这个)
9xxx管理后台否(仅内网/Tunnel)9001 Portainer / 9002 NPM 后台 / 9003 Uptime Kuma / 9004 DDNS-GO
5xxx应用服务(容器内部,由 NPM 转发)5080 某 Web 应用 / 5443 另一应用
4xxx数据库否(绝不对外)4001 PostgreSQL / 4002 MySQL / 4003 Redis

记忆口诀:8 对外、9 管理、5 应用、4 数据库。

对外其实只需记一个端口8443。所有外部展示访问都从 NPM 的 8443 进来,再按子域名分发到内部服务。管理界面(9xxx)只通过内网或 Tunnel 访问,外面根本碰不到。

端口候选:若 8443 不顺手,也可选 94438800 等,避开 80/443/22 等常用且可能被封的端口。建议固定一个别老换。

四、费用与网络兼容性核实(逐项核实)【v0.3 重写】

你问得对——"免费"和"国内能用"是两回事。下面每个工具都核实了三件事:是否免费、国内网络能否直接用、有什么坑。核实时间 2026-07,政策可能变动,以官方为准。

4.1 工具逐项核实表

工具用途费用国内网络可用性备注
域名给服务器起名字.top/.xyz 约 1~35 元/年;.com 约 55~75 元/年✅ 阿里云/腾讯云国内直接买唯一硬性支出。不备案 + 非标端口一般能用
OrbStack容器引擎(替代 Docker Desktop)个人非商业 免费;商业 $8/用户/月✅ 下载需访问 orbstack.dev(国外),装好后本地运行不依赖外网个人自用免费版完全够
DDNS-GO动态域名(有公网 IP 时用)完全免费开源✅ 本地运行,只调用阿里云/腾讯云 API(国内服务器)纯国内链路,零境外依赖
Nginx Proxy Manager反向代理 + HTTPS完全免费开源✅ 本地运行;证书用 Let's Encrypt,DNS-01 验证走域名 API(国内)纯本地,零境外依赖
Portainer CE容器图形管理完全免费开源(zlib 协议,商用也不限)✅ 本地运行,不依赖任何外部服务社区版家用绰绰有余
Uptime Kuma服务监控告警完全免费开源(MIT)✅ 本地运行;通知走 Server酱(微信,国内)/邮件纯本地,零境外依赖
Cloudflare Tunnel操作通道 + 展示通道(无公网时)免费档够用,不限流量时长⚠️ 国内可用但偏慢:延迟 300~800ms,实测 2~3MB/s节点在境外。Web 管理够用,远程桌面偏卡
Cloudflare Access管理界面零信任认证【v0.5 新增】免费档 50 用户⚠️ 依赖 Cloudflare 境外服务,认证时有一次境外交互你自用 1 个用户,免费档绰绰有余
~~Tailscale~~~~远程管理组网~~~~个人版免费~~⚠️ ~~国内半残~~v0.5 已用 Cloudflare Access 替代,不再推荐

4.2 总成本明细

项目费用必须花?
域名1~75 元/年是(对外服务唯一硬支出)
电费约 10~20 元/月(M 系列 iMac 全天开)是(开机的代价)
OrbStack0 元(个人版)否(商业才付费)
其他所有容器软件0 元
Cloudflare Tunnel + Access0 元
操作通道嫌慢时的替代方案0~60 元/月(frp自建/蒲公英,按需)否(先用免费的,慢了再说)

基础方案总成本 = 域名钱 + 电费,一年约 100~300 块,比腾讯云便宜很多。 唯一可能额外花钱的环节:操作通道嫌 Cloudflare Tunnel 慢,换国内穿透方案(月费 30~60)。先用免费的,实际体验后决定。

4.3 需要警惕的工具

⚠️ Cloudflare Tunnel + Access:免费,但国内偏慢

【v0.5 修正】之前这里还列了 Tailscale 的警惕项。v0.5 已用 Cloudflare Access 替代 Tailscale 作为操作通道方案,所以 Tailscale 的风险不再适用。Cloudflare Access 和 Tunnel 共用同一套境外基础设施,延迟特性一致。

4.4 一句话总结


五、实施步骤(分阶段)

⏸️ 当前阶段:需求基本定稿,进入试水部署。 以下步骤为方案确定后的实施顺序;每步傻瓜化细节见模拟执行手册 imac-server-dryrun.md。静态站试水(分支 C·EdgeOne 海外区)为当前最优先落地项。

阶段 0:准备 + 判断网络(30 分钟)

阶段 1:基础环境(1 小时)

阶段 2:展示通道(1 小时)

阶段 3:监控(30 分钟)

阶段 4:按需上服务


六、关键注意事项

1. 80/443 端口

国内家宽普遍封 80 端口(部分地区封 443)。所以对外用非标准端口(如 8443)。缺点是访问时要带端口号,但自用完全够。

2. 上行带宽

家庭宽带上行通常只有下行的 1/5~1/10。展示服务吃上行,自用几个人访问毫无压力,但别指望扛住高并发。

3. 稳定性

4. 备份

5. 运营商政策


七、和腾讯云的真实差距

维度你的 iMac腾讯云
月成本电费几块几十~几百
公网 IP动态,靠 DDNS固定
带宽上行小(家宽)对称,可买大
可用性95%~99%(家用)99.9%+(SLA)
运维自己搞平台兜底
数据控制完全在自己手里在云厂商
弹性扩展受限于单机随时升配

结论:自用、学习、展示炫耀,iMac 方案完胜(省钱 + 数据自主);如果要扛正式业务、对可用性要求高,还是上云。你的博士后管理业务线上化如果是单位正式系统,建议核心数据/正式服务上云,iMac 做开发测试 + 个人工具 + 备份。


八、需求演进日志(问答记录)

本节按时间顺序记录每次「我问 → 你答 → 解释」的打磨过程。新问答追加在末尾。

【07-16 07:16】初始需求 → 出方案

【07-23 07:30】公网 IP 认知修正 + 端口规划

【07-23 07:40】费用与网络兼容性核实

【07-23 07:44】补认知盲区 + 转入打磨模式

【07-23 07:52】确立文档驱动打磨机制

【07-23 08:05】定位澄清 + 双通道双分支重构

【07-23 08:19】操作形式确认 + 方便优先原则 + 同生共死盲区

【07-23 08:34】附加问题:昨日任务能否沿用 + WorkBuddy 复用机制认知

【07-23 08:58】昨日任务具体化 + 未备案域名联动 + projects 三层网页设计

【07-23 10:05】个人标记规范写法确立(全局)

【07-23 10:14】个人落款规范确立(全局)

【07-23 10:24】版本号命名规范确立(全局)

【07-23 10:36】昨日 stocktrading 走通方式实地查证 + 文档结构补充

【07-23 10:48】矛盾观察 4 拍板:静态上云、动态留本地

【07-23 10:56】新增全局工作方式规范:文字风格积累 + 主动追问

【07-23 11:16】附录 B projects 网页设计细化:留言板 + 自适应 + 分页 + 字体

【07-23 11:37】附录 B 继续细化:网页标题 + 遵纪守法提示 + 留言板场景明确

【07-23 11:41】留言板方案确认:Twikoo

【07-23 11:46】首页邮箱(防爬)+ 全站实时数码时钟

【07-23 11:52】数码时钟含义确认:理解 A(实时时钟)

【07-23 11:57】页面顶部调整:去个人标记,改主副标题

【07-25 07:12】三个拍板:允许自定义分支 / 视觉标记都不加 / 先部署静态站试水

【07-25 07:21】新增全局大原则:积分/额度消耗须先确认

【07-27 06:58】继续打磨:把跑偏分支预留出来,待一个一个确认

【07-27 07:20】首次模拟执行整个计划(非真执行)+ 产出模拟执行手册


九、矛盾观察清单

本节记录在打磨过程中发现的、需求前后可能存在矛盾或设计张力之处。发现即记录,并给出供选择的建议。

观察 1:「对外提供服务」vs「自用为主」的定位张力 ✅ 已解决

观察 2:「随时随地操作」的具体形式 —— 远程桌面 vs Web 管理界面 ✅ 已解决

注【v0.6 勘误】:v0.5 矛盾观察 2 中形式 A/B 的描述与第 6 层方向相反(v0.5 此处 A=远程桌面、B=Web,而第 6 层及需求方理解中 A=Web、B=远程桌面)。v0.6 已统一为 A=Web 管理、B=远程桌面、C=先 A 后 B,以需求方决策为准。

观察 3:未备案 .cn 域名 vs 展示通道方案 ✅ 已解决(V02.00 修正)

观察 4:EdgeOne Pages 云端静态托管 vs iMac 本地服务器 ✅ 已解决

已拍板(V02.01):需求方选定方案 A(分工)。静态展示走 EdgeOne Pages(已验证·免费·iMac 不用开),动态服务走 iMac 本地(必须常开)。iMac 定位 = 动态服务 + 操作通道 + 存储,不为静态页面常开。projects.sixstars.cn 定性为静态展示,直接复用 EdgeOne 部署。
后续如发现新的矛盾或张力,会在此节持续追加。

十、下一步

当前处于需求基本定稿,进入试水部署阶段,按大原则推进:

  1. ~~矛盾观察 4~~ ✅ 已解决(V02.01):需求方拍板方案 A(分工)——静态展示走 EdgeOne Pages,动态服务走 iMac。核心架构决策全部明确。
  2. ~~projects 细节 3 项~~ ✅ 已拍板(V02.09):① 第二层分支 = 允许不同项目自定义(原型后续改灵活结构);② 视觉标记 = 都不加(纯文字);③ 顶部去个人标记后不补元素(维持现状)
  3. 待你在家做:判断有没有公网 IP(5 分钟)——只影响"动态服务"走分支 A 还是 B,不卡"静态展示"(已锁定 EdgeOne Pages)。优先级低。
  4. 日常运维(断电恢复开机预案·Apple Silicon 不支持断电自启)方案已落档(十二章)·待执行安全防护(暴露公网风险、弱口令爆破)+ 备份策略 + SSD 寿命仍待补课
  5. 随时可做:对方案任何部分提出疑问或细化想法,我按「我问→你答→解释」更新本文档并给最新版。
  6. ~~暂不做~~ 🔄 已启动试水部署(V02.09 需求方选定"先部署静态站试水"):静态站用 EdgeOne Pages 海外区部署,iMac 不用开。B 类安全运维补课仍挂起,等动态服务真要做时再补。
V02.09 后决策状态:需求基本定稿,进入试水部署。矛盾观察 4 条全部解决 ✅;projects 网页细节 3 项已拍板 ✅(允许自定义分支 / 视觉标记都不加 / 顶部不补元素);公网 IP 实测与 B 类安全运维补课挂起不阻塞(静态展示已锁定 EdgeOne,iMac 不用开)。下一步用 EdgeOne 把原型部署成 projects.sixstars.cn 试水。
📌 模拟执行手册:把本计划拆成 10 节傻瓜化步骤(非真执行)的独立交付物见 imac-server-dryrun.md(V01.00),与主文档交叉引用;试水前建议先通读一遍,按「阶段 0 → 操作通道 → 展示通道静态试水 → 监控 → 验收」顺序走。

十一、跑偏分支预留清单

本节把对话中跑偏的方案 / 分支从主线捞出来,结构化挂起为「预留项」,等待需求方逐一确认。确认方式:每条标注「待确认归类」+ 我的建议,需求方拍板 → 丢弃 / 留作备选 / 并入主线 / 另起话题。(首项 alpha/beta 已于 V02.14 确认「保留」,作为理解偏差存档留存清单内)

跑偏项 1:alpha/beta 版本控制增强方案【运维通身份误生成 · 已确认·保留】

待需求方补充的跑偏项

以上为目前已识别的跑偏分支。若你心中还有其他"跑偏的分支"(某轮探索的方案、某份副产物、某个被带偏的方向),请直接告诉我,我逐条补进本清单、同样标注「待确认归类」,不擅自归类
确认节奏:按你"一个一个继续确认"的要求,每条独立拍板,不批量跳过。

十二、电源与容量扩展预案【V02.15 新增 · 2026-07-27 10:58】

本章来自需求方提出的两个咨询:① iMac 做服务器对电源的要求;② 假设新增另一台不同规格 iMac,软硬件上如何做扩展预留。核心结论已实测核实,修正了此前"断电自启可配置"的误解。

12.1 核心事实(已核实)

12.2 电源要求

  1. UPS 必选(不是可选项)
  1. 长停电恢复后的开机预案(真正痛点)
方案做法评价
智能插座远程通电米家/TP-Link 插座远程控制通电❌ 不够——通电不会让 Mac 开机(已验证)
WoL 网络唤醒魔法包唤醒⚠️ Apple Silicon 主要支持睡眠态唤醒,对完全关机态不可靠
远程桌面引导家里另一台常开设备/请人,通过屏幕共享看 iMac 状态并引导开机✅ 最现实,复用操作通道远程桌面预案
换支持 AC Recovery 的设备把 7×24 刚需服务移到 x86 小主机/NAS(固件支持断电自启)✅ 架构级兜底,iMac 退居"展示/动态"非刚需角色
  1. 其他电源要求:独立回路(别和空调/冰箱共插座,启动冲击);防浪涌(老旧小区加防浪涌插排);接触可靠(插座/线别松动);散热(长时间高负载注意温度,降频+寿命,机身周边留通风)。

12.3 容量扩展预案(新增另一台不同规格 iMac)

12.3.1 硬件预留

  1. 网络骨干:两台都走有线千兆(iMac 自带以太网口,别用 WiFi 当服务器骨干)。若新机规格不同只有 WiFi,必须加雷雳/USB-C 网口。固定 IP:imac-01 = 10.0.0.11imac-02 = 10.0.0.12,子网 /24
  2. 角色按规格划分(关键设计点):
  1. 电源:每台独立 UPS(或一台大 UPS 带两台),各自配自动干净关机。
  2. 端口口诀维持(完整规划见第三节端口规划参考):对外只记 8443、管理 900x、应用 5xxx、数据库 4xxx(绝不对外);第二台用相同端口 + 不同 IP,靠反向代理区分。

12.3.2 软件预留

  1. 入口统一(反向代理):Nginx Proxy Manager(NPM)作统一入口,按子域名/路径把流量分发到两台对应服务。NPM 建议跑在旧机(轻量稳态)。
  2. 操作通道去中心化:两台各自建 Cloudflare Tunnel + 各自 Portainer(manage-01 / manage-02)。这正好解决"管理面同生共死"盲区——每台管理面在自己机器上,一台挂了不影响另一台。
  3. 故障转移:Cloudflare Tunnel 支持配置多个 origin(源),天然实现两台互备/负载——"不同规格机器互为备份"的软件层关键。
  4. 服务拆分策略(按规格差异落位):算力密集→新机;内存密集(DB/缓存)→内存大的;存储密集→盘大的(或外接阵列挂某台,NFS/SMB 共享给另一台);无状态轻服务→任意,倾向旧机。
  5. 共享存储:文件级用 NFS/SMB;对象级走 EdgeOne/COS(已是方案一部分,静态上云两台都拉,不依赖本地互访);数据库可预留主从(主在新机、从在旧机作热备,但 Apple Silicon+图形化偏好下先预留不急做)。
  6. 编排:保持每台独立 OrbStack+Portainer(去中心化)。不推荐上 Docker Swarm/k8s(对图形化偏好偏复杂),仅备注"未来 >3 台再考虑"。
  7. 监控统一:两台都部署 node_exporter,纳入同一 Uptime Kuma + Prometheus/Grafana;告警要能区分"哪台挂了",尤其 NPM 依赖两台时。
  8. 可复制的加节点 SOP:命名 imac-03、IP 规划、NPM 加 upstream、Tunnel 加 origin——形成模板,未来加任意规格机器按图施工。

12.4 状态


附录 A:使用 WorkBuddy 的认知与复用机制【v0.7 新增】

这是需求方提出的一个附加问题(关于使用 WorkBuddy 本身),按其要求作为附录放在文档最后。

A.1 需求方的附加问题

「昨天我做的一个任务的实现过程和各种调用打通环节,今天这个任务能够直接沿用吗?」

A.2 搜索结果 + 昨日任务具体化【v0.8 更新】

搜索 2026-07-22 对话记录无结果(两次搜索均未命中)。但 v0.8 需求方已明确告知昨日任务内容:

昨日任务:用未备案域名 sixstars.cn 设置了访问页 stocktrading.sixstars.cn(子域名 + 网页部署 + 访问配置)。

这意味着:域名环节 iMac 方案里"买域名"这步已完成。V02.00 已查证 stocktrading.sixstars.cn 走腾讯云 EdgeOne Pages(海外区)(非 Cloudflare,详见附录 C),原"需确认访问方式"已闭环。

A.3 核心认知:WorkBuddy 的"东西"存在哪、哪些跨任务

这是个需要补的认知盲区:你在 WorkBuddy 里做任务产生的东西,存在不同地方——有的跟着你走(跨所有任务),有的被关在某个项目里(换个项目就没了)。这直接决定能不能沿用。

四层存储,从"最通用"到"最局限"

存什么跨任务?举例
① 全局共享用户画像、用户级记忆、用户级技能、连接器配置、运行时✅ 跨所有任务你装过的 CodeBuddy、配置的 MCP,今天这个任务自动能用
② 项目专属当前 workspace 的记忆、项目级技能、项目文件、对话上下文❌ 只在这个项目本文档、本项目的 memory,换个项目就读不到
③ 会话专属当前这轮对话的上下文和中间过程❌ 聊完就没这轮聊的技术细节,不沉淀的话下次全忘
④ 历史可检索所有历史对话记录⚠️ 能搜到但非"直接沿用"可以搜回,但找到后要重新理解和执行

A.4 回答你的问题

"昨天那个任务的实现过程和调用打通环节能否直接沿用"——取决于它当时沉淀成了什么形态

昨天那个任务留下了什么今天能沿用吗说明
配置了 MCP 连接器✅ 能,全局共享但新 workspace 可能要重新"信任"一下
写进了用户级记忆✅ 能,全局共享每次会话自动注入
沉淀成了用户级技能✅ 能,全局共享,直接调用最佳复用形态
装了运行时/工具✅ 能,全局共享比如 Python、Node
只是当时对话里讨论的⚠️ 能搜到参考不能"直接沿用",要重新执行一遍
文件存在昨天那个项目目录❌ 不能直接沿用文件在别的目录,得手动找
只在当时会话上下文里❌ 不能会话结束就彻底没了

A.5 怎么让"能沿用"最大化(给你的建议)

如果你希望某个任务的成果以后能直接复用,最好的做法是主动沉淀

  1. 可复用的工作流 → 让我存成「技能」(用户级),以后任何任务都能一键调用。比如"从零搭 iMac 服务器"这套流程,定稿后可以存成技能。
  2. 长期事实/偏好 → 写进用户级记忆,每次自动带上。
  3. 连接器配置 → 自动全局共享,不用管。
  4. 项目文件 → 如果要跨项目用,复制一份到新项目,或我帮你迁移。

A.6 复用判断【v0.8 更新】

昨日任务(stocktrading.sixstars.cn 配置)的复用情况:

昨日留下的今天能沿用吗说明
sixstars.cn 域名✅ 能域名已是你的,直接用
DNS 解析经验✅ 能加子域名记录的流程你会了,projects 照做
网页部署方式⚠️ 取决于方式如果是静态页放 Cloudflare Pages,可直接复用;如果是别的,需确认
配置流程(整体)⚠️ 能复用但要重走本质就是"加子域名→部署→配置访问",你会了会快,但没沉淀成技能就得手动重走

建议:把"新建子域名访问页"这套流程存成用户级技能,以后任何新子域名(projects、blog、wiki……)都能快速复用。等 projects 配置流程定稿后我来存。

✅ 已闭环(V02.00):stocktrading.sixstars.cn 走腾讯云 EdgeOne Pages(海外区),详见附录 C;projects 直接复用,矛盾观察 3 已解决。

这也是"方便优先·保留预案"原则在 WorkBuddy 使用层面的体现——让该复用的东西自动跟着你走,不该丢的主动沉淀下来

附录 B:projects.sixstars.cn 三层网页设计方案【v0.8 新增】

需求方想沿用昨天配置 stocktrading.sixstars.cn 的流程,新建 projects.sixstars.cn,做三层结构的个人项目展示页。本附录是设计方案(需求打磨阶段,暂不实施)。

B.1 与昨日配置的复用关系

昨天配置 stocktrading.sixstars.cn 的流程,今天可以复用——本质就是「加子域名 DNS 记录 → 部署网页 → 配置访问」这套步骤。projects 和 stocktrading 是同一个域名 sixstars.cn 的不同子域名,DNS 配置在同一个域名管理后台,复用度很高。

但"直接调用"取决于昨天的流程有没有沉淀

✅ 已确认【V02.00】:stocktrading.sixstars.cn 走的是腾讯云 EdgeOne Pages(海外区),不是 Cloudflare(之前推测有误,已纠正)。projects.sixstars.cn 可直接复用同一套部署方式——见附录 C 完整复盘。

B.2 三层结构设计

第一层:首页(项目列表 + 留言板 + 邮箱)

第二层:项目管理分支(项目详情页)

点击某项目后,按项目管理理论展开分支列表。简约版 5 个分支:

分支对应 PMBOK存什么
需求范围管理这个项目要解决什么问题、目标
工具资源管理用什么技术/工具实现
进度进度管理时间线、里程碑、当前状态
成果交付物管理产出物、完成的东西
备注风险+反思遇到的问题、经验教训
设计理由:PMBOK 十大知识领域对个人项目太重,精简为 5 个最常用的。你提到的"需求、工具"已包含,另外补"进度、成果、备注"形成完整闭环。可按需增减。

第三层:具体内容

B.3 设计风格

核心要求:最简单、经典框架、简约为主。

个人标记「大欣,欣欣向荣的欣」(规范写法,见全局记忆 ~/.workbuddy/MEMORY.md):

自适应与分页【V02.03 根据需求新增要求】:

网页标题【V02.04 根据需求新增·V02.08 更新】:

遵纪守法提示【V02.04 根据需求新增】:

邮箱防垃圾邮件方案【V02.06 根据需求新增】: ``html <!-- 源码里只有占位,爬虫读到的是空的 --> <span id="contact-email"></span> <script> // JS 运行时才拼接出真实邮箱,爬虫不执行 JS 所以抓不到 document.getElementById('contact-email').innerHTML = '<a href="ma' + 'ilto:sixstars' + '@' + 'qq.com">sixstars' + '@' + 'qq.com</a>'; </script> ``

实时数码时钟【V02.06 根据需求新增】:

技术实现方向(待定稿后选)

B.4 待你确认

  1. ~~第二层的 5 个分支是否够用?要增减哪些?~~ ✅ 已拍板(V02.09):改为"允许不同项目自定义不同分支"——各项目可定义自己的分支结构。原型当前写死 5 分支,试水部署后改灵活数据结构(项目自带分支定义)。
  2. ~~"欣欣向荣"的视觉标记~~ ✅ 已拍板(V02.09):选"都不加"——顶部不加绿叶符号、底部落款不加小标记,维持纯文字现状。
  3. ~~stocktrading.sixstars.cn 现在走什么方式访问?~~ ✅ 已确认走 EdgeOne Pages 海外区(V02.00),projects 可直接复用,见附录 C。
  4. 留言板方案待拍板【V02.03 新增】:留言板是动态功能,按分工走云端轻量后端(不放 iMac)。候选方案:
  1. ~~数码时钟"服务器相关"含义待确认~~ ✅ 已确认【V02.07 需求方拍板】:选理解 A——就是右上角实时数码时钟,显示当前日期+时间(北京时间),"服务器相关"指风格气质(像服务器机房数码钟),纯前端 JS 无后端依赖。理解 B(iMac 运行状态)不采用,与静态站定位冲突。

附录 C:昨日 stocktrading 走通方式复盘(已验证链路)【V02.00 新增】

需求方要求实地查证昨日项目 sinopec_analysis 里 stocktrading 走通的方式,补充到本文档。本附录是基于昨日项目实际文件 + 工作日志的查证复盘,已脱敏(不含 token、邮箱授权码等敏感凭证)。

C.1 核心结论

stocktrading.sixstars.cn 走的是腾讯云 EdgeOne Pages(海外区),不是 Cloudflare。

⚠️ 勘误:之前 v0.8 推测"大概率走了 Cloudflare"是错误的。Cloudflare 在昨日项目中仅用于反馈表单的临时公网通道(quick tunnel,trycloudflare.com 临时地址,会变),不用于展示站。展示站走的是腾讯云 EdgeOne Pages。

C.2 完整技术链路

外部用户
  │
  │  访问 https://stocktrading.sixstars.cn
  ▼
腾讯云 DNS(sixstars.cn 的解析在这里)
  │
  │  CNAME 记录:stocktrading → EdgeOne 海外节点目标值
  ▼
腾讯云 EdgeOne Pages(海外区项目 stocktrading)
  │
  │  CDN 分发 + 自动 HTTPS
  ▼
返回静态 HTML 内容(存放在 EdgeOne 云端)

关键点:内容存在腾讯云 EdgeOne 云端节点上,iMac / MBA 完全不需要开机。这和"iMac 当服务器"(内容在本地)是两种架构。

C.3 关键配置要素

要素值 / 说明
域名sixstars.cn(在腾讯云注册,未 ICP 备案
托管平台腾讯云 EdgeOne Pages(腾讯版 Cloudflare)
加速区域全球可用区(不含中国大陆)= 海外区(关键!国内区绑自定义域名要求备案,海外区不要求)
项目名stocktrading(无连字符,与域名一致)
自定义域名stocktrading.sixstars.cn
DNS腾讯云 DNS(不迁出),加 1 条 CNAME
HTTPSEdgeOne 自动签发证书
内容静态 HTML 文件(每日股票分析报告,自包含 CSS)

C.4 部署方式

两种方式都已跑通

  1. 控制台手动上传(早期):
  1. EdgeOne CLI 自动部署(后期,已自动化):

C.5 已实现的访问保护(昨日做的,可复用)

保护项实现方式
禁止搜索引擎收录<meta name="robots" content="noindex,nofollow,noarchive,..."> + robots.txt
页面只读JS 禁用右键/选择/复制/保存/打印/开发者工具
访问口令闸门口令 = stock + 当日日期(YYYYMMDD),如 stock20260723;前端纯 JS 算法,无需服务端
unlisted(不公开链接)链接本身即访问凭证,不进搜索引擎,无额外密码门
这些保护对未来 projects.sixstars.cn 同样适用,可一并复用。

C.6 与 iMac 方案的关系(重要认知)

EdgeOne Pages(stocktrading 走的)iMac 当服务器(本方案)
内容在哪腾讯云云端iMac 本地
iMac 要常开吗不用
适合什么静态展示(HTML 报告、项目页、文档站)动态服务(数据库、后端逻辑、实时交互)
费用免费电费
速度CDN 分发,快受家宽上行限制

结论:projects.sixstars.cn 如果是静态展示(项目列表 + 详情页),直接复用 EdgeOne Pages 最省心——不用 iMac 常开、免费、访问还快。iMac 留给真正需要本地算力的动态服务。这就是矛盾观察 4 的核心。

C.7 projects.sixstars.cn 复用指引

复用 stocktrading 的部署方式,给 projects 建站:

  1. EdgeOne Pages 新建项目:在 EdgeOne 控制台新建一个海外区项目(如 projects),或复用 stocktrading 项目加子路径。
  2. 准备静态文件:按附录 B 的三层结构,生成 HTML 文件(首页 + 项目详情页 + 分支内容页)。
  3. 上传部署:控制台手动上传,或写个类似 deploy_reports.sh 的脚本用 CLI 部署。
  4. 腾讯云 DNS 加 CNAMEprojects → EdgeOne 给的目标值。
  5. 访问保护:复用 stocktrading 的 noindex + 只读 JS + 口令闸门。

建议:等 projects 三层结构定稿后,把"新建子域名访问页 + EdgeOne 部署"这套流程存成用户级技能,以后任何新子域名(projects、blog、wiki……)都能快速复用。

C.8 查证来源


sixstars.cn ☆ 大欣,欣欣向荣的欣 ☆ 2026.07.27-11:21:30