Added tppBind

This commit is contained in:
Alois 2026-05-16 19:01:54 +02:00
commit f25815aa1b
4 changed files with 31 additions and 12 deletions

4
Cargo.lock generated
View file

@ -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",

10
flake.lock generated
View file

@ -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"
}

View file

@ -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;
};

View file

@ -19,10 +19,13 @@ use tokio::sync::oneshot;
pub async fn start(port: u16) -> bool {
let (tx, rx) = oneshot::channel::<ServerHandle>();
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()
}