feat(odoh): relay bind-address CLI arg + dashboard Outbound Wire panel
- `numa relay [PORT] [BIND]` accepts an optional bind address (defaults to 127.0.0.1, matching the Caddy reverse-proxy deployment shape). Required for Docker, where the relay needs 0.0.0.0 inside the container so Caddy can reach it across the bridge network. - Dashboard now surfaces the upstream_transport dimension as an "Outbound Wire" panel alongside the existing "Inbound Wire" (renamed from "Transport" for directional clarity). Sub-headers — "apps → numa" / "numa → internet" — make the threat-model split obvious without jargon. Bars: UDP/DoH/DoT/ODoH, headline "X% encrypted outbound". The PR description's promise that "the dashboard answers how much of my DNS traffic left in cleartext honestly" is now true.
This commit is contained in:
15
src/main.rs
15
src/main.rs
@@ -66,7 +66,17 @@ fn main() -> numa::Result<()> {
|
||||
.as_deref()
|
||||
.and_then(|s| s.parse().ok())
|
||||
.unwrap_or(8443);
|
||||
let addr: std::net::SocketAddr = ([127, 0, 0, 1], port).into();
|
||||
let bind: std::net::IpAddr = std::env::args()
|
||||
.nth(3)
|
||||
.as_deref()
|
||||
.map(|s| {
|
||||
s.parse().unwrap_or_else(|e| {
|
||||
eprintln!("invalid bind address '{}': {}", s, e);
|
||||
std::process::exit(1);
|
||||
})
|
||||
})
|
||||
.unwrap_or(std::net::IpAddr::V4(std::net::Ipv4Addr::LOCALHOST));
|
||||
let addr = std::net::SocketAddr::new(bind, port);
|
||||
eprintln!(
|
||||
"\x1b[1;38;2;192;98;58mNuma\x1b[0m — ODoH relay on {}\n",
|
||||
addr
|
||||
@@ -107,7 +117,8 @@ fn main() -> numa::Result<()> {
|
||||
eprintln!(" service status Check if the service is running");
|
||||
eprintln!(" lan on Enable LAN service discovery (mDNS)");
|
||||
eprintln!(" lan off Disable LAN service discovery");
|
||||
eprintln!(" relay [PORT] Run as an ODoH relay (RFC 9230, default port 8443)");
|
||||
eprintln!(" relay [PORT] [BIND]");
|
||||
eprintln!(" Run as an ODoH relay (RFC 9230, default 127.0.0.1:8443)");
|
||||
eprintln!(" setup-phone Generate a QR code to install Numa DoT on a phone");
|
||||
eprintln!(" help Show this help");
|
||||
eprintln!();
|
||||
|
||||
Reference in New Issue
Block a user