14 new endpoints: POST tags, GET quota, POST register, 6 sidecar, 7 processing. DTOs, AppState groups, LogSidecarWriter, full bootstrap wiring.
31 lines
830 B
Rust
31 lines
830 B
Rust
use std::net::SocketAddr;
|
|
use tracing::info;
|
|
|
|
mod config;
|
|
mod factory;
|
|
mod log_event_publisher;
|
|
mod log_sidecar_writer;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter(
|
|
tracing_subscriber::EnvFilter::from_default_env()
|
|
.add_directive("bootstrap=info".parse()?)
|
|
.add_directive("tower_http=debug".parse()?),
|
|
)
|
|
.init();
|
|
|
|
let config = config::Config::from_env();
|
|
let app = factory::build_app(&config).await?;
|
|
|
|
let addr: SocketAddr = format!("{}:{}", config.host, config.port).parse()?;
|
|
let listener = tokio::net::TcpListener::bind(addr).await?;
|
|
|
|
info!("Server running at http://{addr}");
|
|
info!("Scalar docs at http://{addr}/scalar");
|
|
|
|
axum::serve(listener, app).await?;
|
|
Ok(())
|
|
}
|