Install on macOS¶
macOS runs DAPPS the same way Linux does - drop a binary on disk, run it. There's no signed installer or launchd integration in the release; if you want it to start on boot you wire that up yourself with a launchd plist.
The release binary targets Apple Silicon (arm64) only. If you're on an Intel mac, build from source.
1. Drop the binary¶
sudo mkdir -p /opt/dapps /var/lib/dapps
sudo curl -L \
https://github.com/M0LTE/dapps/releases/latest/download/dapps-osx-arm64 \
-o /opt/dapps/dapps
sudo chmod +x /opt/dapps/dapps
The binary is not notarised - Gatekeeper will refuse to run it on first launch with "cannot be opened because the developer cannot be verified." Either:
- Strip the quarantine attribute:
sudo xattr -d com.apple.quarantine /opt/dapps/dapps, or - Right-click → Open in Finder once to add a one-time exception.
2. Run interactively first¶
sudo -u $USER \
DAPPS_CALLSIGN=M0LTE-1 \
DAPPS_NODE_HOST=127.0.0.1 \
DAPPS_AGW_PORT=8000 \
/opt/dapps/dapps
For XRouter (RHPv2 instead of AGW), substitute DAPPS_NODE_BEARER=rhpv2 DAPPS_RHP_PORT=9000 for DAPPS_AGW_PORT=8000. See Connect via XRouter.
Open http://localhost:5000/ in a browser, set an admin password on /Setup. Ctrl+C to stop.
3. Run on boot via launchd (optional)¶
Save to /Library/LaunchDaemons/uk.m0lte.dapps.plist:
<?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>uk.m0lte.dapps</string>
<key>ProgramArguments</key>
<array>
<string>/opt/dapps/dapps</string>
</array>
<key>WorkingDirectory</key>
<string>/var/lib/dapps</string>
<key>EnvironmentVariables</key>
<dict>
<key>DAPPS_CALLSIGN</key><string>M0LTE-1</string>
<key>DAPPS_NODE_HOST</key><string>127.0.0.1</string>
<key>DAPPS_AGW_PORT</key><string>8000</string>
<key>ASPNETCORE_URLS</key><string>http://0.0.0.0:5000</string>
</dict>
<key>RunAtLoad</key><true/>
<key>KeepAlive</key><true/>
<key>StandardOutPath</key><string>/var/log/dapps.log</string>
<key>StandardErrorPath</key><string>/var/log/dapps.log</string>
</dict>
</plist>
Load and start:
sudo launchctl bootstrap system /Library/LaunchDaemons/uk.m0lte.dapps.plist
sudo launchctl enable system/uk.m0lte.dapps
Stop / unload:
The supervised in-place update path (/Update/apply on the dashboard) is Linux only today - it relies on systemd. On macOS you replace the binary by stopping launchd, swapping the file, and starting again. The dashboard's update banner still surfaces "v0.X.Y available" so you know when to do that.
Logs¶
If running interactively, stdout. Under launchd, the file you set as StandardOutPath (above), or log show --predicate 'process == "dapps"' for the system log.