Mac mini 家庭服务器:一句话搭好一个工作台,项目已开源

域名 + Tailscale + Caddy + 实时仪表盘,开源项目 homelab-desk 让 AI 一句话搭好

作者: shisaq 日期: October 31, 2026

家庭服务器,听起来很极客,好像是程序员专属的玩具;但在大模型爆发的时代,它其实适用于每一个家庭。因为我们部署、管理和维护等代码工作,正是当今大模型最擅长的事之一。我把自己踩过的坑做成了一个开源项目,让 AI 一句话就能搭好一个工作台。 

我家这台是 Mac mini。我在买 Mac mini 之前其实考虑了很久——我已经有一台 mbp 了,多一台电脑,我能用得过来吗?但买了之后,我发现是越用越爽。因为一台家庭服务器的核心是7x24不间断运行。这就意味着你随时想用什么服务,它都会随时给你回应。而且随着时间的推移,自动化服务自然会越来越丰富——这是个不断跟随自己成长的设备,是一种资产。这是它目前的样子:

我家的工作台:10 个服务全部在线

上面一共 10 个服务。Mac mini 上 7 个:电影库、本地视频生成、配音、本地大模型、写这个公众号用的工作台、投资记账、字幕;旁边的 NAS 和树莓派上还有 3 个:群晖后台、n8n 和 Home Assistant。

家庭服务器是什么

说白了,就是家里一台 24 小时开着的电脑,上面跑着你自己的常驻服务。

家庭服务器能干的事包括且不限于:

用途 常见的服务 能帮你做什么
影音 Jellyfin 下好的电影自动配海报,电视、投影仪、手机都能看
相册 Immich 手机照片自动备份,能按人脸、地点、以图搜图
密码 Vaultwarden 全家的密码库,Bitwarden 的各种客户端都能连
广告过滤 AdGuard Home 全家设备一起去广告
自动化 n8n、Home Assistant 定时抓资讯发到手机;坐久了桌子自己升起来
AI Ollama 等 本地跑大模型,聊天、生成都不出这台机器

还有一些服务不需要后台,但其实也非常适合部署。比如我现在用得最多的,是 Paseo。它是 Claude Code、Codex 这类编码 Agent 的控制台:Agent 常驻在 Mac mini 上跑,我随时随地都能连上去看进度、接着下指令,电脑启动的会话,手机能继续,反之亦然——彻底解除了多设备会话同步问题。现在 AI 能在多台设备之间长期稳定地干活,靠的就是它。它的好处,下期详细讲。

家庭服务器用什么机器好?我的看法是:

  1. Mac mini 最合适。功耗低、安静、长期开机没问题,Apple 芯片还能跑本地 AI。
  2. NAS 适合放数据。服务装太多,它会吃力。
  3. 树莓派适合跑一两个轻量的,比如 Home Assistant。
  4. 闲置的 Linux 电脑也可以,算次选。

服务一多,麻烦就来了

我遇到的是这 4 个麻烦:

  1. 地址记不住。每个服务一个端口,8096 是电影,8190 是视频生成,8123 是智能家居……10 个,根本记不住,每次都要翻笔记。
  2. 浏览器报“不安全”。家里的服务默认是 http,有的功能(比如录音、复制)在不安全的页面上还用不了。
  3. 想在外面用,又怕暴露。在路由器上开端口最简单,但等于把家门开在公网上,扫端口的机器人一天到晚都在找这种门。
  4. 挂了不知道。哪个服务停了,往往是要用的时候才发现。

工作台:一个入口管理所有服务

我的解法是给这些常驻服务做一个工作台。它其实就 4 件事:

  1. 每个服务一个名字:jellyfin.你的域名.com、ha.你的域名.com,不用再记端口。
  2. 正规证书:浏览器有小锁,自动续期。
  3. 只有你能打开:别人就算知道地址,也连不上。
  4. 一个仪表盘:每个服务在不在线,机器的 CPU、内存、磁盘、温度,一眼看完;每天再自动体检一次。

维护起来也简单。所有服务写在一份清单里,加服务就是加一行,域名、证书、卡片、体检都跟着自动更新。

在外面访问的几种办法

“只有你能打开”,局域网肯定没问题,关键要看从外面怎么连回家。常见的有这几种:

方式 怎么连 谁能访问 要注意
公网 IP + 端口转发 路由器开端口,DDNS 跟着 IP 变 全世界 很多家宽没有公网 IP;暴露在公网,安全全靠服务自己
内网穿透(frp、花生壳等) 借一台中转服务器 默认全世界 速度看中转;多数要付费
Cloudflare Tunnel 家里主动连 Cloudflare 全世界,可以加登录 国内访问不稳定;不适合传视频
Tailscale / ZeroTier 你的设备组成一个虚拟局域网 只有你登录的设备 每台设备要装一个 App

