Oakmini Cloud Mac · Quickstart

从选购到首次构建,跑通你的云端 Mac 工作流

这份入门指南面向第一次使用 Oakmini 的开发者与 CI/CD 工程师。你将选择一台独享 Mac mini 物理节点,通过 SSH 或 VNC 连接,恢复 Apple Silicon 工具链,完成一次可复现构建,并把 self-hosted runner 接入现有流水线。

01 选择配置 机型、周期、节点、存储
02 连接节点 SSH 或 VNC
03 验证工作流 构建、产物、runner
云端 Mac 开发工作台场景
oakmini-bootstrap connected
$ uname -m
arm64
$ sw_vers -productVersion
macOS ready
$ system_profiler SPHardwareDataType
Chip: Apple M4
$ xcodebuild -version
Xcode toolchain detected
$ git --version
git ready
✓ environment baseline recorded
准备阶段

开始前先确定六个输入条件

先把兼容性、区域、周期和权限写清,能避免连接后才发现依赖架构不符、磁盘不足或流水线缺少仓库权限。建议把以下结果保存在项目的迁移记录中。

预计 10–20 分钟

Apple Silicon 兼容性

核对依赖是否提供 arm64 版本,重点检查二进制工具、容器镜像、原生扩展和旧版脚本。若项目来自 Intel 环境,先列出必须替换或重新编译的组件。

file ./your-binary确认目标架构

目标节点区域

在新加坡、日本(东京)、韩国(首尔)、香港、美国西部中选择。交互式 VNC 优先靠近主要操作者;无人值守构建则优先考虑代码源、制品存储与协作团队的位置。

ping / traceroute从实际办公网络测量

使用周期与任务窗口

按天适合短期验证,按周适合迁移冲刺,按月或按季适合持续开发与常驻 runner。先估算准备、构建、验收和产物导出的完整时间,不要只计算单次任务耗时。

day / week / month / quarter订单周期不可混用

存储容量

把仓库、依赖缓存、模拟器数据、归档和导出产物分别估算。构建目录应保留余量,避免依赖解析或归档阶段因磁盘耗尽而中断。长期任务还要定义缓存清理策略。

df -h连接后再次核验

远程连接工具

命令行任务准备 SSH 客户端与密钥;需要 macOS 图形界面时准备 VNC 客户端。确认本地网络允许对应连接,并记录公司防火墙、代理或 VPN 对连接路径的影响。

ssh -V先验证本地客户端

账户与项目权限

确认代码仓库读取、依赖源访问、CI runner 注册、构建签名材料和制品上传所需权限。优先使用任务专用凭据,并为自动化流程设置最小可用范围。

read / build / upload逐项标注权限范围
开始前输出一份基线记录:项目架构要求、目标节点、预计周期、磁盘预算、连接方式、所需权限和验收负责人。后续每一步都以这份记录为对照。
第一步 · 选购

按负载选择机型,再确定周期与节点

Oak Core 与 Oak Forge 都是独享 Mac mini 物理节点,非虚拟机。选择时看峰值内存、并发构建数量、工作集大小和产物体积,不以模糊的性能倍数作判断。

前往门户选择配置
Oak Core
m4-16-256
个人开发与轻量构建
芯片M4
内存16GB
存储256GB SSD

适合单项目调试、依赖验证、低并发自动化任务与短期迁移检查。若仓库、模拟器和归档占用较大,应在下单时增加存储。

$19.5/天$52.5/周$97.3/月$264.7/季
下单字段 可选内容 选择依据 确认结果
计费周期 天、周、月、季 覆盖环境准备、任务执行、验收和产物导出 订单显示的起止范围符合计划
节点 新加坡、日本(东京)、韩国(首尔)、香港、美国西部 交互用户、代码源和制品目标之间的实际网络路径 区域名称与基线记录一致
存储扩展 +1TB SSD 或 +2TB SSD 仓库、依赖缓存、工作目录、归档和导出产物总量 预留清理与临时文件空间
并联选项 Thunderbolt 5 并联(每台) 仅在已规划的多节点工作流中选择 数量与拓扑逐台核对
结算边界:仅支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),所有订单统一以 USD 结算。实际可用网关以门户返回为准。
第二步 · 连接

先确认主机状态,再建立 SSH 或 VNC 会话

从门户读取当前主机状态、地址、端口和凭据说明。不要根据旧订单或本地历史记录猜测参数。命令行维护使用 SSH,需要图形界面时使用 VNC。

