Command-line reference
Run ruphish without arguments to read or create the OS user configuration. In a source checkout, use cargo run -p ruphish --locked from the product root so development assets are available. For an explicit installation, replace the dummy configuration path below and choose the working directory that owns its relative paths:
export RUPHISH_CONFIG='/path/to/config.json'
cargo run -p ruphish --locked -- --config "$RUPHISH_CONFIG" --mode allThe -- separates Cargo options from Ruphish options. A directly invoked development binary accepts the same application arguments. RUPHISH_CONFIG is an example-shell variable passed through --config; setting it alone does not change which configuration Ruphish loads.
| Option | Default | Behavior |
|---|---|---|
--config PATH | OS user configuration | Load an existing file from PATH; when omitted, read or create the OS configuration with SQLite defaults |
--mode all | all | Run administration and public listeners |
--mode admin | — | Run administration only |
--mode phish | — | Run public handling only |
--disable-mailer | false | Disable campaign queue execution in this process; IMAP is independent |
--no-disable-mailer | — | Compatibility alias enabling the mailer; conflicts with --disable-mailer |
-h, --help | — | Print ordinary help to stderr and exit |
--help-long | — | Print extended help to stdout and exit |
--help-man | — | Print manual-page text to stdout and exit |
--version | — | Print the application version to stderr and exit |
Only modes containing the administration listener run the campaign worker. Inactive listeners do not require usable addresses, certificates, or administration assets. The mailer switches are flags, not --disable-mailer=false assignments.
Successful startup emits RUPHISH_READY with bound-address JSON to stderr, independently of logging level. Port zero is available for isolated tests. Normal Ctrl+C, Windows Ctrl+Break, and Unix SIGTERM shutdown succeed; fatal initialization/runtime failure exits with status 1. Invalid CLI syntax is a parser failure, not successful readiness.
See process operation for working-directory and shutdown considerations.