feat: resolve .numa services to LAN IP for remote clients #23

Merged
razvandimescu merged 3 commits from feat/lan-proxy-reachability into main 2026-03-30 04:15:42 +08:00
Showing only changes of commit 5bf2fefe2e - Show all commits

View File

@@ -208,8 +208,6 @@ async fn main() -> numa::Result<()> {
});
let zone_count: usize = ctx.zone_map.values().map(|m| m.len()).sum();
let dns_is_public = config.server.bind_addr.starts_with("0.0.0.0");
// Build banner rows, then size the box to fit the longest value
let api_url = format!("http://localhost:{}", api_port);
let proxy_label = if config.proxy.enabled {
@@ -309,7 +307,7 @@ async fn main() -> numa::Result<()> {
);
if let Some(ref label) = proxy_label {
row("Proxy", g, label);
if !config.lan.enabled && !dns_is_public && config.proxy.bind_addr == "127.0.0.1" {
if config.proxy.bind_addr == "127.0.0.1" {
let y = "\x1b[38;2;204;176;59m"; // yellow
row(
"",
@@ -387,16 +385,11 @@ async fn main() -> numa::Result<()> {
axum::serve(listener, app).await.unwrap();
});
// Proxy binds 0.0.0.0 when LAN is enabled or DNS is already on 0.0.0.0 (cross-machine access)
let proxy_bind: std::net::Ipv4Addr = if config.lan.enabled || dns_is_public {
std::net::Ipv4Addr::UNSPECIFIED
} else {
config
.proxy
.bind_addr
.parse()
.unwrap_or(std::net::Ipv4Addr::LOCALHOST)
};
let proxy_bind: std::net::Ipv4Addr = config
.proxy
.bind_addr
.parse()
.unwrap_or(std::net::Ipv4Addr::LOCALHOST);
// Spawn HTTP reverse proxy for .numa domains
if config.proxy.enabled {