This commit is contained in:
Mark Gregory
2026-10-21 14:08:51 +01:00
parent 5c56299e46
commit 2efeaf0764
4 changed files with 109 additions and 1 deletions
+15 -1
View File
@@ -31,7 +31,7 @@ Use SSH keys and trust the host key from an interactive SSH login before first r
## Build on macOS
Open `PegasusMonitor.xcodeproj` in Xcode and choose the PegasusMonitor scheme. Set your signing team as appropriate, then Build & Run. The app requires macOS 14.0 or newer. No third-party dependencies, build/release scripts, or packages are required.
Open `PegasusMonitor.xcodeproj` in Xcode and choose the PegasusMonitor scheme. Set your signing team as appropriate, then Build & Run. The app requires macOS 14.0 or newer. No third-party dependencies are required.
The app appears as a status icon in the macOS menu bar, not the Dock. It polls every five minutes by default (configurable), shows 14 aggregated categories and per-check diagnostics, and sends notifications when a previously healthy server becomes unhealthy. The server JSON adapter is read-only; it never restarts services.
@@ -50,3 +50,17 @@ The app appears as a status icon in the macOS menu bar, not the Dock. It polls e
`MonitorMenuView.swift`: summary and drill-down details.
`SettingsView.swift`: SSH configuration and interval.
`server/pegasus-health-json`: read-only JSON adapter for the existing health script.
## Build and release scripts
Run from the project root:
```zsh
./Scripts/build.sh # Debug build; launches the app
LAUNCH_AFTER_BUILD=0 ./Scripts/build.sh # Debug build without launching
./Scripts/release.sh # Signed Release DMG in dist/
NOTARY_PROFILE=your-profile ./Scripts/release.sh # Notarize + staple DMG
ALLOW_UNSIGNED=1 ./Scripts/release.sh # Local testing only
```
Release automatically selects the first `Developer ID Application` identity from the login keychain, or honors `SIGNING_IDENTITY`. It requires an identity unless `ALLOW_UNSIGNED=1`. Signing and notarization do **not** happen in `build.sh`. Script-built artifacts are written to `.build/` and `dist/`. The DMG is assembled after successful compilation and signing. These scripts do not change Xcode project version numbers; change `MARKETING_VERSION` and `CURRENT_PROJECT_VERSION` in Xcode before a release.