SSH baseline first-session.sh
ssh -p <PORT> <USER>@<HOST>

hostname
sw_vers
uname -m
system_profiler SPHardwareDataType
df -h
systemsetup -gettimezone
date

将输出保存到迁移记录。预期至少能确认主机名、macOS 版本、arm64 架构、芯片型号、磁盘容量、时区和当前时间。

  1. 01

    核对门户状态

    主机应处于可连接状态。若状态仍在变化,先等待门户更新,不要连续重试凭据。

  2. 02

    复制连接参数

    逐项核对主机地址、端口、用户名和连接方式。密钥文件只保存在受控设备中。

  3. 03

    验证主机指纹

    首次 SSH 连接记录指纹;后续若指纹异常变化,先停止连接并通过控制台工单核对。

  4. 04

    建立图形会话

    使用 VNC 时先以适合当前网络的分辨率和画质连接,再检查键盘布局、剪贴板策略和休眠设置。

身份hostname与订单对应
系统sw_vers记录完整版本
硬件arm64 / M4核对所选配置
资源df -h确认可用空间
第三步 · 环境

按固定顺序恢复工具链,并生成版本清单

先建立可复查的基础环境,再安装项目依赖。不要直接复制旧机器的整个用户目录;优先迁移清单、配置和锁文件,以减少架构差异与无效缓存。

L1

Homebrew 与命令行基础

恢复软件清单后运行诊断,检查安装前缀和 shell 环境。Apple Silicon 常用路径应与脚本中的硬编码路径保持一致或完成替换。

brew bundle check && brew doctor
L2

Git 与仓库配置

设置提交身份、换行策略和凭据读取方式。先拉取一个只读测试仓库,确认网络和权限,再处理生产项目。

git config --list --show-origin
L3

语言运行时

根据锁文件恢复 Ruby、Node.js、Python 或其他运行时版本。记录版本管理器、全局工具和项目级版本,不依赖“最新版本”描述。

ruby -v; node -v; python3 --version
L4

Xcode 工具链

确认当前选择的开发者目录、Xcode 版本、SDK 与命令行工具。多个项目需要不同版本时,为流水线显式记录切换步骤。

xcode-select -p; xcodebuild -version
L5

项目依赖

使用仓库中的锁文件恢复依赖,保留完整解析日志。若依赖需要编译原生扩展,确认输出架构为 arm64

file ./path/to/native-extension
环境清单 environment-baseline.txt
date
hostname
sw_vers
uname -m
xcode-select -p
xcodebuild -version
git --version
brew --version
brew list --versions
ruby -v
node -v
python3 --version
df -h

清单应与项目一起维护

  • 记录命令输出,而不是只记录“安装完成”。
  • 保留依赖锁文件和包管理器清单。
  • 标注需要手动配置的路径与权限。
  • 为 Xcode 版本切换写出明确命令。
  • 避免把密钥、令牌和签名材料写入清单。
首次构建

先跑最小测试项目,再执行真实流水线

首次构建的目标不是追求最短耗时,而是确认依赖解析、签名权限、输出目录和日志都可重复。先用固定提交版本测试,成功后再扩大到完整项目。

01

固定输入

拉取指定提交或标签,确认子模块、私有依赖和大文件对象完整。记录仓库提交哈希,避免测试期间输入发生变化。

git rev-parse HEAD
02

解析依赖

使用锁文件恢复依赖,并把标准输出与错误输出写入日志。遇到架构问题时先定位具体二进制,不要反复清空全部环境。

command 2>&1 | tee dependency.log
03

核对签名权限

确认构建进程能读取任务所需的签名材料和配置文件。自动化账户只授予对应项目与构建步骤需要的权限。

security find-identity -v -p codesigning
04

指定输出目录

将 DerivedData、归档、测试结果和导出产物放入明确目录,避免与其他任务共享不受控的临时路径。

mkdir -p build logs artifacts
05

保留完整日志

日志至少包含提交版本、Xcode 版本、SDK、命令、开始时间、结束时间和退出码。敏感字段在上传前完成脱敏。

echo "$?" > logs/exit-code.txt
06

重复执行一次

在相同提交和配置下再次运行,确认依赖、路径和权限不会依赖首次会话中的临时操作。两次结果应可解释、可对照。

./scripts/verify-build.sh
xcodebuild \
  -project Example.xcodeproj \
  -scheme Example \
  -configuration Release \
  -derivedDataPath ./build/DerivedData \
  build 2>&1 | tee ./logs/first-build.log
