
GitHub: https://github.com/icewhaletech/casaos
CasaOS 是冰鲸科技(IceWhale)开源的家庭云 OS 标杆,以「一行安装 + Docker 应用商店 + macOS 美学 UI」把自托管门槛降到消费级,但主仓库近一年 0 commit,团队研发重心已迁向姊妹项目 ZimaOS,是典型的「高 star / 低活跃」OSS 营销样本。

官方横幅:CasaOS 品牌视觉

官网 dashboard 截图:体现对 macOS 工作流的视觉对位

硬件兼容矩阵:ZimaBoard / NUC / 树莓派 / x86 小主机全平台

应用生态:100+ Docker 应用一键部署
维度 | 数据 |
|---|---|
GitHub | https://github.com/icewhaletech/casaos |
Star / Fork | 35,764 / 2,043 |
Watch / Open Issue / Open PR | 208 / 803 / 13(积压显著) |
代码行数 | 11,142 行(Go 87.6% / Shell 8.6% / YAML 3.0% / JSON 0.6%) |
项目年龄 | 57 个月(2021-09-26 ~ 2025-08-06) |
总 commit | 688(近 30/90 天 0,365 天 7) |
贡献者 | 34 人(LinkLeong 65.4% + JohnGuan 13.2% 累计 78.6%) |
开发阶段 | 已放弃(近 90 天 0 commit) |
开发模式 | 职业项目(weekend 3.1%,night 12.2%) |
热度定位 | 大众热门 + 产品代际切换的「遗产项目」 |
质量评级 | 代码一般 / 文档良好 / 测试不足 / CI 基本 |
License | Apache 2.0 |
版本 | v0.4.17-alpha1(115 tags / 97 releases,长期 0.4 大版本) |
CasaOS 的主体不是个人开发者,而是 冰鲸科技 IceWhale(北京) 的 Organization 账号。这家公司 2020 年从 Kickstarter 众筹 ZimaBoard 小型家庭服务器起家(4.8 年账号、50 个公开仓库),最早 CasaOS 就是 ZimaBoard 出厂预装系统——属于典型的 dogfooding 出生。核心贡献者 LinkLeong 一人占 65.4%,加上 JohnGuan 累计 78.6%,是「少数核心 + 社区」的小团队结构。
关键信号:冰鲸科技官网 hero 区明确写着 「We have upgraded CasaOS to ZimaOS」——组织已战略把研发重心从开源 CasaOS 迁移到商业 ZimaOS,本仓库实质成为「社区版遗产」。
冰鲸科技 2020 年观察到三个同时发生的趋势:
而当时的市场存在一个明显空缺:
于是「零代码、零订阅、消费级 UI」的家用云 OS 位置空出来,CasaOS 顺势切入。
冰鲸团队的解法哲学极其清晰,这种「明确不做什么」反而是最有价值的部分:
明确选择的: - 薄后端 + 重 Docker:所有应用通过 Docker Compose 一键部署,后端只做编排和资源管理 - 易用 > 功能:UI 对位 macOS、零代码、一行安装(curl -fsSL https://get.casaos.io | sudo bash) - 零订阅 + 开源:Apache 2.0 + 永免费 - 跨架构(amd64 / armv7 / arm64 / RISC-V) - 应用商店开箱:100+ Docker 应用可视化部署
明确不做的(更有价值): - 不做 RAID / ZFS —— 企业存储数据完整性让位家庭场景简单性 - 不做企业级权限模型 —— 单用户场景 - 不做 SSL 终止 / 反代全家桶 —— 让 Caddy / Nginx 上游处理 - 不做系统级防火墙 / 入侵检测 —— 与「自托管 + 隐私」叙事有张力(见 Issue #1113)
冰鲸科技把商业化路径设计成清晰的三层架构:
层 | 项目 | 性质 | 角色 |
|---|---|---|---|
入口层 | CasaOS(本仓库) | 开源 Apache 2.0 | 拉新:消费级用户 |
增值层 | ZimaOS | 闭源 / 部分闭源 | 收钱:家庭 Pro 用户 |
基础设施 | CasaOS-Common | 闭源 SDK | 三方复用:ZimaBoard 硬件 + ZimaOS + 第三方 |
商业化最终通过 ZimaBoard 硬件(售价 ~$200)变现——CasaOS 是广告,ZimaBoard 是产品。属于典型 open-core + 硬件变现双轨。
按新颖度 × 实用性 × 可迁移性综合排序:
fruit:vfs 默认配置 macOS 原生体验(新颖 4 / 实用 5 / 可迁移 5) - smb.conf 默认开启 fruit:metadata=stream、vfs objects=fruit streams_xattr、fruit:aapl = yes 等 - 让 macOS Finder 在挂载网络共享时能保留资源叉/时间戳/正确显示 rename,避免 Linux Samba 在 macOS 上常见的「.DS_Store 乱码」「修改时间错乱」 - 这是一个跨平台 NAS 工程里「看似不起眼却实际每天被打」的小创新——任何做 macOS/Linux 文件共享的项目都能复用
GetCPUThermalZone() 遍历 /sys/class/thermal/thermal_zone0~99 + 前缀匹配 + go-cache 缓存 - 跨 ARM/x86/RISC-V 统一硬件信息获取 - 对所有「需要在嵌入式小主机上跑监控」的 Go 服务都直接可用
api/casaos/openapi.yaml 既 code-gen(v2 types+server)又 runtime validate - v1 手工路由与 v2 自动生成路由通过 HandlerMultiplexer 按前缀分发 - 适合所有「需要 API 长期演进 + 客户端类型安全」的项目
//go:embed 把 casaos.conf.sample 等模板文件烧进二进制 - 运行时写入 /etc/casaos/ 实际配置 - 让单二进制跨发行版自带默认配置,对所有需要「单文件分发 + 默认配置」的 Go 服务直接可用
Go 中型服务统一管理多子 service(避免传 7 个 service 参数)1. API 双轨 v1 + v2 共存 - 问题:CasaOS 客户端历史版本需要兼容,但功能演进不能停 - 方案:v2 用 OpenAPI code-gen(类型安全),v1 手工路由(历史兼容),HandlerMultiplexer 按前缀分发 - Trade-off:双份代码维护成本换 API 向后兼容 - 可迁移性:高
2. 后端「反代自己」架构 - 问题:CasaOS 服务要监听 80/443,但同端口已被系统其他服务(如 Synology Web)占用 - 方案:CasaOS 进程监听 127.0.0.1:0(随机端口),通过独立 CasaOS-Gateway 进程反代到 :80/443 - Trade-off:多一个进程换端口隔离,对系统其他服务 0 干扰 - 可迁移性:中(适合所有「需要在已有服务系统上叠加新 Web 服务」的场景)
3. 本地优先状态管理 - 问题:家庭场景无云端,用户配置必须在本地 - 方案:INI 配置 + SQLite 单写(MaxOpenConns=1,避免锁竞争)+ CasaOS-MessageBus HTTP 软依赖 - Trade-off:放弃分布式一致性换部署简单性 - 可迁移性:高
4. sysroot 烧入二进制 - 问题:跨发行版(Debian/Raspbian/Ubuntu Server)部署时默认配置难以统一 - 方案://go:embed casaos.conf.sample + 运行时写出到 /etc/casaos/casaos.conf - Trade-off:二进制体积略增换跨发行版零依赖 - 可迁移性:高
5. 跨架构 sysfs 硬件抽象 - 问题:树莓派 / NUC / ZimaBoard / RISC-V SBC 温度传感器路径不统一 - 方案:/sys/class/thermal/thermal_zone0~99 遍历 + 前缀匹配(cpu-thermal/soc-thermal/coretemp...)+ go-cache 缓存 - Trade-off:放弃精确型号识别换跨架构兼容 - 可迁移性:高(适合所有嵌入式/IoT Go 服务)
维度 | CasaOS | OpenMediaVault | Unraid | TrueNAS SCALE | YunoHost |
|---|---|---|---|---|---|
定位 | 家用云 OS(个人云套件) | Debian 系 NAS | 商业付费家庭服务器 OS | 企业 NAS 家用化 | 自托管 Web 服务 |
安装门槛 | 一行 curl | 中等(apt 装) | 中等(USB 启动) | 高(ZFS 引导) | 中等 |
UI 美学 | macOS 风(消费级) | 工程师向 Web | 中等 | 中等 | 中等 |
Docker 应用 | 内置应用商店 + Compose | 插件式 | 内置 + Community Apps | 内置 | 有限 |
数据完整性 | 无 RAID/ZFS | RAID + 部分 ZFS | 商业 Array | ZFS 强制 | 无 |
ARM/树莓派 | 原生支持 | 部分支持 | 部分支持 | 不支持 | 支持 |
价格 | $0(开源) | $0 | $59 起 | $0(Scale) | $0 |
License | Apache 2.0 | GPL-3 | 商业 + 部分开源 | GPL-3 | AGPL-3 |
维护活跃度 | 已停摆近 1 年 | 活跃 | 活跃 | 活跃 | 活跃 |
CasaOS 的护城河是生态护城河,而非技术护城河:
真正的护城河来自「中文家庭用户社区认知」,而不是技术实现——其他家用云 OS 难以在中文家庭场景复制这一文化认同。
docker compose up -d),「应用商店 UI」的价值就下降CasaOS 在技术生态中扮演「Docker 上 UI 层 / 家庭场景入口层」:
核心价值是「让用户发现/安装 Docker 应用最容易」——具体应用体验由 Docker 上游生态决定,CasaOS 不背锅也不强干预。
项目层面: - ⚠️ 开发停滞:近 90 天 0 commit,主仓库实质停摆;Issue 积压 803 条,平均响应时间拉长 - ⚠️ 上游耦合债:Docker 29 兼容 Issue (#2407) 已开放无人处理,与 Docker API 紧耦合意味着 Docker 每次大版本都可能踩坑 - ⚠️ ARM 新硬件适配滞后:Pi 5 兼容 Issue (#1490) 解决慢,社区最关键硬件支持节奏跟不上 - ⚠️ 安全模型薄弱:Issue #1113 显示 SMB 认证设计不完善,与「自托管 + 隐私」叙事存在张力
代码层面: - ❌ 错误处理不规范:多处 panic / log.Fatalf,httper.Get 失败返回空串被静默吞掉 - ❌ 测试覆盖薄:146 个 .go 文件只有 7 个 _test.go,缺集成/E2E - ❌ 缺 linter/formatter 配置:没有 .golangci.yml 等,社区贡献风格难统一 - ❌ refactor 0% / commit 类型混杂:未采用 conventional commit,2/3 commit 被归入 「other」
战略层面: - ⚠️ 商业化让位:CasaOS 主仓库未来实质性新功能大概率只在 ZimaOS(闭源)出现,开源版长期停在 v0.4
service/docker.go —— 应用商店与 Docker 编排的核心实现route/v1/ 和 route/v2/ —— API 双轨路由的工程实践drivers/ 和 pkg/sys/ —— 跨架构 sysfs 硬件抽象build/sysroot/ —— 多架构构建脚本(x86/ARM/RISC-V)api/casaos/openapi.yaml —— 一份契约 + code-gen 范例build/sysroot/etc/samba/smb.conf —— SMB fruit:vfs 配置(macOS 用户日常体验关键)
slog 结构化日志资源 | 链接 |
|---|---|
DeepWiki | 未收录 |
Zread.ai | 已收录 — 中文导读入口 |
关联论文 | 无(家用云 OS 项目,无学术论文) |
在线 Demo | casaos.zimaspace.com — 官网 Demo 视频 |
姊妹项目 | IceWhaleTech/ZimaOS(闭源商业版) |
前端仓库 | IceWhaleTech/CasaOS-UI(Vue 3 + Vite) |
基础设施 | IceWhaleTech/CasaOS-Common(闭源 SDK) |
硬件 | github.com/IceWhaleTech/ZimaBoard(Kickstarter 众筹小主机) |