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