macOS Installation
SolidPing runs natively on macOS, on Apple Silicon and Intel.
Homebrew
The simplest way:
brew install fclairamb/tap/solidping
Upgrade it later with brew upgrade solidping.
Binary download
Every release publishes a compressed binary for each architecture:
# Apple Silicon (M1 and later)
curl -L -o solidping-darwin-arm64.gz https://github.com/fclairamb/solidping/releases/latest/download/solidping-darwin-arm64.gz
gunzip -c solidping-darwin-arm64.gz > solidping
# Intel
curl -L -o solidping-darwin-amd64.gz https://github.com/fclairamb/solidping/releases/latest/download/solidping-darwin-amd64.gz
gunzip -c solidping-darwin-amd64.gz > solidping
chmod +x solidping
uname -m prints arm64 on Apple Silicon and x86_64 on Intel.
Gatekeeper
The binary is unsigned and not notarized. macOS quarantines it on download and refuses to run it. Clear the quarantine attribute once, before the first run:
xattr -d com.apple.quarantine solidping
Then move it to a directory on your PATH (optional):
sudo mv solidping /usr/local/bin/
Verify the checksum (recommended)
Check the downloaded .gz file against solidping-checksums.txt. macOS ships
shasum rather than sha256sum:
curl -L -o solidping-checksums.txt https://github.com/fclairamb/solidping/releases/latest/download/solidping-checksums.txt
shasum -a 256 -c --ignore-missing solidping-checksums.txt
Running
# SQLite, data stored in the current directory
solidping serve
Open http://localhost:4000. On first start, macOS may ask whether SolidPing may accept incoming network connections: allow it if other machines need to reach the dashboard.
solidping --version prints the installed version. PostgreSQL and the other
database options work the same as on Linux, see the
Linux guide.
Run at boot (launchd)
macOS uses launchd instead of systemd. Create a data directory, then
/Library/LaunchDaemons/io.solidping.plist:
sudo mkdir -p /usr/local/var/solidping
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>io.solidping</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/solidping</string>
<string>serve</string>
</array>
<key>WorkingDirectory</key>
<string>/usr/local/var/solidping</string>
<key>EnvironmentVariables</key>
<dict>
<key>SP_SERVER_LISTEN</key>
<string>:4000</string>
</dict>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/usr/local/var/log/solidping.log</string>
<key>StandardErrorPath</key>
<string>/usr/local/var/log/solidping.log</string>
</dict>
</plist>
With Homebrew on Apple Silicon, the binary is /opt/homebrew/bin/solidping:
adjust ProgramArguments accordingly. Add any other SP_* variable under
EnvironmentVariables.
Load and start it:
sudo mkdir -p /usr/local/var/log
sudo launchctl bootstrap system /Library/LaunchDaemons/io.solidping.plist
sudo launchctl print system/io.solidping | grep state
Restart it with sudo launchctl kickstart -k system/io.solidping, stop and
unload it with sudo launchctl bootout system/io.solidping.
Logs
tail -f /usr/local/var/log/solidping.log
Updating
With Homebrew, brew upgrade solidping. With a downloaded binary, download it
again as above, clear the quarantine attribute, replace
/usr/local/bin/solidping, then restart the service:
sudo launchctl kickstart -k system/io.solidping
Next Steps
- Configuration Guide - All configuration options
- Check Types - Configure your first checks