doc/configuration.md
Rayhunter can be configured through web user interface or by editing /data/rayhunter/config.toml on the device.
Through web UI you can set:
https://ntfy.sh/rayhunter_notifications_ba9di7ie or https://myserver.example.com/rayhunter_notifications_ba9di7ie. The ntfy Android and iOS apps can then be used to receive notifications. More information can be found in the ntfy docs.On the Orbic, Moxee, UZ801, TMOHS1, and Wingtech, Rayhunter can connect the device to an existing WiFi network while keeping the hotspot running. This gives the device internet access for notifications and lets you reach the web UI from any device on that network.
config.toml (in wpa_sta.conf on the device) and is never exposed through the API.9.9.9.9 and 149.112.112.112 (Quad9) if not set.After saving, the connection status will show connecting, connected (with the assigned IP address), or failed (with an error message). If the connection fails, check that the SSID and password are correct and that the network is in range.
The WiFi kernel module (wlan.ko) can occasionally crash or unload, taking both the hotspot and client interfaces down with it. Rayhunter includes a watchdog that detects this and automatically reloads the module, restarts the hotspot, and reconnects to the configured network. During recovery the WiFi status will show recovering.
On the first detection of a crash, a diagnostic snapshot is saved to /data/rayhunter/crash-logs/ on the device. You can pull these logs with adb pull /data/rayhunter/crash-logs/ and inspect them to understand what went wrong. Each log contains:
BUG:/Oops: lines, or wlan/wcnss errors. The kernel ring buffer is small and gets overwritten quickly, so crash details may already be gone if the crash happened well before detection.wlan is absent, the module fully unloaded. If present but interfaces are gone, the driver is stuck.hostapd, wpa_supplicant, wland) were still running.If recovery fails after 5 attempts, the status will change to failed. A reboot of the device will reset WiFi.
You can also configure WiFi during installation:
./installer orbic --admin-password 'mypassword' --wifi-ssid 'MyNetwork' --wifi-password 'networkpass'
Rayhunter can automatically upload finished recordings to a WebDAV server. When a [webdav] section is present in config.toml, a background worker periodically scans the recording store and uploads any closed entry that is older than min_age_secs. Each eligible entry uploads two files: the raw .qmdl capture and its .ndjson analysis output. After a successful upload the entry is either marked as uploaded in the manifest (and skipped on subsequent polls), or deleted locally if delete_on_upload = true. With no [webdav] section, no upload worker runs.
WebDAV upload is currently configurable only by editing config.toml — there is no web UI control for it yet.
| Key | Required | Default | Description |
|---|---|---|---|
url | yes | — | WebDAV server base URL, e.g. https://example.com/remote.php/files/user/rayhunter/ |
username | no | — | HTTP Basic auth username |
password | no | — | HTTP Basic auth password |
upload_timeout_secs | no | 300 | Timeout (seconds) for each upload request |
poll_interval_secs | no | 3600 | How often (seconds) the worker scans for eligible entries |
min_age_secs | no | 86400 | Minimum age (seconds) an entry must have before it becomes eligible for upload |
delete_on_upload | no | false | Delete the entry locally after a successful upload |
Example:
[webdav]
url = "https://dav.example.com/rayhunter/"
username = "user"
password = "pass"
upload_timeout_secs = 300
poll_interval_secs = 3600
min_age_secs = 86400
delete_on_upload = false
A few notes on behavior:
password without a username is rejected — the request is sent unauthenticated and a warning is logged..qmdl and .ndjson) must both upload successfully before the entry is marked as uploaded in the manifest. If one upload fails, the entry stays unmarked and both files are retried on the next poll — the one that previously succeeded will be overwritten on the server. Once an entry is marked as uploaded, Rayhunter will not upload it again.If you prefer editing config.toml file, you need to obtain a shell on your Orbic or TP-Link device and edit the file manually. You can view the default configuration file on GitHub.