MacOS Task Worker Installer - Deployment Guide
Component: Diskover Worker (macOS)
Deployment Method: DMG Installer
Platform: macOS
Version: 2.6.0+
ℹ️ This guide covers the reworked 2.6.0+ installer: guided setup dialogs with a live credential check, fully offline dependency install, and a Python 3.13 virtualenv. Older 2.4.x–2.5.x DMG installers require manual configuration steps that 2.6.0 automates — contact the Diskover team if you are deploying an older installer.
Overview
The Mac DMG Installer provides a packaged installer for deploying the Diskover worker (diskoverd) on macOS machines. This allows macOS hosts to act as task workers, running scans and reporting back to the Diskover Web UI.
Use this guide when adding a macOS machine as a Diskover worker node alongside your existing Diskover infrastructure (Elasticsearch, Diskover Web, RabbitMQ).
Dependencies:
A running Diskover Web instance (the worker connects via API on port 8000)
A running Elasticsearch instance (the worker fetches its ES connection config from Diskover Admin)
Prerequisites
Requirement |
Detail |
|---|---|
macOS |
Supported macOS version |
Admin privileges |
Required to run the installer |
Root access |
Required to manage the service and configure the worker |
Network connectivity |
macOS machine must be able to communicate with Diskover Web over port 8000, or port 443 if SSL is enabled |
Diskover Internal API Key |
The |
Internet access |
Not required — dependencies install offline from the bundled wheel packages (PyPI is used only as a fallback) |
Installation — Fresh Install
Double click the
Diskover-v2.x.x.dmgfile the Diskover team has provided.Inside this, you will see a
Diskover-indexer.pkgfile — double click this. This will start the installer.Proceed through the installer modal instructions, agree to the Software License Agreement, and click
Installwhen ready.
Note: This will require Admin privileges to install.
Tip: Pressing
Cmd + Lwill bring up the Installer Log. From here, changing "Show Errors Only" to "Show All Logs" will allow you to see what the installer is working on, and any present errors.
-
During installation the installer presents setup dialogs. Have your values ready:
Server address — the Diskover Web host (HTTP or HTTPS; common typos are repaired automatically)
API user and password — the Diskover API user this worker connects as
Internal API key — the
DISKOVER_INTERNAL_API_KEYvalue from your Diskover server
You then get a review/confirm step, and the installer runs a live credential check against the server before anything is written. On success it writes the configuration and starts the worker service automatically — no manual YAML editing or
launchctlcommands needed. Values are pre-filled from any previous install. -
Once the installer has finished, you should now have the following installed onto this Mac machine:
/opt/diskover//var/root/.config/diskoverd/config.yaml(also mirrored to the console user's~/.config/diskoverd/)/Library/LaunchDaemons/com.diskoverdata.diskoverd.plist/opt/python-venv-diskover/(Python 3.13 virtualenv the worker runs from)/opt/diskover/configure-worker.sh(reconfigure + service management tool)
-
If you skipped the dialogs, installed headless, or need to adjust your configurations afterwards, leverage the included
configure-worker.sh:shell sudo /opt/diskover/configure-worker.sh -
The worker should have started automatically at the end of the installer — tail the logs to verify:
shell tail -n 50 -f /opt/diskover/logs/diskoverd.std*You should see the following if your worker has started up properly:
diskoverd - INFO - Worker name: $YourMacHostname diskoverd - INFO - Worker pools: []
Configuration
Diskover Admin — Diskoverd Settings
-
Navigate to your Diskover Admin UI:
Under Configuration → Diskoverd, you should see your Mac's hostname. Click on this host to edit the settings.
Note: If your Mac hostname is not showing, please review your logs to ensure the service has started up properly.
Expand the Logger section. Check the
Enable Log FileboxFor Log Directory, change the location to
/opt/diskover/logs/Change your Timezone
Python Command is pre-set by the installer to
/opt/python-venv-diskover/bin/python3— verify it, but do not change it to a system PythonSave these changes
Running Your First Scan
Navigate to the Task List page within Diskover Web to create a task for your Mac worker.
Important: While configuring the task object, when you get to Assigned Worker, please be sure to select from the dropdown your Mac host. Otherwise, your task will not run on the correct host.
Note (macOS privacy): Scanning locations protected by macOS (Desktop, Documents, Downloads) requires granting Full Disk Access to
/opt/python-venv-diskover/bin/python3under System Settings → Privacy & Security.
OVA Elasticsearch Connection
If you are connecting this back to a single stack OVA that likely has the Diskoverd configuration for the Elasticsearch connection set to localhost, you will need to change that to the OVA's IPv4 address so that the Mac Task Worker can fetch that configuration for ES and be able to connect properly.
Build Directories
The DMG will install into the following directories:
Path |
Purpose |
|---|---|
|
Main directory needed for scans to run |
|
YAML config so the Task Worker can connect to the Diskover Web via API (canonical copy; mirrored to the console user's |
|
LaunchDaemon for the worker service; also holds |
|
Bundled Python 3.13 (official http://python.org package, installed by the DMG) |
|
Python virtualenv the worker runs from (same path as Linux production); recreated clean on reinstall/upgrade |
|
Reconfigure + service management tool (see Service Management) |
Service Management
The installed configure-worker.sh tool is the easiest way to manage the worker (all commands as root/sudo):
Action |
Command |
|---|---|
Status / start / stop / restart |
|
Tail logs |
|
Reconfigure (server, API user/pass, API key) |
|
Test current credentials |
|
Edit config.yaml |
|
Equivalent raw launchctl commands:
Action |
Command |
|---|---|
Start |
|
Stop |
|
Note: These commands must be run as the
rootuser or with sudo privileges.
Manual Scan:
sudo /opt/diskover/configure-worker.sh run -i diskover-$indexName /path/to/be/scanned
or directly with the venv Python (the internal API key is picked up automatically from the LaunchDaemon plist):
sudo /opt/python-venv-diskover/bin/python3 /opt/diskover/diskover.py -i diskover-$indexName /path/to/be/scanned
Note: ALL indexes must start with
diskover-.
Verification
Check |
How to Verify |
Expected Result |
|---|---|---|
Service running |
|
|
Credentials valid |
|
Credential check passes against the server |
Worker registration |
Diskover Admin → Configuration → Diskoverd |
Mac hostname appears in the list |
Task execution |
Diskover Web → Task List → create and run a task assigned to your Mac worker |
Task completes without errors |
Troubleshooting
Issue |
Cause |
Solution |
|---|---|---|
Mac hostname not showing in Diskover Admin |
Service has not started properly |
Review the log files to ensure the service started up correctly |
Worker connects but API calls fail (401/403) |
Wrong API user/password or internal API key |
Run |
Scan of Desktop/Documents/Downloads fails or sees no files |
macOS privacy protection (TCC) |
Grant Full Disk Access to |
Task keeps failing |
Various — configuration, connectivity, permissions |
Check |
Worker can't connect to Elasticsearch |
Worker isn't able to communicate to Elasticsearch over port 9200 |
Check Diskover Admin → Diskover → Elasticsearch that the IPs are correct. Check the firewall to ensure network connectivity isn't being blocked. |
|
SSL certificate not trusted by the Mac worker — the credential check does not verify SSL certificates, but the worker's Python runtime does, and its bundled CA store doesn't include your certificate chain |
Add your certificate chain to the worker's Python trust store — see HTTPS: Trusting Your SSL Certificate below |
HTTPS: Trusting Your SSL Certificate
If your Diskover Web server runs HTTPS with a certificate the Mac worker's Python runtime doesn't trust (e.g. an internal CA), the worker fails its API calls even though configure-worker.sh check reports a successful connection. The fix is Step 4 of the Diskover - SSL Configuration Guide applied with Mac paths:
-
Locate the worker's Python CA bundle:
sudo /opt/python-venv-diskover/bin/python3 -c "import requests; print(requests.certs.where())"On the Mac worker this returns a path like
/opt/python-venv-diskover/lib/python3.13/site-packages/certifi/cacert.pem— use the exact path returned in the steps below. -
Back up the bundle, then append your certificate chain (the same
diskover-chain.crtfrom the SSL Configuration Guide):sudo cp /opt/python-venv-diskover/lib/python3.13/site-packages/certifi/cacert.pem \ /opt/python-venv-diskover/lib/python3.13/site-packages/certifi/cacert.pem.bak cat diskover-chain.crt | sudo tee -a /opt/python-venv-diskover/lib/python3.13/site-packages/certifi/cacert.pem > /dev/null -
Restart the worker:
sudo /opt/diskover/configure-worker.sh restart worker -
Verify Python now trusts the server (expect
200):sudo /opt/python-venv-diskover/bin/python3 -c "import requests; print(requests.get('https://diskover.yourcompany.com/api.php').status_code)"
Important: reinstalling or upgrading the DMG recreates the Python virtualenv from scratch, which discards this change — re-apply this step after any reinstall or upgrade.
Log File Locations
Log |
Location |
Purpose |
|---|---|---|
Stdout log |
|
Check for errors with the service starting up |
Stderr log |
|
Check for errors with the service starting up |
Subprocess log |
|
Check for errors with a particular task when scanning |
Comments
0 comments
Please sign in to leave a comment.