minimal_headless.rs 33 lignes · 777 octets
//! Minimal headless (API-only) example
//!
//! Starts Rustwarden with only the auth API endpoints, no HTML UI.
//!
//! ```bash
//! cargo run --example minimal_headless
//! ```

use axum::{Json, Router, routing::get};
use rustwarden_core::prelude::*;
use sea_orm::DatabaseConnection;
use serde_json::json;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    RustwardenApp::builder()
        .from_env()
        .headless()
        .auto_migrate(true)
        .merge_machine_routes(api_routes())
        .build()
        .await?
        .run()
        .await
}

fn api_routes() -> Router<DatabaseConnection> {
    Router::new().route("/api/status", get(status))
}

async fn status() -> Json<serde_json::Value> {
    Json(json!({ "status": "ok", "mode": "headless" }))
}