Ember c2ba5a2a6c Add daemon startup smoke test and let it run on a PC in debug_mode
v0.11.0 shipped a daemon binary that built fine but didn't actually serve
a working frontend. CI was green. Nothing in the pipeline asserted that
the built binary comes up and serves something.

Add daemon/tests/smoke.rs as an integration test that spawns the built
binary against a tempdir-backed config with debug_mode = true, picks an
ephemeral port, and asserts:

- GET /index.html is 2xx and the decompressed body contains "Rayhunter"
- GET /api/qmdl-manifest is 2xx
- the daemon exits cleanly on SIGINT

Captures the daemon's stderr into a buffer so startup/shutdown failures
print actionable context instead of just "did not start listening".

Runs as part of the regular cargo test invocation, no new CI job.

For the smoke test (and #826) to work, the daemon needs to come up on a
PC without /dev/diag, a screen, or wpa_supplicant. The DIAG read thread,
display driver, and key input were already gated on debug_mode. Gate the
two remaining device-dependent workers the same way:

- run_battery_notification_worker (polls battery sysfs paths)
- wifi_station::run_wifi_client (talks to wpa_supplicant)

doc/installing-from-source.md gains a "Running the daemon on your PC"
section. doc/porting.md drops its duplicate debug_mode line and links to
the new section.

Closes #826.
2026-05-19 10:31:21 -07:00
2026-04-16 10:13:53 -07:00
2026-05-12 12:32:37 -07:00
2025-11-17 12:09:25 -08:00
2026-05-12 12:32:37 -07:00
2026-05-18 09:59:39 -07:00
2026-05-12 12:32:37 -07:00
2025-07-16 13:20:14 -07:00
2026-04-23 09:16:28 -07:00
2025-03-07 11:40:37 -08:00
2023-11-08 15:23:19 -08:00
2025-12-03 09:56:25 -08:00
2025-03-11 15:35:47 -07:00

Rayhunter

Tests

Rayhunter Logo - An Orca taking a bite out of a cellular signal bar

Rayhunter is a project for detecting IMSI catchers, also known as cell-site simulators or stingrays. It was first designed to run on a cheap mobile hotspot called the Orbic RC400L, but thanks to community efforts, it can support some other devices as well. It's also designed to be as easy to install and use as possible, regardless of your level of technical skills, and to minimize false positives.

→ Check out the installation guide to get started.

→ To learn more about the aim of the project, and about IMSI catchers in general, please check out our introductory blog post.

→ For discussion, help, or to join the mattermost channel and get involved with the project and community check out the many ways listed here!

→ To learn more about the project in general check out the Rayhunter Book.

LEGAL DISCLAIMER: Use this program at your own risk. We believe running this program does not currently violate any laws or regulations in the United States. However, we are not responsible for civil or criminal liability resulting from the use of this software. If you are located outside of the US please consult with an attorney in your country to help you assess the legal risks of running this program.

Good Hunting!

Description
No description provided
Readme GPL-3.0 19 MiB
Languages
Rust 75.9%
Svelte 17.2%
TypeScript 3.7%
Shell 1.1%
Python 1.1%
Other 0.9%