成功标准

命令退出码为 0;日志可定位到固定提交与工具链版本;输出目录中存在预期产物;再次执行不依赖未记录的手动操作。

迁移路线图

把迁移拆成数据、工具链与 CI 三条路径

三条路径可以并行准备,但必须按共同基线汇合:固定仓库版本、记录工具链版本、定义 runner 标签,然后触发一项可重复验证的任务。

DATA

数据栏

只迁移可解释的数据,不搬运无法追溯的历史状态。

  1. 仓库克隆固定提交,核对子模块与大文件对象。
  2. 缓存按包管理器与项目版本分目录,过期缓存不迁移。
  3. 工作目录区分源码、临时文件、日志和最终产物。
  4. 验证点git status / checksum / df -h
TOOL

工具链栏

从清单恢复工具,以版本输出确认结果。

  1. Homebrew恢复软件清单并运行诊断。
  2. 运行时按项目文件安装 Ruby、Node.js、Python 等版本。
  3. Xcode核对选择路径、版本、SDK 与构建方案。
  4. 验证点brew doctor / xcodebuild -version
CI

CI 接入栏

让调度规则明确落到这台独享物理机。

  1. 注册 runner使用任务专用注册凭据并记录服务账户。
  2. 设置标签使用区域、架构、工具链和负载类型标签。
  3. 触发验证运行最小构建并上传脱敏日志与测试产物。
  4. 验证点online / matched / exit 0
MERGE GATE 三条路径汇合条件
  • 仓库提交版本已固定
  • 环境清单已保存
  • runner 标签能匹配任务
  • 验证任务退出码为 0
  • 日志与产物可从指定目录导出
安全收尾

在接入生产仓库前收紧凭据与权限

环境能运行并不代表已经适合长期使用。完成首次构建后,应立即处理初始凭据、密钥保存、仓库范围和脚本中的敏感信息。

最小权限基线

  • 更换初始凭据,并确认旧凭据不再用于连接。
  • 为个人维护、自动化构建和制品上传使用不同凭据。
  • 私钥仅存放在受控设备或受控密钥存储中,并设置严格文件权限。
  • 仓库访问范围限制到实际项目,不授予无关组织或仓库权限。
  • 签名材料只对需要执行签名的进程与账户开放。
  • 脚本、环境清单、日志和构建产物中不得写入密码、私钥或支付凭据。
脚本检查

提交前搜索常见敏感字段,检查 shell 历史、环境文件、CI 配置和日志。发现明文凭据时应先撤销并替换,再清理文件历史。

SSH 权限

限制私钥文件权限,删除不再使用的公钥,并为自动化连接配置可识别的密钥名称与用途记录。

chmod 600 ~/.ssh/private_key
日志脱敏

保留时间、命令、版本、退出码和错误栈;删除访问令牌、私钥内容、签名材料原文及其他可直接用于授权的信息。

验收清单

用七项结果判断是否可以投入日常任务

验收应基于可重复结果,而不是“当前窗口能用”。建议断开会话后重新连接,并从干净 shell 中再跑一次关键命令。

7 项全部通过
  1. 01

    远程重连

    主动断开 SSH 与 VNC,再使用已保存的正确参数连接。主机指纹、用户名、端口和图形会话均符合记录。

    可重复
  2. 02

    依赖安装

    从锁文件恢复依赖,命令退出码为 0;原生组件架构正确;安装日志已保存且不含敏感信息。

    可追溯
  3. 03

    项目构建

    固定提交与工具链版本下完成构建,输出目录明确,第二次执行不依赖未记录的手动操作。

    退出码 0
  4. 04

    产物导出

    归档、测试结果或其他目标产物能从指定目录导出,文件名称、版本和校验方式满足团队约定。

    可交付
  5. 05

    Runner 在线

    self-hosted runner 状态在线,标签能够匹配目标任务,并且不会接收未授权项目的作业。

    标签匹配
  6. 06

    日志留存

    环境基线、依赖日志、构建日志、退出码和产物路径均已归档,敏感字段完成脱敏。

    可定位
  7. 07

    门户管理

    能够在门户核对主机状态、订单信息和管理入口。所有节点全年 365 天正常运行,不设置计划停机时段。

    可管理
Start with a reproducible baseline

选择独享 Mac mini,开始你的首次构建

进入门户查看当前可用节点,选择 Oak Core 或 Oak Forge、计费周期与存储选项。下单后按本页步骤完成连接、工具链恢复与验收。