Compare commits
No commits in common. "fe5c1dc22e926f63b938f8dd60f922b33a55b447" and "63d0b1fc86b866a82bb06d6fa1d43feca34c369f" have entirely different histories.
fe5c1dc22e
...
63d0b1fc86
|
|
@ -1,7 +0,0 @@
|
||||||
platform: 'linux/amd64'
|
|
||||||
|
|
||||||
pipeline:
|
|
||||||
lint:
|
|
||||||
image: 'rustlang/rust:1.69'
|
|
||||||
commands:
|
|
||||||
- cargo build
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
FROM rust:1.69-alpine3.16 AS builder
|
FROM rust:1.64-alpine3.16 AS builder
|
||||||
|
|
||||||
ARG DI_VER=1.2.5
|
ARG DI_VER=1.2.5
|
||||||
|
|
||||||
|
|
|
||||||
37
src/main.rs
37
src/main.rs
|
|
@ -2,14 +2,13 @@ use std::{future::ready, net::SocketAddr};
|
||||||
|
|
||||||
use axum::{
|
use axum::{
|
||||||
extract::Extension,
|
extract::Extension,
|
||||||
|
http::StatusCode,
|
||||||
middleware,
|
middleware,
|
||||||
response::Redirect,
|
response::Redirect,
|
||||||
routing::{any, get},
|
routing::{any, get, get_service},
|
||||||
Router,
|
Router,
|
||||||
};
|
};
|
||||||
use tower_http::{
|
use tower_http::{auth::RequireAuthorizationLayer, services::ServeDir, trace::TraceLayer};
|
||||||
services::ServeDir, trace::TraceLayer, validate_request::ValidateRequestHeaderLayer,
|
|
||||||
};
|
|
||||||
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
||||||
|
|
||||||
mod api;
|
mod api;
|
||||||
|
|
@ -47,7 +46,7 @@ async fn main() {
|
||||||
// Routes under /api path
|
// Routes under /api path
|
||||||
.nest(
|
.nest(
|
||||||
"/api",
|
"/api",
|
||||||
api::router().layer(ValidateRequestHeaderLayer::bearer(&api_key)),
|
api::router().layer(RequireAuthorizationLayer::bearer(&api_key)),
|
||||||
)
|
)
|
||||||
.route("/metrics", get(move || ready(recorder_handle.render())));
|
.route("/metrics", get(move || ready(recorder_handle.render())));
|
||||||
|
|
||||||
|
|
@ -62,7 +61,17 @@ async fn main() {
|
||||||
for (path, dir) in sites {
|
for (path, dir) in sites {
|
||||||
let full_path = format!("{}/{}", static_dir, dir);
|
let full_path = format!("{}/{}", static_dir, dir);
|
||||||
|
|
||||||
app = app.nest_service(path, ServeDir::new(full_path));
|
app = app.nest(
|
||||||
|
path,
|
||||||
|
get_service(ServeDir::new(full_path)).handle_error(
|
||||||
|
|error: std::io::Error| async move {
|
||||||
|
(
|
||||||
|
StatusCode::INTERNAL_SERVER_ERROR,
|
||||||
|
format!("Unhandled internal error: {}", error),
|
||||||
|
)
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Define some redirects
|
// Define some redirects
|
||||||
|
|
@ -81,10 +90,18 @@ async fn main() {
|
||||||
|
|
||||||
app = app
|
app = app
|
||||||
// The fallback option is to serve the actual static files
|
// The fallback option is to serve the actual static files
|
||||||
.fallback_service(ServeDir::new(format!(
|
.fallback(
|
||||||
"{}/{}",
|
get_service(ServeDir::new(format!(
|
||||||
static_dir, DEFAULT_STATIC_SITE
|
"{}/{}",
|
||||||
)))
|
static_dir, DEFAULT_STATIC_SITE
|
||||||
|
)))
|
||||||
|
.handle_error(|error: std::io::Error| async move {
|
||||||
|
(
|
||||||
|
StatusCode::INTERNAL_SERVER_ERROR,
|
||||||
|
format!("Unhandled internal error: {}", error),
|
||||||
|
)
|
||||||
|
}),
|
||||||
|
)
|
||||||
.layer(middleware::from_fn(metrics::track_metrics))
|
.layer(middleware::from_fn(metrics::track_metrics))
|
||||||
.layer(Extension(data_dir))
|
.layer(Extension(data_dir))
|
||||||
.layer(TraceLayer::new_for_http());
|
.layer(TraceLayer::new_for_http());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue