feat: change default bind address to :: for dual‑stack support

The socket bound to :: accepts both IPv6 and IPv4 (mapped) connections,
so this change enables IPv6 connectivity in addition to the existing
IPv4 behaviour.
This commit is contained in:
Oliver Papst
2026-01-10 22:36:31 +01:00
parent 4dc99b4a84
commit bc3eba5bf7
3 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ BICHON_ROOT_DIR=/data/bichon-data
# Enable API access token validation # Enable API access token validation
BICHON_ENABLE_ACCESS_TOKEN=false BICHON_ENABLE_ACCESS_TOKEN=false
# IP address to bind the HTTP and gRPC servers to (default: 0.0.0.0) # IP address to bind the HTTP and gRPC servers to (default: ::)
BICHON_BIND_IP= BICHON_BIND_IP=
# Comma-separated list of allowed CORS origins (e.g. https://app.example.com) # Comma-separated list of allowed CORS origins (e.g. https://app.example.com)
+1 -1
View File
@@ -51,7 +51,7 @@ pub type ApiResult<T, E = ApiErrorResponse> = std::result::Result<T, E>;
pub async fn start_http_server() -> BichonResult<()> { pub async fn start_http_server() -> BichonResult<()> {
let listener = TcpListener::bind(( let listener = TcpListener::bind((
SETTINGS.bichon_bind_ip.clone().unwrap_or("0.0.0.0".into()), SETTINGS.bichon_bind_ip.clone().unwrap_or("::".into()),
SETTINGS.bichon_http_port as u16, SETTINGS.bichon_http_port as u16,
)); ));
+1 -1
View File
@@ -50,7 +50,7 @@ pub struct Settings {
#[clap( #[clap(
long, long,
env, env,
default_value = "0.0.0.0", default_value = "::",
help = "The IP address that the node binds to, in IPv4 or IPv6 format (e.g., 192.168.1.1 or ::1). Required in cluster mode.", help = "The IP address that the node binds to, in IPv4 or IPv6 format (e.g., 192.168.1.1 or ::1). Required in cluster mode.",
value_parser = ValueParser::new(|s: &str| { value_parser = ValueParser::new(|s: &str| {
// Ensure the input is a valid IPv4 or IPv6 address // Ensure the input is a valid IPv4 or IPv6 address