Help

Install, what gets discovered, sources, the dots, details, actions, connection strings, probes, licensing, uninstalling, demo mode.

Install

Download ServeMon.dmg, drag ServeMon to Applications, and open it. ServeMon lives in the menu bar; there is no Dock icon. With Homebrew: brew tap suresk/tap && brew install --cask suresk/tap/servemon. It needs macOS 14 or later and asks for no permissions and no password.

What gets discovered, and how

ServeMon looks for PostgreSQL, Redis, MySQL and MariaDB, MongoDB, Elasticsearch and OpenSearch, Kafka, RabbitMQ, Mailpit, LocalStack, Memcached, NATS, and MinIO, plus any container a Docker-compatible runtime is running. It finds them four ways, all without running a subprocess:

Discovery runs every 5 seconds while the panel or window is open and every fifth probe cycle while it is hidden.

Sources and badges

Every service carries a badge saying where it came from: Homebrew (with the formula, such as postgresql@17), Docker Desktop, OrbStack, Colima, or Podman (with the container and image), Postgres.app, or Process for a bare binary that matched by name or path but belongs to none of the above. The badge decides which mechanism Start, Stop, and Restart use.

Services running as root or another user (a system-wide mysqld, say) are listed with what libproc shows without privileges: name, PID, path, and uptime, and are probed on their default port. Their arguments, sockets, and working directory are not read, so data directory, config, and log may be blank. 1.0 has no privileged helper.

What the dot colours mean

The menu bar icon shows one dot per running service, up to eight; after that it shows a count. Click it for the panel.

Details, and where each one comes from

The Log tab shows the last 200 lines and refreshes every 2 seconds while visible. Copy Summary puts one line per service on the clipboard: name, version, source, address, health, data directory, log.

Actions

Start, Stop, and Restart use whatever started the service: brew services start|stop|restart <formula> for Homebrew, the container API for containers, and a signal (SIGTERM, then SIGKILL if you ask) for bare processes and Postgres.app servers. Start and Restart are unavailable for bare processes because ServeMon does not know the command that launched them; stop it here, then start it however you started it before.

Open Client opens Terminal with psql, redis-cli, mysql, or mongosh already pointed at the service (it writes a small .command file in ~/Library/Application Support/ServeMon and opens it). Open Data Directory reveals the data directory in Finder. After the trial, the actions and Open Client need a license; viewing never does.

Connection strings

Each service gets a connection string built from what ServeMon knows: postgresql://postgres@127.0.0.1:5432/postgres, redis://127.0.0.1:6379, and so on. For containers the user, password, and database come from the container's environment (POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, and the MySQL, MongoDB, and RabbitMQ equivalents). Passwords are always masked on screen. Copy Connection String includes the password only when it came from one of those container environment variables, which are local-development defaults by construction. Anything else is copied masked.

Probe settings

Settings › Probes has a toggle per service kind. A probe is one connection and one message: PING to Redis, a startup message to Postgres, reading the handshake MySQL sends first, buildInfo to MongoDB, one HTTP GET to Elasticsearch, OpenSearch, Mailpit, LocalStack, and MinIO, the protocol header to RabbitMQ, version to Memcached. Then the connection closes. Probes run every 5 seconds while the panel or window is open; hidden, every 30 seconds by default (Settings › General offers 15, 30, 60, or off). A service with its probe off keeps a grey dot and is still listed with its details.

License

The 14-day trial is unrestricted. After it ends you can still see everything; Start, Stop, Restart, and Open Client need a license. Buy one, then paste the key into ServeMon › License… (in the gear menu of the panel). One key activates three Macs; free one from the customer portal. A license includes twelve months of updates; after that the app keeps working, and another twelve months is $15.

Uninstalling

Quit ServeMon from the gear menu and drag it to the Trash, or brew uninstall --cask servemon. ServeMon writes only ~/Library/Preferences/com.suresk.servemon.plist and ~/Library/Application Support/ServeMon; delete those too if you want nothing left, or use brew uninstall --zap --cask servemon. Your license key and trial start live in the Keychain under com.suresk.servemon.license. Nothing was installed anywhere else, and your services are untouched.

Demo mode

For screenshots and bug reports without real data: SERVEMON_DEMO=1 replaces discovery with nine fictional services. SERVEMON_OPEN_WINDOW=popover|main|settings|license opens that window on launch and SERVEMON_APPEARANCE=light|dark forces the appearance. For example: SERVEMON_DEMO=1 SERVEMON_OPEN_WINDOW=main /Applications/ServeMon.app/Contents/MacOS/ServeMon.

Not in 1.0

Profiles (start and stop a named set of services together), conflict detection (two services on one port or one data directory), and a privileged helper for services that run as root. Those are next, in that order. Kafka, Elasticsearch, RabbitMQ, LocalStack, and Mailpit are detected and probed when present but have no data-directory or log heuristics outside the container case.

Something else?

Email support@getservemon.com, or open an issue at github.com/suresk/servemon/issues. Include the Copy Summary text if it is about a service that shows the wrong thing.