veyselaksin/glance

GitHub: veyselaksin/glance

Glance 是一款原生 macOS 开发者桌面仪表盘,将 GitHub 活动、Docker 容器状态与 SSH 服务器监控整合到单一界面中。

Stars: 9 | Forks: 0

Glance

Glance

专为开发者打造的原生 macOS 桌面仪表盘。
GitHub 活动、Docker 容器、SSH 服务器——一目了然。

CI Release Homebrew macOS Go Wails License

使用 Wails(Go 后端 + React/TypeScript 前端)构建,并针对 macOS 进行了专项调优:带有浮动红绿灯按钮的透明标题栏、毛玻璃效果(vibrancy),以及深色的 Material 风格 UI。

## 功能特性 - **概览** —— 在单一界面中整合今日的 GitHub 活动、本地 Docker 状态以及主服务器的健康状态。 - **GitHub** —— 显示今日的贡献和提交次数,通过 GitHub 的 [Device Flow](https://docs.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#device-flow)进行身份验证 (无需 client secret,绝不存储密码)。Token 会保存在本地的 `config.json` 中。 - **Docker** —— 列出容器的状态、运行情况、CPU 和内存使用率; 流式传输日志,启动 / 停止 / 删除容器;连接到您本地的 Docker socket。 - **服务器** —— 保存可通过 SSH 连接的主机(支持密码或私钥认证), 打开应用内置终端([xterm.js](https://xtermjs.org)),并获取实时的 服务器指标(CPU / 内存 / 磁盘)。私钥保存在专用的密钥目录中,绝不以内联形式存储在配置文件中。 - **服务器 Ping** —— 对任意主机进行 ICMP 和 HTTP 健康检查。 - **文档** —— 内置参考手册,包含捆绑的命令和约定。 ## 🚀 安装说明 您可以使用 **Homebrew** 轻松地在 macOS 上安装 Glance。得益于我们自动化的自定义 Tap,您无需担心手动下载或 macOS Gatekeeper 的权限提示。 在您的终端中运行以下命令: ``` # 添加自定义 Homebrew tap brew tap veyselaksin/tap # 信任该 tap(自定义第三方 tap 必需) brew trust veyselaksin/tap # 将 Glance 作为 macOS Cask 安装 brew install --cask glance ``` ## 前置条件 - macOS 12 或更高版本(UI 专为 Mac 调优;虽然可以使用 Wails 构建 Linux/Windows 版本,但此处未经测试) - [Go](https://go.dev) 1.25+ - [Node.js](https://nodejs.org) 18+ 及 npm - [Wails CLI](https://wails.io/docs/gettingstarted/installation):`go install github.com/wailsapp/wails/v2/cmd/wails@latest` - Docker(仅当您希望 Docker 标签页与本地 daemon 通信时需要) ## 快速开始 ``` git clone https://github.com/veyselaksin/glance.git cd glance wails dev ``` `wails dev` 会运行一个带有热重载功能的 Vite 开发服务器,用于前端。另一个位于 的开发服务器允许您从浏览器开发者工具中调用绑定的 Go 方法。 ## 构建 要生成可分发的生产模式捆绑包: ``` wails build ``` 输出的二进制文件位于 `build/bin/`。若要生成 macOS 的 `.app` 捆绑包,请使用 `wails build -platform darwin/universal`。 ## 项目结构 ``` main.go Wails entrypoint; window + macOS options app.go Backend logic: GitHub, Docker, server ping, config ssh.go SSH connections, key storage, server metrics frontend/ src/ App.tsx Main UI, Docker table, overview ServersView.tsx SSH server management + terminal SignInPage.tsx GitHub Device Flow sign-in wailsjs/ Generated bindings to the Go backend build/ Platform packaging assets (appicon, Info.plist) ``` ## 配置说明 首次启动时,Glance 会在您的用户数据目录中写入一个 `config.json` (在 macOS 上路径为 `~/Library/Application Support/Glance`)。它存储了: - `github_username`, `github_token` —— 您已登录的 GitHub 身份信息 - `client_id` —— 可选配置,用于覆盖内置的 OAuth Client ID(见下文) - `server_host` —— 概览仪表盘上显示的主机 - `servers` —— 保存的 SSH 服务器(密码保存在此处;私钥存放在 密钥目录中) - `docker_socket` —— Docker socket 的路径,默认为系统默认路径 ## 安全说明 - **GitHub OAuth**:`app.go` 中的内置 `DefaultClientID` *仅*为公开标识符 —— Device Flow 不使用 client secret,因此将其包含在开源二进制文件中是安全的。如果 Fork 版本希望在授权页面上显示自己的品牌,可以创建自己的 OAuth App,然后 修改该常量,或者通过 `config.json` 中的 `client_id` 为每个用户单独覆盖。 - **SSH 凭据**:密码存储在 `config.json` 中;私钥 会写入专用的、访问受限的密钥目录中并通过路径进行引用。任何对这些文件具有读取权限的人都可以冒充您的服务器 —— 请妥善保护它们。 - **GitHub token**:以明文形式存储在 `config.json` 中。如果您不希望这样, 请在 GitHub 标签页中注销以将其清除。 ## 技术栈 - 后端:Go 1.25, Wails v2.12 - 前端:React 18, TypeScript, Vite, Tailwind CSS, xterm.js - 集成:GitHub REST/GraphQL API, Docker Engine API, golang.org/x/crypto/ssh ## 贡献 欢迎各种贡献。对于非微小的更改,请先提出 issue,以便我们在您投入时间编写 PR 之前对齐方向。 ## 许可证 [MIT](./LICENSE) © Veysel Aksin
标签:Go, Ruby工具, Wails, 仪表盘, 威胁情报, 开发者工具, 日志审计, 桌面应用, 自动化攻击