mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-15 11:18:54 +02:00
Image Docker, CI et docs pour le serveur Rust
Image en trois étapes (frontend Vite, binaire Rust, Debian slim avec FFmpeg), healthcheck /healthz, dépendances npm propres à l'ancien serveur retirées, CI Rust (fmt, clippy, tests) et documentation de la mise à jour au prochain démarrage de la stack. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013qMexTfVRaegbPAgsagCAJ
This commit is contained in:
14 files changed
+272
-8270
No files matched your search
@@ -24,6 +24,7 @@ use crate::state::AppState;
|
||||
|
||||
pub fn router(state: AppState) -> Router {
|
||||
let api = Router::new()
|
||||
.route("/healthz", axum::routing::get(healthz))
|
||||
.merge(auth::router())
|
||||
.merge(core::router())
|
||||
.nest("/api/analytics", analytics::router())
|
||||
@@ -56,6 +57,14 @@ pub fn router(state: AppState) -> Router {
|
||||
.with_state(state)
|
||||
}
|
||||
|
||||
/// Sonde de santé (Docker) : le serveur répond et la base est joignable.
|
||||
async fn healthz(State(state): State<AppState>) -> Response {
|
||||
match sqlx::query_scalar::<_, i32>("SELECT 1").fetch_one(&state.db.pool).await {
|
||||
Ok(_) => (StatusCode::OK, "ok").into_response(),
|
||||
Err(_) => (StatusCode::SERVICE_UNAVAILABLE, "database unavailable").into_response(),
|
||||
}
|
||||
}
|
||||
|
||||
/// Route inconnue : JSON pour `/api`, sinon fichiers publics puis l'application React.
|
||||
async fn fallback(State(state): State<AppState>, headers: HeaderMap, request: Request) -> Response {
|
||||
let path = request.uri().path().to_string();
|
||||
|
||||
Reference in new issue
Block a user