32 lines
871 B
Rust
32 lines
871 B
Rust
|
use anyhow::Context;
|
||
|
|
||
|
mod config;
|
||
|
mod route;
|
||
|
|
||
|
|
||
|
#[tokio::main]
|
||
|
async fn main() -> anyhow::Result<std::convert::Infallible> {
|
||
|
pretty_env_logger::init();
|
||
|
log::debug!("Logging initialized!");
|
||
|
|
||
|
log::trace!("Creating Axum router...");
|
||
|
let app = axum::Router::new()
|
||
|
.route("/inbox", axum::routing::post(route::inbox_handler));
|
||
|
log::trace!("Axum router created successfully!");
|
||
|
|
||
|
log::trace!("Creating Tokio listener...");
|
||
|
let bind_address = config::ACRATE_INBOX_BIND_ADDRESS();
|
||
|
let listener = tokio::net::TcpListener::bind(bind_address)
|
||
|
.await
|
||
|
.context("failed to bind listener to address")?;
|
||
|
log::trace!("Tokio listener bound to: {bind_address}");
|
||
|
|
||
|
log::debug!("Starting server...");
|
||
|
axum::serve(listener, app)
|
||
|
.await
|
||
|
.context("server exited with error")?;
|
||
|
|
||
|
log::error!("Server exited with no error, panicking.");
|
||
|
panic!("server exited with no error");
|
||
|
}
|