From f25815aa1b99dabbeaf544e1c7ea4695af330876 Mon Sep 17 00:00:00 2001 From: Alois Date: Sat, 16 May 2026 19:01:54 +0200 Subject: [PATCH] Added tppBind --- Cargo.lock | 4 ++-- flake.lock | 10 +++++----- flake.nix | 18 +++++++++++++++++- web-ui/src/server.rs | 11 +++++++---- 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7b19efe..420eb6c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4317,7 +4317,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttp-core" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#929cb9d3a6aebebe6365973f13062ac2a8e03af6" +source = "git+https://git.methanium.net/Tensamin/TTP.git#7e5d1953df8592a1feba0f390d205d0ef61a3119" dependencies = [ "base64", "byteorder", @@ -4330,7 +4330,7 @@ dependencies = [ [[package]] name = "ttp-native" version = "0.1.0" -source = "git+https://git.methanium.net/Tensamin/TTP.git#929cb9d3a6aebebe6365973f13062ac2a8e03af6" +source = "git+https://git.methanium.net/Tensamin/TTP.git#7e5d1953df8592a1feba0f390d205d0ef61a3119" dependencies = [ "quinn", "rustls", diff --git a/flake.lock b/flake.lock index 2875c20..dffc9d8 100644 --- a/flake.lock +++ b/flake.lock @@ -59,15 +59,15 @@ "ttp": { "flake": false, "locked": { - "lastModified": 1778329030, - "narHash": "sha256-qEEPlOuGVco1g6lI/kfEvIZkJmBbjehuchGWPTywR10=", - "rev": "929cb9d3a6aebebe6365973f13062ac2a8e03af6", - "revCount": 115, + "lastModified": 1778948017, + "narHash": "sha256-hqBYSZnPq7f/F2Z6nJK+6a8ITk6WRCcVBcNT0CR6SnM=", + "rev": "7e5d1953df8592a1feba0f390d205d0ef61a3119", + "revCount": 117, "type": "git", "url": "https://git.methanium.net/Tensamin/TTP.git" }, "original": { - "rev": "929cb9d3a6aebebe6365973f13062ac2a8e03af6", + "rev": "7e5d1953df8592a1feba0f390d205d0ef61a3119", "type": "git", "url": "https://git.methanium.net/Tensamin/TTP.git" } diff --git a/flake.nix b/flake.nix index b83cbd6..533af31 100644 --- a/flake.nix +++ b/flake.nix @@ -5,7 +5,7 @@ nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; ttp = { - url = "git+https://git.methanium.net/Tensamin/TTP.git?rev=929cb9d3a6aebebe6365973f13062ac2a8e03af6"; + url = "git+https://git.methanium.net/Tensamin/TTP.git?rev=7e5d1953df8592a1feba0f390d205d0ef61a3119"; flake = false; }; }; @@ -98,6 +98,18 @@ description = "Whether to open the firewall for ports used by Iota."; }; + ttpBind = lib.mkOption { + type = lib.types.str; + default = "0.0.0.0"; + description = "IP address to bind the TTP/QUIC server to."; + }; + + bindAddress = lib.mkOption { + type = lib.types.str; + default = "0.0.0.0"; + description = "IP address to bind the HTTP server to."; + }; + package = lib.mkOption { type = lib.types.package; default = defaultPackage; @@ -190,6 +202,10 @@ RestrictSUIDSGID = true; LockPersonality = true; MemoryDenyWriteExecute = true; + Environment = [ + "TTP_BIND=${cfg.ttpBind}" + "BIND_ADDRESS=${cfg.bindAddress}" + ]; } // lib.optionalAttrs (cfg.environmentFiles != [ ]) { EnvironmentFile = cfg.environmentFiles; }; diff --git a/web-ui/src/server.rs b/web-ui/src/server.rs index edecfdd..263256e 100644 --- a/web-ui/src/server.rs +++ b/web-ui/src/server.rs @@ -19,10 +19,13 @@ use tokio::sync::oneshot; pub async fn start(port: u16) -> bool { let (tx, rx) = oneshot::channel::(); + let bind_addr = std::env::var("BIND_ADDRESS").unwrap_or_else(|_| "0.0.0.0".to_string()); + let bind_ip: std::net::IpAddr = bind_addr.parse().expect("Invalid BIND_ADDRESS"); + let _ = tokio::spawn(async move { let server = match load_tls_config() { Ok(Some(tls_config)) => { - log!("HTTPS (HTTP/2) Server running on 0.0.0.0:{}", port); + log!("HTTPS (HTTP/2) Server running on {}:{}", bind_addr, port); let _config = (*tls_config).clone(); HttpServer::new(move || { App::new() @@ -30,19 +33,19 @@ pub async fn start(port: u16) -> bool { .configure(api_config) .default_service(web::to(web_path_parser::handle)) }) - .bind(("0.0.0.0", port)) + .bind((bind_ip, port)) .unwrap() .run() } Ok(_) => { - log!("HTTP Server running on 0.0.0.0:{}", port); + log!("HTTP Server running on {}:{}", bind_addr, port); HttpServer::new(move || { App::new() .app_data(web::Data::new(false)) .configure(api_config) .default_service(web::to(web_path_parser::handle)) }) - .bind(("0.0.0.0", port)) + .bind((bind_ip, port)) .unwrap() .run() }