1
0
mirror of https://github.com/CCC-MF/bwhc-kafka-rest-proxy.git synced 2025-04-19 19:16:51 +00:00

feat: add config option for listen address and port

This commit is contained in:
Paul-Christian Volkmer 2024-03-14 11:50:58 +01:00
parent 42b5189d32
commit 7b36255e2d
3 changed files with 19 additions and 2 deletions

View File

@ -25,6 +25,8 @@ Options:
Kafka Topic [env: APP_KAFKA_TOPIC=] [default: etl-processor_input] Kafka Topic [env: APP_KAFKA_TOPIC=] [default: etl-processor_input]
--token <TOKEN> --token <TOKEN>
bcrypt hashed Security Token [env: APP_SECURITY_TOKEN=] bcrypt hashed Security Token [env: APP_SECURITY_TOKEN=]
--listen <LISTEN>
Address and port for HTTP requests [env: APP_LISTEN=] [default: 0.0.0.0:3000]
``` ```
Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren. Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
@ -32,6 +34,7 @@ Die Anwendung lässt sich auch mit Umgebungsvariablen konfigurieren.
* `APP_KAFKA_SERVERS`: Zu verwendende Kafka-Bootstrap-Server als kommagetrennte Liste * `APP_KAFKA_SERVERS`: Zu verwendende Kafka-Bootstrap-Server als kommagetrennte Liste
* `APP_KAFKA_TOPIC`: Zu verwendendes Topic zum Warten auf neue Anfragen. Standardwert: `etl-processor_input` * `APP_KAFKA_TOPIC`: Zu verwendendes Topic zum Warten auf neue Anfragen. Standardwert: `etl-processor_input`
* `APP_SECURITY_TOKEN`: Verpflichtende Angabe es Tokens als *bcrypt*-Hash * `APP_SECURITY_TOKEN`: Verpflichtende Angabe es Tokens als *bcrypt*-Hash
* `APP_LISTEN`: Adresse und Port für eingehende HTTP-Requests. Standardwert: `0.0.0.0:3000` - Port `3000` auf allen Adressen
## HTTP-Requests ## HTTP-Requests

View File

@ -27,4 +27,11 @@ pub struct Cli {
help = "bcrypt hashed Security Token" help = "bcrypt hashed Security Token"
)] )]
pub token: String, pub token: String,
#[arg(
long,
env = "APP_LISTEN",
default_value = "0.0.0.0:3000",
help = "Address and port for HTTP requests"
)]
pub listen: String,
} }

View File

@ -58,8 +58,15 @@ async fn main() {
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
let app = app.layer(TraceLayer::new_for_http()); let app = app.layer(TraceLayer::new_for_http());
let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap(); match tokio::net::TcpListener::bind(&CONFIG.listen).await {
axum::serve(listener, app).await.unwrap(); Ok(listener) => {
log::info!("Starting application listening on '{}'", CONFIG.listen);
if let Err(err) = axum::serve(listener, app).await {
log::error!("Error starting application: {}", err)
}
}
Err(err) => log::error!("Error listening on '{}': {}", CONFIG.listen, err),
};
} }
async fn check_basic_auth(request: Request<Body>, next: Next) -> Response { async fn check_basic_auth(request: Request<Body>, next: Next) -> Response {