如果服务只给自己和家人用,我推荐最后一种。我用的是 Tailscale,个人免费版目前能加 6 个用户,设备数量不限。在家时它自动走局域网直连,出门在外也能连回来。远程桌面也靠它搞定了。

我的推荐:一个只有你能打开的专属网址

在 Tailscale 上再加一个自己的域名,就是一套很舒服的方案:

环节 用什么 花费
域名 任意注册商买的域名,DNS 交给 Cloudflare 管 非.com 的域名巨便宜
解析 一条泛解析,指向服务器的 Tailscale 地址 免费
证书 Let’s Encrypt,用 DNS 验证 免费
入口 Caddy,按域名把请求转给各个服务 免费
连接 Tailscale 个人免费

效果是:我打开 mini.uulili.com 就是工作台,点进去每个服务都有自己的地址和SSL小锁。这个域名公开解析,但解析到的是 Tailscale 里的地址,不在我 Tailscale 网络里的设备,想连也连不上。

homelab-desk:让 AI 一句话搭好

工作台项目叫 homelab-desk,已经在 GitHub 开源,MIT 协议:

GitHub 项目地址

https://github.com/shisaq/homelab-desk

homelab-desk 的 GitHub 主页

它做这几件事:

  1. 部署总览:读你的服务清单,生成 Caddy 配置、申请证书、只放行 Tailscale、装成开机自启的后台服务。可以重复执行,改了清单再跑一次就行。
  2. 实时仪表盘:每个服务在不在线、响应多快、近 1 小时的记录;机器的 CPU(每颗核都有)、内存构成和压力、磁盘、网络,装了插件还有温度、GPU、UPS。
  3. 选风格:4 套主题,每套都有深浅两种,样子见下一节。
  4. 推荐服务:内置一份目录,影音、相册、密码、广告过滤、自动化、AI、下载、阅读等,共 30 项。每项写清适合谁、怎么装、放到反向代理后面要注意什么。
  5. 每天体检:检查每个服务和证书剩余天数,可以接到自己的通知渠道。

上面我踩过的坑,项目里都处理掉了。比如监听 443 的限制,它会改成按来源只放行 Tailscale;在线检测放在服务器上做,避开浏览器的跨域误判;Home Assistant 这类要额外配置的服务,目录里直接写明。

顺手做了不同的风格

工作台总共 4 套主题:玻璃、苹果的液态玻璃、简洁、终端,每套都有深浅两种,页面右上角随手切。

4 套主题:玻璃、液态玻璃(浅色)、简洁、终端(演示数据)

怎么用

把项目克隆下来,把里面的 skill 链接给 Claude Code 或 Codex,然后对它说一句:

对 Claude Code 或 Codex 说

帮我用 homelab-desk 搭一个家庭服务器工作台

它会检查前置条件,带你在 Cloudflare 建 Token、建 DNS 记录,部署,最后验收。以后想加服务,也是一句话:

以后加服务

把 Immich 加进来

不想用 AI 的,也可以手动跑 init、doctor、dns、deploy 4 条命令。

为什么不做成 Docker?Mac 上的 Docker 跑在虚拟机里,拿不到 Tailscale 地址,也读不到宿主机的温度和 GPU。项目本身只有 Caddy、一个 Python 小服务和一个静态页面,原生跑更简单。你的服务装在哪都行,装在 Docker 里的也一样,项目只认“地址:端口”。

市面上的 Homepage、Homarr、Dashy 管的是导航页面,Uptime Kuma 管监控。homelab-desk 管的是从零到能用的整条链路。已经在用它们的,也可以把它们当成一个服务加进来。

适合谁

  1. 已经有一台常开的 Mac,上面跑着几个服务:直接用。
  2. 用 Linux 的小伙伴:适配代码已经写好,但还没在真机上验证过,欢迎测试反馈。
  3. 还没有服务器的:可以先从上面那张表里挑一两个你想要的服务,一台 Mac mini 就能跑起来。
  4. 想把服务公开给朋友、不装 Tailscale 直接用浏览器打开的:这个项目不负责这件事。那需要一台公网服务器和用户管理,安全问题就够你喝一壶的了。

前置条件是 3 样:一个托管在 Cloudflare 的域名,装好并登录的 Tailscale,以及 Claude Code 或 Codex(手动部署则不需要)。

总结一下:家庭服务器的价值在那些服务,工作台让你管得过来。项目地址再放一次,求个星星:

GitHub 项目地址

https://github.com/shisaq/homelab-desk

用的时候遇到问题,欢迎留言或者在 GitHub 上提。衷心希望你的负债少少,资产多多。

博客版补充

工作台上的几个服务,博客里有单独的实测:


本文首发于微信公众号「像素李的AI笔记」:原文链接。博客版保留了文中的外链,和公众号版不同的地方都标了“博客版”。