macOS 本地部署 Zashboard
最近 macOS 平台新出的代理客户端 ClashMac 关注度颇高(此前我使用的是 Sparkle)。由于该软件支持外部 UI 管理,我决定在本地部署 Zashboard 面板,实现更统一的管理体验。
前言
作为一个习惯手写 YAML 配置文件的用户,ClashMac非常适合我(虽然Sparkle开启轻量化模式占用更低,但是不能使用Zashboard管理)
附上一份官方收录的第三方Mihomo工具:https://wiki.metacubex.one/startup/client/client/
想起Zashboard是分为前端和后端的,那我不就可以让常驻在我的Dock栏上的Zashboard Web App同时管理在家和在外的了
起初我尝试使用官方提供的在线前端(https://board.zash.run.place ),但遇到了两个问题:
- 当通过 HTTPS 访问在线面板并导出为 Safari Web App 时,浏览器会因安全策略阻止其访问本地的 HTTP 后端接口。
- 如果改用 HTTP 协议访问在线面板,浏览器地址栏会常驻“不安全”的红色警告,且加载速度受网络环境影响较大(官方的是通过GitHub部署的)。
因此,在本地部署一个轻量级的前端服务成为了最佳解决方案。
部署步骤
1. 下载静态文件
直接从 GitHub Releases 下载构建好的静态文件:
下载最新的 dist.zip 或适合你的(官方有说明),解压后将其放置在一个你习惯的目录下(要一直保留,不能删除)
2. 选择 Web 服务器
虽然 Node.js、Nginx、Caddy 甚至 Python都行 ,但为了追求极致的低资源占用,这里推荐使用 **Static Web Server (SWS)**。它基于 Rust 编写,内存占用极低且对 SPA(单页应用)支持良好。
安装服务器
使用 Homebrew 安装:
1 | brew install static-web-server |
安装完成后,可执行 which static-web-server 确认路径(通常位于 /opt/homebrew/bin/static-web-server)。
3. 配置开机自启 (Launchd)
我们将使用 macOS 原生的 Launchd 来管理服务。
在终端输入以下命令创建配置文件:
1 | nano ~/Library/LaunchAgents/com.user.zashboard.plist |
粘贴以下内容。注意:请务必将下方代码中的 /Users/your_username/... 替换为你实际的文件路径。或者叫AI帮你写
1 |
|
按 Ctrl + O 保存,Ctrl + X 退出。
4. 启动服务
执行以下命令加载配置并启动服务:
1 | # 卸载可能存在的旧服务(忽略报错) |
此时访问 http://localhost:3824 即可看到面板。
相比于 Node.js 动辄 50MB+ 的内存占用,Static Web Server 在我本地的运行占用仅维持在 5MB 左右,非常轻量。